1С 8.3 Как удалить присоединенные файлы номенклатуры программно

1С 8.3 Как удалить присоединенные файлы номенклатуры программно

В некоторых случаях необходимо программно добавлять или удалять присоединенные файлы к номенклатуре. Если с добавлением проблем не возникает и решений в сети очень много, то с удалением многие сталкиваются с некоторыми трудностями. Примеров, для чего может понадобиться удалить присоединенные файлы номенклатуры много, один из них, когда по ошибке загрузили не соответствующие номенклатуре картинки товаров и надо быстро их удалить.

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

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

Функция получает код товара, который соответственно уникальный, запросом выбирает файлы владельцем которых является номенклатура с нужным кодом. Далее помечает на удаление все файлы. Вроде все нормально. Файлы действительно помечаются на удаление, НО в карточке товара до сих пор светятся эти файлы и через обработку удаления удалить файлы не получается как и описал выше. Для того чтобы все прошла гладко, данную процедуру дорабатываем следующим образом:

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

После такой доработки функция отлично справляется со своей задачей, в номенклатуре картинка удаляется, а обработка удаление помеченных объектов позволяет удалить присоединенные файлы номенклатуры окончательно. Проверено на УТ 11.5



( Просмотров: 399 )
19 Май 2022
 

Ваш отзыв