Почему после обновления 1С пропадают картинки и возникает ошибка 'Поле объекта не обнаружено (БиблиотекаКартинок)'?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

После обновления конфигурации 1С, например, «Бухгалтерии предприятия» с очень старых версий на актуальные или просто на новую версию технологической платформы (в частности, на релизы ветки 8.3.24), можно столкнуться с неприятной ситуацией. Пользователи начинают жаловаться, что вместо привычных иконок в панели разделов или в формах отчетов (которые также могут быть загружены как специальные zip-пакеты иконок) отображаются желтые круги. Кроме визуальных дефектов, при выполнении некоторых действий, например, при формировании отчета или открытии настроек, система выдает критические ошибки.

Типичные сообщения об ошибках выглядят так:

Эти ошибки указывают на то, что система не может получить доступ к стандартным картинкам, хранящимся в общем объекте конфигурации БиблиотекаКартинок. Чтобы проанализировать конфигурацию и расширения на наличие подобных ошибок, разберем ситуацию и по шагам выясним, как исправить эту проблему. Также полезно иметь под рукой инструмент для удобного просмотра картинок библиотеки, чтобы убедиться в их наличии в текущей сборке — для этого есть обработка для просмотра картинок в БиблиотекеКартинок.

Причина проблемы: рассинхронизация кэша или ошибка платформы

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

  1. Некорректный кэш. После обновления конфигурации на сервере и на клиентах могли сохраниться устаревшие данные о структуре конфигурации. Система пытается обратиться к картинкам по старым ссылкам, которых в новой версии уже нет или они изменились. Простая очистка пользовательского кэша не всегда помогает, так как проблема может быть глубже — в кэше сеансовых данных на сервере 1С.
  2. Ошибка в конкретном релизе платформы. Некоторые версии технологической платформы 1С могут содержать баги, из-за которых возникают ошибки идентификаторов форм или параметров сеанса. Особенно часто подобные проблемы встречались в некоторых сборках ветки 8.3.24, несмотря на важные нововведения, такие как изменения в истории данных.

Рассмотрим методы решения, двигаясь от простого к сложному.

Решение 1: Полная и правильная очистка всех видов кэша

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

  1. Очистка клиентского кэша.

    Этот кэш хранится на компьютерах пользователей. Его нужно чистить у всех, кто столкнулся с проблемой. Самый надежный способ — удалить папки с кэшем вручную. Для этого закройте все сеансы 1С на компьютере пользователя и удалите содержимое следующих каталогов:

    • %AppData%\Roaming\1C\1cv8
    • %AppData%\Local\1C\1cv8

    Важно: не удаляйте сами папки 1cv8, а только их содержимое (папки с длинными буквенно-цифровыми именами). Как альтернатива, можно удалить информационную базу из списка запуска и добавить ее заново. При первом запуске кэш будет создан заново.

  2. Очистка серверного кэша (кэш сеансовых данных).

    Это самый важный шаг, так как проблема чаще всего кроется именно здесь, особенно если она проявляется у всех пользователей одновременно. Этот кэш хранится на сервере, где работает служба 1С.

    Порядок действий:

    1. Завершите все активные сеансы пользователей в консоли администрирования кластера серверов 1С — поможет утилита принудительного завершения сеансов пользователей.
    2. Остановите службу «Агент сервера 1С:Предприятие 8.3» (1C:Enterprise 8.3 Server Agent).
    3. Перейдите в рабочий каталог сервера 1С. Обычно он находится по пути типа C:\Program Files\1cv8\srvinfo\reg_1541\ (цифры 1541 соответствуют порту агента сервера).
    4. Внутри этого каталога найдите папки, имена которых начинаются с snccntx. Это и есть кэш сеансовых данных. Удалите содержимое этих папок.
    5. Запустите службу «Агент сервера 1С:Предприятие 8.3» обратно.

    После этой процедуры при первом подключении пользователей сервер заново создаст актуальный кэш конфигурации.

  3. Очистка кэша веб-сервера.

    Если вы работаете с базой через веб-клиент, не забудьте также очистить кэш на стороне веб-сервера (IIS, Apache). Для этого достаточно перезапустить службы веб-сервера или пул приложений, связанный с публикацией вашей базы 1С.

Решение 2: Смена версии технологической платформы

Если полная очистка кэша не принесла результата, с высокой вероятностью проблема заключается в ошибке самой платформы 1С. В этом случае у вас есть два пути.

На практике был случай, подтверждающий эту гипотезу: тот же релиз конфигурации «Бухгалтерии предприятия» был успешно развернут на платформе 8.3.24.1624 без каких-либо ошибок с картинками — для такой диагностики пригодится универсальная обработка для анализа объектов конфигурации. Это прямо указывает на наличие проблемы в конкретной сборке платформы 8.3.24.1667.

Решение 3: Дополнительные методы

Если предыдущие шаги не помогли, можно прибегнуть к более радикальным мерам.

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

Пересоздание информационной базы из DT-файла
Это действенный, хотя и трудоемкий способ исправить множество скрытых проблем.

  1. Сделайте резервную копию вашей информационной базы.
  2. Выгрузите базу в файл .dt через Конфигуратор.
  3. Создайте на сервере 1С новую, пустую информационную базу.
  4. Загрузите в нее данные из созданного .dt файла.

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

Пример кода, на котором может проявляться ошибка, чтобы вы понимали, где именно происходит сбой:


// Код пытается присвоить картинку элементу формы
// Если БиблиотекаКартинок недоступна, возникает исключение
Элементы.ПоказатьБыстрыеНастройки.Картинка = БиблиотекаКартинок.СтрелкаВправо;

Подводя итог, можно сказать, что проблема с пропавшими картинками и ошибкой "Поле объекта не обнаружено" почти всегда связана с кэшем или платформой. Начните с комплексной очистки кэша на клиентах и сервере, а если это не поможет — смело меняйте версию технологической платформы.

← На главную