Что делать, если при обновлении УТ 11.4 возникает ошибка «Переменная не определена (ПрисоединенныеФайлы)»?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При обновлении конфигурации «Управление торговлей», например, с версии 11.4.11 на 11.4.12, можно столкнуться с ошибкой, которая прерывает процесс и не позволяет завершить обновление. Система сообщает, что переменная не определена, и ссылается на объект ПрисоединенныеФайлы. Эта ситуация, как правило, не связана с ошибками в самой типовой конфигурации или пропуском промежуточных релизов. Давайте разберем, в чем кроется истинная причина и как исправить проблему.

Анализируем причину ошибки

Основная причина возникновения такой ошибки — изменение структуры типовой конфигурации разработчиками 1С. В данном конкретном случае, при переходе на релиз УТ 11.4.12, общий модуль ПрисоединенныеФайлы был переименован и реорганизован. Теперь его функциональность находится в общем модуле РаботаСФайлами.

Проблема возникает, если в вашей базе данных установлено одно или несколько расширений, которые в своем коде обращаются к старому, уже не существующему модулю ПрисоединенныеФайлы. Во время обновления система пытается инициализировать код расширения, не находит указанный модуль и аварийно прекращает работу.

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


Ошибка инициализации модуля: ЗагрузкаИзВнешнихИсточников Справочник.Номенклатура.МодульМенеджера по причине:
{ЗагрузкаИзВнешнихИсточников Справочник.Номенклатура.МодульМенеджера(844,8)}: Переменная не определена (ПрисоединенныеФайлы)
>>ПрисоединенныеФайлы.ОбновитьПрисоединенныйФайл(ЭлементСправочника.ФайлКартинки,ИнформацияОФайле);

{ЗагрузкаИзВнешнихИсточников Справочник.Номенклатура.МодульМенеджера(848,29)}: Переменная не определена (ПрисоединенныеФайлы)
ПрисоединенныйФайл = >>ПрисоединенныеФайлы.ДобавитьФайл(ЭлементСправочника.Ссылка,"Изображение1",СтрЗаменить("jpg",".",""),ТекущаяДата,ТекущаяДата,АдресВременногоХранилищаФайла,,"Изображение загружено обработкой");

Из текста ошибки видно:

  1. Источник проблемы: Расширение `ЗагрузкаИзВнешнихИсточников`.
  2. Место ошибки: Модуль менеджера справочника `Номенклатура`, который заимствован и изменен этим расширением.
  3. Суть ошибки: Попытка вызова методов ОбновитьПрисоединенныйФайл и ДобавитьФайл через несуществующий объект ПрисоединенныеФайлы.

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

Решение №1: Временное отключение расширения (быстрый способ)

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

Выполним по шагам:

  1. Сделайте резервную копию базы данных! Это критически важный шаг перед любыми манипуляциями с конфигурацией.
  2. Запустите 1С в режиме «Предприятие».
  3. Перейдите в раздел «НСИ и администрирование» -> «Печатные формы, отчеты и обработки».
  4. Откройте пункт «Расширения».
  5. Найдите в списке расширение, указанное в журнале регистрации (в нашем примере это «Загрузка из внешних источников»).
  6. Снимите флажок в колонке «Активно». Если система потребует перезапуска, согласитесь.
  7. После перезапуска сеанса снова запустите процесс обновления конфигурации. Теперь он должен пройти без ошибок.

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

Решение №2: Адаптация расширения к новой версии конфигурации

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

Если вы разработчик расширения:

  1. Откройте конфигуратор вашей базы данных.
  2. В дереве конфигурации найдите ваше расширение и откройте его.
  3. Используя глобальный поиск (Ctrl + Shift + F), найдите все вхождения строки ПрисоединенныеФайлы в модулях вашего расширения.
  4. Замените все вызовы старого модуля ПрисоединенныеФайлы на новый — РаботаСФайлами.
  5. Внимание! Возможно, изменились не только названия модулей, но и имена или параметры некоторых экспортных процедур и функций. Откройте общий модуль РаботаСФайлами в основной конфигурации и проверьте синтаксис вызываемых методов. Например, вместо ПрисоединенныеФайлы.ДобавитьФайл(...) может использоваться похожая по смыслу, но с другим набором параметров функция из модуля РаботаСФайлами.
  6. Сохраните изменения в расширении.
  7. Вернитесь в режим «Предприятие» и снова активируйте расширение. Проверьте работоспособность его функций.

Если вы не являетесь разработчиком расширения:

Общие рекомендации по обновлению конфигураций с расширениями

Чтобы минимизировать риски при будущих обновлениях, придерживайтесь следующих правил:

Таким образом, ошибка «Переменная не определена» — это штатная ситуация, которая сигнализирует о необходимости адаптации дополнительного функционала (расширений) к изменениям в типовой конфигурации.

← На главную