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