С внедрением обязательного разрешительного режима для маркированных товаров многие компании столкнулись с архитектурной сложностью: как подружить современное требование «одна касса — один экземпляр ТС ПИоТ» с классической схемой работы через терминальный сервер (RDP) — для этого есть модуль печати чеков через RDP и VPN с поддержкой маркировки. В данной статье мы подробно разберем, как реализовать стабильную работу системы, когда у вас есть один центральный сервер с 1С и десятки удаленных магазинов с кассовыми аппаратами, подключенными по TCP/IP.
Традиционная установка Локального модуля (ЛМ) и Технического средства проверки изделий (ТС ПИоТ) рассчитана на локальный компьютер, к которому подключена одна касса. В терминальной среде 1С запускается в разных сеансах на одном сервере. Если установить один экземпляр ТС ПИоТ, он сможет обслуживать только одно соединение с конкретным фискальным накопителем (ФН). Прямая попытка подключить 30 касс к одному модулю приведет к конфликтам доступа и невозможности фискализации чеков с маркировкой.
Рассмотрим ситуацию, когда кассы в магазинах (например, ШТРИХ-М-01Ф) не подключены физически к ПК кассира, а доступны серверу по фиксированным IP-адресам — в таких случаях удобен инструмент централизованного управления удаленными кассами. Наша задача — создать на сервере индивидуальную среду для каждой кассы.
Для реализации этой схемы нам необходимо запустить на сервере столько процессов ЛМ ЧЗ и ТС ПИоТ, сколько розничных точек мы обслуживаем — для этого есть настройка касс через RDP для маркировки и 54-ФЗ. Разберем этот процесс по шагам:
C:\LM_CHZ\Shop_1, C:\LM_CHZ\Shop_2 и т.д.). Это критически важно, так как каждый экземпляр хранит свои локальные базы данных стоп-листов и файлы конфигурации.50051. В конфигурационном файле каждого экземпляра (обычно это application.yaml или аналогичный в папке модуля) необходимо прописать уникальный порт (например, 50051 для первого магазина, 50052 для второго и далее).Проанализируем преимущества такого подхода: система работает стабильно, базы данных обновляются независимо, а 1С может обращаться к конкретному модулю по адресу localhost:PORT, где порт соответствует текущему рабочему месту пользователя.
В архитектуре Честного ЗНАКа предусмотрена роль Контроллера ЛМ. Выясним причину его необходимости. Он выступает координатором между вашей учетной системой (1С) и техническим средством проверки. В терминальном режиме возможны две под-схемы:
Для версии ЛМ 2.1 и выше наличие Контроллера является обязательным условием для корректного прохождения проверок в режиме реального времени. Рассмотрим, как прописать связь в коде 1С.
Нам потребуется написать функцию, которая определяет порт подключения в зависимости от параметров текущего сеанса или имени компьютера пользователя. Разберем пример логики:
Функция ПолучитьПортЛМДляТекущегоРабочегоМеста()
ИмяКомпьютера = ТерминальныйСеанс.ПолучитьИмяКлиентскогоКомпьютера();
// Предположим, у нас есть соответствие в справочнике "КассыККМ"
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПортЛМ ИЗ Справочник.КассыККМ ГДЕ ИмяПК = &ИмяПК";
Запрос.УстановитьПараметр("ИмяПК", ИмяКомпьютера);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.ПортЛМ;
КонецЕсли;
Возврат 50051; // Порт по умолчанию
КонецФункции
Один из самых частых страхов разработчиков — необходимость сертификации «самописной» конфигурации 1С — в этом вопросе поможет готовое решение для онлайн-касс и маркировки. Разберем ситуацию с точки зрения законодательства. В реестр аккредитованного ПО должны вноситься Технические средства проверки (которыми и являются модули ТС ПИоТ и ЛМ). Ваша 1С выступает лишь «заказчиком» проверки, отправляя запрос в сертифицированный модуль через протокол gRPC.
Важный момент: Доработки интерфейса, складского учета или ценообразования в 1С не требуют переаттестации системы. Вам нужно лишь гарантировать, что вызов функций проверки маркировки соответствует протоколам, заложенным разработчиками ЦРПТ. Если вы используете штатные библиотеки интеграции, сертификация остается на стороне поставщика этих библиотек.
Разберем, почему даже при правильной установке система может выдавать ошибки инициализации (как в сообщениях 3 и 21 с форума):
NTP на всех узлах.gRPC в 1С требуются определенные компоненты ОС. Убедитесь, что на сервере установлен актуальный пакет Microsoft Visual C++ Redistributable.curl или Postman, проверьте структуру JSON запроса — в версии 2.1 она изменилась.Переход на разрешительный режим в условиях RDP возможен без радикальной смены архитектуры — для этого есть обработка онлайн-касс в RDP с разрешительным режимом. Основной принцип — изоляция процессов для каждой кассы. Мы рекомендуем:
Помните, что с 1 июля 2024 года работа без проверки кода маркировки через ТС ПИоТ может привести к невозможности пробития чека или крупным штрафам за нарушение правил торговли. Проверьте вашу готовность заранее, используя тестовый контур Честного ЗНАКа.