Как настроить выгрузку прочих файлов из 1С:УТ 11 на сайт Битрикс

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

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

Выясняем причину: что на самом деле скрывается за «Прочими файлами»

Проанализируем структуру типового модуля обмена, встроенного в конфигурацию УТ 11.4. В интерфейсе настройки обмена мы видим разделение: «Файлы изображений» и «Прочие файлы». Логично предположить, что вторая опция отвечает за все остальное. Однако, если мы воспользуемся сквозным поиском по конфигурации или установим точку останова в модуле обмена, мы обнаружим интересную деталь.

Настройка «Прочие файлы» в типовом функционале 1С жестко связана с конкретным реквизитом. Она отвечает за выгрузку значения реквизита «Файл описания для сайта». Этот реквизит ссылается на справочник НоменклатураПрисоединенныеФайлы, но система ожидает там увидеть файлы строго определенных форматов: .txt или .html.

Рассмотрим логику работы системы:

  1. Программа проверяет наличие установленной галки «Прочие файлы».
  2. Ищет в карточке номенклатуры привязанный файл, помеченный как файл описания.
  3. Если файл найден и его расширение соответствует текстовому документу, его содержимое считывается и передается в XML-пакете обмена (в узле описания товара) для отображения на сайте в качестве детального описания.

Таким образом, произвольные PDF-инструкции или таблицы Excel, просто прикрепленные к карточке товара, через этот механизм не выгружаются.

Как выгружать документы (PDF, DOC, ZIP) штатными средствами

Поскольку мы выяснили, что механизм «Прочих файлов» предназначен для другого, разберем по шагам, как передать на сайт полноценные документы. Для этого нам потребуется использовать механизм Дополнительных реквизитов номенклатуры.

Разберем алгоритм настройки:

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

При таком подходе файл будет передан в составе CommerceML как значение свойства товара. Однако важно помнить: чтобы этот файл «подцепился» на стороне Битрикса, в инфоблоке каталога должно быть создано соответствующее свойство с типом Файл (F).

Технические нюансы работы с протоколом CommerceML

Посмотрим на ситуацию с точки зрения формирования XML-файла import.xml. Когда 1С выгружает картинки, они помещаются в узел Картинка. Прочие же вложения должны попадать либо в специфические узлы, либо описываться как внешние ссылки.

Если вы решите дорабатывать выгрузку программно, обратите внимание на методы формирования пакета. Рассмотрим пример того, как система ищет файлы для выгрузки (схематично):


// Пример логики поиска файлов в типовом модуле
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   НоменклатураПрисоединенныеФайлы.Ссылка
    |ИЗ
    |   Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
    |ГДЕ
    |   НоменклатураПрисоединенныеФайлы.ВладелецФайла = &Номенклатура
    |   И НоменклатураПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе)";

Типовой обмен часто игнорирует файлы, которые хранятся в томах на диске, если у пользователя, под которым запускается сессия обмена (особенно при регламентном задании), нет прав доступа к сетевому пути тома. Проанализируем этот момент: если файлы в 1С видны, а в zip-архиве выгрузки их нет — проверяйте права доступа Windows для учетной записи службы 1С.

Различия между встроенным модулем и модулем от «1С-Битрикс»

Нужно четко разделять два инструмента:

  1. Встроенный модуль 1С (тот, что идет «из коробки» в УТ 11). Он максимально консервативен и строго следует стандартам 1С.
  2. Внешний модуль обмена от Битрикс (устанавливается как расширение или подсистема).

В модуле от разработчиков Битрикс функционал выгрузки файлов реализован шире. Там в настройках дерева групп или категорий можно явно указать: «Выгружать файлы из справочника Присоединенные файлы». В этом случае модуль перебирает все вложения и отправляет их на сайт, автоматически создавая свойства типа «Файл».

Если ваша задача — массово выгружать сертификаты и инструкции без ручного создания десятков доп. реквизитов, рекомендуем рассмотреть установку именно внешнего модуля. Рассмотрим его преимущества:

Проверка результата и отладка

Чтобы окончательно выяснить, на чьей стороне проблема (1С не отдает или сайт не принимает), выполните следующие действия:

1. В настройках обмена в 1С включите опцию «Сохранять файлы обмена на диске».

2. Запустите обмен и перейдите в каталог выгрузки.

3. Распакуйте сформированный webdata.zip.

4. Проанализируйте файл import.xml. Найдите ваш товар по артикулу и посмотрите, есть ли там упоминание вашего файла в блоке ЗначенияСвойств или Картинка.

Если в XML путь к файлу указан (например, import_files/ab/document.pdf) и сам файл присутствует в папке import_files, значит 1С свою задачу выполнила. В этом случае проблему нужно искать в настройках Битрикс: проверьте список разрешенных расширений в настройках модуля «Торговый каталог» и убедитесь, что лимиты на объем загружаемых файлов на сервере (upload_max_filesize в php.ini) позволяют принять документ.

Резюме: Галка «Прочие файлы» в типовой УТ 11 предназначена для замены текстового описания товара HTML-файлом. Для выгрузки документации используйте дополнительные реквизиты типа «Файл» или устанавливайте специализированный модуль обмена от Битрикс.

← На главную