Как подключить онлайн-кассу к старой конфигурации 1С:Розница ред. 1.0?

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

Подключение современного торгового оборудования к устаревшим конфигурациям, таким как 1С:Розница 1.0, — задача нетривиальная, но выполнимая. Основная сложность заключается в том, что архитектура «старой» Розницы создавалась задолго до вступления в силу закона 54-ФЗ об онлайн-кассах. В этой статье мы подробно разберем, как реализовать поддержку ККТ с передачей данных, не прибегая к полному обновлению конфигурации до версии 2.2 или 3.0.

Анализ ситуации и выбор стратегии подключения

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

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

Проанализируем наиболее эффективный путь — адаптацию функционала через механизмы обработки обслуживания.

Разбор архитектуры: от ФР к ККТ с передачей данных

В старых версиях системы все кассовые аппараты воспринимались как ФискальныйРегистратор. В современных реалиях нам нужно работать с объектом ККТ с передачей данных. Основное отличие заключается в расширенном составе передаваемых данных (теги ФФД).

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

Найдем в конфигурации места, где происходит вызов функций печати. Обычно это обработка РМК или документ ЧекККМ. Нам нужно внедрить проверку типа оборудования. Проанализируем пример логики:


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

Основная задача — подготовить структуру ДанныеЧека так, чтобы она содержала все необходимые теги (ИНН покупателя, адрес установки, систему налогообложения и т.д.).

Работа с драйверами и разрядностью системы

Выясним причину возможных проблем при подключении драйверов. Современные онлайн-кассы требуют использования драйверов новых поколений (например, АТОЛ 10.х или Штрих-М 5.x).

Важный момент: Если ваша 1С:Розница работает на 32-битной платформе, вам обязательно нужно устанавливать и регистрировать 32-битные компоненты драйвера ККТ. При несоответствии разрядности COM-объект не будет инициализирован, и программа выдаст ошибку «Объект не найден».

Также стоит обратить внимание на компоненту fptr1c.dll. В старых конфигурациях она жестко прописана в макетах обработок обслуживания. Посмотрим на ситуацию критически: скорее всего, вам придется полностью заменить старую обработку обслуживания (файлы .epf) на новую, взятую из актуального дистрибутива 1С или обновленной УТ 10.3.

Реализация требований ФФД 1.05 и 1.2

Закон требует передачи специфических данных, которых в Рознице 1.0 просто нет в структуре метаданных. Рассмотрим, как это решить:

Проблема чеков коррекции

Проанализируем важный аспект, упомянутый опытными разработчиками: в 1С:Розница 1.0 отсутствуют документы «Чек коррекции». По закону 54-ФЗ, если кассир совершил ошибку или произошел технический сбой, необходимо оформить коррекцию.

Для решения этой проблемы мы рекомендуем два варианта:

  1. Создать новый объект метаданных (Документ), который будет повторять структуру чека коррекции из актуальных версий 1С.
  2. Использовать внешнюю обработку «Администрирование ККТ», которая позволит пробивать чеки коррекции напрямую через драйвер, минуя учет в информационной базе 1С.

Практические советы по отладке

Когда вы приступите к тестированию, помните о золотом правиле: «Бейте чеки на 1 рубль». Поскольку касса онлайн, все данные сразу уходят в ОФД и налоговую. Для тестирования лучше использовать специальный фискальный накопитель (МГМ — массо-габаритный макет) или тестовый контур ОФД.

Если вы решили копировать код из УТ 10.3, обратите внимание на модуль РаботаСТорговымОборудованием. В нем сосредоточена вся логика взаимодействия с внешними компонентами. Проанализируем процедуру инициализации устройства:


Функция ПодключитьУстройство(Устройство)
    // Инициализация COM-объекта нового драйвера
    Попытка
        ОбъектДрайвера = Новый COMОбъект("AddIn.Atol_KKT_10");
    Исключение
        Сообщить("Не удалось загрузить драйвер ККТ!");
        Возврат Ложь;
    КонецПопытки;
    // Настройка параметров связи
    ОбъектДрайвера.set_Model(Параметры.Модель);
    ОбъектДрайвера.set_Port(Параметры.Порт);
    // ... и так далее
КонецФункции

Заключение

Подключение онлайн-кассы к 1С:Розница 1.0 — это процесс, требующий глубокого понимания работы драйверов и протоколов обмена. Несмотря на кажущуюся сложность, использование механизмов из УТ 10.3 или проверенных внешних обработок позволяет продлить жизнь старой конфигурации без дорогостоящего перехода на новые версии, сохраняя при этом все доработки и привычный интерфейс для кассиров.

Главное — уделить внимание корректному заполнению тегов ФФД и обеспечить возможность ввода контактных данных покупателя для отправки электронных чеков.

← На главную