ПоставляемыйМакетИзменен (БСП)

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

Поставляемый макет изменен. Проверяет, был ли изменен поставляемый макет по сравнению с предыдущей версией конфигурации.

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

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

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

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

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

КонтрольныеСуммыФайловКомплектаВнешнейКомпоненты (БСП)

ИР Кнопка "Изменить" в окне "Пользователь"

Подставить свой макет в СКД

Странное поведение макета в СКД

ТекстыМакетов (БСП)

МакетыРазличаются (БСП)

Подчеркнуть текст в макете

Синтакс-помощник БСП с нейросетевым ассистентом