&НаКлиенте
Перем ТаблицаИсправлений;
&НаКлиенте
Перем КонтекстЭДОКлиент;
&НаКлиенте
Перем ПараметрыФайлаНастроек;
#Область ОбработчикиСобытийФормы
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
ТекстПредупреждения = НСтр("ru = 'Прервать работу помощника?'");
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы(
ЭтотОбъект,
Отказ,
ЗавершениеРаботы,
ТекстПредупреждения,
"ПрограммноеЗакрытие");
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если РегламентированнаяОтчетностьВызовСервера.ИспользуетсяОднаОрганизация() Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("Справочники.Организации");
Организация = Модуль.ОрганизацияПоУмолчанию();
Элементы.Организация.ТолькоПросмотр = Истина;
КонецЕсли;
ПереходитьДалее = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ПереключательПараметрыВручнуюПриИзменении(Элемент)
ПараметрыОрганизацииВручную = ?(ПереключательПараметрыВручную = "1", Истина, Ложь);
УправлениеЭУ(2);
КонецПроцедуры
&НаКлиенте
Процедура СертификатШифрованиеФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Заголовок = "Укажите файл, содержащий сертификат";
ДиалогВыбораФайла.Фильтр = "Файла сертификатов (*.cer)|*.cer|Файла сертификатов (*.crt)|*.crt";
ОписаниеОповещения = Новый ОписаниеОповещения("СертификатШифрованиеФайлПослеВыбораФайла", ЭтотОбъект);
ДиалогВыбораФайла.Показать(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура СертификатШифрованиеФайлОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НЕ ЗначениеЗаполнено(СертификатШифрованиеФайл) Тогда
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьФайлПослеПолученияСвойств", ЭтотОбъект);
ОперацииСФайламиЭДКОКлиент.ПолучитьСвойстваФайла(ОписаниеОповещения, СертификатШифрованиеФайл);
КонецПроцедуры
&НаКлиенте
Процедура СертификатРуководителяОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомандаИзменитьСертификатРуководителя = КонтекстЭДОКлиент.НайтиСтрокуВМассивеСтруктурКлиент(ТаблицаИсправлений, "ИзменитьСертификатРуководителя", "Настройка");
Если КомандаИзменитьСертификатРуководителя <> Неопределено Тогда
СведенияОСертификате = КомандаИзменитьСертификатРуководителя.НовоеЗначение;
Если СведенияОСертификате.Свойство("Сертификат") Тогда
ОткрытьСертификатИзСтроки64(СведенияОСертификате.Сертификат);
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СертификатБухгалтераОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомандаИзменитьСертификатГлавногоБухгалтера = КонтекстЭДОКлиент.НайтиСтрокуВМассивеСтруктурКлиент(ТаблицаИсправлений, "ИзменитьСертификатГлавногоБухгалтера", "Настройка");
Если КомандаИзменитьСертификатГлавногоБухгалтера <> Неопределено Тогда
СведенияОСертификате = КомандаИзменитьСертификатГлавногоБухгалтера.НовоеЗначение;
Если СведенияОСертификате.Свойство("Сертификат") Тогда
ОткрытьСертификатИзСтроки64(СведенияОСертификате.Сертификат);
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтейнерНачалоВыбора(Элемент)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Элемент", Элемент);
Оповещение = Новый ОписаниеОповещения(
"ПолучитьКонтейнерыКлючейПослеВыполнения", ЭтотОбъект, ДополнительныеПараметры);
ПолучатьУникальныеИмена = ОбщегоНазначенияЭДКОКлиент.ЭтоКриптопровайдерLinux();
КриптографияЭДКОКлиент.ПолучитьКонтейнерыКлючей(Оповещение, ПолучатьУникальныеИмена);
КонецПроцедуры
&НаКлиенте
Процедура СертификатШифрованиеКонтейнерНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонтейнерНачалоВыбора(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СертификатРуководителяКонтейнерНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонтейнерНачалоВыбора(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СертификатБухгалтераКонтейнерНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонтейнерНачалоВыбора(Элемент);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура КомандаДалее(Команда)
ИзменитьПорядковыйНомерПерехода(+1);
Если Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.СтраницаОжидания И ПереходитьДалее Тогда
ПодключитьОбработчикОжидания("ОбработчикОжиданияКомандаДалее", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КомандаНазад(Команда)
ИзменитьПорядковыйНомерПерехода(-1);
КонецПроцедуры
&НаКлиенте
Процедура КомандаГотово(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("КомандаГотовоЗавершение", ЭтотОбъект);
ПрименитьДанныеСтраницы6(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура КомандаОтмена(Команда)
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПриОткрытииЗавершение(Результат, ДополнительныеПараметры) Экспорт
КонтекстЭДОКлиент = Результат.КонтекстЭДО;
ТаблицаПереходовПоСценарию1();
УстановитьПорядковыйНомерПерехода(1);
ПереключательПараметрыВручную = "0";
ПараметрыОрганизацииВручную = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура КомандаГотовоЗавершение(Результат, ДополнительныеПараметры) Экспорт
ПрограммноеЗакрытие = Истина;
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура ОбработчикОжиданияКомандаДалее()
КомандаДалее(Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьПорядковыйНомерПерехода(Итератор)
ОчиститьСообщения();
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + Итератор);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПорядковыйНомерПерехода(Знач Значение)
ЭтоПереходДалее = (Значение > ПорядковыйНомерПерехода);
ПорядковыйНомерПерехода = Значение;
Если ПорядковыйНомерПерехода < 0 Тогда
ПорядковыйНомерПерехода = 0;
КонецЕсли;
ПорядковыйНомерПереходаПриИзменении(ЭтоПереходДалее);
КонецПроцедуры
&НаКлиенте
Процедура ПорядковыйНомерПереходаПриИзменении(Знач ЭтоПереходДалее)
Если ЭтоПереходДалее Тогда
СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода - 1));
Если СтрокиПерехода.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СтрокаПерехода = СтрокиПерехода[0];
Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеДалее) Тогда
НомерПерехода = ПорядковыйНомерПерехода - 1;
ДополнительныеПараметры = Новый Структура("ЭтоПереходДалее, НомерПерехода", ЭтоПереходДалее, НомерПерехода);
ОписаниеОповещения = Новый ОписаниеОповещения("ПорядковыйНомерПереходаПриИзмененииЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ИмяФункции = "Подключаемый_[ИмяОбработчика](Отказ, ОписаниеОповещения)";
ИмяФункции = СтрЗаменить(ИмяФункции, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеДалее);
Отказ = Ложь;
А = Вычислить(ИмяФункции);
Иначе
ПорядковыйНомерПереходаПриИзмененииПродолжение(ЭтоПереходДалее);
КонецЕсли;
Иначе
СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода + 1));
Если СтрокиПерехода.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СтрокаПерехода = СтрокиПерехода[0];
Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеНазад) Тогда
НомерПерехода = ПорядковыйНомерПерехода + 1;
ДополнительныеПараметры = Новый Структура("ЭтоПереходДалее, НомерПерехода", ЭтоПереходДалее, НомерПерехода);
ОписаниеОповещения = Новый ОписаниеОповещения("ПорядковыйНомерПереходаПриИзмененииЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ИмяФункции = "Подключаемый_[ИмяОбработчика](Отказ, ОписаниеОповещения)";
ИмяФункции = СтрЗаменить(ИмяФункции, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеНазад);
Отказ = Ложь;
А = Вычислить(ИмяФункции);
Иначе
ПорядковыйНомерПереходаПриИзмененииПродолжение(ЭтоПереходДалее);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПорядковыйНомерПереходаПриИзмененииЗавершение(Отказ, ДополнительныеПараметры) Экспорт
НомерПерехода = ДополнительныеПараметры.НомерПерехода;
ЭтоПереходДалее = ДополнительныеПараметры.ЭтоПереходДалее;
Если Отказ Тогда
УстановитьПорядковыйНомерПерехода(НомерПерехода);
Иначе
ПорядковыйНомерПереходаПриИзмененииПродолжение(ЭтоПереходДалее);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПорядковыйНомерПереходаПриИзмененииПродолжение(ЭтоПереходДалее)
СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода));
Если СтрокиПереходаТекущие.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СтрокаПереходаТекущая = СтрокиПереходаТекущие[0];
Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии) Тогда
ИмяФункции = "Подключаемый_[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)";
ИмяФункции = СтрЗаменить(ИмяФункции, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии);
Отказ = Ложь;
ПропуститьСтраницу = Ложь;
А = Вычислить(ИмяФункции);
Если Отказ Тогда
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1);
Возврат;
ИначеЕсли ПропуститьСтраницу Тогда
Если ЭтоПереходДалее Тогда
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1);
Возврат;
Иначе
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Элементы.ПанельОсновная.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяОсновнойСтраницы];
Элементы.ПанельНавигации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыНавигации];
КнопкаДалее = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаДалее");
Если КнопкаДалее <> Неопределено Тогда
КнопкаДалее.КнопкаПоУмолчанию = Истина;
Иначе
КнопкаГотово = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаГотово");
Если КнопкаГотово <> Неопределено Тогда
КнопкаГотово.КнопкаПоУмолчанию = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаПереходовНоваяСтрока(ПорядковыйНомерПерехода,
ИмяОсновнойСтраницы,
ИмяСтраницыНавигации,
ИмяСтраницыДекорации = "",
ИмяОбработчикаПриОткрытии = "",
ИмяОбработчикаПриПереходеДалее = "",
ИмяОбработчикаПриПереходеНазад = ""
)
НоваяСтрока = ТаблицаПереходов.Добавить();
НоваяСтрока.ПорядковыйНомерПерехода = ПорядковыйНомерПерехода;
НоваяСтрока.ИмяОсновнойСтраницы = ИмяОсновнойСтраницы;
НоваяСтрока.ИмяСтраницыДекорации = ИмяСтраницыДекорации;
НоваяСтрока.ИмяСтраницыНавигации = ИмяСтраницыНавигации;
НоваяСтрока.ИмяОбработчикаПриПереходеДалее = ИмяОбработчикаПриПереходеДалее;
НоваяСтрока.ИмяОбработчикаПриПереходеНазад = ИмяОбработчикаПриПереходеНазад;
НоваяСтрока.ИмяОбработчикаПриОткрытии = ИмяОбработчикаПриОткрытии;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьКнопкуФормыПоИмениКоманды(ЭлементФормы, ИмяКоманды)
Для Каждого Элемент Из ЭлементФормы.ПодчиненныеЭлементы Цикл
Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда
ЭлементФормыПоИмениКоманды = ПолучитьКнопкуФормыПоИмениКоманды(Элемент, ИмяКоманды);
Если ЭлементФормыПоИмениКоманды <> Неопределено Тогда
Возврат ЭлементФормыПоИмениКоманды;
КонецЕсли;
ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы")
И СтрНайти(Элемент.ИмяКоманды, ИмяКоманды) > 0 Тогда
Возврат Элемент;
Иначе
Продолжить;
КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции
&НаКлиенте
Функция Подключаемый_Страница2_ПриПереходеДалее(Отказ, ВыполняемоеОповещение)
Если НЕ ПереходВпередВозможен(2) Тогда
Отказ = Истина;
КонецЕсли;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Отказ);
КонецФункции
&НаКлиенте
Функция Подключаемый_Страница4_ПриПереходеДалее(Отказ, ВыполняемоеОповещение)
Если НЕ ПереходВпередВозможен(4) Тогда
Отказ = Истина;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Отказ);
Возврат Неопределено;
КонецЕсли;
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение", ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения("ПриПереходеДалееЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПрименитьДанные(4, ОписаниеОповещения);
КонецФункции
&НаКлиенте
Процедура ПриПереходеДалееЗавершение(Результат, ДополнительныеПараметры) Экспорт
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если Результат Тогда
Отказ = Ложь;
Иначе
Отказ = Истина;
КонецЕсли;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Отказ);
КонецПроцедуры
&НаКлиенте
Функция Подключаемый_Страница5_ПриПереходеДалее(Отказ, ВыполняемоеОповещение)
Если НЕ ПереходВпередВозможен(5) Тогда
Отказ = Истина;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Отказ);
Возврат Неопределено;
КонецЕсли;
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение", ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения("ПриПереходеДалееЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПрименитьДанные(5, ОписаниеОповещения)
КонецФункции
&НаКлиенте
Функция Подключаемый_Страница2_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее)
УправлениеЭУ(2);
КонецФункции
&НаКлиенте
Функция Подключаемый_СтраницаОжидания_ПриПереходеДалее(Отказ, ВыполняемоеОповещение)
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение", ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения("ПриПереходеДалееЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПрименитьДанные(2, ОписаниеОповещения);
КонецФункции
&НаКлиенте
Функция Подключаемый_СтраницаОжидания_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее)
Если Не ЭтоПереходДалее Тогда
ПропуститьСтраницу = Истина;
КонецЕсли;
КонецФункции
&НаКлиенте
Функция Подключаемый_Страница6_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее)
УправлениеЭУ(6);
КонецФункции
&НаКлиенте
Процедура ТаблицаПереходовПоСценарию1()
ТаблицаПереходов.Очистить();
ТаблицаПереходовНоваяСтрока(1, "Страница1", "СтраницаНавигацииНачало", "СтраницаДекорацииНачало");
ТаблицаПереходовНоваяСтрока(2, "Страница2", "СтраницаНавигацииПродолжение", , "Страница2_ПриОткрытии", "Страница2_ПриПереходеДалее", );
ТаблицаПереходовНоваяСтрока(3, "СтраницаОжидания", "СтраницаНавигацииОжидание", , "СтраницаОжидания_ПриОткрытии", "СтраницаОжидания_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(4, "Страница4", "СтраницаНавигацииПродолжение", , , "Страница4_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(5, "Страница5", "СтраницаНавигацииПродолжение", , , "Страница5_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(6, "Страница6", "СтраницаНавигацииОкончание", , "Страница6_ПриОткрытии");
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаПереходовПоСценарию2()
ТаблицаПереходов.Очистить();
ТаблицаПереходовНоваяСтрока(1, "Страница1", "СтраницаНавигацииНачало", "СтраницаДекорацииНачало");
ТаблицаПереходовНоваяСтрока(2, "Страница2", "СтраницаНавигацииПродолжение", , "Страница2_ПриОткрытии", "Страница2_ПриПереходеДалее", );
ТаблицаПереходовНоваяСтрока(3, "СтраницаОжидания", "СтраницаНавигацииОжидание", , "СтраницаОжидания_ПриОткрытии", "СтраницаОжидания_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(4, "Страница6", "СтраницаНавигацииОкончание", , "Страница6_ПриОткрытии");
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаПереходовПоСценарию3()
ТаблицаПереходов.Очистить();
ТаблицаПереходовНоваяСтрока(1, "Страница1", "СтраницаНавигацииНачало", "СтраницаДекорацииНачало");
ТаблицаПереходовНоваяСтрока(2, "Страница2", "СтраницаНавигацииПродолжение", , "Страница2_ПриОткрытии", "Страница2_ПриПереходеДалее", );
ТаблицаПереходовНоваяСтрока(3, "СтраницаОжидания", "СтраницаНавигацииОжидание", , "СтраницаОжидания_ПриОткрытии", "СтраницаОжидания_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(4, "Страница4", "СтраницаНавигацииПродолжение", , , "Страница4_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(5, "Страница6", "СтраницаНавигацииОкончание", , "Страница6_ПриОткрытии");
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаПереходовПоСценарию4()
ТаблицаПереходов.Очистить();
ТаблицаПереходовНоваяСтрока(1, "Страница1", "СтраницаНавигацииНачало", "СтраницаДекорацииНачало");
ТаблицаПереходовНоваяСтрока(2, "Страница2", "СтраницаНавигацииПродолжение", , "Страница2_ПриОткрытии", "Страница2_ПриПереходеДалее", );
ТаблицаПереходовНоваяСтрока(3, "СтраницаОжидания", "СтраницаНавигацииОжидание", , "СтраницаОжидания_ПриОткрытии", "СтраницаОжидания_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(4, "Страница5", "СтраницаНавигацииПродолжение", , , "Страница5_ПриПереходеДалее");
ТаблицаПереходовНоваяСтрока(5, "Страница6", "СтраницаНавигацииОкончание", , "Страница6_ПриОткрытии");
КонецПроцедуры
&НаКлиенте
Процедура СертификатШифрованиеФайлПослеВыбораФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
Если ВыбранныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
СертификатШифрованиеФайл = ВыбранныеФайлы[0];
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФайлПослеПолученияСвойств(Результат, ДополнительныеПараметры) Экспорт
Если НЕ Результат.Выполнено Тогда
Возврат;
КонецЕсли;
СвойстваФайла = Результат.СвойстваФайла;
Если СвойстваФайла.Существует И СвойстваФайла.ЭтоФайл Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьФайлПослеЗапускаПриложения", ЭтотОбъект);
НачатьЗапускПриложения(ОписаниеОповещения, СвойстваФайла.ПолноеИмя);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФайлПослеЗапускаПриложения(Результат, ДополнительныеПараметры) Экспорт
ЭтаПеременнаяЧтобыНеРугаласьПроверкаКонфигурацииНаПустойОбработчик = Неопределено;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьСертификатИзСтроки64(СертификатСтрока64)
ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьСертификатИзСтроки64ПослеЗаписиВФайл", ЭтотОбъект);
ОперацииСФайламиЭДКОКлиент.Base64ВФайл(ОписаниеОповещения, СертификатСтрока64, ".cer");
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьСертификатИзСтроки64ПослеЗаписиВФайл(Результат, ДополнительныеПараметры) Экспорт
Если НЕ Результат.Выполнено Тогда
ПоказатьПредупреждение(, "Не удалось открыть сертификат: сертификат не выгружается во временный файл на диск!");
Возврат;
КонецЕсли;
СертификатИмяФайла = Результат.ИмяФайла;
ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьФайлПослеЗапускаПриложения", ЭтотОбъект);
НачатьЗапускПриложения(ОписаниеОповещения, СертификатИмяФайла);
КонецПроцедуры
&НаКлиенте
Процедура УправлениеЭУ(НомерСтраницы)
Если НомерСтраницы = 1 Тогда
ИначеЕсли НомерСтраницы = 2 Тогда
Элементы.ГруппаИННКПП.Доступность = ПараметрыОрганизацииВручную;
Элементы.Организация.Доступность = НЕ ПараметрыОрганизацииВручную;
ИначеЕсли НомерСтраницы = 3 Тогда
ИначеЕсли НомерСтраницы = 4 Тогда
ИначеЕсли НомерСтраницы = 5 Тогда
ИначеЕсли НомерСтраницы = 6 Тогда
Если ПараметрыОрганизацииВручную Тогда
Элементы.СопоставитьУчетнуюЗаписьОрганизации.Видимость = Ложь;
Иначе
Элементы.СопоставитьУчетнуюЗаписьОрганизации.Заголовок = "Сопоставить учетную запись организации " + Организация;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьКонтейнерыКлючейПослеВыполнения(Результат, ДополнительныеПараметры) Экспорт
Если НЕ Результат.Выполнено Тогда
Возврат;
КонецЕсли;
СписокВыбора = ДополнительныеПараметры.Элемент.СписокВыбора;
СписокВыбора.ЗагрузитьЗначения(Новый Массив(Результат.КонтейнерыКлючей));
ОписаниеОповещения = Новый ОписаниеОповещения("КонтейнерНачалоВыбораЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПоказатьВыборИзСписка(ОписаниеОповещения, СписокВыбора);
КонецПроцедуры
&НаКлиенте
Процедура КонтейнерНачалоВыбораЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт
Если РезультатВыбора <> Неопределено Тогда
ЭлементИмя = ДополнительныеПараметры.Элемент.Имя;
Если ЭлементИмя = "СертификатШифрованиеКонтейнер" Тогда
СертификатШифрованиеКонтейнер = РезультатВыбора.Значение;
ИначеЕсли ЭлементИмя = "СертификатРуководителяКонтейнер" Тогда
СертификатРуководителяКонтейнер = РезультатВыбора.Значение;
ИначеЕсли ЭлементИмя = "СертификатБухгалтераКонтейнер" Тогда
СертификатБухгалтераКонтейнер = РезультатВыбора.Значение;
КонецЕсли;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПереходВпередВозможен(НомерСтраницы)
Если НомерСтраницы = 1 Тогда
ИначеЕсли НомерСтраницы = 2 Тогда
Возврат ПроверитьДанныеСтраницы2();
ИначеЕсли НомерСтраницы = 3 Тогда
ИначеЕсли НомерСтраницы = 4 Тогда
Возврат ПроверитьДанныеСтраницы4();
ИначеЕсли НомерСтраницы = 5 Тогда
Возврат ПроверитьДанныеСтраницы5();
ИначеЕсли НомерСтраницы = 6 Тогда
КонецЕсли;
ПереходитьДалее = Истина;
Возврат Истина;
КонецФункции
&НаКлиенте
Процедура ПрименитьДанные(НомерСтраницы, ВыполняемоеОповещение)
Если НомерСтраницы = 1 Тогда
ИначеЕсли НомерСтраницы = 2 Тогда
ПрименитьДанныеСтраницы2(ВыполняемоеОповещение);
Возврат;
ИначеЕсли НомерСтраницы = 3 Тогда
ИначеЕсли НомерСтраницы = 4 Тогда
ПрименитьДанныеСтраницы4(ВыполняемоеОповещение);
Возврат;
ИначеЕсли НомерСтраницы = 5 Тогда
ПрименитьДанныеСтраницы5(ВыполняемоеОповещение);
Возврат;
ИначеЕсли НомерСтраницы = 6 Тогда
ПрименитьДанныеСтраницы6(ВыполняемоеОповещение);
Возврат;
КонецЕсли;
Результат = Истина;
ПереходитьДалее = Истина;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Результат);
КонецПроцедуры
&НаКлиенте
Функция ПроверитьДанныеСтраницы2()
Если ПараметрыОрганизацииВручную Тогда
СтрИНН = СокрЛП(ИНН);
СтрКПП = СокрЛП(КПП);
ДлинаИНН = СтрДлина(СтрИНН);
ДлинаКПП = СтрДлина(СтрКПП);
Если ДлинаИНН = 10 Тогда
Если ДлинаКПП = 0 Тогда
ПоказатьПредупреждение(, "Укажите КПП.");
Возврат Ложь;
ИначеЕсли ДлинаКПП <> 9 Тогда
ПоказатьПредупреждение(, "Укажите корректный КПП.");
Возврат Ложь;
КонецЕсли;
ИначеЕсли ДлинаИНН = 0 Тогда
ПоказатьПредупреждение(, "Укажите ИНН" + ?(ДлинаКПП = 0, "\КПП", "") + ".");
Возврат Ложь;
ИначеЕсли ДлинаИНН <> 12 Тогда
ПоказатьПредупреждение(, "Укажите корректный ИНН.");
Возврат Ложь;
КонецЕсли;
Иначе
Если Организация.Пустая() Тогда
ПоказатьПредупреждение(, "Укажите организацию.");
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаКлиенте
Функция ПроверитьДанныеСтраницы4()
Если НЕ ЗначениеЗаполнено(СертификатРуководителяКонтейнер) Тогда
ПоказатьПредупреждение(, "Выберите ключевой контейнер!");
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаКлиенте
Функция ПроверитьДанныеСтраницы5()
Если НЕ ЗначениеЗаполнено(СертификатБухгалтераКонтейнер) Тогда
ПоказатьПредупреждение(, "Выберите ключевой контейнер!");
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаКлиенте
Процедура ПрименитьДанныеСтраницы2(ВыполняемоеОповещение)
Если ПараметрыОрганизацииВручную Тогда
параметрОрганизация = Новый Структура("ИНН, КПП", СокрЛП(ИНН), СокрЛП(КПП));
Иначе
параметрОрганизация = Организация;
КонецЕсли;
ПараметрыФайлаНастроек = Неопределено;
ПараметрыФайлаНастроек = КонтекстЭДОКлиент.ПолучитьФайлНастроекУчетнойЗаписиССервераРОКИСУчетомКэша(Неопределено, параметрОрганизация, Истина, Истина, Ложь, Ложь, УникальныйИдентификатор);
Если НЕ ЗначениеЗаполнено(ПараметрыФайлаНастроек) Тогда
ПереходитьДалее = Ложь;
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьПредупреждениеЗавершение", ЭтотОбъект, ВыполняемоеОповещение);
ПоказатьПредупреждение(ОписаниеОповещения, "При попытке получения и анализа параметров учетной записи произошла ошибка!");
Возврат;
КонецЕсли;
ФайлНастроекАдресДанных = ПараметрыФайлаНастроек.Файл;
ФайлНастроекРасшифрован = ПараметрыФайлаНастроек.Расшифрован;
Если НЕ ФайлНастроекРасшифрован Тогда
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение", ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения("ПрименитьДанныеСтраницы2ПослеРасшифровкиФайлаНастроек", ЭтотОбъект, ДополнительныеПараметры);
МестоХраненияКлюча = КриптографияЭДКОКлиентСервер.КонтекстМоделиХраненияКлюча(Ложь);
КриптографияЭДКОКлиент.РасшифроватьPKCS7(ОписаниеОповещения, ФайлНастроекАдресДанных,, МестоХраненияКлюча);
ПереходитьДалее = Ложь;
Возврат;
Иначе
АдресДанныхРасшифрованногоФайлаСНастройками = ФайлНастроекАдресДанных;
ПрименитьДанныеСтраницы2ФайлНастроекРасшифрован(ВыполняемоеОповещение, АдресДанныхРасшифрованногоФайлаСНастройками);
ПереходитьДалее = Ложь;
Возврат;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПрименитьДанныеСтраницы2ПослеРасшифровкиФайлаНастроек(Результат, ДополнительныеПараметры) Экспорт
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если НЕ Результат.Выполнено Тогда
ПереходитьДалее = Ложь;
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьПредупреждениеЗавершение", ЭтотОбъект, ВыполняемоеОповещение);
ПоказатьПредупреждение(ОписаниеОповещения, "Ошибка расшифровки контейнера с настройками!");
Возврат;
КонецЕсли;
АдресДанныхРасшифрованногоФайлаСНастройками = Результат.РасшифрованныйФайл;
ПараметрыФайлаНастроек.Вставить("Файл", АдресДанныхРасшифрованногоФайлаСНастройками);
ПараметрыФайлаНастроек.Вставить("Расшифрован", Истина);
ПрименитьДанныеСтраницы2ФайлНастроекРасшифрован(ВыполняемоеОповещение, АдресДанныхРасшифрованногоФайлаСНастройками);
КонецПроцедуры
&НаКлиенте
Процедура ПрименитьДанныеСтраницы2ФайлНастроекРасшифрован(ВыполняемоеОповещение, АдресДанныхРасшифрованногоФайлаСНастройками)
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение", ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПрименитьДанныеСтраницы2Завершение",
ЭтотОбъект,
ДополнительныеПараметры);
КонтекстЭДОКлиент.СформироватьТаблицуИсправленийНаОсновеФайлаНастроек(
АдресДанныхРасшифрованногоФайлаСНастройками,
Истина,
ОписаниеОповещения,,
Организация);
КонецПроцедуры
&НаКлиенте
Процедура ПрименитьДанныеСтраницы2Завершение(РезультатТаблицаИсправлений, ДополнительныеПараметры) Экспорт
ТаблицаИсправлений = РезультатТаблицаИсправлений;
ПереходитьДалее = Истина;
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если ТаблицаИсправлений = Неопределено ИЛИ ТаблицаИсправлений.Количество() = 0 Тогда
ПоказатьПредупреждение(, "При попытке получения и анализа параметров учетной записи произошла ошибка!");
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Ложь);
Иначе
УправлениеСтраницамиССертификатами(ТаблицаИсправлений);
СопоставитьУчетнуюЗаписьОрганизации = Истина;
ОткрытьФормуУчетнойЗаписи = Истина;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьПредупреждениеЗавершение(ВыполняемоеОповещение) Экспорт
ПереходитьДалее = Истина;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ПрименитьДанныеСтраницы4(ВыполняемоеОповещение)
КомандаИзменитьСертификатРуководителя = КонтекстЭДОКлиент.НайтиСтрокуВМассивеСтруктурКлиент(ТаблицаИсправлений, "ИзменитьСертификатРуководителя", "Настройка");
Если КомандаИзменитьСертификатРуководителя <> Неопределено Тогда
ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючу(ВыполняемоеОповещение, КомандаИзменитьСертификатРуководителя.НовоеЗначение, СертификатРуководителяКонтейнер);
Возврат;
Иначе
ПоказатьПредупреждение(, "Не удалось определить свойства нового сертификата руководителя!");
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Ложь);
Возврат;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПрименитьДанныеСтраницы5(ВыполняемоеОповещение)
КомандаИзменитьСертификатБухгалтера = КонтекстЭДОКлиент.НайтиСтрокуВМассивеСтруктурКлиент(ТаблицаИсправлений, "ИзменитьСертификатГлавногоБухгалтера", "Настройка");
Если КомандаИзменитьСертификатБухгалтера <> Неопределено Тогда
ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючу(ВыполняемоеОповещение, КомандаИзменитьСертификатБухгалтера.НовоеЗначение, СертификатБухгалтераКонтейнер);
Возврат;
Иначе
ПоказатьПредупреждение(, "Не удалось определить свойства нового сертификата главного бухгалтера!");
Возврат;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПрименитьДанныеСтраницы6(ВыполняемоеОповещение)
НоваяУчетнаяЗапись = Неопределено;
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение", ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения("ПрименитьДанныеСтраницы6Завершение", ЭтотОбъект, ДополнительныеПараметры);
КонтекстЭДОКлиент.ПрименитьИзмененныеНастройки(
НоваяУчетнаяЗапись,
ТаблицаИсправлений,
Истина,
ОписаниеОповещения,
?(СопоставитьУчетнуюЗаписьОрганизации, Организация, Неопределено));
КонецФункции
&НаКлиенте
Процедура ПрименитьДанныеСтраницы6Завершение(Результат, ДополнительныеПараметры) Экспорт
ТаблицаИсправлений = Результат.ТаблицаИсправлений;
РезультатПрименения = Результат.РезультатПрименения;
НоваяУчетнаяЗапись = Результат.УчетнаяЗапись;
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если НЕ РезультатПрименения Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьПредупреждениеЗавершение", ЭтотОбъект, ВыполняемоеОповещение);
ПереходитьДалее = Ложь;
ПоказатьПредупреждение(ОписаниеОповещения, "Во время сохранения информации в базу данных произошли ошибки!");
Возврат;
КонецЕсли;
Если НЕ ПараметрыОрганизацииВручную И СопоставитьУчетнуюЗаписьОрганизации Тогда
СтруктураДляОповещения = Новый Структура("Организация, УчетнаяЗапись", Организация, НоваяУчетнаяЗапись);
Оповестить("Привязка учетной записи к организации", СтруктураДляОповещения);
Если НЕ СтруктураДляОповещения.Свойство("ОповещениеОтработано") ИЛИ СтруктураДляОповещения.ОповещениеОтработано = Ложь Тогда
ТекстПредупреждения = Неопределено;
Если НЕ ЗафиксироватьПривязкуВБД(Организация, НоваяУчетнаяЗапись, ТекстПредупреждения) Тогда
Если ТекстПредупреждения <> Неопределено Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстПредупреждения);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(КонтекстЭДОКлиент.НоваяУчетнаяЗапись) Тогда
Оповестить("ОбновитьУчетнуюЗапись",КонтекстЭДОКлиент.НоваяУчетнаяЗапись,);
КонецЕсли;
Если ОткрытьФормуУчетнойЗаписи И НоваяУчетнаяЗапись <> ПредопределенноеЗначение("Справочник.УчетныеЗаписиДокументооборота.ПустаяСсылка")
И НоваяУчетнаяЗапись <> Неопределено Тогда
ПараметрыФормы = Новый Структура("Ключ", НоваяУчетнаяЗапись);
ОткрытьФорму("Справочник.УчетныеЗаписиДокументооборота.ФормаОбъекта", ПараметрыФормы);
КонецЕсли;
КонтекстЭДОКлиент.СохранитьВКэшеФайлНастроек(НоваяУчетнаяЗапись, ПараметрыФайлаНастроек.ИмяРесурса, ПараметрыФайлаНастроек.Файл, Истина, ПараметрыФайлаНастроек.Дата);
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючу(ВыполняемоеОповещение, Сертификат, СертификатКонтейнер)
Если ТипЗнч(Сертификат) <> Тип("Строка") Тогда
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение, СертификатКонтейнер", ВыполняемоеОповещение, СертификатКонтейнер);
ОписаниеОповещения = Новый ОписаниеОповещения("ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПослеЗаписиСертификата64ВФайл", ЭтотОбъект, ДополнительныеПараметры);
ОперацииСФайламиЭДКОКлиент.Base64ВФайл(ОписаниеОповещения, Сертификат.Сертификат);
Возврат;
Иначе
СертификатИмяФайла = Сертификат;
ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайла(ВыполняемоеОповещение, СертификатИмяФайла, СертификатКонтейнер);
Возврат;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПослеЗаписиСертификата64ВФайл(Результат, ДополнительныеПараметры) Экспорт
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если НЕ Результат.Выполнено Тогда
ПоказатьПредупреждение(, "Не удалось выгрузить новый сертификат во временный файл на диск!");
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Ложь);
Возврат;
КонецЕсли;
СертификатКонтейнер = ДополнительныеПараметры.СертификатКонтейнер;
СертификатИмяФайла = Результат.ИмяФайла;
ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайла(ВыполняемоеОповещение, СертификатИмяФайла, СертификатКонтейнер);
КонецПроцедуры
&НаКлиенте
Процедура ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайла(ВыполняемоеОповещение, СертификатИмяФайла, СертификатКонтейнер)
ИспользоватьУстановитьСертификатВКонтейнерИХранилище = Истина;
ДополнительныеПараметры = Новый Структура("ВыполняемоеОповещение, СертификатКонтейнер", ВыполняемоеОповещение, СертификатКонтейнер);
Если ИспользоватьУстановитьСертификатВКонтейнерИХранилище ИЛИ ОбщегоНазначенияЭДКОКлиент.ЭтоКриптопровайдерLinux() Тогда
ОписаниеОповещения = Новый ОписаниеОповещения(
"ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайлаПослеСвязыванияСертификатаСКонтейнеромКлючей",
ЭтотОбъект, ДополнительныеПараметры);
КриптографияЭДКОКлиент.УстановитьСертификатВКонтейнерИХранилище(
ОписаниеОповещения,
СертификатИмяФайла,
СертификатКонтейнер);
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайлаПослеИмпортированияСертификата", ЭтотОбъект, ДополнительныеПараметры);
КриптографияЭДКОКлиент.ИмпортироватьСертификат(ОписаниеОповещения, СертификатИмяФайла, "MY");
КонецПроцедуры
&НаКлиенте
Процедура ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайлаПослеИмпортированияСертификата(Результат, ДополнительныеПараметры) Экспорт
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если НЕ Результат.Выполнено Тогда
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Ложь);
Возврат;
КонецЕсли;
СертификатКонтейнер = ДополнительныеПараметры.СертификатКонтейнер;
СвойстваСертификата = Результат.СвойстваСертификата;
СерийныйНомерСертификатаОтветственногоЗаШифрование = СвойстваСертификата.СерийныйНомер;
ПоставщикСертификатаОтветственногоЗаШифрование = СвойстваСертификата.Поставщик;
ОписаниеОповещения = Новый ОписаниеОповещения("ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайлаПослеСвязыванияСертификатаСКонтейнеромКлючей", ЭтотОбъект, ДополнительныеПараметры);
КриптографияЭДКОКлиент.СвязатьСертификатСКонтейнеромКлючей(ОписаниеОповещения, Результат.СвойстваСертификата, СертификатКонтейнер);
КонецПроцедуры
&НаКлиенте
Процедура ЗарегистрироватьСертификатСПривязкойКЗакрытомуКлючуПоИмениФайлаПослеСвязыванияСертификатаСКонтейнеромКлючей(Результат, ДополнительныеПараметры) Экспорт
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если НЕ Результат.Выполнено Тогда
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Ложь);
Возврат;
КонецЕсли;
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение, Истина);
КонецПроцедуры
&НаКлиенте
Процедура УправлениеСтраницамиССертификатами(ТаблицаИсправлений)
КомандаИзменитьСертификатРуководителя = КонтекстЭДОКлиент.НайтиСтрокуВМассивеСтруктурКлиент(ТаблицаИсправлений, "ИзменитьСертификатРуководителя", "Настройка");
ПоказыватьСтраницу4 = (КомандаИзменитьСертификатРуководителя <> Неопределено);
Если ПоказыватьСтраницу4 Тогда
СвойстваСертификата = КомандаИзменитьСертификатРуководителя.НовоеЗначение;
СертификатРуководителя = ПредставлениеСертификатаПоСвойствам(СвойстваСертификата);
КонецЕсли;
КомандаИзменитьСертификатГлавногоБухгалтера = КонтекстЭДОКлиент.НайтиСтрокуВМассивеСтруктурКлиент(ТаблицаИсправлений, "ИзменитьСертификатГлавногоБухгалтера", "Настройка");
ПоказыватьСтраницу5 = (КомандаИзменитьСертификатГлавногоБухгалтера <> Неопределено);
Если ПоказыватьСтраницу5 Тогда
СвойстваСертификата = КомандаИзменитьСертификатГлавногоБухгалтера.НовоеЗначение;
СертификатБухгалтера = ПредставлениеСертификатаПоСвойствам(СвойстваСертификата);
КонецЕсли;
Если ПоказыватьСтраницу4 И ПоказыватьСтраницу5 Тогда
ТаблицаПереходовПоСценарию2();
ИначеЕсли ПоказыватьСтраницу4 Тогда
ТаблицаПереходовПоСценарию3();
ИначеЕсли ПоказыватьСтраницу5 Тогда
ТаблицаПереходовПоСценарию4();
Иначе
ТаблицаПереходовПоСценарию1();
КонецЕсли;
КонецПроцедуры
Функция ПредставлениеСертификатаПоСвойствам(СвойстваСертификата) Экспорт
Если НЕ ЗначениеЗаполнено(СвойстваСертификата) Тогда
Возврат "<отсутствует>";
КонецЕсли;
Если ТипЗнч(СвойстваСертификата) = Тип("ТаблицаЗначений") ИЛИ ТипЗнч(СвойстваСертификата) = Тип("Массив") Тогда
Возврат Формат(СвойстваСертификата.Количество(), "ЧН=") + " сертификатов";
КонецЕсли;
Наименование = "";
Владелец = "";
ДействителенС = "";
ДействителенПо = "";
Отпечаток = "";
СвойстваСертификата.Свойство("Наименование", Наименование);
СвойстваСертификата.Свойство("ИмяВладельца", Владелец);
СвойстваСертификата.Свойство("ДействителенС", ДействителенС);
СвойстваСертификата.Свойство("ДействителенПо", ДействителенПо);
СвойстваСертификата.Свойство("Отпечаток", Отпечаток);
ПредставлениеСертификата = "";
Если ЗначениеЗаполнено(Наименование) Тогда
ПредставлениеСертификата = СокрЛП(Наименование);
ИначеЕсли ЗначениеЗаполнено(Владелец) Тогда
ПредставлениеСертификата = СокрЛП(Владелец);
Иначе
ПредставлениеСертификата = СокрЛП(Отпечаток);
КонецЕсли;
Если ЗначениеЗаполнено(ДействителенС) И ЗначениеЗаполнено(ДействителенПо) Тогда
ПредставлениеСертификата = ПредставлениеСертификата + " (" + Формат(ДействителенС, "ДФ='dd.MM.yyyy HH:mm'") + " - " + Формат(ДействителенПо, "ДФ='dd.MM.yyyy HH:mm'") + ")";
КонецЕсли;
Возврат ПредставлениеСертификата;
КонецФункции
&НаСервереБезКонтекста
Функция ЗафиксироватьПривязкуВБД(Организация, НоваяУчетнаяЗапись, ТекстПредупреждения)
ОрганизацияОбъект = Организация.ПолучитьОбъект();
ОрганизацияОбъект.УчетнаяЗаписьОбмена = НоваяУчетнаяЗапись;
ОрганизацияОбъект.ВидОбменаСКонтролирующимиОрганами = Перечисления.ВидыОбменаСКонтролирующимиОрганами.ОбменВУниверсальномФормате;
Попытка
ОрганизацияОбъект.Записать();
Исключение
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Не удалось сопоставить вновь созданную учетной запись организации:%1'"),
Символы.ПС + ИнформацияОбОшибке().Описание);
Возврат Ложь;
КонецПопытки;
Возврат Истина;
КонецФункции
#КонецОбласти