Многие пользователи 1С 7.7 столкнулись с внезапной и критической проблемой: кассовые аппараты Атол (в частности, модель Атол-22 и другие устройства на Платформе 5.0), которые годами работали исправно, с 3 июля 2024 года начали выдавать ошибку «Нет связи». При этом физическое соединение исправно, кабели на месте, а «Тест драйвера» версии 10 прекрасно видит устройство и позволяет открывать смены. Рассмотрим подробнее, почему это произошло и как восстановить работоспособность системы.
Проанализируем ситуацию с технической точки зрения. Проблема не в операционной системе, не в антивирусах и не в «пробросе портов» через RDP. Причина кроется глубоко в программном обеспечении (прошивке) самого кассового аппарата. Компания «Атол» планомерно прекращает поддержку устаревших драйверов 8-й версии (DTO 8). В прошивках устройств, особенно тех, что работают на Платформе 5.0 или в режиме совместимости, был жестко зашит временной лимит.
С наступлением даты 03.07.2024 касса на уровне внутреннего протокола начала блокировать любые запросы, поступающие через интерфейс DTO 8. Поскольку типовые конфигурации 1С 7.7 и старые обработки обслуживания используют библиотеку FPrnM1C.dll (которая является частью 8-го драйвера), они больше не могут «достучаться» до кассы. Касса отвечает драйверу отказом, а драйвер транслирует это в 1С как отсутствие связи.
Драйверы Атол 10-й версии (DTO 10) имеют принципиально иную архитектуру. Если 8-я версия была классическим COM-объектом, который 1С 7.7 понимала «из коробки», то 10-я версия ориентирована на современные стандарты обмена данными (JSON, новые методы вызова). Старая компонента FPrnM1C.dll просто не умеет работать с 10-м драйвером, а прямое подключение 10-го драйвера к 1С 7.7 требует радикальной переработки программного кода торгового оборудования в конфигурации.
Это самый эффективный и быстрый способ восстановить работу без глобального переписывания кода 1С. Суть метода заключается в использовании специальной библиотеки-«прослойки». Рассмотрим, как это работает:
Проанализируем пример того, как инициализируется объект в 1С 7.7 при использовании стандартного подхода, который теперь дает сбой:
Попытка
ЗагрузитьВнешнююКомпоненту("FPrnM1C.dll");
ККМ = СоздатьОбъект("AddIn.FPrnM1C");
Исключение
Сообщить("Ошибка загрузки компоненты!");
КонецПопытки;
При использовании «прослойки» имя объекта может измениться (например, на AddIn.Atol_DTO10_Wrapper), но набор методов (OpenCheck, Registration, CloseCheck) останется привычным для 1С 7.7.
Если ваша касса Атол-22 подключена не только по USB, но и имеет сетевой интерфейс (Ethernet), мы рекомендуем рассмотреть переход на работу через TCP/IP. Это избавляет от проблем с нестабильным пробросом COM-портов в терминальных сессиях. Посмотрим на алгоритм настройки:
EoRS или EoInternet), чтобы касса сама отправляла чеки в интернет, не нагружая USB-порт компьютера.Важный момент: Даже при работе по сети 8-й драйвер все равно может выдавать ошибку из-за блокировки в прошивке, поэтому сетевое подключение — это отличная оптимизация транспорта, но она должна работать в паре с 10-м драйвером.
Разберем более продвинутый способ, который подходит для опытных программистов. Драйвер 10-й версии включает в себя службу «Web-сервер». Это позволяет взаимодействовать с кассой через HTTP-запросы. Для 1С 7.7 это реализуется через объект MSXML2.XMLHTTP.
Посмотрим на пример логики формирования запроса к кассе:
// Пример упрощенной логики запроса к Web-серверу Атол
Запрос = СоздатьОбъект("MSXML2.XMLHTTP");
URL = "http://localhost:16732/api/v2/operations/sell";
ТекстЗапросаJSON = "{""type"": ""sell"", ""items"": [...]}";
Запрос.Open("POST", URL, 0);
Запрос.SetRequestHeader("Content-Type", "application/json");
Запрос.Send(ТекстЗапросаJSON);
Если Запрос.Status = 200 Тогда
Сообщить("Чек успешно пробит через Web-сервер");
КонецЕсли;
Этот метод является наиболее современным и «пуленепробиваемым», так как он полностью отвязывает 1С от конкретных версий DLL-библиотек, используя стандартный протокол обмена данными.
Подведем итог и составим план действий для системного администратора или программиста:
Таким образом, ситуация с «отвалом» связи 3 июля — это не технический сбой, а принудительный вывод из эксплуатации старого ПО производителем. Своевременный переход на 10-ю версию драйвера обеспечит стабильную работу вашего кассового оборудования в будущем.