Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 03:06

Проверка торгового оборудования только у кассира!

Автор Восходящий, 18 мая 2015, 09:08

0 Пользователей и 1 гость просматривают эту тему.

Восходящий

Если пользователь не работает с кассой, но обращается к кассовым документам, то перед каждым открытием, например, расходника, приходится ждать, пока серверная 1С опросит все 4 кассы и скажет, что ни одна из них не отвечает:
ШТРИХ-МИНИ-ФР-К: FFFFFFFFh, Нет связи
ШТРИХ-МИНИ-ФР-К: FFFFFFFFh, Нет связи
ШТРИХ-МИНИ-ФР-К: FFFFFFFFh, Нет связи
ШТРИХ-МИНИ-ФР-К: FFFFFFFFh, Нет связи
Произошла ошибка при подключении торгового оборудования

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

Функция проверки ТО из Обработка ТОСервер: Модуль Объекта// Функция возвращает список идентификаторов подключенных устройств заданного вида.
//
// Параметры:
//  Вид      - <ПеречислениеСсылка.ВидыТорговогоОборудования>
//           - Вид торгового оборудования, информацию о котором необходимо получить.
//
//  КассаККМ - <СправочникСсылка.КассыККМ>
//           - Касса ККМ, к которой подключено данное оборудование.
//             В случае, если данный параметр соответствует пустой ссылке,
//             будет возвращено всё торговое оборудование указанного вида.
//
// Возвращаемое значение:
//  <Массив> - Список идентификаторов устройств.
//
Функция ПолучитьСписокУстройств(Вид, КассаККМ = Неопределено) Экспорт
НеЗаданаКассаККМ = НЕ ЗначениеЗаполнено(КассаККМ);
Результат = Новый Массив();
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    РегТО.Идентификатор КАК Идентификатор
|ИЗ
|    РегистрСведений.ТорговоеОборудование КАК РегТО
|ГДЕ
|    РегТО.Вид = &Вид
|    И РегТО.Компьютер = &Компьютер
|    И РегТО.Подключено
|" + ?(НеЗаданаКассаККМ, "", "    И РегТО.КассаККМ = &КассаККМ") + "
|
|УПОРЯДОЧИТЬ ПО  РегТО.Идентификатор
|");
Запрос.УстановитьПараметр("Вид"       , Вид);
Запрос.УстановитьПараметр("Компьютер" , ПолучитьИмяКомпьютераТО());
Если Не НеЗаданаКассаККМ Тогда
Запрос.УстановитьПараметр("КассаККМ", КассаККМ);
КонецЕсли;
Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0);
Возврат Результат;
КонецФункции // ПолучитьСписокУстройств()


Вот пример кода из УТ 8.2, где это доработано:
Запрос.УстановитьПараметр("Вид"      , Вид);
                        Запрос.УстановитьПараметр("Компьютер", ПолучитьИмяКомпьютераТО());
                        СтрокиТО = Запрос.Выполнить().Выгрузить();
                        СтрокаТО = Неопределено;
                        Для Каждого СтрокаТО Из СтрокиТО Цикл

мТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
Проверка = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(мТекущийПользователь, "ПроверкаТорговогоОборудования");
Если НЕ Проверка Тогда
             Продолжить;
     КонецЕсли;

Теги: ТО 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск