При выполнении процедуры обновления конфигурации 1С:ERP Управление предприятием, особенно при переходе между мажорными или минорными релизами, программисты часто сталкиваются с ситуацией, когда после завершения процесса в режиме «1С:Предприятие» при открытии типовых документов возникает ошибка: Переменная не определена. Чаще всего эта ошибка указывает на то, что форма документа пытается обратиться к реквизиту, которого нет в текущей структуре метаданных базы.
Давайте вместе разберемся, как диагностировать эту проблему и какие шаги необходимо предпринять для её устранения.
Когда вы видите ошибку Переменная не определена (например, УстанавливаемаяВысотаСтроки), это означает, что в коде формы (модуле) есть обращение к объекту, который отсутствует в метаданных текущей версии формы. В типовых конфигурациях, таких как ERP Управление предприятием, логика работы форм часто завязана на общие модули, которые требуют наличия определенных реквизитов на форме.
В ходе анализа мы выяснили, что причиной может стать:
Самый надежный способ убедиться в неисправности вашей базы — это создать чистую «Демо-базу» (или базу из того же дистрибутива, на который вы обновлялись). Разверните ее и откройте нужный документ в конфигураторе.
Порядок действий:
Сравнение и объединение конфигураций. Выберите файл поставки (.cf) актуального релиза и сравните вашу рабочую базу с ним.В нашем случае, при обращении к методам типа УчетРабочегоВремениРасширенныйФормы.ТабельУстановитьВысотуСтрокПоСотрудникам, переменная УстанавливаемаяВысотаСтроки является необходимым параметром, который должен присутствовать на форме как реквизит типа Число. Если он отсутствует, вызов общего модуля приведет к критической ошибке.
Иногда реквизиты в конфигураторе присутствуют, но система «их не видит» из-за проблем с кэшем метаданных. Прежде чем приступать к глубокому изменению метаданных, попробуйте очистить локальный кэш:
Конфигуратор и 1С:Предприятие.AppData\Local\1C\1Cv8\...).Чтобы избежать подобных проблем в будущем, разберем рекомендации по обновлению сложных систем:
Конфигурация -> Поддержка -> Обновить конфигурацию.Если после обновления вы обнаружили, что форма «пустая» (отсутствуют элементы управления, которые должны там быть), это верный признак того, что процесс слияния метаданных прошел с ошибками. В такой ситуации используйте функционал сравнения с полным дистрибутивом поставки. Выполните объединение с приоритетом настроек «Основной конфигурации» (поставщика) для тех объектов, которые были повреждены. Это вернет форму в состояние, предусмотренное разработчиками 1С, и восстановит все необходимые реквизиты.
Помните: типовая логика ERP построена на тесном взаимодействии форм и общих модулей. Как показал наш опыт, ручное добавление реквизитов — это «заплатка», которая может вызвать цепочку новых ошибок, так как конфигуратор все еще будет считать конфигурацию нецелостной.