НачалоВыбора (БСП)

Автор: 1С
ОбщийМодуль.УправлениеКонтактнойИнформациейКлиент
БСП

Начало выбора. Обработчик события НачалоВыбора поля формы контактной информации.

// Обработчик события НачалоВыбора поля формы контактной информации.
// Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация".
//
// Параметры:
//     Форма                - ФормаКлиентскогоПриложения - Форма владельца контактной информации.
//     Элемент              - ПолеФормы        - Элемент формы, содержащий представление контактной информации.
//     Модифицированность   - Булево           - Устанавливаемый флаг модифицированности формы.
//     СтандартнаяОбработка - Булево           - Устанавливаемый флаг стандартной обработки события формы.
//     ПараметрыОткрытия    - Структура        - Параметры открытия формы ввода контактной информации.
//
Процедура НачалоВыбора(Форма, Элемент, Модифицированность = Истина, СтандартнаяОбработка = Ложь, ПараметрыОткрытия = Неопределено) Экспорт
	СтандартнаяОбработка = Ложь;
	
	Результат = Новый Структура;
	Результат.Вставить("ИмяРеквизита", Элемент.Имя);
	
	ЭтоТабличнаяЧасть = ЭтоТабличнаяЧасть(Элемент);
	
	Если ЭтоТабличнаяЧасть Тогда
		ДанныеЗаполнения = Форма.Элементы[Форма.ТекущийЭлемент.Имя].ТекущиеДанные;
		Если ДанныеЗаполнения = Неопределено Тогда
			Возврат;
		КонецЕсли;
	Иначе
		ДанныеЗаполнения = Форма;
	КонецЕсли;
	
	ДанныеСтроки = ПолучитьСтрокуДополнительныхЗначений(Форма, Элемент, ЭтоТабличнаяЧасть);
	
	// Если представление было изменено в поле и не соответствует реквизиту, то приводим в соответствие.
	ОбновитьКонтекстноеМеню = Ложь;
	Если Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда
		Если ДанныеЗаполнения[Элемент.Имя] <> Элемент.ТекстРедактирования Тогда
			ДанныеЗаполнения[Элемент.Имя] = Элемент.ТекстРедактирования;
			ПриИзмененииКонтактнойИнформации(Форма, Элемент, ЭтоТабличнаяЧасть, Ложь);
			ОбновитьКонтекстноеМеню  = Истина;
			Форма.Модифицированность = Истина;
		КонецЕсли;
		ТекстРедактирования = Элемент.ТекстРедактирования;
	Иначе
		Если ДанныеСтроки <> Неопределено И ЗначениеЗаполнено(ДанныеСтроки.Значение) Тогда
			ТекстРедактирования = Форма[Элемент.Имя];
		Иначе
			ТекстРедактирования = "";
		КонецЕсли;
	КонецЕсли;
	
	ПараметрыКонтактнойИнформации = Форма.ПараметрыКонтактнойИнформации[ДанныеСтроки.ИмяЭлементаДляРазмещения];
	
	ПараметрыОткрытияФормы = Новый Структура;
	ПараметрыОткрытияФормы.Вставить("ВидКонтактнойИнформации", ДанныеСтроки.Вид);
	ПараметрыОткрытияФормы.Вставить("Значение",                ДанныеСтроки.Значение);
	ПараметрыОткрытияФормы.Вставить("Представление",           ТекстРедактирования);
	ПараметрыОткрытияФормы.Вставить("ТолькоПросмотр",          Форма.ТолькоПросмотр Или Элемент.ТолькоПросмотр);
	ПараметрыОткрытияФормы.Вставить("ТипПомещения",            ПараметрыКонтактнойИнформации.ПараметрыАдреса.ТипПомещения);
	ПараметрыОткрытияФормы.Вставить("Страна",                  ПараметрыКонтактнойИнформации.ПараметрыАдреса.Страна);
	ПараметрыОткрытияФормы.Вставить("Индекс",                  ПараметрыКонтактнойИнформации.ПараметрыАдреса.Индекс);
	ПараметрыОткрытияФормы.Вставить("КонтактнаяИнформацияОписаниеДополнительныхРеквизитов", Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов);
	
	Если Не ЭтоТабличнаяЧасть Тогда
		ПараметрыОткрытияФормы.Вставить("Комментарий", ДанныеСтроки.Комментарий);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ПараметрыОткрытия) И ТипЗнч(ПараметрыОткрытия) = Тип("Структура") Тогда
		Для каждого ЗначениеИКлюч Из ПараметрыОткрытия Цикл
			ПараметрыОткрытияФормы.Вставить(ЗначениеИКлюч.Ключ, ЗначениеИКлюч.Значение);
		КонецЦикла;
	КонецЕсли;
	
	Оповещение = Новый ОписаниеОповещения("ПредставлениеНачалоВыбораЗавершение", ЭтотОбъект, Новый Структура);
	Оповещение.ДополнительныеПараметры.Вставить("ДанныеЗаполнения",        ДанныеЗаполнения);
	Оповещение.ДополнительныеПараметры.Вставить("ЭтоТабличнаяЧасть",       ЭтоТабличнаяЧасть);
	Оповещение.ДополнительныеПараметры.Вставить("ИмяЭлементаРазмещения",   ДанныеСтроки.ИмяЭлементаДляРазмещения);
	Оповещение.ДополнительныеПараметры.Вставить("ДанныеСтроки",            ДанныеСтроки);
	Оповещение.ДополнительныеПараметры.Вставить("Элемент",                 Элемент);
	Оповещение.ДополнительныеПараметры.Вставить("Результат",               Результат);
	Оповещение.ДополнительныеПараметры.Вставить("Форма",                   Форма);
	Оповещение.ДополнительныеПараметры.Вставить("ОбновитьКонтекстноеМеню", ОбновитьКонтекстноеМеню);
	
	ОткрытьФормуКонтактнойИнформации(ПараметрыОткрытияФормы,, Оповещение);
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПредметНачалоВыбора (БСП)

ПредставлениеНачалоВыбораЗавершение (БСП)

СертификатНачалоВыбораСПодтверждением (БСП)

ЗначениеДоступаНачалоВыбора (БСП)

ПредставлениеНачалоВыбора (БСП)

НачалоВыбораСертификатаПриУстановленномОтборе (БСП)

ОбработчикВыбораЭлементовБазыКорреспондентаНачалоВыбора (БСП)

ПриНачалеВыбораНастройки (БСП)

НачатьИнтервьюСВыборомШаблонаЗавершение (БСП)

ИнтернетПоддержкаИСервисы_БИПФайлКлассификаторовНачалоВыбора (БСП)

1С Менеджер конфигураций