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