Подключение торгового оборудования по rdp.

14.08.13

Учетные задачи - Розничная торговля

Задача следующая, есть две розничные точки и центральная оптовая. Пользователи работают в терминале на Win Server 2003, база находится на центральной точке, розничные подключаются по интернету. Необходимо подключить сканеры штрих-кода в центральной точке на складе и Сканеры и ФР в розничных точках. При чем в розничных точках один сканер должен переподключаться между кассовым узлом и компьютером в приёмке. Сканеры ШК - Datalogic QuickScan I QM2100 (беспроводной), Honeywell Eclipse 5145, ФР - Штрих-М-ФР-К. Все устройства с интерфейсом USB.

1. Подключение сканеров Datalogic.

В самом начале, т.к. сканер беспроводной, необходимо подружить сканер с подставкой. Включаем подставку в USB и в соответсвии с руководством пользователя привязываем сканер к базе. Для этого необходимо считать управляющие штрихкоды и ввести ПИН-код сканера из 4-х цифр. Цифры задаём так же считывая штрих коды из таблицы, приведённой в руководстве. Т.к. сканеров у нас было несколько, то для каждого был заведён свой пин-код. После ввода пин-кода сканер сообщит о подключении к подставке радостным пиканьем :) Далее считываем управляющие штрихкоды для перевода сканера в режим "USB в эмуляции COM" и на всех рабочих станциях, где подключено оборудование установливаем драйвера эмуляции COM порта. Драйвера брали последние с официального сайта Datalogic. Сканер имеет три режима работы при потери связи с базой:

  1. При потери связи не передавать ничего. 
  2. Передавать считанные штрихкода при восстановлении связи 
  3. Собирает все штрих коды во внутренней памяти и выгружает на компьютер после считывания управляющего штрихкода о выгрузке.

Режимы настраиваются так же путём считывания управляющих штрихкодов из руководства. При тестировании второй режим не всегда передавал данные, в третьем так же были замечены потери данных при передаче (видимо 1С не успевает отрабатывать поток штрихкодов), оставили работать в первом режиме. В этом случае, если штрихкод не передан на базу, сканер сообщает длительным бипом, удачная передача сопровождается двойным бипом.

Проброс COM портов осуществляется установкой флажка порты на закладке локальные ресурсы rdp.

RDP

Так же на сервере необходимо проверить разрешение на подключение COM портов удалённого клиента: Администрирование-Службы терминалов-Конфигурация служб терминалов, закладка Параметры клиента:

Параметры клиента на сервере


Т.к. порты виртуальные, то на сервере в диспетчере  задач они не появляются, но исправно работают. Проверить, что порты подключены можно в реестре в ветке HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM или различными утилитами. Т.к. устройств несколько, то на каждой рабочей станции желательно присвоить им разные номера COM портов, что б при одновременном подключении они не комфликтовали.

Далее устанавливаем на сервере драйвер сканера штирхкода SCANOPOS и настраиваем сканеры в 1С как локальные.


2. Подключение сканера Honeywell.

Тут процедура по сути аналогичная, не требует заморочек с подключением подставки, но так же необходимо перевести сканер в режим "USB в эмуляции COM" путём считывание управляющего штрих кода и установить драйвера эмулятора на рабочих станциях. Тут возникла другая проблема в связи с тем, что сканеры переключаются между компьютером кассы и приёмке, при возвращении сканера на место слетает установленный в диспетчере устройств номер COM-порта. Сейчас реализовано следующее, сканер был определен во всех USB портах, далее в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\ находим нужное устройство, в нем подчинённые ветки для каждого USB порта, для каждого меняем параметр FriendlyName (влияет только на отображение устройства в диспетчере задач) и во вложенной ветке \Device Parameters\ меняем параметр PortName на нужный номер COM порта. Пока порты не слетали. Если будут другие предложения, готов обсудить.

3. Подключение ФР.

При подключении ФР Штрих в терминальном доступе, для корректной работы ФР в драйвере необходимо увеличить таймаут (в зависимости от скорости соединения порядка 1000~3000мс ) Рекомендую установить драйвер Штрих в начале локально на рабочей станции. Настроить параметры обмена и таймаут, потом передать выбранные параметры на ФР нажатием кнопки Установить параметры в настройках свойств драйвера. И только потом устанавливать драйвер на сервере и проверять соединение. Если на ФРе установлен маленький таймаут, то установка параметров сразу из терминала может не сработать, о чём драйвер не сообщает. 

Тест драйвера

По информации с сайта тех. поддержки Штриха, при использовании контроллера доменов, для корректного проброса COM портов необходимо что б рабочая станция вошла в домен иначе порт не пробрасывается. У нас проверить не получилось, т.к. используются рабочие группы и порты пробросились без проблем. 

4. Разделение оборудования по сессиям.

В типовых конфигурациях до сих пор не реализован механиз разделения оборудования по сессиям, и в нашем случае при открытии товарных документов любым пользователем, 1С пытается включить всё подключенное к текущему компьютеру оборудование (в нашем случае это 8 сканеров и два ФР) естественно сделать этого не может, о чём радостно сообщает пользователю несметным количеством ошибок. 

Было решено использовать следующий алгоритм. Т.к. оборудование подключено к рабочим станциям, то перед подключением оборудования получаем имя компьютера с которого подключается сеанс. Для этого обращаемся к переменной среды CLIENTNAME. В регистр сведений Торговое оборудование добавлено строковое поле ИмяКлиента. И в модуле обработки СерверТО в процедуре ПодключитьОборудование() добавлена проверка на совпадение имени подключенного клиента с именем клиента для оборудования:

// Добавим проверку по клиенту, если это терминал. 
Если ЗначениеЗаполнено(СтрокаТО.ССБ_ИмяКлиента) Тогда 
  WshShell = Новый COMОбъект("WScript.Shell"); 
  ИмяКомпьютераКлиента = WshShell.expandEnvironmentStrings("%CLIENTNAME%"); 
  Если НЕ СтрокаТО.ССБ_ИмяКлиента = ИмяКомпьютераКлиента Тогда 
    Продолжить; 
  КонецЕсли; 
КонецЕсли;

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

 

См. также

1С:Управление торговлей 8

Управление розничной торговлей (RMS) Торговля Типовые решения Оптовая торговля Розничная торговля Управление складом и логистикой (WMS) Торговля и логистика Платформа 1С v8.3 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

"1С:Управление торговлей 8" — это современный инструмент для повышения эффективности бизнеса торгового предприятия. "1С:Управление торговлей 8" позволяет в комплексе автоматизировать задачи оперативного и управленческого учета, анализа и планирования торговых операций, обеспечивая тем самым эффективное управление современным торговым предприятием.

26700 руб.

17.02.2016    90625    194    0    

161

SALE! 15%

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

33529 28500 руб.

21.04.2017    85017    71    38    

151

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

7800 руб.

15.12.2015    162068    609    361    

377

1С: Розница 8

Типовые решения Управление розничной торговлей (RMS) Торговля Розничная торговля Платформа 1С v8.3 Розничная и сетевая торговля (FMCG) Управленческий учет Платные (руб)

1С: Розница 8 предназначена для автоматизации бизнес-процессов магазинов. Данное решение предоставляет полный набор инструментов для учета, управления запасами, анализа продаж и оптимизации бизнес-процессов в розничных компаниях. Управляйте вашим бизнесом легко и эффективно с 1С:Розница. Закажите прямо сейчас и начните увеличивать продажи!

3600 руб.

17.02.2016    79681    146    5    

103

Конфигурация "Весовая ред. 3.0" для Платформы 8.3

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Логистика, склад и ТМЦ Торговля и логистика Платформа 1С v8.3 Сельское хозяйство и рыболовство Строительство Горнодобывающая промышленность Розничная и сетевая торговля (FMCG) Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Лесное и деревообрабатывающее хозяйство Управленческий учет Платные (руб)

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

30000 руб.

24.03.2015    118492    50    111    

124

Бонусная система для УТ 10.3

Управление взаимоотношениями с клиентами (CRM) Оптовая торговля Розничная торговля Платформа 1С v8.3 Оперативный учет Управляемые формы 1С:Управление торговлей 10 1С:Розница 2 Россия Управленческий учет Платные (руб)

Подсистема призвана упростить и автоматизировать процесс расчета и начисления бонусов покупателей. ОБНОВЛЕНИЕ ОТ 20.06.2022 г. Работает с конфигурациями 1С:УТ 10.3, 1С:Розница. Механизм реализован в начале 2013г. и работает до сих пор с постоянными совершенствованиями.

30000 руб.

02.11.2015    106811    206    87    

171

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    108333    28    112    

176
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. saiten 246 14.08.13 12:08 Сейчас в теме
ФР подключали через сервер печати драйвера или напрямую? Проблем со скоростью печати не было?
2. de0nis 387 14.08.13 12:50 Сейчас в теме
На прямую. По сути, как я понимаю сервер нужен для работы с несколькими источниками, тут такой задачи не было. Не большая задержка при печати есть, но не критичная.
3. EpiSH 10 14.08.13 15:55 Сейчас в теме
"В типовых конфигурациях до сих пор не реализован механиз разделения оборудования по сессиям, и в нашем случае при открытии товарных документов любым пользователем, 1С пытается включить всё подключенное к текущему компьютеру оборудование (в нашем случае это 8 сканеров и два ФР) естественно сделать этого не может, о чём радостно сообщает пользователю несметным количеством ошибок. "
Брешете. В УТ11 (и других конфигурациях на базе БСП) эта проблема давно решена. Но предложенное Вами решение я по умолчанию использовал на всех внедрениях УТ10.
4. de0nis 387 14.08.13 16:36 Сейчас в теме
Согласен.. Как-то про БСП даже не подумал. Спасибо за дополнение :) Последнее время всё комплексная, да УПП, для них собственно и писал. По-моему на обычных формах нигде ещё не сделано.
Ещё делали не некоторых проектах аналогичную привязку к пользователю, но тут надо было именно к клиенту привязаться, т.к. пользователи меняются.
5. MsDjuice 113 21.09.13 22:21 Сейчас в теме
Для теста перекидки на сервер СОМ портов я использовал команду на серваке "change port". Для теста устройств программу "HYPERTERMINAL". Может кому пригодится.
Spacer; oxygene; ABudnikov; +3 Ответить
6. de0nis 387 22.09.13 14:26 Сейчас в теме
(5) MsDjuice, к сожалению, по-моему, начиная с Win Vista HYPERTERMINAL не включен в стандартные. Не пробовали его запускать от старых версий на новых? Работает?
И по "change port", там проблема в том, что нам надо знать номер ком порта на клиенте. А т.к. у нас USB в эмуляции, то иногда номер ком порта может меняться. Решается исправлением ключей реестра.
7. MsDjuice 113 22.09.13 15:27 Сейчас в теме
HYPERTERMINAL от старых на новых не пробовал, качал триал версию, на сайте пишется что подходит для Вин 7,8. Ну так узнать номер Ком порта на клиенте не проблема.
8. de0nis 387 22.09.13 16:51 Сейчас в теме
(7) MsDjuice, Ну не проблема, если посмотреть в диспетчер задач. А если неопытный пользователь вытащил сканер и воткнул вместо него флешку и порт поменялся, то он сам не перенастроит потом всё. Т.е. нужен какой-то универсальный механизм, без перенастройки. Была идея сделать скрипт, который бы проверял все номера портов. Но в итоге остановились на изменении реестра.
9. fieryfist 15 10.11.13 18:32 Сейчас в теме
Если пользователь переподключается по rdp (потеря связи) у вас оборудование перестает работать?
10. de0nis 387 10.11.13 18:59 Сейчас в теме
(9) fieryfist, никто не жаловался, точно не могу сказать, но раз не жалуются, то работает. Обрывы связи точно были. Думаю тут может ещё от настроек терминала зависеть, разрешает ли в новый сеанс подключиться или новое соединение делает.
11. nolodin 51 04.02.14 22:41 Сейчас в теме
Ну, кстати, зря вы пишите, что нет гипертерминала в windows, начиная с Висты. Насчет именно Висты не могу точно сказать - может действительно там нет, но и в windows 7 и в 8 есть. Просто он отключен.
12. nolodin 51 04.02.14 22:41 Сейчас в теме
Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов windows - Клиент Telnet (ставим галочку).
PLAstic; RustIG; +2 Ответить
13. berator37 70 19.02.14 17:10 Сейчас в теме
Самое лучшее решение, это разделять оборудование не по сессиям, а по пользователям и запрещать для пользователя несколко сессий.
Проброс портов - это тривиальное решение.
14. de0nis 387 21.02.14 09:52 Сейчас в теме
(13) berator37, Разделять оборудование по пользователям - это полный бред, а не решение. Оборудование подключено к компьютеру, а не к пользователю. И ЛЮБОЙ пользователь входящий в терминал с этого компьютера должен иметь возможность работать с подключенным оборудованием. Это может и применимо для каких-то задач, но явно, не в описанной задаче.
Проброс может и тривиальное решение, за то рабочее. На научную диссертацию и не претендую, просто описал узкие места с которыми столкнулся сам и сталкиваются коллеги.
15. prohorp 28 12.03.14 08:08 Сейчас в теме
Здравствуйте!
Воспользовался вашим постом - все заработало, Спасибо!
Но почему-то после перезагрузки сервера оборудование становится недоступным из 1С.
Пишет что Порт недоступен (System Error. Code: 2.Не удается найти указанный файл)
Хотя при этом я открываю "драйвер ккм"(на удаленном рабочем столе) - там указываю порт нужный и нажимаю "Проверка связи" - успешно!
Это на терминальном сервере так.
Может дело в том что кассир(у которого ФР подключен) - заходит в 1С на терминале далеко не первый?
16. de0nis 387 12.03.14 12:48 Сейчас в теме
17. ASDF2 288 12.03.14 14:38 Сейчас в теме
Может кому пригодится идея: В моём случае связь по rdp была настолько плохой, что чек или выходил через минуту или не выходил вообще. Был сделан костыль - данные чека записывались в файл на фтп, у клиента небольшая программа проверяла наличие файла и если он появлялся, то данные отправлялись на ккм.
Костыль, но уже год работает:)
DimaP; dima_home; RustIG; +3 Ответить
18. de0nis 387 12.03.14 16:25 Сейчас в теме
(17) ASDF2, Да тоже как-то делали такую штуку. И еще для кассы и для ТСД, там вообще была беда с передачей большого объема данных. Идея рабочая ))
19. Tarlich 114 16.03.14 09:24 Сейчас в теме
я решаю так

Функция ПолучитьИмяКомпьютераТО() Экспорт
Если мИмяКомпьютера = Неопределено Тогда
мИмяКомпьютера = ВРег(ИмяКомпьютера());
Если Константы.ТорговоеОборудованиеИспользуетсяНаСервереТерминала.Получить() = истина тогда
мИмяКомпьютера = мИмяКомпьютера + "_"+глЗначениеПеременной("глТекущийПользователь");
КонецЕсли;
КонецЕсли;
Возврат мИмяКомпьютера;
КонецФункции // ПолучитьИмяКомпьютераТО()
pridecom; AgroTehnik; PLAstic; Serg2000mr; fixin; +5 Ответить
21. de0nis 387 19.03.14 09:56 Сейчас в теме
(19) Tarlich, Опять же привязка по пользователю. И если пользователю разрешено несколько сессий и они могут входить с других компьютеров, то не будет работать. Один и тот же пользователь будет подключаться к терминалу с разных рабочих станций - имя компьютера будет одинаковое. А в данном случае это постоянно, т.к. сотрудники меняются между магазинами. Нужно что б подключенное к рабочей станции оборудование работало для ЛЮБОГО пользователя.
20. goofma 2 19.03.14 02:50 Сейчас в теме
Решаю на Linux + RDP, подтверждаю ФР от Штрих так работают, даже с сервером ФР. C принтерами чеков, сканерами COM->TCP софтом на терминалах, на серве или в обратку TCP->COM (довольно устойчиво порты видны не только в сессии) или вовсе использую из 1с как IP:port.
22. fixin 4207 25.07.14 12:02 Сейчас в теме
Классная статья.
Спасибо, что подсказали, где в реестре посмотреть, какие ком-порты подключены.

Хочу добавить, что в процедуре Подключить оборудование нужно менять и запрос:

		Запрос = Новый Запрос(
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|    РегТО.Идентификатор       КАК Идентификатор,
		|    РегТО.Модель.Наименование КАК Наименование,
		|    РегТО.Модель              КАК Модель,
		|    РегТО.ИмяКлиента              КАК ИмяКлиента,
		|    РегТО.Параметры           КАК Параметры
		|ИЗ
		|    РегистрСведений.ТорговоеОборудование КАК РегТО
		|ГДЕ
		|    РегТО.Вид = &Вид
		|    И РегТО.Компьютер                      = &Компьютер
		|    И РегТО.Подключено
		|");
Показать



А также, чтобы удобно было настраивать в обработке ТОНастройка в процедуре ОткрытьФормуНастройки нужно дописать:

		Обработка.НастроитьОборудование(ТП.ТекущиеДанные.Модель, Параметры);
		Набор[0].Параметры = ЗначениеВСтрокуВнутр(Параметры);
		Попытка
			WshShell = Новый COMОбъект("WScript.Shell"); 
			Набор[0].ИмяКлиента = WshShell.expandEnvironmentStrings("%CLIENTNAME%"); 
		Исключение КонецПопытки;
		Набор.Записать();


А вообще конечно плохо что не почитал сразу комменты, вариант с виртуальным именем компьютера мне больше понравился. ;-)
23. Serg2000mr 163 11.02.15 03:08 Сейчас в теме
Я скомбинировал лучшее, что предложили автор статьи и комментатор Tarlich и сделал следующее:

Функция ПолучитьИмяКомпьютераТО() Экспорт

	Если мИмяКомпьютера = Неопределено Тогда
		мИмяКомпьютера = ВРег(ИмяКомпьютера());
                Если Константы.ТорговоеОборудованиеИспользуетсяНаСервереТерминала.Получить() = Истина тогда 
                         WshShell = Новый COMОбъект("WScript.Shell"); 
                         ИмяКомпьютераКлиента = WshShell.expandEnvironmentStrings("%CLIENTNAME%"); 
                         мИмяКомпьютера = мИмяКомпьютера + "_"+ ИмяКомпьютераКлиента;
                КонецЕсли;	
	КонецЕсли;

	Возврат мИмяКомпьютера;

КонецФункции // ПолучитьИмяКомпьютераТО()
Показать


Больше ничего и делать не нужно.
Тоже жалею, что не почитал вначале комментарии, сэкономил бы кучу времени
24. sancho86 1 18.03.15 21:59 Сейчас в теме
Кто-нибудь с ФР от Штрихов решил проблему с медленной печатью чеков.
Проверял просто из драйвера.
Тестовый стих из драйвера "Мой дядя самых честных правил..." печатается с очень большой задержкой. Пользовался только драйвером 4.10, Новые 4.11 и 4.12 еще не пробовал.
Короткие одиночные команды типа "печать x-отчета" проходят быстро, а с методом "Печать строки" какая-то борода...
Чек ККМ с длинными наименованиями, с именами клиентов и прочей строковой информацией печатается мелкими рывками.
Почему драйвер штриха так сильно критичен к пингу?
26. alexnikolas 63 18.08.15 11:08 Сейчас в теме
(24) sancho86,
если еще актуально, то скорее всего дело в скорости.
х-отчет скорее всего уходит на ФР как команда, а строка печатается возможно в графике - тогда вероятно выбрана скорость маленькая
33. rbsoft 203 18.01.17 17:21 Сейчас в теме
(24)
Наш вариант решения проблемы печати из RDP сессий: http://infostart.ru/public/544687/
Также попутно получаем возможность печати с нескольких рабочих мест на одном ККМ.
Реализована очередь печати, виртуальная контрольная лента, которую можно просмотреть через браузер (реализован мини-вебсервер для контроля и управления настройками по сети).
25. alexnikolas 63 18.08.15 11:05 Сейчас в теме
Можно запрос и не менять а в Функцию ПолучитьИмяКомпьютераТО() написать так

WshShell = Новый COMОбъект("WScript.Shell"); 
  	ИмяКомпьютера = WshShell.expandEnvironmentStrings("%CLIENTNAME%"); 
	Если (ИмяКомпьютера = "%clientname%") ИЛИ (ИмяКомпьютера = "Console") Тогда
		ИмяКомпьютера = ВРЕГ(ИмяКомпьютера());
	КонецЕсли;
	мИмяКомпьютера = ИмяКомпьютера;
		
	Возврат мИмяКомпьютера;


Здесь и определение на локальную машину без терминала
AlexKoso; Alexey55; +2 Ответить
27. IDija 153 28.09.15 14:13 Сейчас в теме
Коллеги кто сталкивался с проблемой печати ФР:
Пытаемся подключить удаленные магазины к работе в 1С:ERP. Пользователь подключается к терминальному серверу, пробрасываем com порт по VPN каналу. Настраиваем фискальный регистратор, оборудование проходит тестирование, при создании чека ККМ появляется сообщение, что фискальник подключен(зеленая галка), но когда пробиваем чек - печать чека не происходит.
В чем может быть причина?
31. пользователь 23.12.16 09:12
Сообщение было скрыто модератором.
...
28. kauksi 212 18.05.16 11:48 Сейчас в теме
Мой вариант:
1.снимаем галку ТолькоПросмотр с формы списка регистра сведений Торговое оборудование

2.в обработке ТОСервер меняем:

Функция ПолучитьИмяКомпьютераТО() 

	Если мИмяКомпьютера = Неопределено Тогда
	    мИмяКомпьютера = ВРег(ИмяКомпьютера());
	                     WshShell = Новый COMОбъект("WScript.Shell"); 
						 
						 ИмяКомпьютераКлиента = WshShell.expandEnvironmentStrings("%CLIENTNAME%"); 
						 
						 ИмяСессии = WshShell.expandEnvironmentStrings("%SESSIONNAME%");
						  
						 Если ИмяСессии="Console" Тогда
			             	//Имя Компьютера будет равно имени терминального сервера
						 Иначе	 
							  //Терминальный клиент
							  мИмяКомпьютера = мИмяКомпьютера + "_"+ ИмяКомпьютераКлиента;
						 КонецЕсли;
	          
	КонецЕсли;

	Возврат мИмяКомпьютера;
КонецФункции
Показать


редактируем в регистре ИмяКомпьютера по правилу: если это локальное подключение, то остается просто ИмяСервера, если терминал, то ИмяСервера_ИмяКомпаКлиента
35. rpgshnik 3490 27.09.17 07:51 Сейчас в теме
(28) понравилась идея использовать тоже поле с разделителем. Но только в моём случае хоть сессия и терминальная, правильнее вышел разрез именно пользователя

Функция ПолучитьИмяКомпьютераТО() Экспорт

    Если мИмяКомпьютера = Неопределено Тогда
		
        мИмяКомпьютера = ВРег(ИмяКомпьютера());		
        WshShell = Новый COMОбъект("WScript.Shell"); 						 
        ИмяПользователя = WshShell.expandEnvironmentStrings("%USERNAME%"); 
        мИмяКомпьютера = мИмяКомпьютера + "_" + ИмяПользователя;

    КонецЕсли;

    Возврат мИмяКомпьютера;
	
КонецФункции
Показать
37. rpgshnik 3490 28.09.17 04:52 Сейчас в теме
Статья писал очень давно. И метод не совем уже актуален. По этому кто прочитал комментарии тот молодец.
В связи с вводом новых документов кассовая смена, демонстрация кода (28) Сергея Капустина более актуальная, так как совершенно без болезненно для для документов кассовой смены работает.
29. bashhhh 25 15.06.16 12:11 Сейчас в теме
Кто-нибудь встречался с такой проблемой.
При подключение пользователя к УТ 10 режим кассира через RDP и при наличии оборудования, 1С вылетает с записью в дамп.
Пользователь RDP входит только в группу Пользователи удаленного рабочего стола.
При добавлении в группу Администраторы все работает нормально.
30. de0nis 387 20.06.16 15:19 Сейчас в теме
(29) bashhhh, попробуй отладчиком отловить в какой момент падает, скорее всего, думаю, не получается какую-нт дллельку драйвера подключить и падает в бесконечный цикл или самой длл не хватает прав для работы. Скоррее всего длл какую-то надо зарегистрировать в системе. В общем желательно отловить попытаться. Там правда есть нюанс с тем, что обработки обслуживания как внешние запускаются.
А как будет понятно в какой момент падает, там можно будет подумать что делать )
А группа обычные пользователи есть у него? Если опытного пользователя добавить тоже падает?
39. kuts85 13.06.19 16:41 Сейчас в теме
(29) У меня на 7.7 была такая ситуация с подключением сканера ШК.
Пришлось найти в реестре ветку
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\1C\TradeWare\ScanOPOS]
и добавить пользователя терминала, который работает с ТО, с правами на запись в данную ветку.
После этого все заработало.
32. пользователь 23.12.16 09:13
Сообщение было скрыто модератором.
...
34. CheBurator 3115 28.03.17 23:18 Сейчас в теме
Лучше выполнить этот кода в попытке, т.к. переменная среды доступна только в контексте терминального подключения и при вызове из локальных подключений может вызвать ошибку.


в попытку оборачивать может и не надо
при обращении к несуществующей переменной окружения вернется просто это заданное имя переменной, т.е. при выполнении на локальном ПК

ИмяКомпьютераКлиента = WshShell.expandEnvironmentStrings("%CLIENTNAME%");
в ИмяКомпьютераКлиента будет тупо содержаться строка "%CLIENTNAME%"
36. MrFlanker 213 27.09.17 16:00 Сейчас в теме
Не нашел готового решения, написал статью

https://infostart.ru/public/678851/

для подключения оборудования отдельным RDP пользователям.
38. rpgshnik 3490 28.09.17 10:19 Сейчас в теме
Странно готовое решение было в комментариях здесь, решил резюмировать и актуализировать отдельно - https://infostart.ru/public/679048/ на мой взгляд самый простой вариант и без сильных травм для конфиги
Оставьте свое сообщение