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

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