После обновления конфигурации 1С, например, «Бухгалтерии предприятия» с очень старых версий на актуальные или просто на новую версию технологической платформы (в частности, на релизы ветки 8.3.24), можно столкнуться с неприятной ситуацией. Пользователи начинают жаловаться, что вместо привычных иконок в панели разделов или в формах отчетов (которые также могут быть загружены как специальные zip-пакеты иконок) отображаются желтые круги. Кроме визуальных дефектов, при выполнении некоторых действий, например, при формировании отчета или открытии настроек, система выдает критические ошибки.
Типичные сообщения об ошибках выглядят так:
Поле объекта не обнаружено (ДлительнаяОперация48)Поле объекта не обнаружено (СтрелкаВправо)Эти ошибки указывают на то, что система не может получить доступ к стандартным картинкам, хранящимся в общем объекте конфигурации БиблиотекаКартинок. Чтобы проанализировать конфигурацию и расширения на наличие подобных ошибок, разберем ситуацию и по шагам выясним, как исправить эту проблему. Также полезно иметь под рукой инструмент для удобного просмотра картинок библиотеки, чтобы убедиться в их наличии в текущей сборке — для этого есть обработка для просмотра картинок в БиблиотекеКартинок.
В подавляющем большинстве случаев корень проблемы кроется в одной из двух причин:
Рассмотрим методы решения, двигаясь от простого к сложному.
Это первое, что необходимо сделать, причем выполнить очистку нужно комплексно. Пройдемся по всем типам кэша.
Очистка клиентского кэша.
Этот кэш хранится на компьютерах пользователей. Его нужно чистить у всех, кто столкнулся с проблемой. Самый надежный способ — удалить папки с кэшем вручную. Для этого закройте все сеансы 1С на компьютере пользователя и удалите содержимое следующих каталогов:
%AppData%\Roaming\1C\1cv8%AppData%\Local\1C\1cv8Важно: не удаляйте сами папки 1cv8, а только их содержимое (папки с длинными буквенно-цифровыми именами). Как альтернатива, можно удалить информационную базу из списка запуска и добавить ее заново. При первом запуске кэш будет создан заново.
Очистка серверного кэша (кэш сеансовых данных).
Это самый важный шаг, так как проблема чаще всего кроется именно здесь, особенно если она проявляется у всех пользователей одновременно. Этот кэш хранится на сервере, где работает служба 1С.
Порядок действий:
1C:Enterprise 8.3 Server Agent).C:\Program Files\1cv8\srvinfo\reg_1541\ (цифры 1541 соответствуют порту агента сервера).snccntx. Это и есть кэш сеансовых данных. Удалите содержимое этих папок.После этой процедуры при первом подключении пользователей сервер заново создаст актуальный кэш конфигурации.
Очистка кэша веб-сервера.
Если вы работаете с базой через веб-клиент, не забудьте также очистить кэш на стороне веб-сервера (IIS, Apache). Для этого достаточно перезапустить службы веб-сервера или пул приложений, связанный с публикацией вашей базы 1С.
Если полная очистка кэша не принесла результата, с высокой вероятностью проблема заключается в ошибке самой платформы 1С. В этом случае у вас есть два пути.
8.3.24.1667, попробуйте обновиться до последней версии в ветке 8.3.24 или перейти на более новую ветку (например, 8.3.25), где данная ошибка уже исправлена.На практике был случай, подтверждающий эту гипотезу: тот же релиз конфигурации «Бухгалтерии предприятия» был успешно развернут на платформе 8.3.24.1624 без каких-либо ошибок с картинками — для такой диагностики пригодится универсальная обработка для анализа объектов конфигурации. Это прямо указывает на наличие проблемы в конкретной сборке платформы 8.3.24.1667.
Если предыдущие шаги не помогли, можно прибегнуть к более радикальным мерам.
Избегайте динамического обновления
Иногда подобные сбои происходят после применения динамического обновления конфигурации. Эта функция удобна, но может приводить к рассинхронизации. Старайтесь выполнять обновления на продуктивных базах монопольно, с завершением всех сеансов и обязательным перезапуском службы сервера 1С.
Пересоздание информационной базы из DT-файла
Это действенный, хотя и трудоемкий способ исправить множество скрытых проблем.
.dt через Конфигуратор..dt файла.Этот процесс полностью перестраивает внутреннюю структуру базы данных и может устранить повреждения, возникшие при обновлении.
Пример кода, на котором может проявляться ошибка, чтобы вы понимали, где именно происходит сбой:
// Код пытается присвоить картинку элементу формы
// Если БиблиотекаКартинок недоступна, возникает исключение
Элементы.ПоказатьБыстрыеНастройки.Картинка = БиблиотекаКартинок.СтрелкаВправо;
Подводя итог, можно сказать, что проблема с пропавшими картинками и ошибкой "Поле объекта не обнаружено" почти всегда связана с кэшем или платформой. Начните с комплексной очистки кэша на клиентах и сервере, а если это не поможет — смело меняйте версию технологической платформы.