Как перенести фискальные реквизиты документов из КА 1.1 в регистр «Журнал фискальных операций» КА 2.4 через КД2?

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

При переходе с конфигурации Комплексная автоматизация 1.1 (или старых версий УТ 10.3 / УПП 1.3) на Комплексная автоматизация 2.4 (ERP 2.4 / УТ 11.4) разработчики часто сталкиваются с изменением архитектуры хранения фискальных данных. В старых конфигурациях номера чеков и реквизиты ККМ хранились непосредственно в реквизитах документов, таких как ПриходныйКассовыйОрдер или ЧекНаОплату. В современных конфигурациях эти данные вынесены в отдельный регистр сведений — ЖурналФискальныхОпераций (а также ФискальныеОперации).

Рассмотрим, как правильно настроить конвертацию данных в КД2 (Конвертация данных 2.0) для формирования записей регистра сведений фискальных операций при переносе кассовых документов.

Анализ проблемы и архитектурных изменений

Проанализируем структуру данных в источниках и приемнике:

  1. Источник (КА 1.1 / Альфа-Авто): Реквизиты фискального чека (НомерЧекаККМ, ККМ и т.д.) расположены в шапке кассового документа (ПКО, Чек на оплату).
  2. Приемник (КА 2.4 / ERP / УТ 11): Документ ПриходныйКассовыйОрдер больше не содержит этих реквизитов. Данные о пробитых чеках хранятся в независимом регистре сведений ЖурналФискальныхОпераций, где ключевым измерением является ДокументОснование.

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

Способ 1. Создание отдельного ПКО для регистра сведений (рекомендуемый)

Разберем по шагам создание правил переноса в «Конвертации данных 2.0» с помощью явного вызова ПКО для независимого регистра сведений.

  1. Создание ПКО для регистра сведений:

    Создадим Правило Конвертации Объекта (ПКО), в котором:

    • Объект-источник: ДокументСсылка.ПриходныйКассовыйОрдер
    • Объект-приемник: РегистрСведенийЗапись.ЖурналФискальныхОпераций

    Назовем данное правило, например, ФискальнаяОперацияПКО.

  2. Настройка правил конвертации свойств (ПКС):

    В созданном ПКО настроим сопоставление полей:

    • Измерение ДокументОснование <-- Источник (самому документу);
    • Ресурсы и реквизиты (НомерЧекаККМ, КассаККМ и др.) <-- соответствующие реквизиты источника.
  3. Вызов выгрузки в обработчике «После выгрузки» документа:

    В ПКО документа ПриходныйКассовыйОрдер в событии После выгрузки добавим проверку на наличие пробитого чека и выполним выгрузку записи регистра:

    
    Если Источник.НомерЧекаККМ > 0 Тогда
        ВыгрузитьПоПравилу(Источник, , , , "ФискальнаяОперацияПКО");
    КонецЕсли;
    

Способ 2. Заполнение регистра через обработчик «После загрузки»

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

Рассмотрим пример кода в событии После загрузки документа ПриходныйКассовыйОрдер:


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

КонецЕсли;

Преимущество данного метода заключается в том, что перезапись набора по отбору ДокументОснование полностью исключает дублирование записей при повторных обменах.

Вопросы генерации UUID (ИдентификаторЗаписи) и поля поиска

В регистре ЖурналФискальныхОпераций конфигураций КА 2.4 / ERP помимо измерения ДокументОснование присутствует реквизит или измерение ИдентификаторЗаписи (тип Строка или УникальныйИдентификатор). У разработчиков возникает опасение: не будут ли плодиться дубли при каждом повторном обмене?

Выясним, как избежать дублирования:

Зачем фискальные реквизиты нужны в документе «Реализация товаров и услуг»?

В конфигурациях КА 1.1 и КА 2.4 фискальные реквизиты также встречаются в документах реализации. Это обусловлено требованиями законодательства (54-ФЗ), регламентирующими порядок применения ККТ при расчетах с физическими лицами:

  1. Продажа в кредит / отсрочка платежа: Чек должен отбиваться непосредственно из документа РеализацияТоваровУслуг с признаком способа расчета «Передача в кредит» (без приема денег в этот момент).
  2. Зачет аванса: При отгрузке товара в счет ранее полученной предоплаты формируется чек из документа отгрузки с признаком «Зачет аванса».

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

← На главную