Почему не формируются проводки при программном создании ПКО с операцией «Розничная выручка» в 1С:Бухгалтерии 3.0?

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

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

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

Выясним причину проблемы

Данная проблема обусловлена двумя ключевыми факторами: логикой работы платформы 1С при программном создании объектов и методологическим устройством учета розничных продаж в 1С:Бухгалтерии.

  1. Отсутствие вызова обработчиков формы: При создании объекта через Документы.ПоступлениеНаличных.СоздатьДокумент() события формы (такие как ПриИзменении) не выполняются. В интерактивном режиме при выборе склада форма автоматически рассчитывает и подставляет счета учета и служебную аналитику. При программном заполнении все эти реквизиты остаются пустыми или некорректными.
  2. Тип розничного склада (АТТ vs НТТ): Логика формирования проводок документом ПоступлениеНаличных с видом операции РозничнаяВыручка напрямую зависит от типа склада в справочнике Склады:
    • Если тип склада — Автоматизированная торговая точка (АТТ) или Розничный магазин, проводки по оприходованию выручки должен формировать документ Отчет о розничных продажах. В этом случае ПКО выполняет лишь роль документа для кассовой книги и проводить выручку по бухучету не обязан.
    • Если тип склада — Неавтоматизированная торговая точка (НТТ), именно ПКО отвечает за формирование бухгалтерских проводок.

Таким образом, для получения проводок необходимо убедиться, что склад относится к НТТ, а также явным образом заполнить все зависимые счетоведческие реквизиты в объекте.

Способ 1. Явное заполнение всех связанных реквизитов в коде

Проанализируем пример кода, в котором явно заполняются счета учета и необходимая аналитика, гарантирующая формирование движения по бухучету.


НовыйПКО = Документы.ПоступлениеНаличных.СоздатьДокумент();
НовыйПКО.Дата = ТекущаяДата();
НовыйПКО.Организация = ОрганизацияСсылка;
НовыйПКО.ВидОперации = Перечисления.ВидыОперацийПоступлениеНаличных.РозничнаяВыручка;

// Указываем склад (должен быть с типом НТТ)
НовыйПКО.Склад = СкладНТТСсылка;

// Заполняем обязательные счета учета и аналитику
НовыйПКО.СчетУчета = ПланыСчетов.Хозрасчетный.КассаОрганизации; // 50.01
НовыйПКО.СчетОперационнойКассы = ПланыСчетов.Хозрасчетный.КассаОбособленныхПодразделений; // 50.02 или необходимый счет расчетов
НовыйПКО.СтатьяДвиженияДенежныхСредств = СтатьяДДСВыручка;
НовыйПКО.СуммаДокумента = 15000;

// При необходимости указываем параметры НДС
НовыйПКО.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;

// Записываем и проводим документ
НовыйПКО.Записать(РежимЗаписиДокумента.Проведение);

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

Способ 2. Вызов серверных процедур автозаполнения счетов

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

Рассмотрим, как вызвать процедуру заполнения счетов учета после установки базовых реквизитов документа:


// После заполнения Организации, ВидаОперации и Склада
ЗаполнитьЗначенияСвойств(НовыйПКО, НовыйПКО.ПолучитьДанныеАвтозаполнения());

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

Способ 3. Корректное использование схемы учета для АТТ

Если торговая точка является автоматизированной (АТТ), не следует добиваться проводок именно от документа ПКО. В рамках методологии 1С правильным решением будет:

  1. Программно создать документ ОтчетОРозничныхПродажах, который спишет товары и сформирует проводки по выручке (Дт 50.02 / 62.Р — Кт 90.01).
  2. Создать документ ПоступлениеНаличных с видом операции РозничнаяВыручка для отражения поступления денег из операционной кассы в основную кассу организации (Дт 50.01 — Кт 50.02).

Резюме

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

← На главную