База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему ошибка «Значение не объектного типа (Имя)» в 1С при обновлении? › Ответ в теме: Почему ошибка «Значение не объектного типа (Имя)» в 1С при обновлении?
Ошибка «Значение не является значением объектного типа (Имя)» в модуле ОбщегоМодуля.УправлениеПечатью на строке с проверкой Макет.Имя говорит о том, что переменная Макет в цикле не является объектом с полем Имя, а, скорее всего, равна Неопределено или другому не объектному значению.
Причина:
— В функции УправлениеПечатью.МакетыПечатныхФорм() возвращается коллекция, в которой есть элементы, не являющиеся объектами с полем Имя.
— Либо в процессе обновления конфигурации или метаданных произошла ошибка, из-за которой данные макетов повреждены или не загружены.
Что делать:
1. Проверить функцию МакетыПечатныхФорм() в общем модуле УправлениеПечатью. Там должен быть цикл по коллекции макетов, где каждый элемент — объект с полем Имя. Нужно добавить проверку, что Макет не равен Неопределено и является объектом:
|
1 2 3 4 5 6 7 |
Для Каждого Макет Из УправлениеПечатью.МакетыПечатныхФорм() Цикл Если ТипЗнч(Макет) = Тип("Объект") И Макет <> Неопределено Тогда Если СтрНайти(Макет.Имя, "ПФ_") > 0 Тогда // Ваш код КонецЕсли; КонецЕсли; КонецЦикла; |
2. Если это типовая конфигурация, попробуйте выполнить полное обновление конфигурации через конфигуратор, чтобы восстановить метаданные и макеты.
3. Проверьте, нет ли в базе поврежденных макетов или записей в регистре сведений ОбщиеПоставляемыеМакетыПечати. Возможно, стоит очистить или пересоздать эти записи.
4. Если обновление запускается через командную строку с параметром /C»ВыполнитьОбновлениеИЗавершитьРаботу;РегламентныеЗаданияОтключены», убедитесь, что процедура ВыполнитьОбновлениеИЗавершитьРаботу корректно обрабатывает обновление и не вызывает устаревший или поврежденный код.
5. Для диагностики можно добавить в общий модуль УправлениеПечатью вывод отладочной информации перед строкой с ошибкой, чтобы понять, какой именно элемент вызывает проблему.
6. Если база сильно модифицирована, возможно, стоит обратиться к разработчику конфигурации или в техподдержку 1С с полным логом ошибки.
Рекомендую посмотреть здесь, где обсуждается похожая ошибка и способы её устранения:
https://infostart.ru/public/76235/ (особенно разделы про обновление и работу с макетами печатных форм)
https://helpf.pro/faq/view/1809.html (пример скрипта обновления и рекомендации по работе с обновлениями)
В итоге, ошибка связана с тем, что в цикле по макетам печатных форм встречается не объект с полем Имя, а что-то другое. Нужно добавить проверку типа и/или восстановить метаданные и макеты.