Странности с подключением Штрих-М

В одной из отраслевых конфигураций «1С: Управление аптечной сетью» столкнулся с проблемой подключения фискального регистратора ШТРИХ-М-01Ф. Но думаю, проблема общая для всех типовых, написанных на БПО и Штрих-М.

При подключении фискальника возникала ошибка:

Ошибка получения параметров драйвера.
Метод объекта не обнаружен (ПараметрыОборудованияАсинх)
{ОбщийМодуль.ПодключаемоеОборудованиеДрайверКлиент.Модуль(462)}:РезультатВызова = Ждать ОбъектДрайвера.ПараметрыОборудованияАсинх(ПараметрыПодключения.ТипОборудованияИмя, ПараметрыДрайвера); // Структура
{ОбщийМодуль.ПодключаемоеОборудованиеДрайверКлиент.Модуль(435)}:Результат = Ждать ПараметрыДрайвераАсинх(ОбъектДрайвера, ОписаниеДрайвера, ПараметрыПодключения);

Проблем идет от драйвера кассы, у него не поддерживается метод ПараметрыОборудованияАсинх. Ошибка происходит здесь:

Драйвер Штрих-М стоит последний 5.18.0.1089:

Конфигурация тоже последняя.

Проверил на страницах Штриха и 1С:
https://solutions.1c.ru/catalog/pharmacy-chain
https://shtrih-m-nsk.ru/technical-library/drayvera-i-proshivki-dlya-on-line-kkm

В подключаемом оборудовании выбираю последний драйвер Штрих-М 5.17.

И тем не менее. Идей нет, поэтому пробую подменить в отладчике ревизию интерфейса на 4000. При этом подключается.

Пишу расширение, где меняю ревизию интерфейса. Из-за причуд 1С приходится втыкать его совершенно в неудобное место и еще подменять результат вызова на структуру. Расширяю модуль ПодключаемоеОборудованиеДрайверКлиент, этот участок кода:

&Вместо("ЗавершитьЗаписьЛогаОперации")
Функция здрвшм_ЗавершитьЗаписьЛогаОперации(ЗаписьЛога, РезультатВызова, ИдентификаторыИсходящихПараметров)
	Результат = ПродолжитьВызов(ЗаписьЛога, РезультатВызова, ИдентификаторыИсходящихПараметров);
	//Осипов - меняем ревизию интерфейса
	Если ТипЗнч(ЗаписьЛога) = Тип("Структура") И 
		ЗаписьЛога.Свойство("Оборудование") И 
		ЗаписьЛога.Свойство("Операция") И 
		Найти(ЗаписьЛога.Оборудование, "ШТРИХ-М:ККТ") <> 0
		И ЗаписьЛога.Операция = "GetInterfaceRevision"
		Тогда                
		
		//Подменяем результат вызова РезультатАсинхВызоваВнешнейКомпоненты  на аналогичную структуру
		РезультатВызова = Новый Структура("Значение, Параметры", 4000, Новый Массив());
	КонецЕсли;
	Возврат Результат;
КонецФункции

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

Неправильная попытка подмены ревизии интерфейса

Это простой путь, но до этого я пошел другим пытался в разных местах подменять, тест драйвера проходил, но смена не открывалась. Опять расширял модуль ПодключаемоеОборудованиеДрайверКлиент:

&Вместо("РевизияИнтерфейсаАсинх")
Асинх Функция здрвшм_РевизияИнтерфейсаАсинх(Знач ОбъектДрайвера, Знач ПараметрыПодключения)
	//Для Штрих-М возвращаем более раннюю версию ревизии интерфейса, без асинхронных драйверов
	Если Найти(Строка(ОбъектДрайвера), ".SMDrvFR1C4") <> 0 Тогда
		Возврат 4000;
	КонецЕсли;
	Результат = ПродолжитьВызов(ОбъектДрайвера, ПараметрыПодключения);
КонецФункции

&Вместо("ПараметрыДрайвераАсинх")
Асинх Функция здрвшм_ПараметрыДрайвераАсинх(Знач ОбъектДрайвера, Знач ОписаниеДрайвера, Знач ПараметрыПодключения)
	Если Найти(ПараметрыПодключения.ИмяМакетаДрайвера, ".ДрайверШтрихМККТ") <> 0 Тогда
		ПараметрыПодключения.РевизияИнтерфейса = 4000;
	КонецЕсли;
	Результат = ПродолжитьВызов(ОбъектДрайвера, ОписаниеДрайвера, ПараметрыПодключения);
	Возврат Результат;
КонецФункции

Остался вопрос, как это решить правильно? Вообще Штрих-М в последнее время маргинализируется, все сложнее с ним работать. Как бы не остался один монополист Атол.

Среда: 1С Управление аптечной сетью, редакция 11.5 (11.5.21.120) Платформа: 8.3.26.1540 Объем: 1 час

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

комментариев 9

  1. Томми:

    Поставьте драйвер не последний 5.18
    А 5.17, если у них нет усн днс и все должно завестись с коробки

    • сделал пока так. если буду еще с ними работать, поставлю 5.17. Там была проблема — сайт Штрих-Ма лежал.
      Я по Штрих-М не особо спец, больше по Атолу, он чаще встречается.

  2. Николай:

    Добрый день. Сделал по вашему пути Тест касса проходит, но вот у пользователя теперь выбивает
    Не удалось подключить устройство (‘ШТРИХ-М:ККТ с передачей данных в ОФД (ФФД 1.2) 5.17’ на ЛевочкинаОВ;(sstem-6069) 5_17): Ошибка вызова метода драйвера .
    Метод объекта не обнаружен (ПодключитьОборудованиеАсинх)
    {ОбщийМодуль.ПодключаемоеОборудованиеДрайверКлиент.Модуль(675)}:РезультатВызова = Ждать ОбъектДрайвера.ПодключитьОборудованиеАсинх(ПараметрыПодключения.ИДУстройства,

    [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]».

    Ставили 5.18 версию драйвера та же проблема.

    • рекомендую воспользоваться отладчиком и заизолировать этот вызов. Или может вы расширение в безопасном режиме запускаете и оно не срабатывает.
      там все на клиенте, отладка даже в SQL базах сработает.

  3. Дмитрий:

    Мне помогло установка драйвера «POSCenter: Драйвер ФР. Версия 5.20» вместо драйвера «ШТРИХ-М: Драйвер ФР. Версия 5.17» (с последующим подключением нового экземпляра оборудования), так как даже на форме подключаемого оборудования было сообщение, что драйве устарел

  4. Сергей:

    Большое спасибо, очень помогло!

  1. 13.09.2025

    […] сталкивался с похожей проблемой на этих […]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *