ОтключитьПользовательскийМакет (БСП)

Автор: 1С
ОбщийМодуль.УправлениеПечатью
БСП

Отключить пользовательский макет. Переключает использование пользовательского макета на макет из конфигурации.

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

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

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

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

ИспользуетсяПользовательскийМакет (БСП)

ЗаписатьМакет (БСП)

ПеренестиПользовательскиеМакеты (БСП)

ОтключитьНебезопасноеСодержимое (БСП)

ОтключитьПодсистемуВМоделиСервиса (БСП)

ОтключитьОбновлениеКлючейДоступа (БСП)

ОтключитьИспользованиеПланаОбмена (БСП)

ОтключитьАвтоматическуюСинхронизациюДанныхПриЗаписи (БСП)

ВключитьОтключитьАвтоматическуюУстановкуИсправлений (БСП)

TurboConf ИР адаптер 2.63