Ситуация, когда документы успешно переносятся из «1С:Управление торговлей 10.3» в «1С:Бухгалтерия предприятия 3.0», записываются, но отказываются проводиться без видимых ошибок, является классической проблемой при использовании прямого COM-подключения. Особенно остро этот вопрос встает после обновления конфигурации БП 3.0 до актуальных релизов, где существенно изменились механизмы контроля данных и логика работы фоновых процессов. Разберем пошагово, как диагностировать и устранить эту проблему.
При использовании прямого подключения (COM) база-источник (УТ) подключается к базе-приемнику (БП) как внешний клиент. Особенность этого режима заключается в том, что если при выполнении метода Записать(РежимЗаписиДокумента.Проведение) на стороне приемника возникает исключение или ошибка валидации, она не всегда корректно транслируется обратно в интерфейс источника. Мы видим, что документ «записан», но почему он не «проведен» — остается загадкой. Кроме того, в современных релизах БП 3.0 активно используется механизм «отложенного проведения» или проведения в фоновом режиме, что еще больше усложняет диагностику.
Первым делом нам необходимо исключить влияние механизмов COM-соединения. Рассмотрим алгоритм действий:
Проанализируем результат: если при ручном проведении система выдаст конкретную ошибку (например, «Не заполнен счет учета» или «Не указан способ отражения расходов»), значит, проблема в правилах обмена (ПКО), которые не передают новые обязательные реквизиты, появившиеся в свежих релизах БП 3.0 (например, связанные с ФСБУ 5/2019 или 25/2018).
Если при ручном проведении ошибок нет, но при автоматической загрузке проведение все равно не происходит, выясним причину с помощью конфигуратора. Современные версии БСП (Библиотеки стандартных подсистем) могут отправлять запрос на проведение документа в фоновое задание. Чтобы «поймать» этот момент, воспользуемся специальной функцией платформы.
Разберем, как настроить автоматическое подключение отладчика:
ПередЗаписью или ОбработкаПроведения.Теперь при запуске обмена из УТ 10.3 конфигуратор БП 3.0 автоматически «подцепится» к фоновому процессу, который выполняет запись и проведение. Это позволит нам пошагово пройти по коду и увидеть, в какой момент переменная Отказ принимает значение Истина.
Проанализируем код правил обмена. Часто в ПВД (Правилах выгрузки данных) или в обработчиках «После загрузки» устанавливается режим загрузки. Посмотрим на пример кода, который может блокировать стандартные механизмы проведения БСП:
// В обработчике ПослеЗагрузки
Объект.ДополнительныеСвойства.Вставить("Загрузка", Истина);
Если Не Параметры.ОбменДанными.Загрузка Тогда
Объект.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
В новых версиях БП 3.0 флаг ОбменДанными.Загрузка = Истина отключает большинство проверок в модуле объекта. Если ваши правила принудительно вызывают проведение, но при этом установлены специфические свойства в ДополнительныеСвойства, логика проведения может отработать не полностью. Проверьте, не сбрасываются ли критически важные параметры в модуле ОбщегоНазначения или в расширениях, которые могут быть установлены в БП.
Выясним причину «молчаливого» отказа через системный журнал. Часто разработчики забывают, что БП 3.0 пишет детальные логи обмена. Рассмотрим, на что обратить внимание:
Нередко там можно встретить сообщения вида Поле объекта 'СтатусОплатыНДС' не обнаружено. Это происходит, когда платформа пытается программно заполнить реквизиты, которых нет в структуре правил обмена, созданных для старых релизов (например, 3.0.70).
После обновления БП 3.0 настройки синхронизации могут «слететь» к значениям по умолчанию. Проанализируем настройки в самой базе-приемнике:
Если этот флаг снят, БСП будет только записывать объекты. Если же флаг стоит, но проведения нет, проверьте регламентное задание Загрузка данных из других программ. В некоторых случаях система ставит документы в очередь на проведение, и если очередь переполнена или регламентные задания заблокированы, документы останутся в статусе «Записан».
Поскольку вы используете правила от версии 3.0.70 для актуального релиза (выше 3.0.139), это является основной зоной риска. Посмотрим на ключевые изменения в структуре БП:
Для исправления рекомендуется взять типовые правила из актуального релиза БП 3.0 (они обычно лежат в каталоге установки шаблонов конфигурации в папке Синхронизация данных) и перенести в них ваши доработки. Это гарантирует, что все новые обязательные поля будут корректно инициализированы при загрузке.
Используя комплексный подход — отладку фоновых заданий, анализ журнала регистрации и проверку заполнения новых реквизитов ФСБУ — вы сможете быстро определить причину остановки проведения и восстановить работоспособность обмена.