1с модуль менеджера ошибка

Ошибка использования модуля менеджера документа

Я

  

Boroda444

06.08.15 — 13:22

Конфигурация самописная, версия ядра 8.2.19.90, хотя конфа писалась еще в 8.1

Для одного из документов написали много процедур в модуле менеджера.

При проверке синтаксиса конфигурация ошибок не выдает, при запуске программы ошибок нет.

Но при попытке записать какой либо документ где есть обращение в нашему документу с модулем менеджера вылазит огромное количество ошибок следующего вида:

{Документ.ЗаявкаНаЖДПеревозку(1310,3)}: Процедура или функция с указанным именем не определена (Предупреждение)

              <<?>>Предупреждение(«Макет Наряда не найден. Печать отменена.»,0,ЗаголовокОшибка);

Так-же появляются ошибки из которых ясно что не только служебные методы не видны, но и экспортные серверные процедуры и функции из общих модулей (разных причем)

ПРИ ЭТОМ имею копию этой конфигурации для разработки — где эти ошибки не возникают.

Режим совместимости в настройках конфигурации стоит Совместимость 8.1

База долгое время работата с этим модулем менеджера без ошибок. и вот при переезде в новую скулу (был создан бекап, и последующее восстановление на новом месте) с ходу дала такие ошибки.

Очистка КЕША не решает проблему.  

ПОМОГИТЕ СОВЕТОМ — что может влиять на сбой компиляции этого модуля? Чем это можно решить? и даже чем решить — не оссобено важно — я вывел весь модуль в общий модуль и программа поехала работать дальше.

ВАЖНО ВООБЩЕ УЗНАТЬ ЧТО МОЖЕТ БЫТЬ ПРИЧИНОЙ ТАКОГО ПОВЕДЕНИЯ ПРОГРАММЫ?

  

Euguln

1 — 06.08.15 — 13:25

Включи проверку на сервере, Предупреждение не м.б. использовано.

  

Boroda444

2 — 06.08.15 — 13:27

Дело в том что этот модуль прекрасно работает на соседней базе. Что же произошло или могло произойти что бы рабочий код в одной базе просто перестал компилироваться?

  

Boroda444

3 — 06.08.15 — 13:28

При этом так же не видны и серверные процедуры:

{Документ.ЗаявкаНаЖДПеревозку(1343,21)}: Процедура или функция с указанным именем не определена (глАдрес)
              пОрганизацияАдрес=<<?>>глАдрес(Организация,ЛитЯз);

  

ЧеловекДуши

4 — 06.08.15 — 13:30

(0) Если вы перешли на УФ, то Модуль менеджера выполняется на стороне сервера. И сервер не знает некоторые фунции, которые требуют действия пользователя :)

  

ЧеловекДуши

5 — 06.08.15 — 13:30

(3) Руки, у писателя, из…

  

ЧеловекДуши

6 — 06.08.15 — 13:33

+(5) >>> ВАЖНО ВООБЩЕ УЗНАТЬ ЧТО МОЖЕТ БЫТЬ ПРИЧИНОЙ ТАКОГО ПОВЕДЕНИЯ ПРОГРАММЫ?

Вы забыли расписать:

1. Сервер
2. ОСь
3. Сервер SQL или что там у вас.
3/5. при этом указав номера релизов и версий, а не надпись "Очень шустрый, с кнопками"
4. На каком клиенте вертится "ваша" нетленка.

5. Какие галочки выставлены на Общих модклях.

6. и т.д. :)

  

Boroda444

7 — 06.08.15 — 13:40

Windows Server 2008r2

Server SQL 2008r2 Enterprise

Сервер HP Proliant 1500

Базы данных крутятся на 6-м рейде из 5-ти твердотельных OCZ 120Га 150х

Версия ядра 1С 8.2.19.90

Клиентская сторона запускается Толстым клиентом

Общие модули которые не видны Серверные и Глобальные, а так же есть и Сервер и Клиент.

  

Boroda444

8 — 06.08.15 — 13:42

Нет, мы не переходили на УФ. Как работали в толстом клиенте так и работаем. При этом комизм (трагизм) ситуации в том что я действительно имею базу До переезда на новый сервак где этот модуль работает и ошибок не выдает, и есть версия ПОСЛЕ переезда (никаких изменений не было в конфе) в которой модуль не компилируется.

Т.е. и грешить даже не знаю в какую сторону

  

Boroda444

9 — 06.08.15 — 13:43

ИМЕННО ПОЭТОМУ ЗАДАЛ ВОПРОС В МИР — может у кого-то был подобный опыт. Может кто то уже знает как это можно решить?

  

Ненавижу 1С

10 — 06.08.15 — 13:44

в одном случае выполняется на сервере, в другом на клиенте

  

GROOVY

11 — 06.08.15 — 13:45

Одна база крутится на сервере, а то что «для разработки» — файловая видать.

  

GROOVY

Модератор

12 — 06.08.15 — 13:46

И не стоит кричать.

  

Boroda444

13 — 06.08.15 — 13:46

Нет, обе на скуле

  

Boroda444

14 — 06.08.15 — 13:46

Одна в обычно режиме, тестоваря (где работает) в девелоп режиме

  

Boroda444

15 — 06.08.15 — 13:47

Простите, я не кричу. Пытаюсь просто выделить текст

  

тарам пам пам

16 — 06.08.15 — 13:49

Изучи, для чего нужны директивы #Если Сервер, #Если Клиент и т. д.

Модуль менеджера документа пытается скомпилироваться на сервере, где нет функций типа «Предупреждение». Потому и ругается.

  

Boroda444

17 — 06.08.15 — 14:20

Да, я тоже знаю что модуль менеджера будет скомпилирован на сервере. Но повторюсь. У меня при этом есть база в которой этот код не вызывает ошибок. Именно это и непонятно

Содержание

  • Ошибка в доработанном программном коде
  • Ошибка вывода печатной формы
  • Ошибка исполнения кода на Клиенте
      • См. также:
    • Шаг 1. Обновление прошивки
    • Шаг 2. Команда авторизации
    • Шаг 3. Восстановление данных об организации
    • Шаг 4. Перерегистрация без замены ФН
    • Шаг 5. Восстановление NVR
    • Шаг 6. «Ошибка контрольной суммы ОЗУ»
  • Пример кода, вызывающего ошибку:
  • Разбор полётов

Ошибка Переменная не определена в 1С 8.3 указывает на то, что программа не может получить нужную информацию в исполняемом программном коде. Это может быть связано с обновлением или доработкой программы. Если стандартный набор действий при исправлении ошибок не помог:

  • чистка кеша;
  • тестирование и исправление информационной базы;
  • просмотр зарегистрированных ошибок на сайте 1С,

придется разбираться с местом возникновения ошибки в 1С самостоятельно.

БухЭксперт8 подготовил 3 примера получения и исправления ошибки:

  • в доработанном программном коде;
  • при выводе печатной формы;
  • при исполнении кода на Клиенте.

Ошибка в доработанном программном коде

В форму типового отчета Движение товаров программист добавил поле Склад. Список выбора значений в это поле ограничен. При открытии отчета появляется ошибка:

В сообщении об ошибке указано место возникновения ошибки — строка 919 в модуле формы. Для исправления ошибки необходимо выполнить следующие действия:

  1. Нажмите кнопку Подробно в форме сообщения об ошибке.
    В окне Обнаружены ошибки программа укажет:
    • номер неправильной строки кода;
    • исполняемую команду, которая привела к ошибке. Иногда подробной информации в окне Обнаружены ошибки достаточно для понимания причин ее возникновения, но не всегда. В большинстве случаев требуется перейти в место возникновения ошибки и проанализировать используемые в команде данные.
  2. Для перехода в место ошибки нажмите кнопку Конфигуратор.
    В Конфирураторе курсор автоматически установится на строке программного кода с ошибкой. Необходимо проверить используемые командой данные. В данном примере ошибка сигнализирует, что переменной ОсновнойСклад не задано значение: при добавлении в список складов программа не понимает, какой склад требуется добавить.
  3. Исправьте ошибку.
    Укажите нужное значение переменной в программном коде, например:
    • ОсновнойСклад = Справочники.Склады.НайтиПоНаименованию(«Основной склад»);
    • ОсновнойСклад = Справочники.Склады.ОсновнойСклад.
      Синтаксис Справочники.Склады.ОсновнойСклад используется только для предопределенного склада с именем ОсновнойСклад:
  4. Сохраните изменения и обновите информационную базу.
  5. Проверьте работу 1С после исправления ошибки.

После исправления отчет открывается без ошибки, а при выборе складов устанавливается нужное значение Основной склад.

Ошибка вывода печатной формы

Для вывода в печатную форму накладной данных об ответственном менеджере, оформившем документ поступления, программист внес изменения в макет ПФ_MXL_Накладная и программный код.

В макет документа добавлена область Подвал:

В программном коде дописан вывод данных области Подвал:

После доработки программы при попытке вывода накладной на печать 1С выдает ошибку:

Информация в окне сообщения об ошибке указывает, что в Модуле менеджера документа ПоступлениеТоваровУслуг не определено значение переменной Ответственный. Для исправления ошибки:

  1. Перейдите в Конфигуратор. В Модуле менеджера документа ПоступлениеТоваровУслуг перейдите на строку 4804.
  2. Укажите для вывода в печатную форму поля Ответственный — текущего пользователя, используя специальную команду 1С:
    • Пользователи.ТекущийПользователь().
  3. Сохраните изменения и обновите информационную базу.
  4. Перейдите в пользовательский режим для проверки выполненных изменений.

После исправления программного кода накладная сформируется без ошибки.

Ошибка исполнения кода на Клиенте

С переходом на управляемые формы в Бухгалтерия 3.0 работы программистам прибавилось.

Язык программирования стал сложнее. Часть команд теперь могут выполняться только на стороне клиента — это, условно говоря, компьютер пользователя, который посылает запросы на исполнение операций серверу. Сервер обрабатывает все поступившие запросы и отсылает обратно клиенту результат обработки данных.

Все это привело к тому, что в 1С команды делятся на исполняемые &НаСервере и &НаКлиенте. И при написании программного кода нужно это учитывать, иначе программа не сможет выполнить заданную операцию. При работе с переменными при написании программного кода важно понимать:

  • &НаКлиенте — переменные существуют только на время клиентского вызова;
  • &НаСервере— переменные существуют только на время серверного вызова.

Разделение команд в программном коде не зависит от того, используете ли вы файловую или клиент-серверную 1С. Разграничение должно четко исполняться, иначе будут возникать ошибки, одну из которых БухЭксперт8 разберет на примере.

При доработке программного кода программист использовал операцию получения данных склада &НаКлиенте в процедуре ПриОткрытии.

При сохранении изменений 1С сообщила об ошибке Переменная не определена (Справочники) при определении значения склада:

  • «?»Справочники.Склады.НайтиПоКоду(«»00-000002»).

Ошибка связана с тем, что данная операция исполняется только на сервере, т. е. &НаСервере. И несмотря на то, что сама команда исполнения корректна, ошибка будет формироваться до тех пор, пока ее не перенесут в область команд исполнения &НаСервере, например так:

Теперь сохранение изменений пройдет без ошибки.

Усложнение языка программирования 1С требует от разработчика более глубокого подхода к вносимым изменениям в программу. Недостаточно просто знать синтаксис команды, важно еще правильно задать область исполнения команды в режиме управляемых форм.

См. также:

  • Большое количество забивается решеткой
  • Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы
  • Значение поля номер не уникально 1С 8.3: как исправить
  • У пользователя недостаточно прав на исполнение операции

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Здравствуйте!
Самописная конфигурация на платформе 1С:Предприятие 8.3 (8.3.3.641).
Режим Управляемое приложение.
Перенес из модуля формы функцию в ОбщиеМодули и общий модуль перестал инициализироваться.
У модуля ОбщиеМеханизмыКлиента указаны свойства: Клиент (управляемое приложение), Сервер, Вызов сервера.
Выдает ошибку при попытке вызова любой функции модуля:

Цитата Ошибка инициализации модуля: ОбщийМодуль.ОбщиеМеханизмыКлиента.Модуль
по причине:
{ОбщийМодуль.ОбщиеМеханизмыКлиента.Модуль(246,17)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос;
Функция, которая перенесена:
// *************************************************
// * Возвращает остаток на счете на момент времени *
// *************************************************
Функция ПолучитьОстаток(
пСчет, // «Счет», по которому определяется остаток
Знач пМоментВремени = Неопределено // «Момент времени», на который возвращается остаток
) Экспорт
// ======================================
// = Сформировать значения по умолчанию =
// ======================================
Если пМоментВремени = Неопределено Тогда
пМоментВремени = ТекущаяДата();
КонецЕсли;
// ============================================
// = Получить остаток по регистру бухгалтерии =
// ============================================
// Сформировать условие по отобору «Счета»
Отбор = Новый Структура(«Счет», пСчет);
// Выбрать данные
Выборка = РегистрыБухгалтерии.Фин_Отч_ЖурналОпераций.Остатки(пМоментВремени, , Отбор);
// Получить значение остатка
Остаток = Выборка.Итог(«СуммаОстатокДт») — Выборка.Итог(«СуммаОстатокКт»);
// =====================================
// = Добавить «Начальный баланс» счета =
// =====================================

// ——————————-
// — Получить «Начальный баланс» —
// ——————————-
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| НИС_Учт_Сч_Счета.НачальныйБаланс
|ИЗ
| Справочник.НИС_Учт_Сч_Счета КАК НИС_Учт_Сч_Счета
|ГДЕ
| НИС_Учт_Сч_Счета.Счет = &Счет»;
Запрос.УстановитьПараметр(«Счет», пСчет);
РезультатЗапроса = Запрос.Выполнить();

Ошибка означает, что данные в ФН и на фискальной плате не совпадают.
Может произойти при: замене платы FM15/16, при подаче команды авторизации на зарегистрированной кассе, и при сбое электропитания на кассе во время работы (т.к. на фискальной плате стоит энергозависимая память).

Обязательно используйте последнюю версию Fito.
Скачать ее можно тут: «Страница загрузок»

Точно ли эта инструкция мне нужна? (раскрыть)

Да, если:

  • На уже зарегистрированной кассе была заменена фискальная плата FM15/16
  • На уже зарегистрированную кассу была подана команда «Авторизация» или «Тех. Обнуление»
  • На чеке диагностики печатается «Ошибка модуля ФН»: значит, в данных фискальной платы нет информации по организации
  • В Fito стоит галочка «Фатальная ошибка ФН» или «Нефискальный режим»: обязательно проверьте серийный номер на чеке диагностики — совпадает ли он с номером на шильде

Инструкция:

  • Обязательно обновите прошивку!
  • На чеке диагностики заводской номер не совпадает с номером на шильдике
  • Восстановите данные по организации в памяти фискальной платы
  • Восстановите NVR (Счетчики нарастающих итогов)
  • «Ошибка контрольной суммы ОЗУ» — как исправить?

Шаг 1. Обновление прошивки

Проверьте версию прошивки на плате (как это сделать?). Если версия не является последней (последнюю можно найти тут: «Страница загрузок») — обновите ее.

Для Вики Принт, подключенному к ПК это можно сделать Менеджером Обновлений. Для иных случаев прошивайте плату с помощью этой инструкции.

Шаг 2. Команда авторизации

Команда Авторизации сотрёт всё содержимое памяти Вики Принт включая лицензии Дримкас Ключ. Лицензию нужно будет активировать повторно.

Fito → «Сервис» → «Авторизация» → укажите Модель ККТ из списка и последние 6 цифр заводского номера с шильдика → «Выполнить»

Шаг 3. Восстановление данных об организации

Fito → «Сервис» → «Проверка записи регистрации» → «Считать» → сохраните файл в любое место, он нам не нужен.

У вас нет такого пункта в Fito (раскрыть)

В Fito по умолчанию скрыты пункты меню, с помощью которых можно напрямую работать с данными в фискальной памяти.

Закройте Fito и скопируйте файл Fito.ini в папку с утилитой.
На кассах Вики путь к Fito следующий:

Либо можно добавить параметры вручную: откройте текстовым редактором файл Fito.ini и в раздел добавьте строку:
ServAccess=767 (измените цифры на 767, если пункт ServAccess уже есть).

Укажите следующие значения в полях этой таблицы (скриншот ниже):

  1. Серийный номер = если не совпадает с номером на шильде, вернитесь к шагу 2
  2. Регистрационный номер, ИНН, номер ФН — впишите соотв. значения
  3. Версия = 1
  4. Тип ФФД = 2 (если регистрация была по ФФД 1.05) или 1 (если по ФФД 1.0)

Внесли всё?

Нажмите «Записать» и перезагрузите ККТ из режима «Сервис» → «Рестарт ККТ».

Если после перезагрузки на чеке диагностики будет ошибка «Расхождение данных в ФН и NVR» — следуйте инструкции дальше.

Если же выйдет «Ошибка ФН» — значит, третий шаг выполнен некорректно. Вы где-то ошиблись или не сохранили данные. Начните заново с шага №3.

Шаг 4. Перерегистрация без замены ФН

Теперь нужно сделать перерегистрацию, установив СНО и режим работы.

Для начала проверим, что в ФН смена закрыта (ведь на открытой смене перерегистрацию сделать нельзя). Fito → «Тестирование» → «Ручной ввод команд» → Номер команды = 78; параметр 1 = 6 → «Выполнить» → «Детализация ответа». Если смена закрыта, то статус смены будет = 0, открыта = 1.

Если смена открыта в ФН, то нужно в на плате ее тоже открыть, что бы потом закрыть и на плате, и в ФН. Сначала откройте смену, потом закройте.

Как открыть и закрыть смену через Fito? (раскрыть)

Открыть смену: Fito → «Тестирование» → «Ручной ввод команды» → Номер команды = 23, Параметр 1 = имя кассира → «Выполнить»

Закрыть смену: Fito → «Тестирование» → «Печать отчетов» → «Печать z-отчета» → Имя оператора = имя кассира → «Выполнить»

Проверьте настройки отправки чеков:
Fito → «Программирование настроек сети» → «Считать» → заполните URL и порт сервера ОФД → «Установить». Настройки сети можно не заполнять — служба ComProxy сама возьмет их из текущего подключения к интернету.

Теперь можно сделать перерегистрацию:

Fito → «Сервис» → «Регистрация/Снятие с учета» → «Перерегистрация без замены ФН» → заполните все данные в полях (реквизиты организации, данные по ОФД, СНО и режимы работы) → «Выполнить»

Обязательно укажите чуть-чуть другой адрес или наименование организации (например, добавьте лишний пробел). Это нужно, чтобы у перерегистрации была причина. Если делать перерегистрацию с теми же самыми параметрами, на ФФД 1.05 выйдет ошибка.

Шаг 5. Восстановление NVR

Текст ошибки: «РАСХОЖДЕНИЕ НОМЕРОВ СМЕН В ФН И NVR».

Fito → «Сервис» → «Проверка NVR» → «Считать» → сохраните файл в любое место, он нам не нужен → «Умолчание» → заполните поля нарастающий итогов → «Записать»

Нарастающие итоги заполняются без разделителя между рублями и копейками. Например, сумма 28 884.00 записывается как 2888400.
Значения нарастающих итогов нужно взять из последнего z-отчета (если смена открыта, для корректности этих значений к этим цифрам нужно добавить то, что было набито на последней открытой смене — данные можно посмотреть в ОФД или распечатать из ФН).

У вас нет такого пункта в Fito (раскрыть)

В Fito по умолчанию скрыты пункты меню, с помощью которых можно напрямую работать с данными в фискальной памяти.

Закройте Fito и скопируйте файл Fito.ini в папку с утилитой.
На кассах Вики путь к Fito следующий:

Либо можно добавить параметры вручную: откройте текстовым редактором файл Fito.ini и в раздел добавьте строку:
ServAccess=767 (измените цифры на 767, если пункт ServAccess уже есть).

Шаг 6. «Ошибка контрольной суммы ОЗУ»

Ошибка некритичная, означает, что текущая контрольная сумма бит по конфигурации не совпадает с последней сохранённой.

Откройте и закройте смену, ошибка пропадет. Сделать это можно через кассовое ПО или через Fito.

Как открыть и закрыть смену через Fito? (раскрыть)

Открыть смену: Fito → «Тестирование» → «Ручной ввод команды» → Номер команды = 23, Параметр 1 = имя кассира → «Выполнить»

Закрыть смену: Fito → «Тестирование» → «Печать отчетов» → «Печать z-отчета» → Имя оператора = имя кассира → «Выполнить»

Ошибка возникает, когда после точки запятой есть еще код — процедуры, функции, код тела модуля.

Пример кода, вызывающего ошибку:

Процедура ПроверитьТэгиИПоставщиков() Для каждого СтрокаТ из тПоставщиков Цикл Если ПустаяСтрока(СтрокаТ.TAG) или ЗначениеЗаполнено(СтрокаТ.Поставщик) = Ложь Тогда СтрокаТ.Создавать = Ложь; Сообщить(«Не заполнены данные по поставщику «+СтрокаТ.TAG+»!»); КонецЕсли; КонецЦикла; КонецПроцедуры; Процедура ИмяЛокальногоОтветаОткрытие(Элемент, СтандартнаяОбработка) Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ИмяЛокальногоОтвета); Текст.Показать(«Файл ответа»); КонецПроцедуры

Разбор полётов

Сообщение ошибке «Обнаружено логическое завершение исходного текста модуля» возникает, когда вы добавляете функцию/процедуру после «;» даже, если она создается автоматически через конструкторы событий

Ошибка в этой строке:

КонецПроцедуры;

Если после точки с запятой ничего нет, такой модуль не вызывает ошибку.

1С считает эту «;» частью кода тела модуля, а процедуры/функции в нем недопустимы

Решение простое:

Найти и убрать точку с запятой (необязательно что это будет последняя функция или процедура)

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Юрий

Дата регистрации: 28.10.2021
Сообщений: 1

Доброго времени суток. Подскажите пожалуйста при обновлении версии программы БП 3.0.99.21 вот такая ошибка, как с этим бороться?
Ошибка инициализации модуля: Документ._УПР_КорректировкаВыпуска.МодульМенеджера
по причине:
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(1124,21)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
НастройкиОбмена = <<?>>ОбменСКонтрагентамиСлужебный.ЗаполнитьПараметрыЭДПоИсточнику(СсылкаНаОбъект);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(1157,25)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
МассивСтруктурОбмена = <<?>>ОбменСКонтрагентамиСлужебный.СформироватьXMLФайлыДокументов(МассивСсылокНаОбъект,
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7398,19)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
ИмяФайлаАрхива = <<?>>ОбменСКонтрагентамиСлужебный.ТекущееИмяВременногоФайла(«zip»);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7752,20)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
ИмяФайлаАрхива = <<?>>ОбменСКонтрагентамиСлужебный.ТекущееИмяВременногоФайла(«zip»);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7406,11)}: Переменная не определена (ЭлектронноеВзаимодействиеСлужебный)
Если НЕ <<?>>ЭлектронноеВзаимодействиеСлужебный.ВозможноИзвлечьФайлы(ЧтениеЗИП, ПапкаДляРаспаковки) Тогда
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7407,21)}: Переменная не определена (ЭлектронноеВзаимодействиеСлужебныйПовтИсп)
ТекстСообщения = <<?>>ЭлектронноеВзаимодействиеСлужебныйПовтИсп.ПолучитьСообщениеОбОшибке(«006»);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7466,21)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
ДанныеДокумента = <<?>>ОбменСКонтрагентамиВнутренний.СформироватьДеревоРазбора(ИмяФайлаДанных,
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7666,23)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
ТабличныйДокумент = <<?>>ОбменСКонтрагентамиВнутренний.СформироватьПечатнуюФормуЭД(
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7727,2)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
<<?>>ОбменСКонтрагентамиВнутренний.СформироватьТранспортнуюИнформацию(СтруктураОбмена.СтруктураЭД,
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7732,2)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
<<?>>ОбменСКонтрагентамиВнутренний.СформироватьКарточку(СтруктураОбмена.СтруктураЭД, АдресКаталога, ТекстОшибки);

iRust

Дата регистрации: 18.06.2010
Сообщений: 143

Юрий пишет:

Цитата
Ошибка инициализации модуля: Документ._УПР_КорректировкаВыпуска.МодульМенеджера….

Ошибка начала появляться случайно не после обновления конфигурации?
Откройте Администрирование > Печатные формы, отчеты и обработки > Расширения и посмотрите, что у вас в указано в списке установленных расширений.

Vladko

Дата регистрации: 27.08.2007
Сообщений: 2643

Юрий,у вас самостоятельно разработанный документ УПР_КорректировкаВыпуска. Он был разработан для прошлых релизов бухгалтерии. Сейчас вы обновили бухгалтерию, процедуры там тоже обновились, а в самописном документе у вас эти процедуры вызываются по-старому. Надо дорабатывать ваш документ программисту.

Показывать по
10
20
40
сообщений

Ошибка Переменная не определена в 1С 8.3 указывает на то, что программа не может получить нужную информацию в исполняемом программном коде. Это может быть связано с обновлением или доработкой программы. Если стандартный набор действий при исправлении ошибок не помог:

  • чистка кеша;
  • тестирование и исправление информационной базы;
  • просмотр зарегистрированных ошибок на сайте 1С,

придется разбираться с местом возникновения ошибки в 1С самостоятельно.

БухЭксперт8 подготовил 3 примера получения и исправления ошибки:

  • в доработанном программном коде;
  • при выводе печатной формы;
  • при исполнении кода на Клиенте.

Содержание

  • Ошибка в доработанном программном коде
  • Ошибка вывода печатной формы
  • Ошибка исполнения кода на Клиенте

Ошибка в доработанном программном коде

В форму типового отчета Движение товаров программист добавил поле Склад. Список выбора значений в это поле ограничен. При открытии отчета появляется ошибка:

В сообщении об ошибке указано место возникновения ошибки — строка 919 в модуле формы. Для исправления ошибки необходимо выполнить следующие действия:

  1. Нажмите кнопку Подробно в форме сообщения об ошибке.
    В окне Обнаружены ошибки программа укажет:

    • номер неправильной строки кода;
    • исполняемую команду, которая привела к ошибке.

      Иногда подробной информации в окне Обнаружены ошибки достаточно для понимания причин ее возникновения, но не всегда. В большинстве случаев требуется перейти в место возникновения ошибки и проанализировать используемые в команде данные.

  2. Для перехода в место ошибки нажмите кнопку Конфигуратор.
    В Конфирураторе курсор автоматически установится на строке программного кода с ошибкой. Необходимо проверить используемые командой данные. В данном примере ошибка сигнализирует, что переменной ОсновнойСклад не задано значение: при добавлении в список складов программа не понимает, какой склад требуется добавить.
  3. Исправьте ошибку.
    Укажите нужное значение переменной в программном коде, например:

    • ОсновнойСклад = Справочники.Склады.НайтиПоНаименованию(«Основной склад»);
    • ОсновнойСклад = Справочники.Склады.ОсновнойСклад.

      Синтаксис Справочники.Склады.ОсновнойСклад используется только для предопределенного склада с именем ОсновнойСклад:

  4. Сохраните изменения и обновите информационную базу.
  5. Проверьте работу 1С после исправления ошибки.

После исправления отчет открывается без ошибки, а при выборе складов устанавливается нужное значение Основной склад.

Ошибка вывода печатной формы

Для вывода в печатную форму накладной данных об ответственном менеджере, оформившем документ поступления, программист внес изменения в макет ПФ_MXL_Накладная и программный код.

В макет документа добавлена область Подвал:

В программном коде дописан вывод данных области Подвал:

После доработки программы при попытке вывода накладной на печать 1С выдает ошибку:

Информация в окне сообщения об ошибке указывает, что в Модуле менеджера документа ПоступлениеТоваровУслуг не определено значение переменной Ответственный. Для исправления ошибки:

  1. Перейдите в Конфигуратор. В Модуле менеджера документа ПоступлениеТоваровУслуг перейдите на строку 4804.
  2. Укажите для вывода в печатную форму поля Ответственный — текущего пользователя, используя специальную команду 1С:
    • Пользователи.ТекущийПользователь().
  3. Сохраните изменения и обновите информационную базу.
  4. Перейдите в пользовательский режим для проверки выполненных изменений.

После исправления программного кода накладная сформируется без ошибки.

Ошибка исполнения кода на Клиенте

С переходом на управляемые формы в Бухгалтерия 3.0 работы программистам прибавилось.

Язык программирования стал сложнее. Часть команд теперь могут выполняться только на стороне клиента — это, условно говоря, компьютер пользователя, который посылает запросы на исполнение операций серверу. Сервер обрабатывает все поступившие запросы и отсылает обратно клиенту результат обработки данных.

Все это привело к тому, что в 1С команды делятся на исполняемые &НаСервере и &НаКлиенте. И при написании программного кода нужно это учитывать, иначе программа не сможет выполнить заданную операцию. При работе с переменными при написании программного кода важно понимать:

  • &НаКлиенте — переменные существуют только на время клиентского вызова;
  • &НаСервере— переменные существуют только на время серверного вызова.

Разделение команд в программном коде не зависит от того, используете ли вы файловую или клиент-серверную 1С. Разграничение должно четко исполняться, иначе будут возникать ошибки, одну из которых БухЭксперт8 разберет на примере.

При доработке программного кода программист использовал операцию получения данных склада &НаКлиенте в процедуре ПриОткрытии.

При сохранении изменений 1С сообщила об ошибке Переменная не определена (Справочники) при определении значения склада:

  • «?»Справочники.Склады.НайтиПоКоду(«»00-000002»).

Ошибка связана с тем, что данная операция исполняется только на сервере, т. е. &НаСервере. И несмотря на то, что сама команда исполнения корректна, ошибка будет формироваться до тех пор, пока ее не перенесут в область команд исполнения &НаСервере, например так:

Теперь сохранение изменений пройдет без ошибки.

Усложнение языка программирования 1С требует от разработчика более глубокого подхода к вносимым изменениям в программу. Недостаточно просто знать синтаксис команды, важно еще правильно задать область исполнения команды в режиме управляемых форм.

См. также:

  • Большое количество забивается решеткой
  • Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы
  • Значение поля номер не уникально 1С 8.3: как исправить
  • У пользователя недостаточно прав на исполнение операции

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Платформа: 8.3.14.1694
Режим БД: клиент-серверный
Конфигурация. Название: Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.9.229)
Конфигурация. Основной режим запуска: Управляемое приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим совместимости: Версия8_3_12
Конфигурация. Версия БСП: 3.0.1.440
Инструменты разработчика. Версия: Расширение 5.08e
Инструменты разработчика. Объекты на сервере: Да
Расширения. ДополненияФорм ()
Расширения. ИнструментыРазработчикаTormozit (5.08e)
Клиент. ОС: Windows x86 Microsoft Windows 8.1 version 6.3  (Build 9600)
Клиент. Приложение: Управляемое приложение 32б
Клиент. От имени администратора Windows: Да
Клиент. Текущий язык системы: ru
Сервер. ОС: Windows x86-64 Microsoft Windows 8.1 version 6.3  (Build 9600)
Сервер. Отладка: tcp

Выбрал документы помечены на удаление НеявкаОтсутсвие, хочу удалить, жму контроль
и появляется следующее сообщение

Также такая же ошибка возникает при использовании обработки Удаление объектов с контролем ссылок ИР и выборе всех документов и выборочных типов документов
Ниже привожу сообщение из раздела «Информация для тех поддержки»

Код

Ошибка инициализации модуля: Документ.ТамОплатаМедосмотра.МодульМенеджера
по причине:
{Документ.ТамОплатаМедосмотра.МодульМенеджера(4,10)}: Переменная не определена (ЗарплатаКадрыСоставДокументов)
Возврат <<?>>ЗарплатаКадрыСоставДокументов.ОписаниеСоставаДокументаПоМетаданнымФизическиеЛицаВТабличныхЧастях(МетаданныеДокумента);

Ошибка использования модуля менеджера документа

Я
   Boroda444

06.08.15 — 13:22

Конфигурация самописная, версия ядра 8.2.19.90, хотя конфа писалась еще в 8.1

Для одного из документов написали много процедур в модуле менеджера.

При проверке синтаксиса конфигурация ошибок не выдает, при запуске программы ошибок нет.

Но при попытке записать какой либо документ где есть обращение в нашему документу с модулем менеджера вылазит огромное количество ошибок следующего вида:

{Документ.ЗаявкаНаЖДПеревозку(1310,3)}: Процедура или функция с указанным именем не определена (Предупреждение)

              <<?>>Предупреждение(«Макет Наряда не найден. Печать отменена.»,0,ЗаголовокОшибка);

Так-же появляются ошибки из которых ясно что не только служебные методы не видны, но и экспортные серверные процедуры и функции из общих модулей (разных причем)

ПРИ ЭТОМ имею копию этой конфигурации для разработки — где эти ошибки не возникают.

Режим совместимости в настройках конфигурации стоит Совместимость 8.1

База долгое время работата с этим модулем менеджера без ошибок. и вот при переезде в новую скулу (был создан бекап, и последующее восстановление на новом месте) с ходу дала такие ошибки.

Очистка КЕША не решает проблему.  

ПОМОГИТЕ СОВЕТОМ — что может влиять на сбой компиляции этого модуля? Чем это можно решить? и даже чем решить — не оссобено важно — я вывел весь модуль в общий модуль и программа поехала работать дальше.

ВАЖНО ВООБЩЕ УЗНАТЬ ЧТО МОЖЕТ БЫТЬ ПРИЧИНОЙ ТАКОГО ПОВЕДЕНИЯ ПРОГРАММЫ?

   Euguln

1 — 06.08.15 — 13:25

Включи проверку на сервере, Предупреждение не м.б. использовано.

   Boroda444

2 — 06.08.15 — 13:27

Дело в том что этот модуль прекрасно работает на соседней базе. Что же произошло или могло произойти что бы рабочий код в одной базе просто перестал компилироваться?

   Boroda444

3 — 06.08.15 — 13:28

При этом так же не видны и серверные процедуры:

{Документ.ЗаявкаНаЖДПеревозку(1343,21)}: Процедура или функция с указанным именем не определена (глАдрес)

              пОрганизацияАдрес=<<?>>глАдрес(Организация,ЛитЯз);

   ЧеловекДуши

4 — 06.08.15 — 13:30

(0) Если вы перешли на УФ, то Модуль менеджера выполняется на стороне сервера. И сервер не знает некоторые фунции, которые требуют действия пользователя :)

   ЧеловекДуши

5 — 06.08.15 — 13:30

(3) Руки, у писателя, из…

   ЧеловекДуши

6 — 06.08.15 — 13:33

+(5) >>> ВАЖНО ВООБЩЕ УЗНАТЬ ЧТО МОЖЕТ БЫТЬ ПРИЧИНОЙ ТАКОГО ПОВЕДЕНИЯ ПРОГРАММЫ?

Вы забыли расписать:

1. Сервер

2. ОСь

3. Сервер SQL или что там у вас.

3/5. при этом указав номера релизов и версий, а не надпись «Очень шустрый, с кнопками»

4. На каком клиенте вертится «ваша» нетленка.

5. Какие галочки выставлены на Общих модклях.



6. и т.д. :)

   Boroda444

7 — 06.08.15 — 13:40

Windows Server 2008r2

Server SQL 2008r2 Enterprise

Сервер HP Proliant 1500

Базы данных крутятся на 6-м рейде из 5-ти твердотельных OCZ 120Га 150х

Версия ядра 1С 8.2.19.90

Клиентская сторона запускается Толстым клиентом

Общие модули которые не видны Серверные и Глобальные, а так же есть и Сервер и Клиент.

   Boroda444

8 — 06.08.15 — 13:42

Нет, мы не переходили на УФ. Как работали в толстом клиенте так и работаем. При этом комизм (трагизм) ситуации в том что я действительно имею базу До переезда на новый сервак где этот модуль работает и ошибок не выдает, и есть версия ПОСЛЕ переезда (никаких изменений не было в конфе) в которой модуль не компилируется.

Т.е. и грешить даже не знаю в какую сторону

   Boroda444

9 — 06.08.15 — 13:43

ИМЕННО ПОЭТОМУ ЗАДАЛ ВОПРОС В МИР — может у кого-то был подобный опыт. Может кто то уже знает как это можно решить?

   Ненавижу 1С

10 — 06.08.15 — 13:44

в одном случае выполняется на сервере, в другом на клиенте

   GROOVY

11 — 06.08.15 — 13:45

Одна база крутится на сервере, а то что «для разработки» — файловая видать.

   GROOVY

Модератор

12 — 06.08.15 — 13:46

И не стоит кричать.

   Boroda444

13 — 06.08.15 — 13:46

Нет, обе на скуле

   Boroda444

14 — 06.08.15 — 13:46

Одна в обычно режиме, тестоваря (где работает) в девелоп режиме

   Boroda444

15 — 06.08.15 — 13:47

Простите, я не кричу. Пытаюсь просто выделить текст

   тарам пам пам

16 — 06.08.15 — 13:49

Изучи, для чего нужны директивы #Если Сервер, #Если Клиент и т. д.

Модуль менеджера документа пытается скомпилироваться на сервере, где нет функций типа «Предупреждение». Потому и ругается.

  

Boroda444

17 — 06.08.15 — 14:20

Да, я тоже знаю что модуль менеджера будет скомпилирован на сервере. Но повторюсь. У меня при этом есть база в которой этот код не вызывает ошибок. Именно это и непонятно

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Юрий

Дата регистрации: 28.10.2021
Сообщений: 1

Доброго времени суток. Подскажите пожалуйста при обновлении версии программы БП 3.0.99.21 вот такая ошибка, как с этим бороться?
Ошибка инициализации модуля: Документ._УПР_КорректировкаВыпуска.МодульМенеджера
по причине:
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(1124,21)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
НастройкиОбмена = <<?>>ОбменСКонтрагентамиСлужебный.ЗаполнитьПараметрыЭДПоИсточнику(СсылкаНаОбъект);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(1157,25)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
МассивСтруктурОбмена = <<?>>ОбменСКонтрагентамиСлужебный.СформироватьXMLФайлыДокументов(МассивСсылокНаОбъект,
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7398,19)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
ИмяФайлаАрхива = <<?>>ОбменСКонтрагентамиСлужебный.ТекущееИмяВременногоФайла(«zip»);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7752,20)}: Переменная не определена (ОбменСКонтрагентамиСлужебный)
ИмяФайлаАрхива = <<?>>ОбменСКонтрагентамиСлужебный.ТекущееИмяВременногоФайла(«zip»);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7406,11)}: Переменная не определена (ЭлектронноеВзаимодействиеСлужебный)
Если НЕ <<?>>ЭлектронноеВзаимодействиеСлужебный.ВозможноИзвлечьФайлы(ЧтениеЗИП, ПапкаДляРаспаковки) Тогда
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7407,21)}: Переменная не определена (ЭлектронноеВзаимодействиеСлужебныйПовтИсп)
ТекстСообщения = <<?>>ЭлектронноеВзаимодействиеСлужебныйПовтИсп.ПолучитьСообщениеОбОшибке(«006»);
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7466,21)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
ДанныеДокумента = <<?>>ОбменСКонтрагентамиВнутренний.СформироватьДеревоРазбора(ИмяФайлаДанных,
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7666,23)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
ТабличныйДокумент = <<?>>ОбменСКонтрагентамиВнутренний.СформироватьПечатнуюФормуЭД(
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7727,2)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
<<?>>ОбменСКонтрагентамиВнутренний.СформироватьТранспортнуюИнформацию(СтруктураОбмена.СтруктураЭД,
{Документ._УПР_КорректировкаВыпуска.МодульМенеджера(7732,2)}: Переменная не определена (ОбменСКонтрагентамиВнутренний)
<<?>>ОбменСКонтрагентамиВнутренний.СформироватьКарточку(СтруктураОбмена.СтруктураЭД, АдресКаталога, ТекстОшибки);

iRust

Дата регистрации: 18.06.2010
Сообщений: 145

Юрий пишет:

Цитата
Ошибка инициализации модуля: Документ._УПР_КорректировкаВыпуска.МодульМенеджера….

Ошибка начала появляться случайно не после обновления конфигурации?
Откройте Администрирование > Печатные формы, отчеты и обработки > Расширения и посмотрите, что у вас в указано в списке установленных расширений.

Vladko

Дата регистрации: 27.08.2007
Сообщений: 2644

Юрий,у вас самостоятельно разработанный документ УПР_КорректировкаВыпуска. Он был разработан для прошлых релизов бухгалтерии. Сейчас вы обновили бухгалтерию, процедуры там тоже обновились, а в самописном документе у вас эти процедуры вызываются по-старому. Надо дорабатывать ваш документ программисту.

Показывать по
10
20
40
сообщений

Читают тему:

Студворк — интернет-сервис помощи студентам

Доброго времени суток господа. Начал изучать 1с, и тут практически сразу напоролся на грабли. При вызове создания документа выдает следующую ошибку:

Ошибка инициализации модуля: Документ.РеализацияТоваров.МодульМенеджера
по причине:
{Документ.РеализацияТоваров.МодульМенеджера(2,17)}: Ожидается символ ‘(‘
Процедура Печать<<?>> счёта на оплату(ТабДок, Ссылка) Экспорт
{Документ.РеализацияТоваров.МодульМенеджера(24,29)}: Ошибка в выражении
Выборка = Запрос.Выполнить(<<?>>).Выбрать();
{Документ.РеализацияТоваров.МодульМенеджера(60,11)}: Процедура или функция с указанным именем уже определена (Печать)
Процедура <<?>>Печать счёта на оплату(ТабДок, Ссылка) Экспорт
{Документ.РеализацияТоваров.МодульМенеджера(60,17)}: Ожидается символ ‘(‘
Процедура Печать<<?>> счёта на оплату(ТабДок, Ссылка) Экспорт
{Документ.РеализацияТоваров.МодульМенеджера(82,29)}: Ошибка в выражении
Выборка = Запрос.Выполнить(<<?>>).Выбрать();

А теперь поподробнее про документ. Это документ «Реализация товара» вводится на основании документа «Закупка товара», связь сгенера через конструктор. В документе «Реализация товара» есть печатная форма, которая сгенерена через конструктор. Побывал разные комбинации, но один фиг не хочет создаваться. Что делать? Так как я ещё не силён в синтаксисе 1с, чисто теоретически могу предположить что ему нехватает каких то данных, но вот каких это вопрос. Причём я удалял печатную форму и таже ошибка вылетает.

  • 1с линк ошибка 405
  • 1с линк ошибка 404
  • 1с куда отправлять ошибки
  • 1с критическая ошибка работы java процесса
  • 1с критическая ошибка при обновлении базы данных