528 lines
39 KiB
Plaintext
528 lines
39 KiB
Plaintext
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||
|
||
#Область ПрограммныйИнтерфейс
|
||
|
||
// Возвращает список подключенного в справочнике ПО по установленному отбору
|
||
//
|
||
// Параметры:
|
||
// Отбор - см. МенеджерОборудованияКлиентСервер.СписокОборудованияОтбор.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Массив из Структура.
|
||
//
|
||
Функция СписокОборудования(Отбор) Экспорт
|
||
|
||
Идентификатор = Отбор.Идентификатор;
|
||
ТипыПО = Отбор.ТипыПО;
|
||
РабочееМесто = Отбор.РабочееМесто;
|
||
Организация = Отбор.Организация;
|
||
|
||
МассивТиповПО = МенеджерОборудования.МассивТиповОборудования(ТипыПО);
|
||
|
||
СетевоеОборудование = Отбор.СетевоеОборудование;
|
||
ТекущийПользовательИБ = Строка(ПользователиИнформационнойБазы.ТекущийПользователь());
|
||
КодЯзыка = Отбор.КодЯзыка;
|
||
|
||
УстановитьПривилегированныйРежим(Истина);
|
||
|
||
Если НЕ ЗначениеЗаполнено(РабочееМесто) Тогда
|
||
// Если РМ не задано в параметрах, то всегда текущее из параметров сеанса.
|
||
РабочееМесто = МенеджерОборудованияВызовСервера.РабочееМестоКлиента();
|
||
КонецЕсли;
|
||
|
||
Запрос = Новый Запрос();
|
||
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||
| ПодключаемоеОборудование.Ссылка КАК Ссылка,
|
||
| ПодключаемоеОборудование.Наименование КАК Наименование,
|
||
| ПодключаемоеОборудование.ТипОборудования КАК ТипОборудования,
|
||
| ПодключаемоеОборудование.ДрайверОборудования КАК ДрайверОборудования,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.ИмяПредопределенныхДанных КАК ДрайверОборудованияИмя,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.Предопределенный КАК ВСоставеКонфигурации,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.ИдентификаторОбъекта КАК ИдентификаторОбъекта,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.СнятСПоддержки КАК СнятСПоддержки,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.СообщениеПриИспользовании КАК СообщениеПриИспользовании,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.ВерсияДрайвера КАК ВерсияДрайвера,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.ИмяМакетаДрайвера КАК ИмяМакетаДрайвера,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.СпособПодключения КАК СпособПодключения,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
|
||
| ПодключаемоеОборудование.ДрайверОборудования.БезопасноеПодключение КАК БезопасноеПодключение,
|
||
| ПодключаемоеОборудование.ТипПодключения КАК ТипПодключения,
|
||
| ПодключаемоеОборудование.РабочееМесто КАК РабочееМесто,
|
||
| ПодключаемоеОборудование.АвтоматическаяФискализация КАК АвтоматическаяФискализация,
|
||
| ПодключаемоеОборудование.ТребуетсяПереустановка КАК ТребуетсяПереустановка,
|
||
| ПодключаемоеОборудование.ТребуетсяУстановка КАК ТребуетсяУстановка,
|
||
| ПодключаемоеОборудование.ИспользуетсяФН36 КАК ИспользуетсяФН36,
|
||
| ПодключаемоеОборудование.Организация КАК Организация,
|
||
| ПодключаемоеОборудование.ОграничениеДоступа.(
|
||
| Пользователь КАК Пользователь,
|
||
| Ссылка КАК Ссылка
|
||
| ) КАК ОграничениеДоступа,
|
||
| ПодключаемоеОборудование.Параметры КАК Параметры
|
||
|ИЗ
|
||
| Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
|
||
|ГДЕ
|
||
| &Условие
|
||
| И НЕ ПодключаемоеОборудование.ТипОборудования В (&ИсключаемыеТипыОборудования)
|
||
| И (ПодключаемоеОборудование.Наименование <> """")
|
||
|
|
||
|УПОРЯДОЧИТЬ ПО
|
||
| Наименование";
|
||
|
||
ТекстУсловия = "(НЕ ПодключаемоеОборудование.ПометкаУдаления И ПодключаемоеОборудование.УстройствоИспользуется)";
|
||
Если Идентификатор <> Неопределено Тогда
|
||
Если ТипЗнч(Идентификатор) = Тип("Массив") Тогда
|
||
ТекстУсловия = ТекстУсловия + " И (ПодключаемоеОборудование.Ссылка В (&Идентификаторы))";
|
||
Запрос.УстановитьПараметр("Идентификаторы", Идентификатор);
|
||
Иначе
|
||
ТекстУсловия = ТекстУсловия + " И (ПодключаемоеОборудование.Ссылка = &Идентификатор)";
|
||
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
|
||
КонецЕсли;
|
||
Иначе
|
||
ТекстУсловия = ТекстУсловия + " И (ПодключаемоеОборудование.РабочееМесто = &РабочееМесто";
|
||
Запрос.УстановитьПараметр("РабочееМесто", РабочееМесто);
|
||
Если СетевоеОборудование Тогда
|
||
// Оборудование, подключенное к конкретному рабочему месту и сетевое оборудование.
|
||
ТекстУсловия = ТекстУсловия
|
||
+ " ИЛИ ПодключаемоеОборудование.ТипПодключения = ЗНАЧЕНИЕ(Перечисление.ТипыПодключенияОборудования.ОбщийДоступ))";
|
||
Иначе
|
||
ТекстУсловия = ТекстУсловия + ")";
|
||
КонецЕсли;
|
||
Если МассивТиповПО.Количество()>0 Тогда
|
||
ТекстУсловия = ТекстУсловия + " И (ПодключаемоеОборудование.ТипОборудования В (&ТипОборудования))";
|
||
Запрос.УстановитьПараметр("ТипОборудования", МассивТиповПО);
|
||
КонецЕсли;
|
||
Если Организация <> Неопределено Тогда
|
||
ТекстУсловия = ТекстУсловия + " И (ПодключаемоеОборудование.Организация = &Организация)";
|
||
Запрос.УстановитьПараметр("Организация", Организация);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
ИсключаемыеТипыОборудования = Новый Массив();
|
||
ИсключаемыеТипыОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.УдалитьККМОфлайн);
|
||
Запрос.УстановитьПараметр("ИсключаемыеТипыОборудования", ИсключаемыеТипыОборудования);
|
||
|
||
Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&Условие", ТекстУсловия);
|
||
Выборка = Запрос.Выполнить().Выбрать();
|
||
|
||
// Перебирая выборку составляем список устройств
|
||
СписокОборудования = Новый Массив();
|
||
Пока Выборка.Следующий() Цикл
|
||
ДанныеУстройства = ЗаполнитьДанныеУстройства(Выборка, ТекущийПользовательИБ, КодЯзыка);
|
||
СписокОборудования.Добавить(ДанныеУстройства);
|
||
КонецЦикла;
|
||
|
||
// Возвращаем полученный список с данными всех найденных устройств
|
||
Возврат СписокОборудования;
|
||
|
||
КонецФункции
|
||
|
||
// Функция возвращает по идентификатору устройства его параметры
|
||
//
|
||
// Параметры:
|
||
// Идентификатор - СправочникСсылка.ПодключаемоеОборудование.
|
||
//
|
||
// Возвращаемое значение:
|
||
// - Произвольный
|
||
// - Структура
|
||
//
|
||
Функция ПараметрыУстройства(Идентификатор) Экспорт
|
||
|
||
Запрос = Новый Запрос("
|
||
|ВЫБРАТЬ
|
||
| ПодключаемоеОборудование.Параметры
|
||
|ИЗ
|
||
| Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
|
||
|ГДЕ
|
||
| ПодключаемоеОборудование.Ссылка = &Идентификатор");
|
||
|
||
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
|
||
Выборка = Запрос.Выполнить().Выбрать();
|
||
Выборка.Следующий();
|
||
|
||
ПараметрыОборудования = Выборка.Параметры; // ХранилищеЗначения
|
||
Результат = ПараметрыОборудования.Получить();
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
// Процедура предназначена для сохранения параметров устройства
|
||
// в реквизит Параметры типа хранилище значения в элементе справочника.
|
||
//
|
||
// Параметры:
|
||
// Идентификатор - СправочникСсылка.ПодключаемоеОборудование.
|
||
// Параметры - Структура - параметры устройства.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция СохранитьПараметрыУстройства(Идентификатор, Параметры) Экспорт
|
||
|
||
Запрос = Новый Запрос();
|
||
Запрос.Текст =
|
||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||
| ПодключаемоеОборудование.Ссылка КАК Ссылка
|
||
|ИЗ
|
||
| Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
|
||
|ГДЕ
|
||
| ПодключаемоеОборудование.Ссылка = &Идентификатор";
|
||
|
||
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
|
||
РезультатЗапроса = Запрос.Выполнить();
|
||
Если РезультатЗапроса.Пустой() Тогда
|
||
Возврат Ложь;
|
||
КонецЕсли;
|
||
|
||
Попытка
|
||
Выборка = РезультатЗапроса.Выбрать();
|
||
Выборка.Следующий();
|
||
ОбъектСправочника = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ПодключаемоеОборудование
|
||
ОбъектСправочника.Заблокировать();
|
||
ОбъектСправочника.Параметры = Новый ХранилищеЗначения(Параметры);
|
||
ОбъектСправочника.Записать();
|
||
Результат = Истина;
|
||
Исключение
|
||
Результат = Ложь;
|
||
КонецПопытки;
|
||
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
// Функция возвращает структуру с данными устройства
|
||
//
|
||
// Параметры:
|
||
// Идентификатор - СправочникСсылка.ПодключаемоеОборудование.
|
||
// КодЯзыка - Строка
|
||
//
|
||
// Возвращаемое значение:
|
||
// - Произвольный
|
||
// - Неопределено
|
||
// - Структура:
|
||
// * Ссылка - СправочникСсылка.ПодключаемоеОборудование
|
||
// * ТипОборудования - Структура
|
||
// * Наименование - Строка
|
||
// * Параметры - Структура
|
||
// * ДрайверОборудования - СправочникСсылка.ДрайверыОборудования
|
||
// * ВСоставеКонфигурации - Булево
|
||
// * ИдентификаторОбъекта - Строка
|
||
// * СнятСПоддержки - Булево
|
||
// * ВерсияДрайвера - Строка
|
||
// * СетевоеОборудование - Булево
|
||
// * СпособПодключения - ПеречислениеСсылка.СпособПодключенияДрайвера
|
||
// * ПодключениеИзМакета - Булево
|
||
// * ПодключениеЛокальноПоИдентификатору - Булево
|
||
// * ИмяМакетаДрайвера - Строка
|
||
// * МакетДоступен - Булево
|
||
// * АвтоматическаяФискализация - Булево
|
||
// * ИспользуетсяФН36 - Булево
|
||
// * ТребуетсяПереустановка - Булево
|
||
// * ТребуетсяУстановка - Булево
|
||
// * ОграничениеДоступа - Массив из Строка
|
||
// * ДоступноТекущемуПользователю - Булево
|
||
// * ПараметрыРегистрации - Структура
|
||
//
|
||
Функция ДанныеУстройства(Идентификатор, КодЯзыка = Неопределено) Экспорт
|
||
|
||
СписокОтбор = МенеджерОборудованияКлиентСервер.СписокОборудованияОтбор();
|
||
СписокОтбор.Идентификатор = Идентификатор;
|
||
СписокОтбор.КодЯзыка = КодЯзыка;
|
||
|
||
СписокОборудования = СписокОборудования(СписокОтбор);
|
||
Если СписокОборудования.Количество() > 0 Тогда
|
||
Результат = СписокОборудования[0]
|
||
Иначе
|
||
Результат = Неопределено;
|
||
КонецЕсли;
|
||
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
// СтандартныеПодсистемы.УправлениеДоступом
|
||
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
|
||
//
|
||
// Параметры:
|
||
// Ограничение - Структура:
|
||
// * Текст - Строка - ограничение доступа для пользователей.
|
||
// Если пустая строка, значит, доступ разрешен.
|
||
// * ТекстДляВнешнихПользователей - Строка - ограничение доступа для внешних пользователей.
|
||
// Если пустая строка, значит, доступ запрещен.
|
||
// * ПоВладельцуБезЗаписиКлючейДоступа - Неопределено - определить автоматически.
|
||
// - Булево - если Ложь, то всегда записывать ключи доступа,
|
||
// если Истина, тогда не записывать ключи доступа,
|
||
// а использовать ключи доступа владельца (требуется,
|
||
// чтобы ограничение было строго по объекту-владельцу).
|
||
// * ПоВладельцуБезЗаписиКлючейДоступаДляВнешнихПользователей - Неопределено, Булево - также
|
||
// как у параметра ПоВладельцуБезЗаписиКлючейДоступа.
|
||
//
|
||
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
|
||
|
||
Менеджер = "Справочник.ПодключаемоеОборудование";
|
||
МенеджерОборудованияВызовСервераПереопределяемый.ПриЗаполненииОграниченияДоступа(Менеджер, Ограничение);
|
||
|
||
КонецПроцедуры
|
||
// Конец СтандартныеПодсистемы.УправлениеДоступом
|
||
|
||
// Процедура заполняет элемент в справочнике подключаемое оборудование.
|
||
//
|
||
// Параметры:
|
||
// ПараметрыСоздания - Структура - параметры создания подключаемог оборудования.
|
||
//
|
||
// Возвращаемое значение:
|
||
// СправочникСсылка.ПодключаемоеОборудование -
|
||
//
|
||
Функция СоздатьНовыйЭлемент(ПараметрыСоздания) Экспорт
|
||
|
||
НовыйЭлемент = Справочники.ПодключаемоеОборудование.СоздатьЭлемент();
|
||
|
||
Если ТипЗнч(ПараметрыСоздания.ТипОборудования) = Тип("Строка") Тогда
|
||
ПараметрыСоздания.ТипОборудования = МенеджерОборудования.ТипОборудованияПоСтроке(ПараметрыСоздания.ТипОборудования);
|
||
КонецЕсли;
|
||
Наименование = ПараметрыСоздания.Наименование;
|
||
Если ПустаяСтрока(Наименование) Тогда
|
||
Наименование = "'" + Строка(ПараметрыСоздания.ДрайверОборудования) + "'"
|
||
+ ?(ПустаяСтрока(Строка(ПараметрыСоздания.РабочееМесто)), "", " " + НСтр("ru='на'") + " " + Строка(ПараметрыСоздания.РабочееМесто));
|
||
КонецЕсли;
|
||
НовыйЭлемент.Наименование = Наименование;
|
||
НовыйЭлемент.ТипОборудования = ПараметрыСоздания.ТипОборудования;
|
||
НовыйЭлемент.ТипПодключения = ПараметрыСоздания.ТипПодключения;
|
||
НовыйЭлемент.УстройствоИспользуется = ПараметрыСоздания.УстройствоИспользуется;
|
||
НовыйЭлемент.ДрайверОборудования = ПараметрыСоздания.ДрайверОборудования;
|
||
НовыйЭлемент.Организация = ПараметрыСоздания.Организация;
|
||
НовыйЭлемент.РабочееМесто = ПараметрыСоздания.РабочееМесто;
|
||
НовыйЭлемент.СерийныйНомер = ПараметрыСоздания.СерийныйНомер;
|
||
НовыйЭлемент.СпособФорматноЛогическогоКонтроля = ПараметрыСоздания.СпособФорматноЛогическогоКонтроля;
|
||
НовыйЭлемент.ДопустимоеРасхождениеФорматноЛогическогоКонтроля = ПараметрыСоздания.ДопустимоеРасхождениеФорматноЛогическогоКонтроля;
|
||
НовыйЭлемент.ИспользуетсяФН36 = ПараметрыСоздания.ИспользуетсяФН36;
|
||
|
||
НовыйЭлемент.Записать();
|
||
|
||
Возврат НовыйЭлемент.Ссылка;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныйПрограммныйИнтерфейс
|
||
|
||
// Возвращает таблицу драйверов по всему оборудованию которое добавлено в справочник
|
||
// подключаемого оборудования
|
||
//
|
||
// Параметры:
|
||
// СпособПодключения - ПеречислениеСсылка.СпособПодключенияДрайвера - если значение не передано,
|
||
// тогда будет отобрано независимо от способа подключения
|
||
//
|
||
// Возвращаемое значение:
|
||
// ТаблицаЗначений:
|
||
// * Ссылка - СправочникСсылка.ДрайверыОборудования
|
||
// * Наименование - Строка
|
||
// * Идентификатор - Строка
|
||
// * Версия - Строка
|
||
// * СпособПодключения - ПеречислениеСсылка.СпособПодключенияДрайвера
|
||
// * ИмяМакета - Строка - имя макета в котором находится драйвер
|
||
// * МакетДоступен - Булево - если Ложь, тогда в библиотеке отсутствует макет драйвера
|
||
// * ВходитВБПО - Булево - флаг того что драйвер включен в библиотеку БПО
|
||
Функция ИспользуемыеДрайверы(СпособПодключения = Неопределено) Экспорт
|
||
|
||
УстановитьПривилегированныйРежим(Истина);
|
||
|
||
Запрос = Новый Запрос;
|
||
Запрос.Текст =
|
||
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||
| ПодключаемоеОборудование.ДрайверОборудования.Ссылка КАК ДрайверОборудованияСсылка
|
||
|ПОМЕСТИТЬ ИспользуемыеДрайвера
|
||
|ИЗ
|
||
| Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
|
||
|ГДЕ
|
||
| ПодключаемоеОборудование.УстройствоИспользуется
|
||
| И НЕ ПодключаемоеОборудование.ПометкаУдаления
|
||
|;
|
||
|
|
||
|////////////////////////////////////////////////////////////////////////////////
|
||
|ВЫБРАТЬ
|
||
| ДрайверыОборудования.Ссылка КАК Ссылка,
|
||
| ДрайверыОборудования.ИдентификаторОбъекта КАК Идентификатор,
|
||
| ДрайверыОборудования.Наименование КАК Наименование,
|
||
| ДрайверыОборудования.ВерсияДрайвера КАК Версия,
|
||
| ДрайверыОборудования.СпособПодключения КАК СпособПодключения,
|
||
| ВЫРАЗИТЬ("""" КАК СТРОКА(100)) КАК ИмяМакета,
|
||
| ЛОЖЬ КАК МакетДоступен,
|
||
| ДрайверыОборудования.ИмяМакетаДрайвера КАК ИмяМакетаДрайвера,
|
||
| ДрайверыОборудования.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
|
||
| ДрайверыОборудования.Предопределенный КАК ВходитВБПО
|
||
|ИЗ
|
||
| Справочник.ДрайверыОборудования КАК ДрайверыОборудования
|
||
|ГДЕ
|
||
| ДрайверыОборудования.Ссылка В
|
||
| (ВЫБРАТЬ
|
||
| ИспользуемыеДрайвера.ДрайверОборудованияСсылка КАК ДрайверОборудованияСсылка
|
||
| ИЗ
|
||
| ИспользуемыеДрайвера КАК ИспользуемыеДрайвера)";
|
||
|
||
Если СпособПодключения <> Неопределено Тогда
|
||
Запрос.Текст = Запрос.Текст + "
|
||
| И ДрайверыОборудования.СпособПодключения = &СпособПодключения";
|
||
Запрос.УстановитьПараметр("СпособПодключения", СпособПодключения);
|
||
КонецЕСли;
|
||
|
||
РезультатЗапроса = Запрос.Выполнить();
|
||
РезультатТаблица = РезультатЗапроса.Выгрузить();
|
||
|
||
Для Каждого Строка Из РезультатТаблица Цикл
|
||
|
||
МакетДоступен = Ложь;
|
||
ИмяДрайвера = Строка.ИмяПредопределенныхДанных;
|
||
ИмяМакетаДрайвера = Строка.ИмяМакетаДрайвера;
|
||
Если Не ПустаяСтрока(ИмяДрайвера) Тогда
|
||
МенеджерОборудования.ЗаполнитьДанныеМакетов(ИмяДрайвера, ИмяМакетаДрайвера, МакетДоступен, Неопределено);
|
||
КонецЕсли;
|
||
Строка.ИмяМакета = ?(МакетДоступен, СтрЗаменить(ИмяМакетаДрайвера, "ОбщийМакет.", ""), "");
|
||
Строка.МакетДоступен = МакетДоступен;
|
||
|
||
КонецЦикла;
|
||
|
||
ИндексКолонки = РезультатТаблица.Колонки.Найти("ИмяПредопределенныхДанных");
|
||
РезультатТаблица.Колонки.Удалить(ИндексКолонки);
|
||
ИндексКолонки = РезультатТаблица.Колонки.Найти("ИмяМакетаДрайвера");
|
||
РезультатТаблица.Колонки.Удалить(ИндексКолонки);
|
||
|
||
Возврат РезультатТаблица;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает массив драйверов по всему оборудованию которое добавлено в справочник
|
||
// подключаемого оборудования
|
||
//
|
||
// Возвращаемое значение:
|
||
// Массив из Строка - массив содержащий идентификаторы драйверов
|
||
Функция ИдентификаторыИспользуемыхДрайверов() Экспорт
|
||
|
||
УстановитьПривилегированныйРежим(Истина);
|
||
|
||
Результат = Новый Массив();
|
||
|
||
Запрос = Новый Запрос;
|
||
Запрос.Текст =
|
||
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||
| ПодключаемоеОборудование.ДрайверОборудования.Ссылка КАК ДрайверОборудованияСсылка
|
||
|ПОМЕСТИТЬ ИспользуемыеДрайвера
|
||
|ИЗ
|
||
| Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
|
||
|ГДЕ
|
||
| ПодключаемоеОборудование.УстройствоИспользуется
|
||
| И НЕ ПодключаемоеОборудование.ПометкаУдаления
|
||
|;
|
||
|
|
||
|////////////////////////////////////////////////////////////////////////////////
|
||
|ВЫБРАТЬ
|
||
| ДрайверыОборудования.ИдентификаторОбъекта КАК Идентификатор
|
||
|ИЗ
|
||
| Справочник.ДрайверыОборудования КАК ДрайверыОборудования
|
||
|ГДЕ
|
||
| ДрайверыОборудования.Ссылка В
|
||
| (ВЫБРАТЬ
|
||
| ИспользуемыеДрайвера.ДрайверОборудованияСсылка КАК ДрайверОборудованияСсылка
|
||
| ИЗ
|
||
| ИспользуемыеДрайвера КАК ИспользуемыеДрайвера)
|
||
| И ДрайверыОборудования.Предопределенный";
|
||
|
||
Выборка = Запрос.Выполнить().Выбрать();
|
||
Пока Выборка.Следующий() Цикл
|
||
Результат.Добавить(Выборка.Идентификатор);
|
||
КонецЦикла;
|
||
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныеПроцедурыИФункции
|
||
|
||
// Заполнить структуру данных устройства
|
||
//
|
||
Функция ЗаполнитьДанныеУстройства(Выборка, ТекущийПользовательИБ, КодЯзыка)
|
||
|
||
ДанныеУстройства = Новый Структура();
|
||
ПараметрыОборудования = Выборка.Параметры; // ХранилищеЗначения
|
||
|
||
ДанныеУстройства.Вставить("Ссылка" , Выборка.Ссылка);
|
||
ДанныеУстройства.Вставить("ТипыОборудования" , МенеджерОборудования.ПараметрыТипыОборудования(Выборка.ТипОборудования));
|
||
ДанныеУстройства.Вставить("ТипОборудования" , Выборка.ТипОборудования);
|
||
ДанныеУстройства.Вставить("ТипОборудованияИмя" , XMLСтрока(Выборка.ТипОборудования));
|
||
ДанныеУстройства.Вставить("Наименование" , Выборка.Наименование);
|
||
ДанныеУстройства.Вставить("Параметры" , ПараметрыОборудования.Получить());
|
||
ДанныеУстройства.Вставить("ДрайверОборудования" , Выборка.ДрайверОборудования);
|
||
ДанныеУстройства.Вставить("ВСоставеКонфигурации" , Выборка.ВСоставеКонфигурации);
|
||
ДанныеУстройства.Вставить("ИдентификаторОбъекта" , Выборка.ИдентификаторОбъекта);
|
||
ДанныеУстройства.Вставить("СнятСПоддержки" , Выборка.СнятСПоддержки);
|
||
ДанныеУстройства.Вставить("СообщениеПриИспользовании" , Выборка.СообщениеПриИспользовании);
|
||
ДанныеУстройства.Вставить("ВерсияДрайвера" , Выборка.ВерсияДрайвера);
|
||
ДанныеУстройства.Вставить("СетевоеОборудование" , Выборка.ТипПодключения = Перечисления.ТипыПодключенияОборудования.ОбщийДоступ);
|
||
ДанныеУстройства.Вставить("БезопасноеПодключение" , Выборка.БезопасноеПодключение);
|
||
ДанныеУстройства.Вставить("ПараметрыXML" , МенеджерОборудования.ПолучитьПараметрыXML(ДанныеУстройства.Параметры, ДанныеУстройства.ТипОборудованияИмя));
|
||
ДанныеУстройства.Вставить("ПараметрыПриложенияXML" , МенеджерОборудования.ПараметрыПриложенияДляДрайвера());
|
||
|
||
СпособПодключения = Выборка.СпособПодключения;
|
||
ПодключениеИзМакета = СпособПодключения = Перечисления.СпособПодключенияДрайвера.ИзМакета;
|
||
ПодключениеЛокальноПоИдентификатору = СпособПодключения = Перечисления.СпособПодключенияДрайвера.ЛокальноПоИдентификатору;
|
||
|
||
ШаблонЛокализации = Неопределено;
|
||
МакетДоступен = Ложь;
|
||
ИмяДрайвера = Выборка.ИмяПредопределенныхДанных;
|
||
ИмяМакетаДрайвера = Выборка.ИмяМакетаДрайвера;
|
||
Если Не ПустаяСтрока(ИмяДрайвера) Тогда
|
||
МенеджерОборудования.ЗаполнитьДанныеМакетов(ИмяДрайвера, ИмяМакетаДрайвера, МакетДоступен, ШаблонЛокализации, КодЯзыка);
|
||
КонецЕсли;
|
||
|
||
ДанныеУстройства.Вставить("СпособПодключения" , СпособПодключения);
|
||
ДанныеУстройства.Вставить("ПодключениеИзМакета" , ПодключениеИзМакета);
|
||
ДанныеУстройства.Вставить("ПодключениеЛокальноПоИдентификатору", ПодключениеЛокальноПоИдентификатору);
|
||
ДанныеУстройства.Вставить("ИмяМакетаДрайвера" , ИмяМакетаДрайвера);
|
||
ДанныеУстройства.Вставить("МакетДоступен" , МакетДоступен);
|
||
ДанныеУстройства.Вставить("ШаблонЛокализации" , ШаблонЛокализации);
|
||
ДанныеУстройства.Вставить("АвтоматическаяФискализация" , Выборка.АвтоматическаяФискализация);
|
||
ДанныеУстройства.Вставить("ИспользуетсяФН36" , Выборка.ИспользуетсяФН36);
|
||
ДанныеУстройства.Вставить("ТребуетсяПереустановка" , Выборка.ТребуетсяПереустановка);
|
||
ДанныеУстройства.Вставить("ТребуетсяУстановка" , Выборка.ТребуетсяУстановка);
|
||
ДанныеУстройства.Вставить("Организация" , Выборка.Организация);
|
||
|
||
ТипыОборудования = МенеджерОборудования.ДоступныеТипыНесертифицированногоОборудования();
|
||
Если ТипыОборудования.Найти(Выборка.ТипОборудования) = Неопределено Тогда
|
||
Несертифицированное = Ложь;
|
||
Иначе
|
||
Несертифицированное = Истина;
|
||
КонецЕсли;
|
||
ДанныеУстройства.Вставить("Несертифицированное" , Несертифицированное);
|
||
|
||
// Ограничение доступа
|
||
ОграничениеДоступа = Новый Массив();
|
||
РезультатЗапросаОграничениеДоступа = Выборка.ОграничениеДоступа; // РезультатЗапроса
|
||
ВыборкаОграничениеДоступа = РезультатЗапросаОграничениеДоступа.Выбрать();
|
||
Пока ВыборкаОграничениеДоступа.Следующий() Цикл
|
||
ОграничениеДоступа.Добавить(Строка(ВыборкаОграничениеДоступа.Пользователь));
|
||
КонецЦикла;
|
||
ДанныеУстройства.Вставить("ОграничениеДоступа", ОграничениеДоступа);
|
||
Если ОграничениеДоступа.Количество() > 0 Тогда
|
||
ДоступноТекущемуПользователю = ОграничениеДоступа.Найти(ТекущийПользовательИБ) <> Неопределено;
|
||
Иначе
|
||
ДоступноТекущемуПользователю = Истина;
|
||
КонецЕсли;
|
||
ДанныеУстройства.Вставить("ДоступноТекущемуПользователю", ДоступноТекущемуПользователю);
|
||
|
||
Если Выборка.ТипОборудования = Перечисления.ТипыПодключаемогоОборудования.ККТ
|
||
И ОбщегоНазначенияБПО.ИспользуетсяЧекопечатающиеУстройства() Тогда
|
||
МодульОборудованиеЧекопечатающиеУстройства = ОбщегоНазначенияБПО.ОбщийМодуль("ОборудованиеЧекопечатающиеУстройства");
|
||
ПараметрыРегистрации = МодульОборудованиеЧекопечатающиеУстройства.ПараметрыРегистрацииУстройства(Выборка.Ссылка);
|
||
Иначе
|
||
ПараметрыРегистрации = Новый Структура();
|
||
КонецЕсли;
|
||
|
||
ДанныеУстройства.Вставить("ПараметрыРегистрации", ПараметрыРегистрации);
|
||
|
||
Возврат ДанныеУстройства;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#КонецЕсли |