|
Проблема с подключением к ККМ | ☑ | ||
---|---|---|---|---|
0
Григорополисец
29.01.24
✎
18:44
|
Здравствуйте, уважаемые форумчане!
Пытаюсь подключиться к ККМ «Штрих ON-LINE». Для этого прописываю следующий код. Если ЗначениеЗаполнено(ЭтаФорма.СтрокаДляПечати) Тогда Попытка Аппарат = Новый COMОбъект("AddIn.Drvfr"); Аппарат.StringForPrinting = ЭтаФорма.СтрокаДляПечати; Аппарат.PrintString(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; При исполнении метода .PrintString() ничего не происходит: ККМ не отзывается. Хотя из утилиты «Тест драйвера ФР» эту же операцию можно выполнить. Получается, что утилита ККМ видит. А в 1С вроде бы попытка обратиться к драйверу ККМ успешная, но к самому устройству команды не идут. Ещё в отладчике при просмотре переменной «Аппарат» видно, что COM объект создан, свойства у него все отображаются. Но напротив таких свойств, как ResultCodeDescription, ModelParamCount, JournalRowCount и т.д., высвечивается «Произошла исключительная ситуация (Addin.DrvFR): СOM порт недоступен». Я думаю, проблема тут. Но как с этим бороться, не могу и представить. Системные администраторы сказали, что ККМ подключен правильно. Да я и сам это вижу, ведь тестовая утилита прекрасно обменивается с ККМ информацией и командами. Сам ККМ физически подключен к ПК через USB-порт, но по системе rndis. Это со слов айтишников. Может, кому известна такая проблема? Хотя бы понимать, куда копать. Благодарю всех за уже уделённое время! P.S. Платформа у нас не новая. Но вполне рабочая: 8.3.10.2667. Конфигурация тоже древняя, но вполне рабочая: Розница, редакция 1.0 (1.0.10.4). |
|||
1
Григорополисец
29.01.24
✎
18:50
|
Полагаю, в коде надо как-то дополнительно прописать адресацию. Но, читая подобные статьи на форумах, везде начинают алгоритмы с Новый COMОбъект("...");
|
|||
2
Garykom
гуру
29.01.24
✎
19:37
|
Аппарат = Новый COMОбъект("Addin.DRvFR"); Аппарат.Password = "30"; Если Аппарат.Connect() <> 0 Тогда Возврат; КонецЕсли; Аппарат.StringForPrinting = ЭтаФорма.СтрокаДляПечати; Аппарат.PrintString(); Аппарат.Disconnect(); |
|||
3
Волшебник
29.01.24
✎
19:53
|
(2) Ого! Что-то новенькое? А... Нет... Опять Новый COMОбъект
|
|||
4
Галахад
гуру
30.01.24
✎
09:15
|
Попробуй руками установить номер порта:
Аппарат.ComNumber = Номбер; |
|||
5
Григорополисец
30.01.24
✎
11:52
|
(2) Нет, Аппарат.Connect() возвращает -2.
|
|||
6
Григорополисец
30.01.24
✎
11:55
|
(4) Я сейчас просмотрел способ подключения. ККМ подключена не локально, а методом, как на картинке по ссылке ниже.
https://disk.yandex.ru/i/eeIuKyqqtmbf3Q Вот отсюда все проблемы, полагаю... |
|||
7
Garykom
гуру
30.01.24
✎
12:01
|
(5) Ну раз не коннект то открывай мануал (скачать на сайте штрих-м, да придется поискать там)
и ищи как твои настройки (6) задать раз он дефолтные из теста не цепляет |
|||
8
Григорополисец
30.01.24
✎
12:02
|
(4) перебили на локальное соединение. Заработало. Благодарю!
Но проблема в том, что у нас в разных местах стоят одинаковые ККМ с разными способами настройки: где-то локально, где-то через TCP-сокет. В моём примере изначально был TCP-сокет. На всех форумах упор делается на создание COM Объекта. А вот как прописать правильные параметры соединения, чтобы обращаться к устройству именно через TCP, ума не приложу |
|||
9
Григорополисец
30.01.24
✎
12:05
|
(7) Благодарю! Читаю и смотрю их примеры. У них есть код для 1С, но там тоже через COM Объект. А вот подробностей никаких особенно. Смотрю в руководстве программиста.
|
|||
10
Garykom
гуру
30.01.24
✎
12:07
|
(8) Какие еще форумы?
Прочтите наконец https://www.shtrih-m.ru/support/download/?section_id=all&product_id=all&type_id=all&searchDownloads=%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80+%D0%9A%D0%9A%D0%A2 |
|||
11
Garykom
гуру
30.01.24
✎
12:11
|
В описании Connect все есть
|
|||
12
Галахад
гуру
30.01.24
✎
12:30
|
Аппарат.UseIPAddress = True;
Аппарат.IPAddress = Адрес; Аппарат.TCPPort = Порт; |
|||
13
Garykom
гуру
30.01.24
✎
12:52
|
(12) ConnectionType забыл
0 Локально 1 Сервер ККМ (TCP) 2 Сервер ККМ (DCOM) 3 ESCAPE 4 Не используется 5 Эмулятор 6 Подключение через ТСР-сокет |
|||
14
Григорополисец
01.02.24
✎
11:17
|
(10) Здравствуйте!
Прочитал. Алгоритм, конечно, у ПО фискального регистратора для меня оказалось не сразу понятным: исполнение метода передаёт результат не во внутреннюю переменную выполняемой процедуры 1С, а записывает её в свойство COM-объекта. И вот оттуда уже надо считывать в переменную. Красиво придумано!) |
|||
15
Григорополисец
01.02.24
✎
11:19
|
(12) Да, благодарю Вас! Помогло. Собственно, как отметили Ваши коллеги выше, в руководстве всё написано. Хотя для новичка было немного сложновато.
|
|||
16
Григорополисец
01.02.24
✎
11:19
|
(13) Это тоже учёл. Благодарю!!!
|
|||
17
Григорополисец
01.02.24
✎
11:20
|
В целом задача решена! Спасибо за помощь всем!!!!!!!!!!!!!!!!!!!!!!!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |