Форма элемента при создании на сервере. Обработчики событий формы элемента файла.
/////////////////////////////////////////////////////////////////////////////////////
// Обработчики событий формы элемента файла.
Процедура ФормаЭлементаПриСозданииНаСервере(Контекст, Отказ, СтандартнаяОбработка, Параметры, ТолькоПросмотр, НастраиватьОбъектФормы = Ложь) Экспорт
Элементы = Контекст.Элементы;
КолонкиМассив = Новый Массив;
Для Каждого ОписаниеКолонки Из Контекст.РеквизитФормыВЗначение("ЭлектронныеПодписи").Колонки Цикл
КолонкиМассив.Добавить(ОписаниеКолонки.Имя);
КонецЦикла;
Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Параметры.ЗначениеКопирования);
Если Параметры.РежимСоздания = "ИзШаблона" Тогда
ОбъектЗначение = ЗаполнитьДанныеФайлаПоШаблону(Контекст, ОбъектЗначение, Параметры, НастраиватьОбъектФормы)
Иначе
ОбъектЗначение = ЗаполнитьДанныеФайлаИзКопии(Контекст, ОбъектЗначение, Параметры, НастраиватьОбъектФормы);
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(Параметры.ПрисоединенныйФайл) Тогда
ОбъектЗначение = Параметры.ПрисоединенныйФайл.ПолучитьОбъект();
Иначе
ОбъектЗначение = Параметры.Ключ.ПолучитьОбъект();
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ОбъектЗначение, Контекст);
КонецЕсли;
ОбъектЗначение.Заполнить(Неопределено);
Контекст.ИмяСправочника = ОбъектЗначение.Метаданные().Имя;
ЗаголовокОшибки = НСтр("ru = 'Ошибка при настройке формы элемента присоединенных файлов.'");
ОкончаниеОшибки = НСтр("ru = 'В этом случае настройка формы элемента невозможна.'");
ВозможностьСоздаватьВерсииФайлов = ТипЗнч(ОбъектЗначение.Ссылка) = Тип("СправочникСсылка.Файлы");
Контекст.ВозможностьСоздаватьВерсииФайлов = ВозможностьСоздаватьВерсииФайлов;
Если НастраиватьОбъектФормы Тогда
Элементы.ХранитьВерсии0.Видимость = ВозможностьСоздаватьВерсииФайлов;
НастроитьОбъектФормы(ОбъектЗначение, Контекст);
Иначе
ЗначениеВДанныеФормы(ОбъектЗначение, Контекст.Объект);
Элементы.ХранитьВерсии.Видимость = ВозможностьСоздаватьВерсииФайлов;
КонецЕсли;
КриптографияПриСозданииФормыНаСервере(Контекст, Ложь);
ЗаполнитьСписокПодписей(Контекст, Параметры.ЗначениеКопирования);
ЗаполнитьСписокШифрования(Контекст, Параметры.ЗначениеКопирования);
ОбщиеНастройки = РаботаСФайламиСлужебныйПовтИсп.НастройкиРаботыСФайлами().ОбщиеНастройки;
РасширениеФайлаВСписке = РаботаСФайламиСлужебныйКлиентСервер.РасширениеФайлаВСписке(
ОбщиеНастройки.СписокРасширенийТекстовыхФайлов, Контекст.Объект.Расширение);
Если РасширениеФайлаВСписке Тогда
Если ВозможностьСоздаватьВерсииФайлов И Контекст.Объект.Свойство("ТекущаяВерсия") И ЗначениеЗаполнено(Контекст.Объект.ТекущаяВерсия) Тогда
ТекущаяВерсияФайла = Контекст.Объект.ТекущаяВерсия;
Иначе
ТекущаяВерсияФайла = Контекст.Объект.Ссылка;
КонецЕсли;
Если ЗначениеЗаполнено(ТекущаяВерсияФайла) Тогда
КодировкаЗначение = ПолучитьКодировкуВерсииФайла(ТекущаяВерсияФайла);
СписокКодировок = Кодировки();
ЭлементСписка = СписокКодировок.НайтиПоЗначению(КодировкаЗначение);
Если ЭлементСписка = Неопределено Тогда
Контекст.Кодировка = КодировкаЗначение;
Иначе
Контекст.Кодировка = ЭлементСписка.Представление;
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(Контекст.Кодировка) Тогда
Контекст.Кодировка = НСтр("ru = 'По умолчанию'");
КонецЕсли;
Иначе
Контекст.Элементы.Кодировка.Видимость = Ложь;
КонецЕсли;
ЭтоСлужебныйФайл = Ложь;
Если ЕстьРеквизитСлужебный(Контекст.ИмяСправочника) Тогда
ЭтоСлужебныйФайл = ОбъектЗначение.Служебный;
КонецЕсли;
Если ЭтоСлужебныйФайл Тогда
Контекст.ТолькоПросмотр = Истина;
КонецЕсли;
Элементы.ФормаЗакрыть.Видимость = ЭтоСлужебныйФайл;
Элементы.ФормаЗакрыть.КнопкаПоУмолчанию = ЭтоСлужебныйФайл;
Элементы.ДекорацияПояснениеСлужебный.Видимость = ЭтоСлужебныйФайл;
Если ТипЗнч(Контекст.ТекущийПользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
ИзменитьФормуДляВнешнегоПользователя(Контекст);
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюФайлов") Тогда
Контекст.ФайлРедактируетсяВОблаке = ФайлРедактируетсяВОблаке(Контекст.Объект.Ссылка);
КонецЕсли;
Если ТолькоПросмотр
ИЛИ НЕ ПравоДоступа("Изменение", Контекст.Объект.Ссылка.Метаданные()) Тогда
УстановитьКнопкиИзмененияНевидимыми(Контекст.Элементы);
КонецЕсли;
Если НЕ ТолькоПросмотр
И НЕ Контекст.Объект.Ссылка.Пустая() И НастраиватьОбъектФормы Тогда
ЗаблокироватьДанныеДляРедактирования(Контекст.Объект.Ссылка, , Контекст.УникальныйИдентификатор);
КонецЕсли;
ТипВладельца = ТипЗнч(ОбъектЗначение.ВладелецФайла);
Контекст.Элементы.ВладелецФайла.Заголовок = ТипВладельца;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
КриптографияПриСозданииФормыНаСервере (БСП)
Добавить элемент в обычную форму