ПередЗаписьюДополнительнойОбработки (БСП)

Автор: 1С
ОбщийМодуль.ДополнительныеОтчетыИОбработкиВМоделиСервиса
БСП

Перед записью дополнительной обработки. Процедура должна вызываться из события ПередЗаписью справочника

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

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

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

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

ПередЗаписьюДополнительнойОбработки (БСП)

ПередОбновлениемЗадания (БСП)

ПередУдалениемДополнительнойОбработки (БСП)

ПередЗаписьюВидаОбъекта (БСП)

ПриЗаписиДополнительногоОтчета (БСП)

ВидОбработкиДополнительнаяОбработка (БСП)

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