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