Почему при обмене УТ — Розница приходные кассовые ордера выгружаются как УдалениеОбъекта и как это исправить?

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

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

Даже если разработчик заходит в программу «Конвертация данных 2.1» и комментирует жесткие ограничения в правилах конвертации объектов (ПКО), это не приносит желаемого результата. Давайте подробно разберем по шагам, почему так происходит, как функционируют механизмы регистрации изменений Библиотеки стандартных подсистем (БСП) и как правильно решить эту задачу.

Проанализируем типичную ситуацию. В правилах конвертации свойств для документа ПриходныйКассовыйОрдер в событии «Перед выгрузкой» изначально прописан следующий код:


Если ТипЗнч(Источник.ДокументОснование) <> Тип("ДокументСсылка.ВыемкаДенежныхСредствИзКассыККМ") Тогда
    Отказ = Истина;
КонецЕсли;

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


<УдалениеОбъекта УникальныйИдентификатор="b0d319be-f879-11e8-b39d-000c292bf9da" ТипИсточника="ДокументСсылка.ПриходныйКассовыйОрдер" ТипПриемника="ДокументСсылка.ПриходныйКассовыйОрдер"/>

Выясним истинную причину этого поведения и рассмотрим правильный алгоритм решения проблемы.

Почему вместо документов выгружается УдалениеОбъекта?

Для того чтобы понять логику платформы 1С, необходимо разграничить два независимых механизма: Правила регистрации объектов (ПРО) и Правила конвертации данных (ПКД).

Когда мы принудительно регистрируем документы с помощью обработки «Регистрация изменений для обмена данными», мы всего лишь записываем ссылку на объект в таблицу регистрации изменений конкретного плана обмена. Но в момент непосредственного выполнения синхронизации в работу вступает программный движок БСП.

Перед тем как передать объект на конвертацию, БСП всегда проверяет его на соответствие правилам регистрации. Если объект зарегистрирован к выгрузке, но по своим реквизитам (в нашем случае — из-за отсутствия нужного заполненного реквизита ДокументОснование) он не удовлетворяет условиям правил регистрации, система делает следующий вывод:

  1. Этот объект ранее мог быть выгружен в базу-приемник (когда удовлетворял условиям).
  2. Сейчас объект изменился и больше не должен находиться в базе-приемнике согласно настроенным фильтрам.
  3. Чтобы исключить неактуальные данные в приемнике, БСП принимает решение "очистить" его там, заменяя выгрузку самого объекта на команду УдалениеОбъекта.

Именно поэтому простое редактирование правил конвертации (удаление проверки в ПКО) не решает проблему. Нам в обязательном порядке необходимо скорректировать правила регистрации.

О чем говорит желтое выделение свойств в Конвертации Данных?

В процессе анализа правил обмена в КД 2.1 можно заметить, что некоторые правила конвертации свойств (например, ПКС для ДокументОснование) подсвечиваются мягким желтым (или кремовым) цветом. Это важный визуальный маркер среды разработки:

Желтое выделение строки в иерархии КД означает, что для данного свойства или объекта написан и активирован индивидуальный программный обработчик (например, «Перед выгрузкой», «При выгрузке» или «После выгрузки»). Это сигнализирует разработчику, что стандартный перенос свойства переопределен вручную и логику его работы нужно искать внутри событий этой строки.

Методология обмена денежными документами между УТ и Розницей

Прежде чем отключать проверки, давайте проанализируем, зачем разработчики фирмы «1С» заложили такое жесткое ограничение в типовые конфигурации.

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

Единственным сквозным процессом является инкассация (выемка денег). Когда кассир в магазине делает выемку, в Рознице фиксируется документ ВыемкаДенежныхСредствИзКассыККМ. На его основании в центральном офисе (УТ) оформляется приход в кассу управляющей организации. Именно под эту бизнес-логику и настроен жесткий отбор: мигрируют только те ПКО, которые жестко привязаны к процессу розничной выемки.

Если ваши бизнес-процессы требуют переноса всех документов ПКО без исключения, перейдем к технической части реализации этой задачи.

Пошаговый алгоритм изменения правил регистрации и выгрузки

Для решения проблемы нам потребуется изменить правила регистрации объектов (ПРО) и загрузить их обратно в информационную базу. Рассмотрим этот процесс подробно.

Шаг 1. Экспорт существующих правил регистрации из 1С:УТ

Перейдите в режим администрирования синхронизации данных в вашей базе «1С:Управление торговлей»:

  1. Откройте меню НСИ и администрирование — Синхронизация данных.
  2. Выберите нужную настройку обмена с «1С:Розница» и нажмите кнопку Параметры подключения (или перейдите в состав отправляемых данных).
  3. Найдите пункт управления правилами регистрации и выгрузите правила регистрации в файл с расширением .xml на ваш локальный диск.

Шаг 2. Корректировка правил регистрации в Конвертации Данных

Запустите информационную базу «Конвертация данных 2.1»:

  1. Выполните импорт полученного XML-файла правил регистрации через меню «Загрузка правил».
  2. Перейдите в раздел Правила регистрации объектов.
  3. В списке объектов найдите класс ДокументСсылка.ПриходныйКассовыйОрдер.
  4. Проанализируйте обработчик события «Перед обработкой» или настройки условий фильтрации. Вы увидите проверку заполнения реквизита ДокументОснование или жесткое ограничение по типу источника.
  5. Закомментируйте или удалите условие, которое отсекает документы, не связанные с выемкой.
  6. Сохраните измененные правила регистрации обратно в XML-файл.

Шаг 3. Загрузка обновленных правил в 1С:УТ

Вернитесь в базу «1С:Управление торговлей» и выполните обратную операцию:

  1. В настройках синхронизации загрузите модифицированный файл правил регистрации XML.
  2. Убедитесь, что правила успешно применились системой.

Шаг 4. Очистка старых пакетов и повторная регистрация

Важно понимать, что система БСП уже запомнила предыдущие отказы и пометила объекты к удалению. Чтобы сбросить кэш и принудительно заставить обновить очередь выгрузки, выполните следующие действия:

  1. Откройте обработку «Регистрация изменений для обмена данными».
  2. Полностью снимите с регистрации все документы ПриходныйКассовыйОрдер, которые зависли в очереди.
  3. Заново зарегистрируйте необходимые ПКО к выгрузке (выборочно или по периоду).
  4. Запустите сеанс синхронизации данных.

После выполнения этих шагов БСП перестанет перехватывать выгрузку документов, правила конвертации отработают штатно, и все ваши ПКО без документов-оснований успешно появятся в информационной базе «1С:Розница».

← На главную