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

В одной из отраслевых конфигураций «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 час

fixin

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

Читайте также:

комментария 2

  1. Томми:

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

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

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

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