При настройке типового обмена между 1С:Управление торговлей 11 и сайтом на платформе 1С-Битрикс многие специалисты сталкиваются с неоднозначным поведением опции «Прочие файлы». Казалось бы, включение этой галки должно приводить к выгрузке всех присоединенных к номенклатуре документов (сертификатов, инструкций в PDF, паспортов изделий), однако на практике на сайт попадают только изображения. Разберем подробно, почему так происходит и как заставить систему выгружать нужные данные.
Проанализируем структуру типового модуля обмена, встроенного в конфигурацию УТ 11.4. В интерфейсе настройки обмена мы видим разделение: «Файлы изображений» и «Прочие файлы». Логично предположить, что вторая опция отвечает за все остальное. Однако, если мы воспользуемся сквозным поиском по конфигурации или установим точку останова в модуле обмена, мы обнаружим интересную деталь.
Настройка «Прочие файлы» в типовом функционале 1С жестко связана с конкретным реквизитом. Она отвечает за выгрузку значения реквизита «Файл описания для сайта». Этот реквизит ссылается на справочник НоменклатураПрисоединенныеФайлы, но система ожидает там увидеть файлы строго определенных форматов: .txt или .html.
Рассмотрим логику работы системы:
Таким образом, произвольные PDF-инструкции или таблицы Excel, просто прикрепленные к карточке товара, через этот механизм не выгружаются.
Поскольку мы выяснили, что механизм «Прочих файлов» предназначен для другого, разберем по шагам, как передать на сайт полноценные документы. Для этого нам потребуется использовать механизм Дополнительных реквизитов номенклатуры.
Разберем алгоритм настройки:
Файл. Назовем его, например, «Инструкция (файл)».При таком подходе файл будет передан в составе CommerceML как значение свойства товара. Однако важно помнить: чтобы этот файл «подцепился» на стороне Битрикса, в инфоблоке каталога должно быть создано соответствующее свойство с типом Файл (F).
Посмотрим на ситуацию с точки зрения формирования XML-файла import.xml. Когда 1С выгружает картинки, они помещаются в узел Картинка. Прочие же вложения должны попадать либо в специфические узлы, либо описываться как внешние ссылки.
Если вы решите дорабатывать выгрузку программно, обратите внимание на методы формирования пакета. Рассмотрим пример того, как система ищет файлы для выгрузки (схематично):
// Пример логики поиска файлов в типовом модуле
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураПрисоединенныеФайлы.Ссылка
|ИЗ
| Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
|ГДЕ
| НоменклатураПрисоединенныеФайлы.ВладелецФайла = &Номенклатура
| И НоменклатураПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВИнформационнойБазе)";
Типовой обмен часто игнорирует файлы, которые хранятся в томах на диске, если у пользователя, под которым запускается сессия обмена (особенно при регламентном задании), нет прав доступа к сетевому пути тома. Проанализируем этот момент: если файлы в 1С видны, а в zip-архиве выгрузки их нет — проверяйте права доступа Windows для учетной записи службы 1С.
Нужно четко разделять два инструмента:
В модуле от разработчиков Битрикс функционал выгрузки файлов реализован шире. Там в настройках дерева групп или категорий можно явно указать: «Выгружать файлы из справочника Присоединенные файлы». В этом случае модуль перебирает все вложения и отправляет их на сайт, автоматически создавая свойства типа «Файл».
Если ваша задача — массово выгружать сертификаты и инструкции без ручного создания десятков доп. реквизитов, рекомендуем рассмотреть установку именно внешнего модуля. Рассмотрим его преимущества:
*.pdf).Чтобы окончательно выяснить, на чьей стороне проблема (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-файлом. Для выгрузки документации используйте дополнительные реквизиты типа «Файл» или устанавливайте специализированный модуль обмена от Битрикс.