Подключение ККТ (Торгового оборудования) в разрезе Пользователя или Клиента RDP

Оборудование - ККМ

Старые конфигурации (Комплексная автоматизаци 1.1, УТ 10.3...) не поддерживают разрез пользователей или клиентов RDP при подключение кассового оборудования. Решил немного освежить идею статьи https://infostart.ru/public/197612/ и комментарии Сергея Муравьёва и Сергея Капустина собрав воедино. В этой статье-заметке вы узнаете, как с минимальными доработками изменить видимость ККТ в разрезе пользователей или терминальных сессий по RDP даже с вводом новых документов по работе с ККТ.

Задача: Установить доступ видимости ККТ в разрезе пользователей.

Нашел замечательную статью - //infostart.ru/public/197612/ по всей видимости Денис Аграновский к ней потерял интерес, поэтому комментарии к статье оказались намного актуальнее. Так как статья написанна в 2013 году, уже много что поменялось. Особенно понравились комментарии  Сергея Муравьёва и Сергея Капустина. Их код в принципе довольно актуальный несмотря на то, что был написанн в 2015 и 2016 гг, а сейчас на дворе 2017 и был введён новый документ "Кассовая смена" для работы с ККТ! Правильно сказал Сергей Муравьев, что с изменением типового регистра сведений на добавление новых ресурсов придёт и к изменению запросов, а теперь и документов.

По этому Сергей Муравьёв предложил использовать ресурс "Компьютер" и для других разрезов, используя разделитель. Допустим "_" вполне устраивает многих.

Для удобства работы с ККТ и его настройкой я изменил форму обработки, выведя поля "Компьютер" для последующего изменения. Можно, конечно, снять режим просмотра с регистра сведений "Торговое оборудование" и изменять там, кому как удобнее. Но администраторы ККТ используют эту обработку при подключении новых ККТ в моём случае.

Оригинальный код Сергея Капустина - разрез терминальных сессий:

Комментарий: данный код позволяет для обычных не терминальных пользователей записывать компьютеры локальные "ИмяКомпьютера", а для пользователей, работающих на терминале, запись ведется типа "ИмяСервера_ИмяКлиентаКомпьютера" в результате чего теримнальные пользователи больше не видят сумасшедший список подключенных ККТ.

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

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

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

Моя интерпретация - разрез пользователей:

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

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

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

    КонецЕсли;

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

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

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

Можно расширить количество разрезов, добавив, допустим, ИмяСервера_ИмяКлиента_ИмяПользователя, можно расширять и модифицировать  дальше при необходимости.

Главное удобство - это работает с минимальными изменениями в связи с вводом новых документов для работы с ККТ.

См. также

Комментарии
1. Евгений Смирнов (smirnov.es) 14 28.09.17 09:21 Сейчас в теме

Но все-таки, переходите уже на УФ
ogre2007; dj_serega; Sergafan10; Dmitri93; Interrupted; rpgshnik; +6 Ответить
2. Дмитрий Котов (rpgshnik) 89 28.09.17 09:25 Сейчас в теме
Будем, но видимо не так скоро))
3. Alex (user703659_elvan.1c) 28.09.17 13:26 Сейчас в теме
Для АТОЛ-а 55Ф не получается фокус в "Комплексной автоматизации" 1.1.90.1, а для эмулятора ККТ и принтера чеков(ReceiptPrinter.epf) - все замечательно. Для АТОЛ-ов находит обработку у кого нибудь?
Прикрепленные файлы:
4. Дмитрий Котов (rpgshnik) 89 28.09.17 13:41 Сейчас в теме
(3)хм... Доработки не было? По идее ресурс Компьютер используют все... Если конечно атоловская обработка не работает иначе. В моем случае эмулятор и штрих-мовские отработали на ура.
Попробую посмотреть, интересно.
5. Alex (user703659_elvan.1c) 28.09.17 14:34 Сейчас в теме
Доработки ТО не было. Я имя компьютера составляю добавляя имя пользователя в транслитерации. 3 года назад поставил успешно(для ТСД).
Прикрепленные файлы:
8. Дмитрий Котов (rpgshnik) 89 29.09.17 05:13 Сейчас в теме
(5) Какая-та допись у вас видимо, может из-за неё какой конфликт
Прикрепленные файлы:
6. Alex (user703659_elvan.1c) 28.09.17 15:15 Сейчас в теме
мИмяКомпьютера = ВРег(ИмяКомпьютера())+"#"+Элв_ДополнительныйМодуль.ПолучитьСтрокуНаЛатинском(ВРег(ИмяПользователя()));
9. Дмитрий Котов (rpgshnik) 89 29.09.17 05:24 Сейчас в теме
(6) Специально скачал обработку АТОЛ ККТ
Подключил три кассы АТОЛ (выделил зеленым)
Всё работает нормально.
Я думаю вам стоит посмотреть код своих доработок (которые вы отметили красным).
Прикрепленные файлы:
12. Alex (user703659_elvan.1c) 29.09.17 09:56 Сейчас в теме
Спасибо (9). Проверю. Вероятно обработка Атоловская не находит ИмяПользователя() . Попробую
через имя компьютера.
20. Alex (user703659_elvan.1c) 03.10.17 12:56 Сейчас в теме
(12) ШтрихМ-овская обработка ККТ последняя (1.7) с составным определением имени компьютера , используя ИмяПользователя(), работает. Проверил
7. Ivan Veres (MrFlanker) 111 28.09.17 16:00 Сейчас в теме
Данный код для кнопочки откроет регистр сведений "ТорговоеОборудовние" с разрешением изменять вручную.


Процедура кнРегТОНажатие(Элемент)
	// Вставить содержимое обработчика.
	Форма = РегистрыСведений.ТорговоеОборудование.ПолучитьФорму("ФормаСписка");
	Форма.ЭлементыФормы.РегистрСведенийСписок.ТолькоПросмотр = Ложь;
	Форма.ЭлементыФормы.РегистрСведенийСписок.ИзменяетДанные = Истина;
	Форма.Открыть();
	
КонецПроцедуры


Показать
rpgshnik; +1 Ответить
10. Ivan Khorkov (vano-ekt) 936 29.09.17 08:11 Сейчас в теме

и подключить ККТ в разрезе пользователей
ogre2007; dj_serega; swimdog; Winstoncuk; user621724_Dimav1979; Interrupted; rpgshnik; +7 Ответить
11. Дмитрий Котов (rpgshnik) 89 29.09.17 08:21 Сейчас в теме
(10)
Прикрепленные файлы:
ogre2007; dj_serega; Winstoncuk; Smirnov1980; Interrupted; +5 Ответить
13. Владислав Фёдоров (feva) 81 29.09.17 14:40 Сейчас в теме
А есть видео где она ставит ККТ онлайн без ОФД и ИТС?
dj_serega; myALKleon; vano-ekt; rpgshnik; +4 Ответить
14. Дмитрий Васильев (user621724_Dimav1979) 202 30.09.17 06:06 Сейчас в теме
(13) А есть видео где она ставит ККТ онлайн без ОФД и ИТС?
Прикрепленные файлы:
asmuk; feva; rpgshnik; vano-ekt; +4 Ответить
15. Дмитрий Котов (rpgshnik) 89 30.09.17 06:43 Сейчас в теме
16. @Lexandr Zubov (@lexandr) 121 01.10.17 15:47 Сейчас в теме
Помоему данная статья дублирует уже существующую Настройка торгового оборудования. Вней я привел несколько вариантов решения проблемы подключения торгового оборудования в терминальном режиме на неуправляемых формах.
17. Дмитрий Котов (rpgshnik) 89 02.10.17 04:11 Сейчас в теме
(16) по моему моя статья, на что я и ссылаюсь, резюме статьи https://infostart.ru/public/197612/ (которая датирована 2013 г. и явно появилась раньше вашей). А ваша статья с заголовком "Настройка торгового оборудования в конфигурации "Управление торговлей" ред. 10.3 при работе в терминальном режиме" узко направленная, или правильно называйте статьи чтобы было легче их искать.
18. Роман Ложкин (webester) 24 02.10.17 09:11 Сейчас в теме
Краткое содержание для тех кому лень читать:
В функции определения компьютера автор к имени клиентского компа, добавил еще имя пользователя. Собственно все. Непонятно почему так коротко получилось? Где история, как делали раньше, где истории как мучались клиенты? Больше воды, богу воды!
rpgshnik; +1 Ответить
19. Дмитрий Котов (rpgshnik) 89 02.10.17 09:23 Сейчас в теме
(18) да не говорите, можно было налить воды, как у нас один пользователь распечатал чек с одного региона на кассу другого региона :D геморроя было много.
22. Максим Сальников (maksimkatula) 04.10.17 08:12 Сейчас в теме
(19) Ага, такая же фигня была, печатают чек, не вылезает, в другой комнате ФР весело штампует чеки))) Спасибо за статью, в это плане и шёл, так как в БП 3.0 разрез пользователь идёт :-)
rpgshnik; +1 Ответить
21. Denger (Denger) 04.10.17 08:10 Сейчас в теме
УТ 10.3, сделал немного по другому, ТОСервер-ПодключитьОборудование в запрос добавил строки
Если СокрЛП(Вид)="ККТ с передачей данных" тогда // ККТ с передачей данных
Запрос.Текст=Запрос.Текст+"И РегТО.КассаККМ = &Касса";
Запрос.УстановитьПараметр("Касса", УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяКассаККМ"));
КонецЕсли;
mevgenym; rpgshnik; +2 Ответить
23. Дмитрий Котов (rpgshnik) 89 04.10.17 08:29 Сейчас в теме
24. Nikolay Kh (Ankare) 05.10.17 18:16 Сейчас в теме
Александра не перестает удивлять своими новыми профессиями. Главное перспективно
dj_serega; rpgshnik; +2 Ответить
Оставьте свое сообщение