Как удалить или сбросить основное изображение номенклатуры в 1С, если справочник хранилища пуст?

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

В конфигурациях на обычных формах (таких как 1С:Управление торговлей редакций 10.3 / 2.3) часто встречается ситуация: в карточке номенклатуры отображается привязка к основному изображению, однако при открытии справочника ХранилищеДополнительнойИнформации список оказывается пуст. Разберем причины возникновения такой неполадки и подробно рассмотрим способы очистки реквизита как для одной позиции, так и в пакетном режиме.

Почему возникает данная ошибка

Проанализируем основные причины, из-за которых карточка товара ссылается на несуществующую или скрытую запись:

  1. Нарушение ссылочной целостности («битая ссылка»): запись в справочнике ХранилищеДополнительнойИнформации была физически удалена или очищена при некорректном обмене данными, но ссылка в реквизите номенклатуры ОсновноеИзображение сохранилась.
  2. Установленный отбор в форме списка: при открытии справочника напрямую может действовать системный отбор по владельцу или скрываться элементы, помеченные на удаление.
  3. Пометка на удаление: файл в хранилище помечен на удаление, но ссылка в карточке номенклатуры продолжает оставаться заполненной.
  4. Ограничения прав доступа (RLS): у текущего пользователя могут отсутствовать права на просмотр записей хранилища при наличии доступа к номенклатуре.

Способ 1. Очистка реквизита напрямую из карточки номенклатуры

Если требуется исправить отображение для одной конкретной позиции, разберем по шагам простейший вариант ручной очистки:

  1. Откроем элемент справочника Номенклатура.
  2. Найдем на форме поле Основное изображение.
  3. Выделим значение в поле и нажмем комбинацию клавиш Shift + F4 (либо кнопку очистки с крестиком).
  4. Запишем и закроем элемент, нажав ОК или Записать.

Способ 2. Использование универсальных обработок

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

Рассмотрим порядок действий через обработку Групповая обработка справочников и документов или Универсальный подбор и обработка объектов:

  1. Откроем обработку через меню Сервис или из внешнего файла.
  2. В поле выбора типа объекта укажем справочник Номенклатура.
  3. Настроим отбор по конкретным элементам (например, по ссылке или группе товаров) и нажмем кнопку Отобрать.
  4. В списке доступных действий выберем Изменить реквизит: [Основное изображение].
  5. Оставим значение реквизита пустым (не выбранным) и нажмем Выполнить.

Способ 3. Программный сброс реквизита

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


ОбъектНоменклатуры = СсылкаНаТовар.ПолучитьОбъект();
ОбъектНоменклатуры.ОсновноеИзображение = Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка();
ОбъектНоменклатуры.Записать();

В приведенном фрагменте мы получаем объект номенклатуры для редактирования, присваиваем реквизиту ОсновноеИзображение значение пустой ссылки типа СправочникСсылка.ХранилищеДополнительнойИнформации и сохраняем изменения методом Записать().

Способ 4. Исправление через тестирование и исправление базы данных

Если проблема вызвана массовым появлением «битых ссылок» после сбоев или обменов, разберем регламентный способ исправления на уровне информационной базы:

  1. Создадим резервную копию базы данных.
  2. Запустим информационную базу в режиме Конфигуратор.
  3. Перейдем в меню Администрирование -> Тестирование и исправление...
  4. Установим флажки Проверка логической целостности и Проверка ссылочной целостности.
  5. В переключателе При наличии ссылок на несуществующие объекты выберем вариант Очищать ссылки.
  6. Нажмем кнопку Выполнить.

После завершения процедуры платформа автоматически найдет все несуществующие ссылки на элементы хранилища и очистит поле ОсновноеИзображение во всех затронутых позициях номенклатуры.

← На главную