Почему при обмене между 1С:Управление торговлей и 1С:Розница не проводятся документы?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При настройке регулярного обмена данными между конфигурациями 1С:Управление торговлей и 1С:Розница администраторы и пользователи нередко сталкиваются с ситуацией, когда данные успешно переносятся, но сами документы (например, Отчет о розничных продажах, Поступление товаров и услуг, Установка цен номенклатуры или Приходный кассовый ордер) остаются непроведенными. При этом в процессе загрузки система не выдает явных сообщений об ошибках, а вручную документы проводятся без затруднений.

Разберем подробно причины такого поведения механизмов обмена платформы 1С:Предприятие и рассмотрим пошаговые способы исправления ситуации.

Причины автоматического подавления ошибок и отказа в проведении

Выясним причину, почему при загрузке не отображаются привычные диалоговые окна с ошибками. При автоматическом обмене свойство объекта ОбменДанными.Загрузка устанавливается в значение Истина. Стандартный механизм загрузки оборачивает процедуру проведения в блок обработки исключений, чтобы при ошибке в одном документе не прерывать весь процесс синхронизации справочников и остальных документов. Документ просто сохраняется в информационной базе в непроведенном виде.

Проанализируем основные факторы, из-за которых проведение при обмене завершается неудачей:

  1. Нарушение хронологической последовательности пакета данных. Если в рамках одного сеанса обмена Отчет о розничных продажах загружается раньше, чем документ поступления или перемещения товаров, система фиксирует нехватку остатков по партиям (не списано по партиям) и отказывает в проведении. Когда администратор позже открывает документ вручную, нужные приходные накладные уже загружены, поэтому ручное проведение проходит успешно.
  2. Ограничения прав и настроек служебного пользователя. Обмен часто выполняется под специальной фоновой или регламентной учетной записью. Если у этого пользователя в дополнительных правах отключена возможность проведения документов с определенными условиями (например, отрицательные остатки, превышение скидок или контроль себестоимости), проведение блокируется.
  3. Включенный режим отложенного проведения. В настройках типового обмена может быть задан режим загрузки документов без немедленного проведения с помещением их в специальную очередь отложенных движений.
  4. Несопоставленные реквизиты или отсутствие контекста интерактивной формы. При интерактивном создании документов в форме срабатывают автоподстановки из настроек пользователя (основной склад, касса, статья ДДС). При загрузке через правила конвертации автоподстановка формы не работает, и при незаполненных обязательных полях модуль объекта блокирует проведение.
  5. Действие даты запрета загрузки или изменения данных. Если дата документа попадает в закрытый период, проведение движений блокируется на уровне платформенных проверок.

Шаг 1. Проверка параметров настройки обмена и монитора обмена

Разберем по шагам, как проверить параметры проведения в интерфейсе конфигураций на обычных формах (УТ 10.3 / Розница 1.0):

  1. Перейдем в главное меню: Сервис → Обмен данными с Розницей → Монитор обмена данными.
  2. Откроем справочник Настройки обмена данными и выберем используемый узел обмена.
  3. Перейдем на закладку Обмен по правилам (или Дополнительно) и проверим флаг автоматического проведения документов при загрузке. Если включен режим отложенного проведения, документы будут ожидать отдельной регламентной процедуры.
  4. Проверим состояние очереди отложенных документов. При необходимости очистим зависшие записи или выполним регламентное задание допроведения.

Шаг 2. Анализ журнала регистрации и протокола ошибок

Чтобы увидеть реальные причины, по которым система отклоняет проведение документов, включим подробное логирование:

  1. В настройках обмена включим опцию Вести подробный протокол обмена (или Записывать в протокол ошибки проведения документов) и укажем путь к файлу лога.
  2. Откроем Журнал регистрации в базе-приемнике через меню: Сервис → Журнал регистрации.
  3. Установим отбор по событию Обмен данными и уровню важности Ошибка и Предупреждение. В тексте событий будут указаны конкретные строки и регистры (например, отсутствие остатков по регистру ТоварыНаСкладах или ПартииТоваровНаСкладах).

Шаг 3. Проверка прав пользователя обмена

Проанализируем параметры учетной записи, от имени которой выполняется обмен:

  1. Авторизуемся в информационной базе под пользователем, выполняющим загрузку (или под служебной учетной записью регламентных заданий).
  2. Попробуем провести проблемные документы вручную от имени этого пользователя.
  3. Проверим дополнительные права пользователя (меню Сервис → Управление пользователями и доступом → Настройка дополнительных прав пользователей). Убедимся, что для пользователя разрешены необходимые операции и сняты избыточные запреты на проведение документов задним числом или контроль минимальных цен.

Шаг 4. Диагностика через универсальную загрузку данных XML

Посмотрим на способ локализации проблемы с правилами обмена с помощью ручной обработки:

  1. Выгрузим файл обмена в каталог на диске.
  2. В базе-приемнике откроем обработку Универсальный обмен данными в формате XML на вкладке Загрузка данных.
  3. Установим флаг Загружать с проведением документов и нажмем Загрузить данные.
  4. В окне сообщений платформы отобразится полный перечень отказов с указанием проблемных реквизитов и строк табличных частей каждого непроведенного объекта.

Шаг 5. Автоматизация допроведения документов

Если специфика бизнес-процесса такова, что отчеты о продажах всегда приходят раньше приходных накладных поставщиков, настроим периодическое автоматическое перепроведение документов за текущий день. Для этого используем типовую групповую обработку документов или регламентное задание со следующим алгоритмом:


Выборка = Документы.ОтчетОРозничныхПродажах.Выбрать(НачалоДня(ТекущаяДата()), КонецДня(ТекущаяДата()));
Пока Выборка.Следующий() Цикл
    Если Не Выборка.Проведен Тогда
        ДокументОбъект = Выборка.ПолучитьОбъект();
        Попытка
            ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
        Исключение
            // Запись ошибки в журнал регистрации для последующего анализа
            ЗаписьЖурналаРегистрации("ДопроведениеОбмена", УровеньЖурналаРегистрации.Предупреждение, , ДокументОбъект.Ссылка, ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

Рассмотренный комплекс мер позволяет исключить ручные выезды на торговые точки и стабилизировать проведение документов при синхронизации конфигураций.

← На главную