Подключение касс к УТ 10.3

1. Сергей Куштинов (obmanOZ) 1 30.12.16 11:03 Сейчас в теме
Доброго дня!
Ребят, ВЫ может знаете методику подключения касс к УТ 10.3 ? У меня просто в магазине 5 касс.... 3 физических и 2 эмулятора будет. Я просто пробовал под одной настраивать кассу... потом заходил на другом компе в 1С а она ругается что касса не подключена.. т.е. получается она пытается найти кассу с того компа...
Так ведь не должно быть.. я где то туплю... может быть что тут принцип ТИСа 9.2 ? Тобишь я допустим создам пользователя "НастройкаКасс" дам ему полные права... и буду на каждом компе им заходить и настраивать кассы?
Я пробовал заходить на терминальные сервер под разными пользователями, П1 и П2 ... первому ставлю в настройках Кассу1 второму ставлю Кассу2 . возвращаюсь к первому открываю настройку у него в торговом оборудовании стоит Касса2...
Найденные решения
11. Сергей Куштинов (obmanOZ) 1 30.12.16 11:48 Сейчас в теме
Судя по гуглу я не один с такой проблемой.. парень предлагает вот так сделать

Функция ПолучитьИмяКомпьютераТО() Экспорт
   //((заменим на имя физического компа 
	//типовой код комментируем. 
	//Если мИмяКомпьютера = Неопределено Тогда
	//	мИмяКомпьютера = ВРег(ИмяКомпьютера());
	//КонецЕсли;
     Если мИмяКомпьютера = Неопределено Тогда
        WSS = Новый COMОбъект("WScript.Shell");
        WSSE = WSS.Environment("Process");
        мИмяКомпьютера = ВРег(WSSE.Item("ClientName"));
        Если ПустаяСтрока(мИмяКомпьютера) Тогда
            мИмяКомпьютера = ВРег(ИмяКомпьютера());
        КонецЕсли;
    КонецЕсли;
//если зайти в терминальной сессии консольно, то получим "CONSOLE",
// в этом случае применяем типовую функцию
    Если мИмяКомпьютера = "CONSOLE" Тогда  
        мИмяКомпьютера = ВРег(ИмяКомпьютера());
    КонецЕсли;
	//))
	Возврат мИмяКомпьютера;
КонецФункции // ПолучитьИмяКомпьютераТО()
Показать
Остальные ответы
2. Сергей Куштинов (obmanOZ) 1 30.12.16 11:06 Сейчас в теме
у пользователей в настройках так
3. Олег Медведев (olgerd666) 49 30.12.16 11:16 Сейчас в теме
Методика подключения касс следующая
1) 1 база
2) заходим на 1м компьютере - выбираем пользователя Касса1 у него ставим кассу Касса1, обработка ТО - для Касса1 на нужном ему com порту
3) заходим на 2м компьютере - выбираем пользователя Касса2 у него ставим кассу Касса2, обработка ТО - для Касса2 на нужном ему com порту
4) итд
если у вас все через эмулятор - можно обойтись одной обработкой.
4. Сергей Куштинов (obmanOZ) 1 30.12.16 11:17 Сейчас в теме
(3) Олег, спасибо за ответ! Я так и сделал, но если снова зайти на первом компе то у него в Оборудовании стоит флаг на Касса2
5. Олег Медведев (olgerd666) 49 30.12.16 11:19 Сейчас в теме
удалите все обработки и добавьте заново. и проверьте еще раз справочник с кассами - там точно все верно проставлено?
6. Сергей Куштинов (obmanOZ) 1 30.12.16 11:29 Сейчас в теме
(5) сейчас попробую... у меня терминальный сервер... вторым сообщением тут приложил настройку пользователей
7. Олег Медведев (olgerd666) 49 30.12.16 11:32 Сейчас в теме
а они не под одним сеансом работают?
8. Сергей Куштинов (obmanOZ) 1 30.12.16 11:35 Сейчас в теме
(7) Конечно, Админ под собой, каждый из касс под своим пользователем на сервере, в скриншоте видно два окна рабочих на серваке, каждый под собой сидит...
9. Сергей Куштинов (obmanOZ) 1 30.12.16 11:36 Сейчас в теме
(7) Мне еще подсказывают тут что возможно надо ставить все галки в настройках, а 1С сама определит какая касса и какая обработка нужна, как думаете?
10. Сергей Куштинов (obmanOZ) 1 30.12.16 11:40 Сейчас в теме
(7) Не, не прокатило ((( Ругается что КомПорт не доступен на одной из касс
11. Сергей Куштинов (obmanOZ) 1 30.12.16 11:48 Сейчас в теме
Судя по гуглу я не один с такой проблемой.. парень предлагает вот так сделать

Функция ПолучитьИмяКомпьютераТО() Экспорт
   //((заменим на имя физического компа 
	//типовой код комментируем. 
	//Если мИмяКомпьютера = Неопределено Тогда
	//	мИмяКомпьютера = ВРег(ИмяКомпьютера());
	//КонецЕсли;
     Если мИмяКомпьютера = Неопределено Тогда
        WSS = Новый COMОбъект("WScript.Shell");
        WSSE = WSS.Environment("Process");
        мИмяКомпьютера = ВРег(WSSE.Item("ClientName"));
        Если ПустаяСтрока(мИмяКомпьютера) Тогда
            мИмяКомпьютера = ВРег(ИмяКомпьютера());
        КонецЕсли;
    КонецЕсли;
//если зайти в терминальной сессии консольно, то получим "CONSOLE",
// в этом случае применяем типовую функцию
    Если мИмяКомпьютера = "CONSOLE" Тогда  
        мИмяКомпьютера = ВРег(ИмяКомпьютера());
    КонецЕсли;
	//))
	Возврат мИмяКомпьютера;
КонецФункции // ПолучитьИмяКомпьютераТО()
Показать
14. Сергей Куштинов (obmanOZ) 1 01.01.17 14:17 Сейчас в теме
Всё сделал как в (11) , помогло, в настройках торгового оборудования определяется на сервер а имя физического компа с которого мапимся на сервер
(13) Спасибо за помощь!
Вопрос закрыт!
12. Сергей Куштинов (obmanOZ) 1 30.12.16 12:02 Сейчас в теме
13. Олег Медведев (olgerd666) 49 30.12.16 12:16 Сейчас в теме
ммм...чтото такое впоминаю, но уже не уверен, вроде бы чтото есть с привязкой оборудования к имени компьютера и имени сеанса(?),пользователя(?). Вы ищете в правильную сторону.... а все нашел
4. Разделение оборудования по сессиям.

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

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

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

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