Многие разработчики и системные администраторы сталкиваются с задачей переноса базы товаров вместе с изображениями из одной информационной базы «1С:Управление торговлей 11.5» в другую. Сложность заключается в том, что старый программный код, который отлично работал в версии 11.4, в релизе 11.5 перестает функционировать из-за существенных изменений в Библиотеке стандартных подсистем (БСП) и модулях работы с файлами. Рассмотрим подробнее, как устроено хранение файлов в новой версии и разберем по шагам надежный способ их переноса. При сопоставлении объектов по произвольным реквизитам миграцию выполняет обработка переноса данных между похожими конфигурациями 1С.
Для начала проанализируем ситуацию и выясним причину неработоспособности старых методов. В новых версиях конфигурации структура хранения присоединенных файлов была разделена:
НоменклатураПрисоединенныеФайлы теперь выступает лишь в роли картотеки. Он хранит метаданные: наименование картинки, автора, дату создания и, самое главное, ссылку на владельца (конкретную позицию номенклатуры). Самих графических данных внутри этого справочника нет.ХранилищеДвоичныхДанных или в связанном регистре сведений.Именно поэтому простая выгрузка картинок по старым алгоритмам часто приводит к тому, что файлы выгружаются «валом», без привязки к владельцам, либо процесс завершается с ошибками из-за обращения к несуществующим реквизитам.
Разберем по шагам рабочий метод, который успешно применили на практике. Этот способ отлично подходит, если картинки хранятся в томах на жестком диске.
НоменклатураПрисоединенныеФайлы. В нем описаны все владельцы и пути нахождения картинок в томе. Берем стандартную обработку «Выгрузка загрузка данных XML» (она обычно поставляется на диске ИТС) и выгружаем данные этого справочника в файл.Если конфигурации абсолютно идентичны, обработка «Выгрузка загрузка данных XML» позволяет перенести не только карточки файлов, но и сами двоичные данные, если они хранятся в базе. Однако, для баз большого объема этот процесс может потребовать много времени и оперативной памяти.
Если вы все же решите писать собственный код для загрузки картинок с диска, помните об отказе платформы «1С:Предприятие 8.3» от модальных окон. Процесс программного добавления картинки к номенклатуре в УТ 11.5 должен строиться по следующему алгоритму:
ПоместитьВоВременноеХранилище.НоменклатураПрисоединенныеФайлы на сервере и заполнение его реквизитов (владелец, расширение и т.д.).Практический совет: Если картинки утеряны, но есть папка с изображениями, где файлы названы по артикулам (например, АртикулТовара.jpg), разработчики часто пишут простую обработку, которая в цикле обходит каталог, ищет номенклатуру по артикулу и программно создает присоединенные файлы, используя методы БСП. Это избавляет от необходимости восстанавливать сложные связи по внутренним идентификаторам (UUID).