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