При переходе на онлайн-кассы по требованиям 54-ФЗ пользователи конфигурации 1С:Управление торговлей 11 нередко сталкиваются с ситуацией: при оформлении чека через документ Чек ККМ в фискальный документ попадает весь список товаров, а при пробитии чека из документа Приходный кассовый ордер (ПКО) на фискальной ленте печатается только общая сумма без детализации по позициям.
Разберем требования законодательства, выясним причины такого поведения типовой конфигурации и рассмотрим варианты решения проблемы.
Проанализируем нормы Федерального закона № 54-ФЗ (статья 4.7) и форматы фискальных документов (ФФД):
Аванс и признак предмета расчета Платеж.Выясним причину, почему в конкретной базе 1С товарные строки могут не попадать в чек при пробитии из документа Приходный кассовый ордер:
По договорам или По клиенту в целом, система не может сопоставить сумму документа с конкретной товарной спецификацией заказа и печатает авансовый платеж.Расшифровка платежа не заполнен документ расчетов (документ-основание).Не согласован или Отклонен, типовой запрос игнорирует его товарные позиции.Посмотрим на пример типового кода общего модуля ДенежныеСредстваСервер (процедура формирования позиций чека), который появился в более свежих релизах конфигурации:
ДокументыОснования = РезультатЗапроса[2].Выгрузить().ВыгрузитьКолонку("Основание");
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапросаОплаченныеПозицииНоменклатуры();
Запрос.УстановитьПараметр("МассивДокументов", ДокументыОснования);
Запрос.УстановитьПараметр("ДатаДокумента", ДанныеДокумента.Дата);
Запрос.УстановитьПараметр("ВалютаДокумента", ДанныеДокумента.Валюта);
Запрос.УстановитьПараметр("ОплатаОтКлиента", Истина);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки1",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ТаблицаТовары.Упаковка",
"ТаблицаТовары.Номенклатура"));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтрокаПозицииЧека = МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека();
ЗаполнитьЗначенияСвойств(СтрокаПозицииЧека, Выборка);
СтавкаНДС = ЦенообразованиеКлиентСервер.ПолучитьСтавкуНДСЧислом(Выборка.СтавкаНДС);
Если Выборка.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
ЗначениеСтавкиНДС = Неопределено;
Иначе
ЗначениеСтавкиНДС = СтавкаНДС * 100;
КонецЕсли;
СтрокаПозицииЧека.СтавкаНДС = ЗначениеСтавкиНДС;
СтрокаПозицииЧека.НомерСекции = 1;
// Добавление сформированной строки в фискальный пакет
ТаблицаПозицийЧека.Добавить(СтрокаПозицииЧека);
КонецЦикла;
В этой схеме запрос обращается к табличным частям документов-оснований (ЗаказКлиента или РеализацияТоваровУслуг), считывает номенклатуру, цены, коэффициенты упаковок и ставки НДС, преобразуя каждую товарную позицию в отдельную фискальную строку с помощью метода МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека().
Рассмотрим по шагам варианты устранения проблемы в зависимости от текущей архитектуры базы данных:
Обновим конфигурацию 1С:Управление торговлей 11 до актуального релиза (как минимум выше 11.3.3.178 или до актуальных веток 11.4 / 11.5). Вместе с конфигурацией обновится и БПО, что обеспечит корректную обработку всех типов расчетов, частичных оплат и признаков способа расчета по ФФД.
Если оперативно обновить конфигурацию невозможно из-за доработок или регламентов, исправим логику формирования чека без снятия базы с поддержки. Для этого создадим расширение конфигурации и переопределим процедуру формирования фискальных строк в общем модуле или модуле менеджера документа ПриходныйКассовыйОрдер, реализовав обход товарного состава документа-основания. При последующем обновлении конфигурации это расширение можно будет безболезненно отключить.
Убедимся, что выполняются следующие условия:
Если прием наличных денег и передача товаров происходят одновременно на торговой точке, целесообразно использовать режим Рабочее место кассира (РМК) и документ Чек ККМ, где печать товарного состава гарантирована на уровне механизма чековой ленты.