ПередЗаписьюНаСервере (БСП)

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

Перед записью на сервере. Обработчик для события формы ПередЗаписьюНаСервере.

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

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

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

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

ПередЗаписьюНаСервереФормыРедактированияРазрешенныхЗначений (БСП)

ПередЗагрузкойВариантаНаСервере (БСП)

ПередЗаписьюXDTOКонтактнаяИнформация (БСП)

ПередЗаписьюПользователяИБ (БСП)

ПередЗаписьюСообщения (БСП)

ПолныйПутьКФормеПередЗаписьюПередЗаписью (БСП)

ПередЗаписьюВзаимодействияИзФормы (БСП)

TurboConf 6 - расширение Конфигуратора 1С