Telegram и WhatsApp в России работают с перебоями. Пишите нам в чат на сайте: ответ придёт и в окно, и на почту. Открыть чат

Коротко

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

Как выглядит

{ВнешняяОбработка.ПримерОбработки.Форма.Форма.Форма(12,5)}: Переменная не определена (ПримерОбщегоМодуля)

Причины

  • Внешняя обработка или отчёт вызывает общий модуль, которого нет в вашей конфигурации или который в ней называется иначе.
  • Общий модуль существует, но недоступен в контексте вызова: код на клиенте обращается к модулю без признака клиентского исполнения или к серверному модулю без признака вызова сервера.
  • На клиенте используются имена, доступные только на сервере: «Метаданные», менеджеры справочников и документов, «Константы».
  • В имени переменной опечатка, или переменная объявлена в другой процедуре и в этом месте не видна.
  • Обработка написана под другой режим запуска — обычное или управляемое приложение — и часть имён в нём недоступна.

Что делать

Пользователю

  1. Скопируйте текст ошибки: в скобках стоит неизвестное имя, в фигурных скобках — модуль.
  2. Если ошибка возникает при открытии внешней обработки или отчёта, обработка несовместима с вашей конфигурацией. Передайте текст поставщику обработки.
  3. Если ошибка появилась в типовом документе после установки расширения, сообщите администратору, какое расширение ставили последним.

Администратору

  1. По модулю из фигурных скобок определите источник: конфигурация, расширение или внешняя обработка.
  2. Проверьте, совпадают ли конфигурация и её редакция с теми, для которых написана обработка.
  3. Если ошибка в расширении появилась после обновления конфигурации, расширение нужно адаптировать. Временно его можно отключить, если без него работа возможна.

Разработчику

  1. Откройте модуль и выполните синтаксический контроль: конфигуратор покажет строку и имя.
  2. Проверьте директиву компиляции процедуры и свойства вызываемого общего модуля: клиент, сервер, вызов сервера.
  3. Обращения к серверным объектам вынесите в процедуру с директивой НаСервере или в общий модуль с признаком вызова сервера.
  4. Если обработка должна работать в разных конфигурациях, проверяйте наличие общего модуля через метаданные до вызова.

Помогло?

Не помогло? Напишите специалисту

Ответ придёт на указанный email. Текст ошибки вставьте целиком, вместе со стеком.

Необязательно — ответим на email.

Частые вопросы

Почему обработка работала, а теперь нет?

После обновления конфигурации общий модуль могли переименовать или изменить его свойства. Обработку нужно проверить на текущей редакции.

Можно ли обойти ошибку настройкой программы?

Нет. Это ошибка компиляции: модуль не запустится, пока имя в коде не исправлено.

Все ошибки раздела «Платформа» · Справочник ошибок 1С

Комментарии

Комментариев пока нет. Если решение сработало иначе, чем описано, расскажите об этом.