ПередЗагрузкойОбъекта (БСП)

Автор: 1С
ОбщийМодуль.ВыгрузкаЗагрузкаСовместноРазделенныхДанных
БСП

Перед загрузкой объекта.

Процедура ПередЗагрузкойОбъекта(Контейнер, Объект, Артефакты, Отказ) Экспорт
	
	СписокСовместноРазделенныхОбъектовМетаданных = ВыгрузкаЗагрузкаСовместноРазделенныхДанныхПовтИсп.СовместноРазделенныеОбъектыМетаданных();
	
	ОбъектНайденВКэше = Ложь;
	Разделитель = "";
	
	Для Каждого КлючИЗначение Из СписокСовместноРазделенныхОбъектовМетаданных Цикл
		
		Для Каждого ИмяОбъектаМетаданных Из КлючИЗначение.Значение.Константы Цикл
			Если ИмяОбъектаМетаданных = Объект.Метаданные().ПолноеИмя() Тогда
				ОбъектНайденВКэше = Истина;
				Разделитель = КлючИЗначение.Ключ;
			КонецЕсли;
		КонецЦикла;
		
		Для Каждого ИмяОбъектаМетаданных Из КлючИЗначение.Значение.Объекты Цикл
			Если ИмяОбъектаМетаданных = Объект.Метаданные().ПолноеИмя() Тогда
				ОбъектНайденВКэше = Истина;
				Разделитель = КлючИЗначение.Ключ;
			КонецЕсли;
		КонецЦикла;
		
		Для Каждого ИмяОбъектаМетаданных Из КлючИЗначение.Значение.НаборыЗаписей Цикл
			Если ИмяОбъектаМетаданных = Объект.Метаданные().ПолноеИмя() Тогда
				ОбъектНайденВКэше = Истина;
				Разделитель = КлючИЗначение.Ключ;
			КонецЕсли;
		КонецЦикла;
		
	КонецЦикла;
	
	Если Не ОбъектНайденВКэше Тогда
		
		ВызватьИсключение СтрШаблон(
			НСтр("ru = 'Объект метаданных %1 не может быть обработчиком ВыгрузкаСовместноРазделенныхДанных.ПередЗагрузкойОбъекта(),
                  |т.к. отсутствует в кэше совместно-разделенных объектов.
                  |Если после редактирования структуры метаданных конфигурации кэш не обновлялся - необходимо выполнять
                  |обновление кэша совместно-разделенных объектов с помощью вызова метода
                  |ВыгрузкаЗагрузкаСовместноРазделенныхДанных.ЗаполнитьКэшСовместноРазделенныхОбъектов()'", Метаданные.ОсновнойЯзык.КодЯзыка),
			Объект.Метаданные().ПолноеИмя()
		);
		
	КонецЕсли;
	
	ПараметрСеанса = Метаданные.ОбщиеРеквизиты[Разделитель].ЗначениеРазделенияДанных.Имя;
	ЗначениеПараметраСеанса = ПараметрыСеанса[ПараметрСеанса];
	
	Если ОбщегоНазначенияБТС.ЭтоНаборЗаписей(Объект.Метаданные()) Тогда
		
		Для Каждого Запись Из Объект Цикл
			Запись[Разделитель] = ЗначениеПараметраСеанса;
		КонецЦикла;
		
	Иначе
		
		Объект[Разделитель] = ЗначениеПараметраСеанса;
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

ПередЗагрузкойОбъекта (БСП)

ПередЗагрузкойНастроек (БСП)

ПередЗагрузкойДанных (БСП)

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