Добрый день, Коллеги!
У нас 1С Бухгалтерия Предприятия 3.0 и 'АТОЛ:ККТ с передачей данных в ОФД (54-ФЗ) 9.Х'
ККТ подключен к серверу 1С по Ethernet, драйверы ККТ стоят на сервере и обработка обслуживания ККТ подключена в 1С.

Ваяю программу для автоматической печати чеков на ККТ после сканирования кассиром штрихкода заказа.
Штрихкод сканируется, документ для печати в 1С находится, но когда дело доходит до печати чека возникает ошибка:
При выполнении операции произошла ошибка: Ошибка вызова метода <ОбъектДрайвера.ПолучитьПараметрыККТ>.
{ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Модуль(1394)}: Метод объекта не обнаружен (ПолучитьПараметрыККТ)

Как будто объект драйвера не виден 1Су
Точнее в отладчике переменная ОбъектДрайвера есть и ее значения заполнены, но метода ПолучитьПараметрыККТ модуль 1С у этого объекта не видит (

Айнидхелп.
Есть идеи, как из модуля формы документа "Розничная реализация (Чек)", а точнее из модуля внешней обработки заставить ККТ печатать чек?
Без физического нажатия кассиром кнопки "Принять оплату"?

Я вызываю команду (с признаком "Экспорт") формы документа "Розничная реализация (Чек)" с заранее подготовленными параметрами: Форма.ПринятьОплатуЗавершение(СтруктураРезультата,ДополнительныеПараметры);
Где Форма - это основная форма нужного документа (который нужно напечатать на чеке)
---
В итоге решил запускать в сеансе кассира обрабочик ожидания.
В этой процедуре при нахождении файла открываю этому же кассиру соответствующий документ.
---
в отладчике переменная ОбъектДрайвера есть и ее значения заполнены, но метода ПолучитьПараметрыККТ модуль 1С у этого объекта не видит Значит, либо старый драйвер, либо криво установился. Найти актуальную версию и переустановить.
(7) Процедуры ОбъектДрайвера.ПолучитьПараметрыККТ вообще нет в 1С" - а где она тогда? В драйвере (должна быть). Только это не процедура, а метод.
---
Сначала, разумеется, получаю объект формы:
форма=док.ПолучитьФорму("ФормаДокументаОбщая");
док - найденный документ, который печатаем на чеке.

(8) вчера ставили драйвера, должны быть свежие. Перетру вопрос с админом еще раз.

Версии, если это важно:
1С:Предприятие 8.3 (8.3.11.2867)
Бухгалтерия предприятия, редакция 3.0 (3.0.54.20)
---
Тем временем тест устройства в 1С выполняется успешно...
Только устройство добавлено пользователем Администратор в управляемом приложении, а печать чека выполняется пользователем Программист в обычном приложении. Но это же не важно?
---
Добрый день! Озвучьте пожалуйста номера релизов платформы и бухгалтерии предприятия...
---
скорее всего в модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент стоит галка клиент, а процедура ПолучитьПараметрыККТ лежит на сервере
---
Процедуры ОбъектДрайвера.ПолучитьПараметрыККТ вообще нет в 1С.
Видимо эта процедура вызывается 1С-ом из драйвера ККТ.
---
Установил галку Сервер у модуля ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.
Всё равно та же ошибка...
---
не понял - вы вызываете так? Форма.ПринятьОплатуЗавершение(СтруктураРезультата,ДополнительныеПараметры)
если не ошибаюсь, то надо получить объект и так вызывать процедуру.
"Процедуры ОбъектДрайвера.ПолучитьПараметрыККТ вообще нет в 1С" - а где она тогда?
---
Админ отчитался насчет драйвера ККТ.
Преставить драйвер не проблема.
Сейчас стоит 8,16,01 последняя версия
---
Что характерно, при работе с ККТ из 1С "вручную", смена открывается и чеки печатаются.
Это говорит о том, что драйвер в порядке. Что именно не в порядке, этого пока не могу понять
---
Я не силен в клиент-серверных технологиях 1С. Возможно, проблема как раз в том, что с клиента не получается вызвать какие-то серверные методы.
Сеанс 1С работает на сервере 1С в режиме толстого клиента.
Процедура во внешнем модуле *.epf не имеет пометок &НаСервери и &НаКлиенте.
Как я понимаю, это говорит о том, что она работает в клиентском режиме.
Из нее без проблем вызываются встроенные клиентские модули 1С, такие как МенеджерОборудованияКлиентПовтИсп.ПолучитьСписокОборудования или Форма.ПринятьОплатуЗавершение

Проблема возникает только во встроенных модулях:
При выполнении операции произошла ошибка: Ошибка вызова метода <ОбъектДрайвера.ПолучитьПараметрыККТ>.
{ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Модуль(1394)}: Метод объекта не обнаружен (ПолучитьПараметрыККТ)
(не критичная)

{ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Модуль(141)}: Метод объекта не обнаружен (Отключить)
 ОбъектДрайвера.Отключить(ПараметрыПодключения.ИДУстройства);
(критичная, выполнение процедуры прекращается)
---
посмотри внимательно как ты инициализируешь объект драйвера

там версия берется из другого места типа защита от копирования кода

пример

    ПараметрыПодключения = Новый Структура;
    ПараметрыПодключения.Вставить("ВерсияФорматаОбмена", 2002);
    ПараметрыПодключения.Вставить("ИДУстройства", "");
    ПараметрыПодключения.Вставить("ПараметрыРегистрации", Новый Структура);
    ПараметрыПодключения.Вставить("РевизияИнтерфейса", 1001);
    ПараметрыПодключения.Вставить("ТипОборудования", "СканерШтрихкода");

```1c
    //ОбъектДрайвера.УстановитьПараметр(ИмяПараметра, Значение);

    Попытка

    ОбъектДрайвера.УстановитьПараметр("EquipmentType", "СканерШтрихкода");
    Исключение
    Сообщить("Ошибка обращения к драйверу для установки парметра");
    Возврат;
    КонецПопытки;
    ОбъектДрайвера.УстановитьПараметр("COMEncoding", "UTF-8");
    ОбъектДрайвера.УстановитьПараметр("DataBits", 8);
    ОбъектДрайвера.УстановитьПараметр("Port", 0);
    ОбъектДрайвера.УстановитьПараметр("Prefix", -1);
    ОбъектДрайвера.УстановитьПараметр("Speed", 9600);
    ОбъектДрайвера.УстановитьПараметр("StopBit", 0);
    ОбъектДрайвера.УстановитьПараметр("Suffix", 13);
    ОбъектДрайвера.УстановитьПараметр("Timeout", 75);
    ОбъектДрайвера.УстановитьПараметр("TimeoutCOM", 5);
```
---
Инициализацию ОбъектаДрайвера стянул когда-то из типовых модулей, она работает без вопросов:

```1c
    ОбъектДрайвера = Неопределено;
    ДанныеДрайвера = МенеджерОборудованияВызовСервера.ПолучитьДанныеДрайвера(док.ИдентификаторУстройства.ДрайверОборудования);

    ДрайвераПодключаемогоОборудования=Новый Массив;
    ДрайвераПодключаемогоОборудования.Добавить(Устройство.ДрайверОборудования);
    глПодключаемоеОборудование=Новый Структура("ПараметрыПодключенияПО,ДрайвераПодключаемогоОборудования",СписокОборудования,ДрайвераПодключаемогоОборудования);
    глПодключаемоеОборудование.ДрайвераПодключаемогоОборудования.Добавить(ДанныеДрайвера.ДрайверОборудования);

    Для Каждого ДрайверПО Из глПодключаемоеОборудование.ДрайвераПодключаемогоОборудования Цикл
    Если ДрайверПО = ДанныеДрайвера.ДрайверОборудования Тогда
    ОбъектДрайвера = ДрайверПО;
    Прервать;
    КонецЕсли;
    КонецЦикла;
```
---
За отсутствием решения пойдем другим путём.
Подскажите, как из регламентного задания можно открыть форму документа в сеансе конкретного пользователя?

Кассир сбрасывает файл со штрихкодом на диск, регламентное задание находит этот файл и находит нужный документ по номеру.
Теперь нужно показать кассиру форму этого документа, из которого она будет своими ручками печатать чек.
---
В итоге решил запускать в сеансе кассира обрабочик ожидания.
В этой процедуре при нахождении файла открываю этому же кассиру соответствующий документ.
---
Вся обвязка с ТО недоступна на сервере.