Проблема «отвала» торгового оборудования — одна из самых неприятных в автоматизации розницы. Она не только замедляет работу кассира, но и приводит к серьезным расхождениям в учете: двойным списаниям по эквайрингу, непробитым чекам в ККТ и «зависшим» операциям. Рассмотрим подробно, почему 1С:Управление торговлей 11 может терять связь с кассами ШТРИХ-ОНЛАЙН и терминалами Сбербанка, и разберем системные шаги по решению этой проблемы.
Прежде чем менять настройки программ, проанализируем физический уровень подключения. Опыт эксплуатации показывает, что в 90% случаев «магическое» исчезновение устройства из системы связано с перебоями в питании или помехами на линии USB.
1. Интерфейсные кабели. Разберем ситуацию с USB-подключением. Стандартные кабели, идущие в комплекте с оборудованием, часто не имеют ферритовых фильтров и обладают плохим экранированием. В условиях магазина, где рядом работают холодильники, кондиционеры и блоки питания ламп, на кабель наводятся помехи. Это приводит к кратковременному (на доли секунды) разрыву соединения, чего достаточно для «вылета» драйвера 1С.
2. Блоки питания. Выясним причину нестабильности старых системных блоков. Со временем конденсаторы в блоках питания и на материнских платах теряют емкость. Если напряжение на USB-порту проседает ниже 4.75 В, контроллер оборудования может перезагрузиться. Рекомендуем проверить вольтаж мультиметром или попробовать подключить оборудование через активный (с собственным питанием) USB-хаб.
3. Энергосбережение Windows. Проанализируем настройки операционной системы. По умолчанию Windows может отключать питание USB-портов для экономии энергии. Нам необходимо выполнить следующие действия:
Если касса ШТРИХ-ON-LINE или банковский терминал поддерживают подключение по сетевому кабелю (LAN/Ethernet), это лучший способ забыть о проблемах с USB. Рассмотрим преимущества этого метода:
Для настройки Штрих-М по Ethernet необходимо в «Тесте драйвера» сменить тип подключения на «TCP сокет», указать IP-адрес кассы и порт (по умолчанию 7778).
Часто 1С выдает ошибку «Нет связи с кассовым оборудованием» просто потому, что не дождалась ответа от ККТ. Разберем, как увеличить время ожидания.
Откроем «Тест драйвера ККТ» (версии 4.15 или 5.x), перейдем в «Настройки свойств» и найдем параметр «Таймаут». По умолчанию там может стоять 100-300 мс. В условиях нестабильной связи или высокой нагрузки на процессор этого мало. Рекомендуем установить значение 1500–2000 мс. Это позволит программе дождаться ответа от кассы, даже если та занята внутренними операциями.
Ошибка 99 при работе с терминалом Сбербанка обычно означает, что компонента SberbankPOS.dll не смогла инициализировать связь с пин-падом. Проанализируем программную среду эквайринга:
1. Настройка pinpad.ini. Заглянем в папку с банковским ПО (обычно C:\sc552\). В файле pinpad.ini проверьте параметры ComPort и Speed. Если используется USB-подключение, убедитесь, что номер порта совпадает с тем, что назначен в диспетчере устройств. Также полезно добавить параметр IdleTimeout=0, чтобы терминал не «засыпал».
2. Служба смарт-карт. Выясним роль системных служб. Для корректной работы библиотек Сбербанка в Windows должна быть запущена служба «Смарт-карты». Установите тип запуска «Автоматически» и запустите ее. Если служба остановлена, 1С часто будет терять связь с терминалом в самый неподходящий момент.
3. Обновление компонент. Если проблема сохраняется, стоит запросить у сотрудников банка обновление файлов pilot_nt.dll и upos.dll. Старые версии библиотек могут иметь утечки памяти при работе с платформой 1С 8.3.
Поскольку магазины работают через тонкий клиент к центральному серверу, критически важным становится стабильность интернет-канала. Любой «микро-разрыв» связи между магазином и сервером 1С приводит к тому, что сессия «зависает», а связь с оборудованием теряется. 1С перестает понимать состояние чека: пробит он или нет.
Чтобы минимизировать последствия, в коде 1С (если есть возможность доработки) или в настройках параметров подключаемого оборудования следует использовать «Менеджер оборудования» с проверкой состояния устройства перед каждой операцией. Посмотрим на пример логики, которую можно внедрить для проверки доступности ККТ:
// Пример логики проверки связи перед пробитием
Результат = МенеджерОборудованияКлиент.ВыполнитьКоманду(
ИдентификаторУстройства,
"GetStatus",
ПараметрыКоманды
);
Если Не Результат.Результат Тогда
Предупреждение("Связь с кассой потеряна! Перезапустите оборудование.");
Возврат;
КонецЕсли;
pinpad.ini для эквайринга.Выполнение этих шагов позволит стабилизировать работу торговой точки и исключить ситуации с двойными списаниями и потерей чеков.