Подключение торгового оборудования по 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%"); 
  Если НЕ СтрокаТО.ССБ_ИмяКлиента = ИмяКомпьютераКлиента Тогда 
    Продолжить; 
  КонецЕсли; 
КонецЕсли;

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

 

См. также

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    89860    105    39    

188

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

4800 руб.

27.02.2017    761709    4659    9495    

2780

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

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

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

8970 руб.

15.12.2015    165791    673    361    

385

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    209818    620    524    

438

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

2880 руб.

03.12.2018    54424    135    102    

160

54-ФЗ. Очередь печати для ККМ. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки.

5400 руб.

25.05.2015    315963    1839    3007    

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

Функция ПолучитьИмяКомпьютераТО() Экспорт
Если мИмяКомпьютера = Неопределено Тогда
мИмяКомпьютера = ВРег(ИмяКомпьютера());
Если Константы.ТорговоеОборудованиеИспользуетсяНаСервереТерминала.Получить() = истина тогда
мИмяКомпьютера = мИмяКомпьютера + "_"+глЗначениеПеременной("глТекущийПользователь");
КонецЕсли;
КонецЕсли;
Возврат мИмяКомпьютера;
КонецФункции // ПолучитьИмяКомпьютераТО()
pridecom; AgroTehnik; PLAstic; Serg2000mr; fixin; +5 Ответить
21. de0nis 441 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 4252 25.07.14 12:02 Сейчас в теме
Классная статья.
Спасибо, что подсказали, где в реестре посмотреть, какие ком-порты подключены.

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

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



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

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


А вообще конечно плохо что не почитал сразу комменты, вариант с виртуальным именем компьютера мне больше понравился. ;-)
23. Serg2000mr 310 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 208 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 154 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 3625 27.09.17 07:51 Сейчас в теме
(28) понравилась идея использовать тоже поле с разделителем. Но только в моём случае хоть сессия и терминальная, правильнее вышел разрез именно пользователя

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

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

    КонецЕсли;

    Возврат мИмяКомпьютера;
	
КонецФункции
Показать
37. rpgshnik 3625 28.09.17 04:52 Сейчас в теме
Статья писал очень давно. И метод не совем уже актуален. По этому кто прочитал комментарии тот молодец.
В связи с вводом новых документов кассовая смена, демонстрация кода (28) Сергея Капустина более актуальная, так как совершенно без болезненно для для документов кассовой смены работает.
29. bashhhh 25 15.06.16 12:11 Сейчас в теме
Кто-нибудь встречался с такой проблемой.
При подключение пользователя к УТ 10 режим кассира через RDP и при наличии оборудования, 1С вылетает с записью в дамп.
Пользователь RDP входит только в группу Пользователи удаленного рабочего стола.
При добавлении в группу Администраторы все работает нормально.
30. de0nis 441 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 3119 28.03.17 23:18 Сейчас в теме
Лучше выполнить этот кода в попытке, т.к. переменная среды доступна только в контексте терминального подключения и при вызове из локальных подключений может вызвать ошибку.


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

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

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

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