• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы KiR
  • Дата начала
K

KiR

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

Дайнеко

как настроить чтобы эти ФС мапились только с двух конкретных компов?

Что значит "мапились" ?
Может надо изменить что-то в коде 1С? Например, найти команду создающую ошибку.
Передней поставить "Попытка"
 
K

KiR

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

Tomash

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

поясните задачу, работают 10 пользователей, а печатать на ФР должны только 2 из них, у которых подключены ФР ? или печатать таки должны все

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

Код:
Если (ИмяПользователя()<>"КомпФР1") И (ИмяПользователя()<>"КомпФР2") Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

можно сделать красивее, на будущее, если будете ставить ещё дополнительные ФР, добавить пользователям реквизит "УстановленФР" и делать проверку по этому реквизиту, соответственно, не придётся каждый раз при установке нового ФР изменять код
 
K

KiR

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

Tomash

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

ну а разные пользователи 1С с этих конкретных 2-х компов заходят под фиксированными юзерами виндоус? т.е. они подключаются через 1 ярлык удалённого подключения и выбирают только пользователя 1С, или там тоже десяток вариантов удалённых подключений для каждого компа?

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

Код:
	WshShell = CreateObject("WScript.Shell");
ИмяПользователяWINDOWS = ВРЕГ(WshShell.ExpandEnvironmentStrings("%username%"));

в 8ке синтаксис чуть другой вроде
 
K

KHOKHOL

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

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

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

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

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

puh14

Заключить код подключения фискальника в Попытка ..... Исключение..... конеецПопытки.
 
K

KiR

всем спасибо!
дошли руки поковырять и теперь могу более толково сформулировать вопрос.

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

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

KiR

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

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

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

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

Если будут более изящные предложения по поводу моего предыдущего поста - буду благодарен.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!