Интеграция современных онлайн-касс, работающих по требованиям 54-ФЗ, с платформой 1С 7.7 имеет ряд особенностей. Исторически типовая конфигурация «Торговля и Склад 7.7» разрабатывалась под старый порядок применения ККМ. При переходе на новые фискальные регистраторы (в частности, АТОЛ 11Ф) разработчики и системные администраторы сталкиваются с техническими нюансами: от выбора подходящих драйверов до изменения логики расчета скидок в чеке. Разберем детально, как правильно организовать взаимодействие 1С 7.7 и АТОЛ 11Ф, а также рассмотрим типичные подводные камни.
Одной из главных проблем при внедрении онлайн-касс в 1С 7.7 является несовместимость типовых библиотек 1С, поставлявшихся со старыми релизами. Стандартные внешние компоненты из типовой поставки ТиС зачастую не поддерживают новые фискальные теги и вызывают сбои при печати. Оптимальным решением является использование официального драйвера торгового оборудования от производителя — АТОЛ ДТО 10 (или ДТО 8/9 в зависимости от используемой прошивки кассы).
Обратим внимание на разрядность библиотек. Платформа 1С 7.7 является строго 32-разрядным приложением (x86). Даже если операционная система 64-битная, в системе обязательно должна быть зарегистрирована 32-битная библиотека драйвера:
addin_fptr10_x86.dll (обычно находится в каталоге установки драйвера).regsvr32 addin_fptr10_x86.dll.В кодовой базе 1С 7.7 инициализация объекта драйвера выполняется следующим образом:
Попытка
ДрайверККТ = СоздатьОбъект("AddIn.Fptr10");
Исключение
Сообщить("Не удалось инициализировать драйвер АТОЛ ДТО 10!", "!");
Возврат;
КонецПопытки;
В старых версиях фискализаторов скидка могла передаваться итоговой суммой на весь чек. В рамках формата фискальных данных (ФФД) по 54-ФЗ действует жесткое правило форматно-логического контроля: Количество × Цена − Скидка = Сумма позиции. Сумма всех позиций должна с точностью до копейки совпадать с итоговой суммой документа.
В типовой 1С 7.7 ТиС скидка на документ рассчитывалась пропорционально общей сумме, что при делении на количество строк приводило к ошибкам округления на 1 копейку и ошибке ККТ «Сумма позиций не равна сумме чека». Чтобы решить эту проблему, необходимо:
Посмотрим на пример правильного формирования строки позиции с учетом скидки:
// Передача позиции с расчетом конечной цены
ДрайверККТ.setParam(1030, СокрЛП(ТоварНаименование)); // Наименование
ДрайверККТ.setParam(1079, ЦенаСоСкидкой); // Цена за единицу
ДрайверККТ.setParam(1023, Количество); // Количество
ДрайверККТ.setParam(1043, СуммаПозиции); // Итоговая сумма по строке
ДрайверККТ.setParam(1212, 1); // Признак предмета расчета (Товар)
ДрайверККТ.setParam(1214, 4); // Признак способа расчета (Полный расчет)
ДрайверККТ.registration();
Касса АТОЛ 11Ф при подключении через интерфейс USB эмулирует в системе два виртуальных COM-порта. Разберем назначение каждого порта:
Важно: Если служба EoU не настроена или в 1С случайно выбран порт, занятый службой передач, отправка чеков в ОФД заблокируется. Касса сможет печатать чеки автономно не более 30 дней, после чего фискальный накопитель заблокируется с ошибкой непереданных документов. Обязательно проверяйте диагностику соединения с ОФД через тест драйвера ККТ.
В зависимости от структуры предприятия и используемой инфраструктуры (локальные ПК или терминальный сервер RDP), выделим три основных подхода к интеграции:
WinHttp.WinHttpRequest.5.1.При адаптации обработки обслуживания ТиС 7.7 убедимся, что в драйвер передаются обязательные теги по 54-ФЗ:
Корректная доработка алгоритма распределения скидок и использование актуального драйвера АТОЛ обеспечивают стабильную и бесперебойную печать чеков из 1С 7.7 без сбоев и расхождений с ОФД.