1с8+ts На Serv2008r2+фискальный Регистратор

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#1
В терминале работает 10 пользователей с разных компов. На двух компах стоят фискальные регистраторы. Подключил 2 устройства в настройках - все отрабатывает почти нормально. Проблема заключается в том, что у пользователей, у которых отсутствуют по факту ФС - получают ошибку при создании ПКО о том, что фискальный регистратор не подключен.
Как избежать данной ошибки - как настроить чтобы эти ФС мапились только с двух конкретных компов?
 

Дайнеко

Well-known member
19.11.2009
951
0
#2
как настроить чтобы эти ФС мапились только с двух конкретных компов?
Что значит "мапились" ?
Может надо изменить что-то в коде 1С? Например, найти команду создающую ошибку.
Передней поставить "Попытка"
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#3
Что значит "мапились" ?
Может надо изменить что-то в коде 1С? Например, найти команду создающую ошибку.
Передней поставить "Попытка"
Мапились - подключались. т.е. фискальные регистраторы должны подключатся только при коннекте двух конкретных компов к терминалу, у всех остальных подключение бессмысленно так как у них ФК фактически отсутствуют.
В настройке торгового оборудования если стоят флаги у сканеров или ФК - подключение по умолчанию происходит для всех пользователей для всех компов
 

Tomash

Active member
16.01.2013
40
0
#4
В терминале работает 10 пользователей с разных компов. На двух компах стоят фискальные регистраторы. Подключил 2 устройства в настройках - все отрабатывает почти нормально. Проблема заключается в том, что у пользователей, у которых отсутствуют по факту ФС - получают ошибку при создании ПКО о том, что фискальный регистратор не подключен.
Как избежать данной ошибки - как настроить чтобы эти ФС мапились только с двух конкретных компов?
поясните задачу, работают 10 пользователей, а печатать на ФР должны только 2 из них, у которых подключены ФР ? или печатать таки должны все

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

Код:
Если (ИмяПользователя()<>"КомпФР1") И (ИмяПользователя()<>"КомпФР2") Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
можно сделать красивее, на будущее, если будете ставить ещё дополнительные ФР, добавить пользователям реквизит "УстановленФР" и делать проверку по этому реквизиту, соответственно, не придётся каждый раз при установке нового ФР изменять код
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#5
нет. Есть терминальный сервер, в котором в 1С настроены 2 фискальных регистратора и 1 сканер. по умолчанию 1Ска пытается примапить эти устройства всем клиентам терминального сервера, которые вызывают RemnoteApp 1C8, но физически они подключены только к двум компам (не к серваку, естественно), с которых в 1С могут заходить разные пользователи
 

Tomash

Active member
16.01.2013
40
0
#6
нет. Есть терминальный сервер, в котором в 1С настроены 2 фискальных регистратора и 1 сканер. по умолчанию 1Ска пытается примапить эти устройства всем клиентам терминального сервера, которые вызывают RemnoteApp 1C8, но физически они подключены только к двум компам (не к серваку, естественно), с которых в 1С могут заходить разные пользователи
ну а разные пользователи 1С с этих конкретных 2-х компов заходят под фиксированными юзерами виндоус? т.е. они подключаются через 1 ярлык удалённого подключения и выбирают только пользователя 1С, или там тоже десяток вариантов удалённых подключений для каждого компа?

если каждому компу соответствует 1 юзер винды на сервере, то эти 2 конкретных компа можно отловить по их имени, например так в 77

Код:
	WshShell = CreateObject("WScript.Shell");
ИмяПользователяWINDOWS = ВРЕГ(WshShell.ExpandEnvironmentStrings("%username%"));
в 8ке синтаксис чуть другой вроде
 

KHOKHOL

New member
20.12.2010
2
0
#7
Посмотрите на регистр сведений "Торговое оборудование" ресурс "Компьютер" - это строка 100 символов. В которую записывается имя компа к которому подключается оборудование. Кто мешает в этот ресурс вписывать строку такого формата [имя_компа]\[имя_пользователя]. Таким образом вы получите оборудование и в разрезе компов и пользователей. Для этого достаточно отредактировать одну сроку в конфигурации - Обработка.ТОСервер (модуль объекта)

Код:
// Функция возвращает строку c именем компьютера для нужд торгового оборудования.
//
// Возвращаемое значение:
// Строка - имя компьютера для торгового оборудования.
//
Функция ПолучитьИмяКомпьютераТО() Экспорт

Если мИмяКомпьютера = Неопределено Тогда
//мИмяКомпьютера = ВРег(ИмяКомпьютера()); 
мИмяКомпьютера = ВРег(ИмяКомпьютера()+"\"+ИмяПользователя());
КонецЕсли;

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

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

puh14

Well-known member
11.07.2008
1 412
0
#8
Заключить код подключения фискальника в Попытка ..... Исключение..... конеецПопытки.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#9
всем спасибо!
дошли руки поковырять и теперь могу более толково сформулировать вопрос.

В обработке подключения оборудования (Функция ПодключитьКлиента(Клиент)) вижу такие строки
Код:
Клиенты  = ПолучитьПараметрСервераТО("Клиенты", "Соответствие");
Если Клиенты[Клиент] <> Неопределено Тогда
Возврат Результат;
КонецЕсли;

ВидТО = Неопределено;
Для Каждого ВидТО Из Перечисления.ВидыТорговогоОборудования Цикл
Если Клиент.ПоддерживаетсяВидТО(ВидТО) Тогда
Результат = ПодключитьОборудование(ВидТО, Клиент);
Если ЗначениеЗаполнено(Результат) Тогда
КонечныйРезультат = мОшибкаНеизвестно;
КонецЕсли;
КонецЕсли;
КонецЦикла;
все классно работает с одной стороны, а с другой напрашивается логичный вопрос - где у пользователя настройки разрешенного ТО? Клиент.ПоддерживаетсяВидТО(ВидТО) проверяет какие виды ТО поддерживаются пользователями. получается мне нужно для всех пользователей эту настройку снять и оставить ее только двоим - так что вопрос - где ее искать?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#10
Всем огромное спасибо. В итоге таки воспользовался советом KHOKHOL.
Код:
// Функция возвращает строку c именем компьютера для нужд торгового оборудования.
//
// Возвращаемое значение:
// Строка - имя компьютера для торгового оборудования.
//
Функция ПолучитьИмяКомпьютераТО() Экспорт

Если мИмяКомпьютера = Неопределено Тогда
//мИмяКомпьютера = ВРег(ИмяКомпьютера()); 
мИмяКомпьютера = ВРег(ИмяКомпьютера()+"\"+ИмяПользователя());
КонецЕсли;

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

КонецФункции // ПолучитьИмяКомпьютераТО()
Если будут более изящные предложения по поводу моего предыдущего поста - буду благодарен.