СформироватьСловарьПолныхПутейКФормам (БСП)

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

Сформировать словарь полных путей формам. Заполняет справочник "ПолныеПутиКФормам" полными путями к формам.

// Заполняет справочник "ПолныеПутиКФормам" полными путями к формам.
//
Процедура СформироватьСловарьПолныхПутейКФормам(Параметры = Неопределено) Экспорт
	
	МассивФорм = Новый Массив;
	МассивФорм.Добавить("Обработка.ИнформационныйЦентр.Форма.ИнформационныйЦентр");
	
	ИнформационныйЦентрСерверПереопределяемый.ФормыСИнформационнымиСсылками(МассивФорм);
	
	// Формирование таблицы со списком полных форм конфигурации
	ТаблицаФорм = Новый ТаблицаЗначений;
	ТаблицаФорм.Колонки.Добавить("ПолныйПутьКФорме", Новый ОписаниеТипов("Строка"));
	ТаблицаФорм.Колонки.Добавить("Хеш", Новый ОписаниеТипов("Строка"));
	
	Для Каждого ПолныйПутьКФорме Из МассивФорм Цикл
		
		НоваяСтрока = ТаблицаФорм.Добавить();
		НоваяСтрока.ПолныйПутьКФорме = ПолныйПутьКФорме;
		НоваяСтрока.Хеш = ИнформационныйЦентрСервер.ХешПолногоПутиКФорме(ПолныйПутьКФорме);
		
	КонецЦикла;
	
	// Заполнение справочника "ПолныеПутиКФормам"
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТаблицаФорм", ТаблицаФорм);
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ТаблицаФорм.ПолныйПутьКФорме КАК ПолныйПутьКФорме,
	|	ПОДСТРОКА(ТаблицаФорм.Хеш, 1, 32) КАК Хеш
	|ПОМЕСТИТЬ ТаблицаФорм
	|ИЗ
	|	&ТаблицаФорм КАК ТаблицаФорм
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Хеш
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПолныеПутиКФормам.Ссылка КАК Ссылка,
	|	ПолныеПутиКФормам.Хеш КАК Хеш
	|ПОМЕСТИТЬ СуществующиеПолныеПутиКФормам
	|ИЗ
	|	Справочник.ПолныеПутиКФормам КАК ПолныеПутиКФормам
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	Хеш
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ТаблицаФорм.ПолныйПутьКФорме КАК ПолныйПутьКФорме
	|ИЗ
	|	ТаблицаФорм КАК ТаблицаФорм
	|		ЛЕВОЕ СОЕДИНЕНИЕ СуществующиеПолныеПутиКФормам КАК СуществующиеПолныеПутиКФормам
	|		ПО ТаблицаФорм.Хеш = СуществующиеПолныеПутиКФормам.Хеш
	|ГДЕ
	|	СуществующиеПолныеПутиКФормам.Ссылка ЕСТЬ NULL ";
	ВыборкаФорм = Запрос.Выполнить().Выбрать();
	Пока ВыборкаФорм.Следующий() Цикл
		Если ЕстьФормаПоПолномуПути(ВыборкаФорм.ПолныйПутьКФорме) Тогда
			ДобавитьПолноеИмяВСправочник(ВыборкаФорм.ПолныйПутьКФорме);
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

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

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

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

ХешПолногоПутиКФорме (БСП)

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

ЗаполнитьХешПолногоПутиКФорме (БСП)

МакетПечатнойФормы (БСП)

ФормыСИнформационнымиСсылками (БСП)

ПолныйПутьТома (БСП)

ПутьКИнформационнойБазе (БСП)

СформироватьИнформациюОбОтчетеПоПолномуИмени (БСП)

Полный путь до предопределенного значения, включая имя самого значения

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз