При настройке типового обмена данными между конфигурациями «1С:Управление торговлей 11» и «1С:Бухгалтерия предприятия 3.0» часто возникает задача загружать первичные документы (поступления, реализации, счета-фактуры) исключительно в непроведенном виде, чтобы бухгалтер мог проверить корректность счетов учета, договоров и аналитики перед проведением. Однако в современных версиях программ документы по умолчанию загружаются сразу проведенными. Разберем, почему так происходит и как настроить желаемое поведение, не снимая базы с поддержки.
Проанализируем работу механизма синхронизации. Обмен между УТ 11 и БП 3.0 функционирует на базе универсального формата EnterpriseData (библиотека стандартных подсистем и КД 3.0). В отличие от старых обменов по правилам конвертации КД 2.0, здесь действуют следующие принципы:
Проведен получает значение true. База-приемник (БП 3.0) при загрузке считывает этот признак и пытается выполнить запись с режимом проведения.Рассмотрим рабочие способы решения задачи с сохранением конфигураций на полной поддержке с помощью механизма расширений (.cfe).
Разберем наиболее надежный способ перехвата входящих документов на стороне принимающей базы («1С:Бухгалтерия предприятия 3.0»). Для этого создадим расширение конфигурации и добавим в него подписку на событие ПередЗаписью для требуемых документов.
Пошаговый алгоритм действий:
РеализацияТоваровУслуг, ПоступлениеТоваровУслуг).ПередЗаписью, назначив в качестве источника выбранные документы или составной тип.
Процедура Расш1_ПередЗаписьюДокументаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
// Проверяем, что запись выполняется в процессе синхронизации данных
Если Источник.ОбменДанными.Загрузка Тогда
// Отменяем проведение загружаемого объекта
Источник.Проведен = Ложь;
// Принудительно переводим режим записи в обычную запись без движений
РежимЗаписи = РежимЗаписиДокумента.Запись;
КонецЕсли;
КонецПроцедуры
Данный подход гарантирует, что при интерактивной работе пользователей документы будут проводиться в штатном режиме, а при фоновом или ручном обмене всегда запишутся как непроведенные.
Рассмотрим альтернативный вариант через переопределение логики формата EnterpriseData. В конфигурациях за обработку входящих и исходящих данных формата отвечает общий модуль МенеджерОбменаЧерезУниверсальныйФормат.
В расширении для БП 3.0 или УТ 11 мы можем применить аннотацию &После или &Вместо к процедурам конвертации данных:
Проведен в значение Ложь перед фиксацией объекта в базе.<Проведен>false</Проведен>. Тогда база-приемник получит изначально непроведенный документ и запишет его без проведения.Если нет возможности подключить расширение конфигурации, проанализируем организационный способ обхода проблемы с использованием типовых механизмов:
Отложенное проведение документов и отключим его расписание (снимем флажок активности).В результате документы будут загружаться и оставаться записанными, а автоматическая попытка их проведения фоновым заданием выполняться не будет. Бухгалтер сможет проводить проверенные документы вручную из списка или с помощью типовой формы отложенного проведения.