#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ЗакрытиеФормыПоОК = Ложь;
СсылкаУчетнаяЗапись = Параметры.НоваяУчетнаяЗапись;
СсылкаОрганизация = Параметры.Организация;
Если СсылкаОрганизация = Неопределено ИЛИ СсылкаОрганизация = Справочники.Организации.ПустаяСсылка() Тогда
Элементы.ИнформационнаяНадпись.Заголовок= "Электронный документооборот с контролирующими органами успешно настроен." + Символы.ПС +
"Создана учетная запись: " + СсылкаУчетнаяЗапись + Символы.ПС +
"Выберите пользователей, имеющих право использовать эту учетную запись:";
Иначе
Элементы.ИнформационнаяНадпись.Заголовок = "Электронный документооборот с контролирующими органами по организации" + Символы.пс +
СсылкаОрганизация + " успешно настроен." + Символы.ПС +
"Создана учетная запись: " + СсылкаУчетнаяЗапись + Символы.ПС +
"Выберите пользователей, имеющих право использовать эту учетную запись:";
КонецЕсли;
НастройкаПользователей();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура СнятьФлажкиУВсех(Команда)
УстановитьСнятьФлажки(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьФлажкиУВсех(Команда)
УстановитьСнятьФлажки(Истина);
КонецПроцедуры
&НаКлиенте
Процедура КомандаОк(Команда)
ЗакрытиеФормыПоОК = Истина;
ЗаписатьПользователейУчетныхЗаписейДокументооборота();
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура НастройкаПользователей()
СписокПользователей.Очистить();
Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВЫБОР
| КОГДА Настройки.УчетнаяЗапись ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Пометка,
| Пользователи.Ссылка КАК Пользователь
|ИЗ
| Справочник.Пользователи КАК Пользователи
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПользователиУчетныхЗаписейДокументооборота.УчетнаяЗапись КАК УчетнаяЗапись,
| ПользователиУчетныхЗаписейДокументооборота.Пользователь КАК Пользователь
| ИЗ
| РегистрСведений.ПользователиУчетныхЗаписейДокументооборота КАК ПользователиУчетныхЗаписейДокументооборота
| ГДЕ
| ПользователиУчетныхЗаписейДокументооборота.УчетнаяЗапись = &УчетнаяЗапись) КАК Настройки
| ПО Пользователи.Ссылка = Настройки.Пользователь
|ГДЕ
| НЕ Пользователи.ПометкаУдаления
| И НЕ Пользователи.Недействителен
| И НЕ Пользователи.Служебный
| И Пользователи.ИдентификаторПользователяИБ <> &ПустойИдентификаторПользователяИБ
|
|УПОРЯДОЧИТЬ ПО
| Пользователи.Наименование");
Запрос.УстановитьПараметр("УчетнаяЗапись", Справочники.УчетныеЗаписиДокументооборота.ПустаяСсылка());
Запрос.УстановитьПараметр("ПустойИдентификаторПользователяИБ", Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));
Выборка = Запрос.Выполнить().Выбрать();
ТекущийПользователь = Пользователи.ТекущийПользователь();
Пока Выборка.Следующий() Цикл
Если Выборка.Пользователь = ТекущийПользователь Тогда
Картинка = БиблиотекаКартинок.Пользователь;
Иначе
Картинка = Неопределено;
КонецЕсли;
СписокПользователей.Добавить(Выборка.Пользователь, Выборка.Пользователь.Наименование, Выборка.Пометка, Картинка);
КонецЦикла;
СтрокаПользователь = СписокПользователей.НайтиПоЗначению(ТекущийПользователь);
Если СтрокаПользователь <> Неопределено Тогда
СтрокаПользователь.Пометка = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьПользователейУчетныхЗаписейДокументооборота();
НаборЗаписей = РегистрыСведений.ПользователиУчетныхЗаписейДокументооборота.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.УчетнаяЗапись.Установить(СсылкаУчетнаяЗапись.Ссылка);
ФлагОтметки = Ложь;
Если ЗакрытиеФормыПоОК Тогда
Для Каждого СтрокаСписка Из СписокПользователей Цикл
Если СтрокаСписка.Пометка Тогда
НоваяСтрока = НаборЗаписей.Добавить();
НоваяСтрока.УчетнаяЗапись = СсылкаУчетнаяЗапись.Ссылка;
НоваяСтрока.Пользователь = СтрокаСписка.Значение;
ФлагОтметки = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не ЗакрытиеФормыПоОК Или Не ФлагОтметки Тогда
НоваяСтрока = НаборЗаписей.Добавить();
НоваяСтрока.УчетнаяЗапись = СсылкаУчетнаяЗапись.Ссылка;
НоваяСтрока.Пользователь = Пользователи.ТекущийПользователь();
ФлагОтметки = Истина;
КонецЕсли;
Попытка
НаборЗаписей.Записать();
Исключение
РегламентированнаяОтчетностьКлиентСервер.СообщитьОбОшибке(ОписаниеОшибки(), Ложь,
"Не удалось обновить список пользователей по учетной записи налогоплательщика """ + СокрЛП(СсылкаУчетнаяЗапись.Ссылка) + """.");
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСнятьФлажки(Пометка)
Для Каждого Пользователь Из СписокПользователей Цикл
Пользователь.Пометка = Пометка;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Отмена(Команда)
ЗаписатьПользователейУчетныхЗаписейДокументооборота();
Закрыть();
КонецПроцедуры
#КонецОбласти