Настройка обмена данными между 1С:Управление торговлей 11 и интернет-магазином — это комплексная задача, которая часто сопровождается неочевидными трудностями. В процессе настройки узла обмена администраторы и программисты сталкиваются с тем, что нужные поля (например, дата и номер заказа на сайте) не выбираются, а списки складов остаются пустыми. В этой статье мы подробно разберем, как правильно сконфигурировать систему, чтобы все данные передавались корректно.
Одной из первых проблем, с которой сталкиваются пользователи, является невозможность выбрать дополнительные реквизиты "Дата заказа на сайте" и "Номер заказа на сайте" непосредственно в форме настройки узла обмена. Создание реквизитов "на лету" из формы выбора часто приводит к тому, что они создаются в системе, но не привязываются к нужному набору данных, из-за чего 1С их "не видит".
Разберем по шагам, как правильно добавить эти реквизиты, чтобы они стали доступны в плане обмена ОбменССайтом:
Проанализируем ситуацию: почему важно создавать их именно здесь? План обмена с сайтом ищет реквизиты не по всей базе, а строго внутри объекта ПланВидовХарактеристик.ДополнительныеРеквизитыИСведений, которые привязаны к конкретному владельцу — документу ДокументОбъект.ЗаказКлиента. Если вы создали реквизит через общую форму, он мог попасть в общую категорию, которая не связана с заказами, и поэтому остался невидимым для модуля обмена.
Часто при настройке узла обмена поле "Склад" остается пустым, даже если в системе создано несколько складов (оптовый, розничный и т.д.). Это происходит потому, что в современных редакциях УТ 11 логика выбора склада и условий продаж жестко завязана на механизмы соглашений и прав доступа.
Выясним причину и устраним ее, выполнив следующие действия:
Рассмотрим подробнее роль организации. Важно, чтобы организация, указанная в типовом соглашении, совпадала с той организацией, которая выбрана в настройках самого узла обмена на вкладке "Основные параметры". Если возникнет конфликт организаций, список выбора снова окажется пустым.
Иногда возникает специфическая проблема: все статусы заказов передаются на сайт корректно (Выполнен, Согласован, В резерве), но статус "Отменен" не синхронизируется. В конфигурациях 11.4 и 11.5 это часто связано с логикой работы триггеров регистрации изменений.
Проанализируем техническую сторону вопроса. В 1С статус отмены заказа — это не просто изменение значения в перечислении, а установка признака Отменено в табличной части Товары. Чтобы этот признак корректно интерпретировался модулем обмена и попадал в XML-файл, необходимо проверить следующее:
Для принудительной регистрации изменений в программном коде (если вы пишете свою обработку или расширение), можно использовать следующий подход:
// Пример программной регистрации заказа для обмена с сайтом
Процедура ЗарегистрироватьЗаказКОбмену(ВыбранныйЗаказ)
ПланОбмена = ПланыОбмена.ОбменССайтом.НайтиПоНаименованию("Основной обмен");
Если Не ПланОбмена.Пустая() Тогда
ПланыОбмена.ЗарегистрироватьИзменения(ПланОбмена, ВыбранныйЗаказ);
КонецЕсли;
КонецПроцедуры
Если стандартные настройки не помогают, стоит заглянуть в конфигуратор. Объект, отвечающий за эти процессы, называется ПланОбмена.ОбменССайтом.
Разберем, на что обратить внимание программисту:
ОпределитьДанныеДляВыгрузки.ЗаказКлиента включен в состав плана обмена с авторегистрацией или с прописанной логикой в подписках на события.СтатусЗаказа в XML. Код должен устанавливать значение failure=true или передавать соответствующее наименование статуса, понятное вашему сайту (например, Bitrix).Важный совет: При использовании сторонних модулей (например, от Битрикс), всегда проверяйте версию модуля. Логика работы с дополнительными реквизитами в новых версиях 1С (начиная с БСП 3.0 и выше) существенно изменилась, и старые версии модулей могут искать реквизиты по старым путям метаданных.
Таким образом, для успешной настройки обмена заказами мы должны обеспечить три условия: правильную привязку дополнительных реквизитов к набору Заказ клиента, наличие активного типового соглашения с разрешением доступа для внешних пользователей и корректное заполнение причин отмены для синхронизации статусов.