При работе с конфигурациями на обычных формах, такими как Бухгалтерия предприятия 1.3 или Управление производственным предприятием 1.3, разработчики и системные администраторы часто сталкиваются с неожиданным поведением системы после обновления платформы до ветки 8.3.13. Одной из наиболее неприятных проблем является падение системы при открытии начальной страницы (Рабочего стола) с ошибкой обращения к свойству Отбор. В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем технические нюансы работы платформы и рассмотрим пошаговые инструкции по устранению неисправности.
Рассмотрим ситуацию: при запуске системы на платформе версии 8.3.13.1513 пользователь видит сообщение об ошибке в модуле формы Рабочего стола. Текст ошибки выглядит следующим образом:
{Обработка.РабочийСтол.Форма.Форма.Форма(509)}: Значение не является значением объектного типа (Отбор)
Проанализируем программный код, на который указывает система. Как правило, это процедура БанкУстановитьОтбор или аналогичная функция инициализации списков документов. Ошибка происходит на следующей строке:
Процедура БанкУстановитьОтбор(УчетПоВсемОрганизациям)
Если НЕ ОсновнаяОрганизация.Пустая() Тогда
ЖурналДокументовСписокБанк.Отбор.Организация.Использование = Истина;
...
КонецПроцедуры
Выясним причину такого поведения. В платформе версии 8.3.13 был изменен механизм инициализации реквизитов формы. Если объект (в данном случае ЖурналДокументовСписок) объявлен в реквизитах формы, но не выведен на саму форму как элемент управления (табличное поле) или скрыт, платформа в целях оптимизации может не создавать программный объект при старте. В результате в отладчике мы видим, что переменная ЖурналДокументовСписокБанк имеет значение Неопределено. Попытка обращения к свойству Отбор у неинициализированного объекта и вызывает исключение.
Дополнительно в Технологическом журнале (ТЖ) часто обнаруживаются записи следующего вида: Файл не обнаружен 'v8stg64://c:/1/DynamicalWorkCache': src\Storage64.cpp. Проанализируем, что это означает. Это указывает на критический сбой в механизме динамического обновления конфигурации. В ветке 8.3.13 разработчики 1С начали внедрять поддержку 64-битных индексов для файловых хранилищ, что привело к конфликтам при работе с локальным кэшем пользователя, если конфигурация обновлялась динамически («демонски»).
Посмотрим на практический опыт эксплуатации данной ветки платформы. Версия 8.3.13.1513 признана специалистами крайне нестабильной для работы с «обычными» формами. У нас есть два варианта действий:
8.3.12.1595 или более свежий релиз из ветки 8.3.12. Как показывает практика, на этой платформе проблемы с инициализацией объектов в 1.3 отсутствуют.8.3.13 критично (например, для нужд 1С:ERP), следует обновиться до версии 8.3.13.1644 или выше. В этих сборках ошибки инициализации журналов были частично исправлены.Если смена платформы невозможна или не помогла сразу, разберем процедуру полной очистки кэша. Обычного ключа запуска /ClearCache может быть недостаточно, так как он не затрагивает DynamicalWorkCache.
Выполним следующие шаги:
%LOCALAPPDATA%\1C\1cv8\.25e9821a-7b3e-4f32...).%APPDATA%\1C\1cv8\.snccntx в каталоге данных сервера. Это удалит битые индексы динамических обновлений.Разберем способ «подсказать» платформе, что объект необходимо инициализировать. Иногда помогает простое пересохранение проблемного объекта в конфигураторе:
РабочийСтол.F7).Эти действия заставляют платформу пересобрать структуру формы и обновить записи в таблицах метаданных, что часто устраняет проблему Неопределено в реквизитах.
Проанализируем ситуацию, когда ошибка вызвана логическим повреждением таблиц соответствия. В этом случае поможет запуск встроенного механизма тестирования:
Особое внимание уделим проверке логической целостности — она восстанавливает связи между объектами метаданных и физическими таблицами базы данных, что критично при возникновении ошибок в Storage64.cpp.
Подводя итог, можно сказать, что ошибка «Значение не является значением объектного типа (Отбор)» на Рабочем столе — это классический пример несовместимости старого кода конфигураций на обычных формах с новыми механизмами оптимизации платформы 8.3.13. Основной рекомендацией остается использование проверенных и стабильных релизов платформы (ветки 8.3.12 или 8.3.14+) и осторожное отношение к динамическому обновлению конфигурации в рабочем режиме.