1
0
mirror of https://github.com/bia-technologies/bsl-parser.git synced 2024-11-24 08:12:17 +02:00

#ONECICD-148

Описания, тесты, исправления ошибок
This commit is contained in:
aleksey.koryakin 2019-06-11 10:57:14 +03:00
parent f3eece6f97
commit c96528dba6
17 changed files with 516 additions and 258 deletions

View File

@ -1,96 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
//
// Описание модуля
//
///////////////////////////////////////////////////////////////////////////////
Перем Генератор Экспорт;
Перем ПараметрыГенерации Экспорт;
///////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Создает и инициализирует поток записи описаний корневого объекта
//
// Параметры:
// Описание - Структура - Описание объекта, наименование синоним и прочее
// ТипОбъекта - Строка - Каноническое имя типа (Configuration, Extension...)
// ИмяФайла - Строка - Имя файла описания объекта, в который будут записаны данные
//
Функция СоздатьОписаниеКорневогоОбъекта(Описание, ТипОбъекта, ИмяФайла) Экспорт
Запись = Генератор.СоздатьОписаниеКорневогоОбъекта(Описание, ТипОбъекта, ИмяФайла, ПараметрыГенерации);
ПараметрыГенерации.Вставить("ЗаписьConfiguration", Запись);
Возврат Запись;
КонецФункции
// Сохраняет и закрывает поток записи описаний корневого объекта
//
Процедура ЗафиксироватьОписаниеКорневогоОбъекта() Экспорт
ОбработкаXML.ЗакрытьЗапись(ПараметрыГенерации.ЗаписьConfiguration);
ПараметрыГенерации.ЗаписьConfiguration = Неопределено;
КонецПроцедуры
// Регистрирует объект в списке объектов конфигурации
//
// Параметры:
// ОбъектКонфигурации - Произвольный - Объект содержащий реквизиты - Тип и Наименование
//
Процедура ЗарегистрироватьОбъектВКонфигурации(ОбъектКонфигурации) Экспорт
Генератор.ЗарегистрироватьОбъектВКонфигурации(ОбъектКонфигурации, ПараметрыГенерации);
КонецПроцедуры
// Создает поток и инициализирует поток записи описания объекта
//
// Параметры:
// ТипОбъекта - Строка - Каноническое имя типа (Configuration, Extension...)
// ИмяФайла - Строка - Имя файла описания объекта, в который будут записаны данные
//
// Возвращаемое значение:
// ЗаписьXML - Поток записи данных
//
Функция СоздатьЗапись(ТипОбъекта, ИмяФайла) Экспорт
Возврат Генератор.СоздатьЗапись(ТипОбъекта, ПараметрыГенерации, ИмяФайла);
КонецФункции
// Записывает служебную информацию об уидах платформенных типов
//
// Параметры:
// Запись - ЗаписьXML - Поток записи
// ИмяОбъекта - Строка - Имя объекта конфигурации
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
//
Процедура ЗаписатьПорождаемыеТипы(Запись, ИмяОбъекта, ТипОбъекта) Экспорт
Генератор.ЗаписатьПорождаемыеТипы(Запись, ИмяОбъекта, ТипОбъекта);
КонецПроцедуры
Процедура ПриСозданииОбъекта(ФорматВыгрузки, ГенерацияРасширения) Экспорт
Если ФорматВыгрузки = ФорматыВыгрузки.EDT Тогда
Генератор = ГенераторОписанийEDT;
Иначе
Генератор = ГенераторОписанийКонфигуратор;
КонецЕсли;
ПараметрыГенерации = Генератор.СоздатьПараметрыГенерации("8.3.10", ГенерацияРасширения);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
///////////////////////////////////////////////////////////////////////////////

View File

@ -48,13 +48,13 @@
// //
Функция СоздатьОписаниеКорневогоОбъекта(ОписаниеРасширения, ТипОбъекта, ИмяФайла, ПараметрыГенерации) Экспорт Функция СоздатьОписаниеКорневогоОбъекта(ОписаниеРасширения, ТипОбъекта, ИмяФайла, ПараметрыГенерации) Экспорт
ТипОбъекта = ТипыОбъектовКонфигурации.НормализоватьИмя(ТипОбъекта); НормТипОбъекта = ТипыОбъектовКонфигурации.НормализоватьИмя(ТипОбъекта);
ЗаписьConfiguration = СоздатьЗапись("Configuration", ПараметрыГенерации, ИмяФайла); ЗаписьConfiguration = СоздатьЗапись("Configuration", ПараметрыГенерации, ИмяФайла);
ГенераторОписанийОбщий.ЗаписатьДанные(ЗаписьConfiguration, ОписаниеРасширения, ТипОбъекта, ЭтотОбъект); ГенераторОписанийОбщий.ЗаписатьДанные(ЗаписьConfiguration, ОписаниеРасширения, НормТипОбъекта, ЭтотОбъект);
Если ТипыОбъектовКонфигурации.ИмяТипаРасширения() = ТипОбъекта Тогда Если ТипыОбъектовКонфигурации.ИмяТипаРасширения() = НормТипОбъекта Тогда
ЗаписьConfiguration.ЗаписатьНачалоЭлемента("extension"); ЗаписьConfiguration.ЗаписатьНачалоЭлемента("extension");
ЗаписьConfiguration.ЗаписатьАтрибут("xsi:type", "mdclassExtension:ConfigurationExtension"); ЗаписьConfiguration.ЗаписатьАтрибут("xsi:type", "mdclassExtension:ConfigurationExtension");
@ -94,15 +94,15 @@
// //
// Параметры: // Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации // ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
// ПараметрыГенерации - Структура - Общие данные/настройки необходимые для генерации // ЗаписьConfiguration - ЗаписьXML - Поток записи описания
// //
Процедура ЗарегистрироватьОбъектВКонфигурации(ОбъектКонфигурации, ПараметрыГенерации) Экспорт Процедура ЗарегистрироватьОбъектВКонфигурации(ОбъектКонфигурации, ЗаписьConfiguration) Экспорт
ИмяТипа = ТипыОбъектовКонфигурации.ОписаниеТипаПоИмени(ОбъектКонфигурации.Тип).НаименованиеКоллекцииEng; ИмяТипа = ТипыОбъектовКонфигурации.ОписаниеТипаПоИмени(ОбъектКонфигурации.Тип).НаименованиеКоллекцииEng;
ИмяТипа = НРег(Лев(ИмяТипа, 1)) + Сред(ИмяТипа, 2); ИмяТипа = НРег(Лев(ИмяТипа, 1)) + Сред(ИмяТипа, 2);
ИмяОбъекта = СтрШаблон("%1.%2", ОбъектКонфигурации.Тип, ОбъектКонфигурации.Наименование); ИмяОбъекта = СтрШаблон("%1.%2", ОбъектКонфигурации.Тип, ОбъектКонфигурации.Наименование);
ОбработкаXML.ЗаписатьЗначениеXML(ПараметрыГенерации.ЗаписьConfiguration, ИмяТипа, ИмяОбъекта); ОбработкаXML.ЗаписатьЗначениеXML(ЗаписьConfiguration, ИмяТипа, ИмяОбъекта);
КонецПроцедуры КонецПроцедуры

View File

@ -15,7 +15,7 @@
// ГенерацияРасширения - Булево - Флаг создания расширения // ГенерацияРасширения - Булево - Флаг создания расширения
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - Служебные параметры генератора // ФиксированнаяСтруктура - Служебные параметры генератора
// //
Функция СоздатьПараметрыГенерации(ВерсияПлатформы, ГенерацияРасширения) Экспорт Функция СоздатьПараметрыГенерации(ВерсияПлатформы, ГенерацияРасширения) Экспорт
@ -34,7 +34,7 @@
ПараметрыГенерации.Вставить("ВерсияВыгрузки", ВерсияВыгрузки); ПараметрыГенерации.Вставить("ВерсияВыгрузки", ВерсияВыгрузки);
ПараметрыГенерации.Вставить("ГенерацияРасширения", ГенерацияРасширения = Истина); ПараметрыГенерации.Вставить("ГенерацияРасширения", ГенерацияРасширения = Истина);
Возврат ПараметрыГенерации; Возврат Новый ФиксированнаяСтруктура(ПараметрыГенерации);
КонецФункции КонецФункции
@ -42,7 +42,7 @@
// //
// Параметры: // Параметры:
// ОписаниеРасширения - Структура - Описание расширения, наименование синоним и прочее // ОписаниеРасширения - Структура - Описание расширения, наименование синоним и прочее
// ТипОбъекта - Строка - Каноническое имя типа (Configuration, Extension...) // ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// ИмяФайла - Строка - Имя файла описания объекта, в который будут записаны данные // ИмяФайла - Строка - Имя файла описания объекта, в который будут записаны данные
// ПараметрыГенерации - Структура - Общие данные/настройки необходимые для генерации // ПараметрыГенерации - Структура - Общие данные/настройки необходимые для генерации
// //
@ -92,12 +92,12 @@
// Проверок на существование объекта нет // Проверок на существование объекта нет
// //
// Параметры: // Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации // ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
// ПараметрыГенерации - Структура - Общие данные/настройки необходимые для генерации // ЗаписьConfiguration - ЗаписьXML - Поток записи описания
// //
Процедура ЗарегистрироватьОбъектВКонфигурации(ОбъектКонфигурации, ПараметрыГенерации) Экспорт Процедура ЗарегистрироватьОбъектВКонфигурации(ОбъектКонфигурации, ЗаписьConfiguration) Экспорт
ОбработкаXML.ЗаписатьЗначениеXML(ПараметрыГенерации.ЗаписьConfiguration, ОбъектКонфигурации.Тип, ОбъектКонфигурации.Наименование); ОбработкаXML.ЗаписатьЗначениеXML(ЗаписьConfiguration, ОбъектКонфигурации.Тип, ОбъектКонфигурации.Наименование);
КонецПроцедуры КонецПроцедуры

View File

@ -6,10 +6,6 @@
Перем Рефлектор; Перем Рефлектор;
///////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС // СЛУЖЕБНЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////

View File

@ -1,46 +1,78 @@
// Создает набор параметров необходимый для записи описаний объектов
//
// Параметры:
// Конфигурация - Конфигурация, Расширение - Объект для, которого необходима запись
// ТипКорневогоЭлемента - Строка - Имя типа корневого элемента объекта
//
// Возвращаемое значение:
// Структура- Набор параметров записи
//
Функция СоздатьПараметрыЗаписи(Конфигурация, ТипКорневогоЭлемента) Экспорт Функция СоздатьПараметрыЗаписи(Конфигурация, ТипКорневогоЭлемента) Экспорт
ГенерацияРасширения = ТипКорневогоЭлемента = ТипыОбъектовКонфигурации.ИмяТипаРасширения();
ПараметрыЗаписи = Новый Структура(); ПараметрыЗаписи = Новый Структура();
ПараметрыЗаписи.Вставить("ОписаниеКонфигурации", Конфигурация.ОписаниеКонфигурации()); ПараметрыЗаписи.Вставить("ОписаниеКонфигурации", Конфигурация.ОписаниеКонфигурации());
ПараметрыЗаписи.Вставить("СтруктураКаталогов", Конфигурация.СтруктураКаталогов()); ПараметрыЗаписи.Вставить("СтруктураКаталогов", Конфигурация.СтруктураКаталогов());
ПараметрыЗаписи.Вставить("ТипКорневогоЭлемента", ТипКорневогоЭлемента); ПараметрыЗаписи.Вставить("ТипКорневогоЭлемента", ТипКорневогоЭлемента);
ПараметрыЗаписи.Вставить("ФорматВыгрузки", ПараметрыЗаписи.СтруктураКаталогов.ФорматВыгрузки()); ПараметрыЗаписи.Вставить("ФорматВыгрузки", ПараметрыЗаписи.СтруктураКаталогов.ФорматВыгрузки());
ПараметрыЗаписи.Вставить("Изменения", Новый Структура("ИзмененКорневойОбъект", Ложь)); ПараметрыЗаписи.Вставить("Изменения", Новый Структура("ИзмененКорневойОбъект", Истина));
Если ПараметрыЗаписи.ФорматВыгрузки = ФорматыВыгрузки.EDT Тогда
ГенераторОписаний = ГенераторОписанийEDT;
Иначе
ГенераторОписаний = ГенераторОписанийКонфигуратор;
КонецЕсли;
ПараметрыГенерации = ГенераторОписаний.СоздатьПараметрыГенерации("8.3.10", ГенерацияРасширения);
ГенераторОписаний = Новый ГенераторОписаний(ПараметрыЗаписи.ФорматВыгрузки, ТипКорневогоЭлемента = ТипыОбъектовКонфигурации.ИмяТипаРасширения());
ПараметрыЗаписи.Вставить("ГенераторОписаний", ГенераторОписаний); ПараметрыЗаписи.Вставить("ГенераторОписаний", ГенераторОписаний);
ПараметрыЗаписи.Вставить("ПараметрыГенерации", ПараметрыГенерации);
Возврат Новый ФиксированнаяСтруктура(ПараметрыЗаписи); Возврат Новый ФиксированнаяСтруктура(ПараметрыЗаписи);
КонецФункции КонецФункции
Функция СохранитьОписание(ОбъектКонфигурации) Экспорт // Сохраняет описание объекта конфигурации на диск
//
// Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Процедура СохранитьОписание(ОбъектКонфигурации) Экспорт
ПараметрыЗаписи = ОбъектКонфигурации.Конфигурация.ПараметрыЗаписи(); ПараметрыЗаписи = ОбъектКонфигурации.Конфигурация.ПараметрыЗаписи();
ДанныеОбъекта = ОбъектКонфигурации.Описание; ДанныеОбъекта = ОбъектКонфигурации.Описание;
ИмяФайла = ПараметрыЗаписи.СтруктураКаталогов.ИмяФайлаОписанияОбъекта(ОбъектКонфигурации.Наименование, ОбъектКонфигурации.Тип); ИмяФайла = ПараметрыЗаписи.СтруктураКаталогов.ИмяФайлаОписанияОбъекта(ОбъектКонфигурации.Наименование, ОбъектКонфигурации.Тип);
Запись = ПараметрыЗаписи.ГенераторОписаний.СоздатьЗапись(ОбъектКонфигурации.Тип, ИмяФайла); Запись = ПараметрыЗаписи.ГенераторОписаний.СоздатьЗапись(ОбъектКонфигурации.Тип, ПараметрыЗаписи.ПараметрыГенерации, ИмяФайла);
ОписаниеСвойств = СтруктурыОписаний.ОписаниеСвойствОбъекта(ОбъектКонфигурации.Тип); ОписаниеСвойств = СтруктурыОписаний.ОписаниеСвойствОбъекта(ОбъектКонфигурации.Тип);
ПараметрыЗаписи.ГенераторОписаний.Генератор.ЗаписатьПорождаемыеТипы(Запись, ДанныеОбъекта.Наименование, ОбъектКонфигурации.Тип); ПараметрыЗаписи.ГенераторОписаний.ЗаписатьПорождаемыеТипы(Запись, ДанныеОбъекта.Наименование, ОбъектКонфигурации.Тип);
ПараметрыЗаписи.ГенераторОписаний.Генератор.ЗаписатьСвойства(Запись, ОбъектКонфигурации.Тип, ДанныеОбъекта); ПараметрыЗаписи.ГенераторОписаний.ЗаписатьСвойства(Запись, ОбъектКонфигурации.Тип, ДанныеОбъекта);
Если ОписаниеСвойств.ЕстьПодчиненные Тогда Если ОписаниеСвойств.ЕстьПодчиненные Тогда
ПараметрыЗаписи.ГенераторОписаний.Генератор.Подчиненные(Запись, ?(ДанныеОбъекта.Свойство("Подчиненные"), ДанныеОбъекта.Подчиненные, Неопределено)); ПараметрыЗаписи.ГенераторОписаний.Подчиненные(Запись, ?(ДанныеОбъекта.Свойство("Подчиненные"), ДанныеОбъекта.Подчиненные, Неопределено));
КонецЕсли; КонецЕсли;
ОбработкаXML.ЗакрытьЗапись(Запись); ОбработкаXML.ЗакрытьЗапись(Запись);
КонецФункции КонецПроцедуры
Функция Зафиксировать(ПараметрыЗаписи) Экспорт // Записывает данные на диск
//
// Параметры:
// ПараметрыЗаписи - Структура - Параметры записи, уникальные для каждой конфигурации. См. СоздатьПараметрыЗаписи
//
Процедура Зафиксировать(ПараметрыЗаписи) Экспорт
ПараметрыЗаписи.ОписаниеКонфигурации.ОбъектыКонфигурации.Сортировать("Тип, Наименование"); ПараметрыЗаписи.ОписаниеКонфигурации.ОбъектыКонфигурации.Сортировать("Тип, Наименование");
@ -48,40 +80,44 @@
ИмяФайлаОписания = ПараметрыЗаписи.СтруктураКаталогов.ИмяФайлаОписанияКонфигурации(); ИмяФайлаОписания = ПараметрыЗаписи.СтруктураКаталогов.ИмяФайлаОписанияКонфигурации();
ПараметрыЗаписи.ГенераторОписаний.СоздатьОписаниеКорневогоОбъекта( ЗаписьConfiguration = ПараметрыЗаписи.ГенераторОписаний.СоздатьОписаниеКорневогоОбъекта(
ПараметрыЗаписи.ОписаниеКонфигурации.СвойстваКонфигурации, ПараметрыЗаписи.ОписаниеКонфигурации.СвойстваКонфигурации,
ПараметрыЗаписи.ТипКорневогоЭлемента, ПараметрыЗаписи.ТипКорневогоЭлемента,
ИмяФайлаОписания); ИмяФайлаОписания,
ПараметрыЗаписи.ПараметрыГенерации);
Для Каждого Стр Из ПараметрыЗаписи.ОписаниеКонфигурации.ОбъектыКонфигурации Цикл Для Каждого Стр Из ПараметрыЗаписи.ОписаниеКонфигурации.ОбъектыКонфигурации Цикл
Если Стр.Тип <> ПараметрыЗаписи.ТипКорневогоЭлемента И Стр.Родитель = Неопределено Тогда Если Стр.Тип <> ПараметрыЗаписи.ТипКорневогоЭлемента И Стр.Родитель = Неопределено Тогда
ПараметрыЗаписи.ГенераторОписаний.ЗарегистрироватьОбъектВКонфигурации(Стр); ПараметрыЗаписи.ГенераторОписаний.ЗарегистрироватьОбъектВКонфигурации(Стр, ЗаписьConfiguration);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ПараметрыЗаписи.ГенераторОписаний.ЗафиксироватьОписаниеКорневогоОбъекта(); ОбработкаXML.ЗакрытьЗапись(ЗаписьConfiguration);
КонецЕсли; КонецЕсли;
КонецФункции ПараметрыЗаписи.Изменения.ИзмененКорневойОбъект = Ложь;
// Создает структуру данных объекта КонецПроцедуры
// Служебный метод, его необходимо вызывать при добавлении объекта в конфигурацию
// //
// Параметры: // Параметры:
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md // ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
// Наименование - Строка - Имя объекта
// //
// Возвращаемое значение: Процедура ПриДобавленииОбъекта(ОбъектКонфигурации) Экспорт
// Структура - Пустышка описания объекта
// ЗаписьКонфигурации.СохранитьОписание(ОбъектКонфигурации);
Функция ПолучитьОписаниеОбъекта(ТипОбъекта, Наименование = Неопределено) Экспорт ОбъектКонфигурации.Конфигурация.ПараметрыЗаписи().Изменения.ИзмененКорневойОбъект = Истина;
ОписаниеОбъекта = СтруктурыОписаний.СоздатьОбъект(ТипОбъекта, Наименование); КонецПроцедуры
Возврат ОписаниеОбъекта; Процедура УстановитьПризнакИзменений(ПараметрыЗаписи, НовыйПризнакИзменений) Экспорт
КонецФункции ПараметрыЗаписи.Изменения.ИзмененКорневойОбъект = НовыйПризнакИзменений;
КонецПроцедуры

View File

@ -1,47 +1,80 @@
Функция ДобавитьОбъект(ОписаниеКонфигурации, Тип, ОписаниеИлиИмя) Экспорт // Добавляет объект в конфигурацию
//
// Параметры:
// ОписаниеКонфигурации - ДанныеКонфигурации - Объект содержащий данные конфигурации (объекты, модули и т.д.)
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// ОписаниеИлиИмя - Структура, Строка - Имя или данные объекта
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъект(ОписаниеКонфигурации, ТипОбъекта, ОписаниеИлиИмя) Экспорт
Если ТипЗнч(ОписаниеИлиИмя) = Тип("Строка") Тогда Если ТипЗнч(ОписаниеИлиИмя) = Тип("Строка") Тогда
Возврат ДобавитьОбъектПоИмени(ОписаниеКонфигурации, Тип, ОписаниеИлиИмя); Возврат ДобавитьОбъектПоИмени(ОписаниеКонфигурации, ТипОбъекта, ОписаниеИлиИмя);
Иначе Иначе
Возврат ДобавитьОбъектПоОписанию(ОписаниеКонфигурации, Тип, ОписаниеИлиИмя); Возврат ДобавитьОбъектПоОписанию(ОписаниеКонфигурации, ТипОбъекта, ОписаниеИлиИмя);
КонецЕсли; КонецЕсли;
КонецФункции КонецФункции
Функция ДобавитьОбъектПоИмени(ОписаниеКонфигурации, Тип, Имя) Экспорт // Перегрузка метода добавить, выполняет добавление по типу и имени
//
// Параметры:
// ОписаниеКонфигурации - ДанныеКонфигурации - Объект содержащий данные конфигурации (объекты, модули и т.д.)
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// Имя - Строка - Имя добавляемого объекта
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъектПоИмени(ОписаниеКонфигурации, ТипОбъекта, Имя) Экспорт
Тип = ТипыОбъектовКонфигурации.НормализоватьИмя(Тип); ТипОбъекта = ТипыОбъектовКонфигурации.НормализоватьИмя(ТипОбъекта);
ОбъектКонфигурации = ОписаниеКонфигурации.НайтиОбъект(Имя, Тип); ОбъектКонфигурации = ОписаниеКонфигурации.НайтиОбъект(Имя, ТипОбъекта);
Если ОбъектКонфигурации <> Неопределено Тогда Если ОбъектКонфигурации <> Неопределено Тогда
ВызватьИсключение СтрШаблон("Объект '%1.%2'уже зарегистрирован в конфигурации", Тип, Имя); ВызватьИсключение СтрШаблон("Объект '%1.%2'уже зарегистрирован в конфигурации", ТипОбъекта, Имя);
КонецЕсли; КонецЕсли;
ОбъектКонфигурации = ОписаниеКонфигурации.ОбъектыКонфигурации.Добавить(); ОбъектКонфигурации = ОписаниеКонфигурации.ОбъектыКонфигурации.Добавить();
ОбъектКонфигурации.Наименование = Имя; ОбъектКонфигурации.Наименование = Имя;
ОбъектКонфигурации.Конфигурация = ОписаниеКонфигурации.Конфигурация; ОбъектКонфигурации.Конфигурация = ОписаниеКонфигурации.Конфигурация;
ОбъектКонфигурации.Тип = Тип; ОбъектКонфигурации.Тип = ТипОбъекта;
ОбъектКонфигурации.ПолноеНаименование = Тип + "." + ОбъектКонфигурации.Наименование; ОбъектКонфигурации.ПолноеНаименование = ТипОбъекта + "." + ОбъектКонфигурации.Наименование;
ОписаниеКонфигурации.Конфигурация.ПараметрыЗаписи().Изменения.ИзмененКорневойОбъект = Истина;
Возврат ОбъектКонфигурации; Возврат ОбъектКонфигурации;
КонецФункции КонецФункции
Функция ДобавитьОбъектПоОписанию(ОписаниеКонфигурации, Тип, ОписаниеОбъекта) Экспорт // Перегрузка метода добавить, выполняет добавление по типу и данным объекта
//
// Параметры:
// ОписаниеКонфигурации - ДанныеКонфигурации - Объект содержащий данные конфигурации (объекты, модули и т.д.)
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// ОписаниеОбъекта - Структура - Данные описания объекта
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъектПоОписанию(ОписаниеКонфигурации, ТипОбъекта, ОписаниеОбъекта) Экспорт
ОбъектКонфигурации = ДобавитьОбъектПоИмени(ОписаниеКонфигурации, Тип, ОписаниеОбъекта.Наименование); ОбъектКонфигурации = ДобавитьОбъектПоИмени(ОписаниеКонфигурации, ТипОбъекта, ОписаниеОбъекта.Наименование);
ОбъектКонфигурации.Описание = ОписаниеОбъекта; ОбъектКонфигурации.Описание = ОписаниеОбъекта;
Возврат ОбъектКонфигурации; Возврат ОбъектКонфигурации;
КонецФункции КонецФункции
// Выполняет настройку объекта для создания новой конфигурации
//
// Параметры:
// Конфигурация - Конфигурация - Описание конфигурации
//
Процедура ИнициализироватьСозданиеНового(Конфигурация) Экспорт Процедура ИнициализироватьСозданиеНового(Конфигурация) Экспорт
СвойстваКонфигурации = СтруктурыОписаний.СоздатьОбъект(ТипыОбъектовКонфигурации.ИмяТипаКонфигурации(), "Конфигурация"); СвойстваКонфигурации = СтруктурыОписаний.СоздатьОбъект(ТипыОбъектовКонфигурации.ИмяТипаКонфигурации(), "Конфигурация");

View File

@ -8,6 +8,15 @@
// ПРОГРАММНЫЙ ИНТЕРФЕЙС // ПРОГРАММНЫЙ ИНТЕРФЕЙС
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Добавляет объект конфигурации в расширение, для переопределения, либо использования
//
// Параметры:
// ОписаниеКонфигурации - ДанныеКонфигурации - Объект содержащий данные конфигурации (объекты, модули и т.д.)
// ОбъектРодительскойКонфигурации - СтрокаТаблицыЗначений - Описание объекта родительской конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта расширения. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъектВРасширение(ОписаниеКонфигурации, ОбъектРодительскойКонфигурации) Экспорт Функция ДобавитьОбъектВРасширение(ОписаниеКонфигурации, ОбъектРодительскойКонфигурации) Экспорт
Тип = ОбъектРодительскойКонфигурации.Тип; Тип = ОбъектРодительскойКонфигурации.Тип;
@ -35,9 +44,17 @@
КонецФункции КонецФункции
// Выполняет настройку объекта для создания нового расширения
//
// Параметры:
// Расширение - Расширение - Описание расширения
//
Процедура ИнициализироватьСозданиеНового(Расширение) Экспорт Процедура ИнициализироватьСозданиеНового(Расширение) Экспорт
СвойстваРасширения = СтруктурыОписаний.СоздатьОбъект(ТипыОбъектовКонфигурации.ИмяТипаРасширения(), "Расширение"); СвойстваРасширения = СтруктурыОписаний.СоздатьОбъект(ТипыОбъектовКонфигурации.ИмяТипаРасширения(), "Расширение");
СвойстваРасширения.Принадлежность = "Adopted";
СвойстваРасширения.Назначение = "Customization";
Расширение.ОписаниеКонфигурации().СвойстваКонфигурации = СвойстваРасширения; Расширение.ОписаниеКонфигурации().СвойстваКонфигурации = СвойстваРасширения;
КонецПроцедуры КонецПроцедуры

View File

@ -59,11 +59,11 @@
Функция ТаблицаОписанияМодулей() Экспорт Функция ТаблицаОписанияМодулей() Экспорт
МодулиКонфигурации = Новый ТаблицаЗначений; МодулиКонфигурации = Новый ТаблицаЗначений;
МодулиКонфигурации.Колонки.Добавить("ТипМодуля"); МодулиКонфигурации.Колонки.Добавить("ТипМодуля", Новый ОписаниеТипов("Строка"));
МодулиКонфигурации.Колонки.Добавить("Родитель"); МодулиКонфигурации.Колонки.Добавить("Родитель");
МодулиКонфигурации.Колонки.Добавить("ПутьКФайлу"); МодулиКонфигурации.Колонки.Добавить("ПутьКФайлу", Новый ОписаниеТипов("Строка"));
МодулиКонфигурации.Колонки.Добавить("НаборБлоков"); МодулиКонфигурации.Колонки.Добавить("НаборБлоков");
МодулиКонфигурации.Колонки.Добавить("Содержимое"); МодулиКонфигурации.Колонки.Добавить("Содержимое", Новый ОписаниеТипов("Строка"));
МодулиКонфигурации.Колонки.Добавить("РодительФорма"); МодулиКонфигурации.Колонки.Добавить("РодительФорма");
МодулиКонфигурации.Колонки.Добавить("РодительКоманда"); МодулиКонфигурации.Колонки.Добавить("РодительКоманда");
МодулиКонфигурации.Колонки.Добавить("ОписаниеМодуля"); МодулиКонфигурации.Колонки.Добавить("ОписаниеМодуля");

View File

@ -1,5 +1,14 @@
#Использовать fs #Использовать fs
// Создает набор параметров необходимый для чтения описаний объектов
//
// Параметры:
// Конфигурация - Конфигурация, Расширение - Объект для, которого необходимо чтение
// ТипКорневогоЭлемента - Строка - Имя типа корневого элемента объекта
//
// Возвращаемое значение:
// Структура- Набор параметров чтения
//
Функция СоздатьПараметрыЧтения(Конфигурация, ТипКорневогоЭлемента) Экспорт Функция СоздатьПараметрыЧтения(Конфигурация, ТипКорневогоЭлемента) Экспорт
ПараметрыЧтения = Новый Структура(); ПараметрыЧтения = Новый Структура();
@ -70,6 +79,58 @@
КонецПроцедуры КонецПроцедуры
// Выполняет поиск всех модулей конфигурации
//
Процедура НайтиМодулиКонфигурации(ПараметрыЧтения) Экспорт
ОписаниеКонфигурации = ПараметрыЧтения.ОписаниеКонфигурации;
ОбъектыКонфигурации = ОписаниеКонфигурации.ОбъектыКонфигурации;
СтруктураКаталогов = ПараметрыЧтения.СтруктураКаталогов;
Для Каждого ОбъектКонфигурации Из ОбъектыКонфигурации Цикл
ФайлыМодулей = СтруктураКаталогов.НайтиМодулиОбъекта(ОбъектКонфигурации.Наименование, ОбъектКонфигурации.Тип, Истина);
Для Каждого ИмяФайлаМодуля Из ФайлыМодулей Цикл
ПолучитьОписаниеМодуляПоИмениФайла(ИмяФайлаМодуля, ОбъектКонфигурации, ОписаниеКонфигурации);
КонецЦикла;
КонецЦикла;
ОписаниеКонфигурации.Модули.Сортировать("ПутьКФайлу");
КонецПроцедуры
// Читает и выполняет анализ содержимого модуля
// Устанавливает реквизиты "НаборБлоков" и "Содержимое"
// Параметры:
// СтрокаМодуль - СтрокаТаблицыЗначений - Базовое описание модуля
//
Процедура ПрочитатьСодержимоеМодуля(СтрокаМодуль) Экспорт
Файл = Новый ТекстовыйДокумент;
Файл.Прочитать(СтрокаМодуль.ПутьКФайлу, КодировкаТекста.UTF8NoBOM);
СодержимоеМодуля = ЧтениеМодулей.ПрочитатьМодуль(Файл, СтрокаМодуль);
СтрокаМодуль.Содержимое = СодержимоеМодуля.Содержимое;
СтрокаМодуль.НаборБлоков = СодержимоеМодуля.БлокиМодуля;
Если СтрокаМодуль.ТипМодуля = ТипыМодуля.ОбщийМодуль Тогда
Если СтрокаМодуль.Родитель.Описание = Неопределено Тогда
ПрочитатьОписание(СтрокаМодуль.Родитель);
КонецЕсли;
СтрокаМодуль.ОписаниеМодуля.Вставить("Глобальный", СтрокаМодуль.Родитель.Описание.Глобальный);
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -117,67 +178,55 @@
КонецФункции КонецФункции
Функция ПолучитьОписаниеМодуляПоИмениФайла(Знач ИмяФайлаМодуля, ОбъектКонфигурации, ОписаниеКонфигурации) Процедура ПолучитьОписаниеМодуляПоИмениФайла(Знач ИмяФайлаМодуля, ОбъектКонфигурации, ОписаниеКонфигурации)
НовыйМодульКонфигурации = Неопределено;
ПустаяСтрокаМодульКонфигурации = Новый Структура(
"ПутьКФайлу, ТипМодуля, ОписаниеМодуля, Родитель, РодительФорма, РодительКоманда, НаборБлоков, Содержимое",
"", "", Новый Структура, Неопределено, Неопределено, Неопределено, Неопределено, Неопределено);
ТипЭтогоМодуля = ТипыМодуля.ТипМодуляПоИмениФайла(ИмяФайлаМодуля); ТипЭтогоМодуля = ТипыМодуля.ТипМодуляПоИмениФайла(ИмяФайлаМодуля);
Если Не ПустаяСтрока(ТипЭтогоМодуля) Тогда Если ПустаяСтрока(ТипЭтогоМодуля) Тогда
ФормаОбъекта = Неопределено; Возврат;
КомандаОбъекта = Неопределено;
Если ТипЭтогоМодуля = ТипыМодуля.МодульОбъекта
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульМенеджера
ИЛИ ТипЭтогоМодуля = ТипыМодуля.ОбщийМодуль
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульУправляемогоПриложения
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульСеанса
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульВнешнегоСоединения
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульОбычногоПриложения Тогда
ИначеЕсли ТипыМодуля.ЭтоМодульФормы(ТипЭтогоМодуля) Тогда
ФормаОбъекта = ОписаниеКонфигурации.ФормыКонфигурации.Добавить();
ФормаОбъекта.Родитель = ОбъектКонфигурации;
ФормаОбъекта.ЭтоУправляемаяФорма = ТипЭтогоМодуля = ТипыМодуля.МодульУправляемойФормы;
ФормаОбъекта.Наименование = ПолучитьИмяФормыИзИмениФайлаМодуля(ИмяФайлаМодуля);
ИначеЕсли ТипЭтогоМодуля = ТипыМодуля.МодульКоманды Тогда
КомандаОбъекта = ОписаниеКонфигурации.КомандыКонфигурации.Добавить();
КомандаОбъекта.Родитель = ОбъектКонфигурации;
КомандаОбъекта.Наименование = ПолучитьИмяКомандыИзИмениФайлаМодуля(ИмяФайлаМодуля);
Иначе
ВызватьИсключение "Тип модуля: " + ТипЭтогоМодуля + " не имеет алгоритма разбора";
КонецЕсли;
НовыйМодульКонфигурации = ОписаниеКонфигурации.МодулиКонфигурации.Добавить();
ЗаполнитьЗначенияСвойств(НовыйМодульКонфигурации, ПустаяСтрокаМодульКонфигурации);
НовыйМодульКонфигурации.ТипМодуля = ТипЭтогоМодуля;
НовыйМодульКонфигурации.ПутьКФайлу = ИмяФайлаМодуля;
НовыйМодульКонфигурации.Родитель = ОбъектКонфигурации;
НовыйМодульКонфигурации.РодительФорма = ФормаОбъекта;
НовыйМодульКонфигурации.РодительКоманда = КомандаОбъекта;
КонецЕсли;
Если НовыйМодульКонфигурации <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(ПустаяСтрокаМодульКонфигурации, НовыйМодульКонфигурации);
КонецЕсли; КонецЕсли;
Возврат ПустаяСтрокаМодульКонфигурации; ФормаОбъекта = Неопределено;
КомандаОбъекта = Неопределено;
Если ТипЭтогоМодуля = ТипыМодуля.МодульОбъекта
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульМенеджера
ИЛИ ТипЭтогоМодуля = ТипыМодуля.ОбщийМодуль
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульУправляемогоПриложения
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульСеанса
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульВнешнегоСоединения
ИЛИ ТипЭтогоМодуля = ТипыМодуля.МодульОбычногоПриложения Тогда
КонецФункции ИначеЕсли ТипыМодуля.ЭтоМодульФормы(ТипЭтогоМодуля) Тогда
ФормаОбъекта = ОписаниеКонфигурации.ФормыКонфигурации.Добавить();
ФормаОбъекта.Родитель = ОбъектКонфигурации;
ФормаОбъекта.ЭтоУправляемаяФорма = ТипЭтогоМодуля = ТипыМодуля.МодульУправляемойФормы;
ФормаОбъекта.Наименование = ПолучитьИмяФормыИзИмениФайлаМодуля(ИмяФайлаМодуля);
ИначеЕсли ТипЭтогоМодуля = ТипыМодуля.МодульКоманды Тогда
КомандаОбъекта = ОписаниеКонфигурации.КомандыКонфигурации.Добавить();
КомандаОбъекта.Родитель = ОбъектКонфигурации;
КомандаОбъекта.Наименование = ПолучитьИмяКомандыИзИмениФайлаМодуля(ИмяФайлаМодуля);
Иначе
ВызватьИсключение "Тип модуля: " + ТипЭтогоМодуля + " не имеет алгоритма разбора";
КонецЕсли;
НовыйМодульКонфигурации = ОписаниеКонфигурации.Модули.Добавить();
НовыйМодульКонфигурации.ТипМодуля = ТипЭтогоМодуля;
НовыйМодульКонфигурации.ПутьКФайлу = ИмяФайлаМодуля;
НовыйМодульКонфигурации.Родитель = ОбъектКонфигурации;
НовыйМодульКонфигурации.РодительФорма = ФормаОбъекта;
НовыйМодульКонфигурации.РодительКоманда = КомандаОбъекта;
НовыйМодульКонфигурации.ОписаниеМодуля = Новый Структура();
КонецПроцедуры
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////

View File

@ -6,7 +6,7 @@
Перем ОбъектыКонфигурации Экспорт; Перем ОбъектыКонфигурации Экспорт;
Перем СвойстваКонфигурации Экспорт; Перем СвойстваКонфигурации Экспорт;
Перем МодулиКонфигурации Экспорт; Перем Модули Экспорт;
Перем ФормыКонфигурации Экспорт; Перем ФормыКонфигурации Экспорт;
Перем КомандыКонфигурации Экспорт; Перем КомандыКонфигурации Экспорт;
@ -18,6 +18,15 @@
// ПРОГРАММНЫЙ ИНТЕРФЕЙС // ПРОГРАММНЫЙ ИНТЕРФЕЙС
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Выполняет поиск объекта конфигурации
//
// Параметры:
// ИмяОбъекта - Строка - Полное или короткое имя объекта (Полное - Справочник.Пользователи, короткой - Пользователи)
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция НайтиОбъект(Знач ИмяОбъекта, Знач ТипОбъекта = Неопределено) Экспорт Функция НайтиОбъект(Знач ИмяОбъекта, Знач ТипОбъекта = Неопределено) Экспорт
Если ТипОбъекта = Неопределено Если ТипОбъекта = Неопределено
@ -50,6 +59,14 @@
КонецФункции КонецФункции
// Возвращает коллекцию объектов переданного типа
//
// Параметры:
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
//
// Возвращаемое значение:
// Массив - Коллекция объектов, структура объектов см. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция НайтиОбъектыПоТипу(Знач ТипОбъекта) Экспорт Функция НайтиОбъектыПоТипу(Знач ТипОбъекта) Экспорт
ТипОбъекта = ТипыОбъектовКонфигурации.НормализоватьИмя(ТипОбъекта); ТипОбъекта = ТипыОбъектовКонфигурации.НормализоватьИмя(ТипОбъекта);
@ -58,12 +75,12 @@
КонецФункции КонецФункции
Процедура ПриСозданииОбъекта(пКонфигурация) Экспорт Процедура ПриСозданииОбъекта(пКонфигурация)
Конфигурация = пКонфигурация; Конфигурация = пКонфигурация;
ОбъектыКонфигурации = СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации(); ОбъектыКонфигурации = СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации();
МодулиКонфигурации = СтруктурыОписаний.ТаблицаОписанияМодулей(); Модули = СтруктурыОписаний.ТаблицаОписанияМодулей();
// todo сделать чтение форм // todo сделать чтение форм
ФормыКонфигурации = Новый ТаблицаЗначений; ФормыКонфигурации = Новый ТаблицаЗначений;

View File

@ -13,26 +13,70 @@
// ПРОГРАММНЫЙ ИНТЕРФЕЙС // ПРОГРАММНЫЙ ИНТЕРФЕЙС
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Читает описание структуры конфигурации
// * Описание конфигурации
// * Определяет местоположение описаний (файлов и каталогов)
//
Процедура ПрочитатьСтруктуру() Экспорт Процедура ПрочитатьСтруктуру() Экспорт
ЧтениеКонфигурации.ПрочитатьСтруктуруКонфигурации(ПараметрыЧтения); ЧтениеКонфигурации.ПрочитатьСтруктуруКонфигурации(ПараметрыЧтения);
ЗаписьКонфигурации.УстановитьПризнакИзменений(ПараметрыЗаписи, Ложь);
КонецПроцедуры КонецПроцедуры
Функция ДобавитьОбъект(Тип, ОписаниеОбъекта) Экспорт // Добавляет новый объект в конфигурацию
//
// Параметры:
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// ОписаниеОбъекта - Структура, Строка - Данные объекта или его имя
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъект(ТипОбъекта, ОписаниеОбъекта) Экспорт
ОбъектКонфигурации = РедакторКонфигурации.ДобавитьОбъект(ОписаниеКонфигурации, Тип, ОписаниеОбъекта); ОбъектКонфигурации = РедакторКонфигурации.ДобавитьОбъект(ОписаниеКонфигурации, ТипОбъекта, ОписаниеОбъекта);
ЗаписьКонфигурации.СохранитьОписание(ОбъектКонфигурации); ЗаписьКонфигурации.ПриДобавленииОбъекта(ОбъектКонфигурации);
Возврат ОбъектКонфигурации; Возврат ОбъектКонфигурации;
КонецФункции КонецФункции
// Записывает данные на диск
//
Процедура Зафиксировать() Экспорт
ЗаписьКонфигурации.Зафиксировать(ПараметрыЗаписи);
КонецПроцедуры
// Читает описание переданного объекта, его свойства и параметры
//
// Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Процедура ПрочитатьОписаниеОбъекта(ОбъектКонфигурации) Экспорт
ЧтениеКонфигурации.ПрочитатьОписание(ОбъектКонфигурации);
КонецПроцедуры
// Сохраняет описание переданного объекта, его свойства и параметры
//
// Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Процедура ЗаписатьОписаниеОбъекта(ОбъектКонфигурации) Экспорт
ЗаписьКонфигурации.СохранитьОписание(ОбъектКонфигурации);
КонецПроцедуры
// Возвращает описание конфигурации // Возвращает описание конфигурации
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - Описание конфигурации // ДанныеКонфигурации - Описание конфигурации
// //
Функция ОписаниеКонфигурации() Экспорт Функция ОписаниеКонфигурации() Экспорт
@ -40,18 +84,65 @@
КонецФункции КонецФункции
// Возвращает объект для работы с иерархией каталогов расширения
//
// Возвращаемое значение:
// СтруктураКаталоговКонфигурации - объект для работы с иерархией каталогов расширения
//
Функция СтруктураКаталогов() Экспорт Функция СтруктураКаталогов() Экспорт
Возврат СтруктураКаталогов; Возврат СтруктураКаталогов;
КонецФункции КонецФункции
// Выполняет поиск модулей конфигурации
// Найденные модули будут доступны ОписаниеКонфигурации().Модули
//
Процедура НайтиМодули() Экспорт
ЧтениеКонфигурации.НайтиМодулиКонфигурации(ПараметрыЧтения);
КонецПроцедуры
// Выполняет чтение вложенных подсистем и привязку их к объектам конфигурации
//
Процедура ЗаполнитьПодсистемыОбъектовКонфигурации() Экспорт
ЧтениеКонфигурации.ЗаполнитьПодсистемыОбъектовКонфигурации(ПараметрыЧтения);
КонецПроцедуры
// Читает и выполняет анализ содержимого модуля
// Устанавливает реквизиты "НаборБлоков" и "Содержимое"
// Параметры:
// СтрокаМодуль - СтрокаТаблицыЗначений - Базовое описание модуля
//
Процедура ПрочитатьСодержимоеМодуля(СтрокаМодуль) Экспорт
ЧтениеКонфигурации.ПрочитатьСодержимоеМодуля(СтрокаМодуль);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Возвращает служебные параметры для чтения данных с диска
//
// Возвращаемое значение:
// Структура - Параметры чтения
//
Функция ПараметрыЧтения() Экспорт Функция ПараметрыЧтения() Экспорт
Возврат ПараметрыЧтения; Возврат ПараметрыЧтения;
КонецФункции КонецФункции
// Возвращает служебные параметры для записи данных на диск
//
// Возвращаемое значение:
// Структура - Параметры записи
//
Функция ПараметрыЗаписи() Экспорт Функция ПараметрыЗаписи() Экспорт
Возврат ПараметрыЗаписи; Возврат ПараметрыЗаписи;

View File

@ -13,43 +13,88 @@
// ПРОГРАММНЫЙ ИНТЕРФЕЙС // ПРОГРАММНЫЙ ИНТЕРФЕЙС
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Читает описание структуры конфигурации
// * Описание конфигурации
// * Определяет местоположение описаний (файлов и каталогов)
//
Процедура ПрочитатьСтруктуру() Экспорт Процедура ПрочитатьСтруктуру() Экспорт
ЧтениеКонфигурации.ПрочитатьСтруктуруКонфигурации(ПараметрыЧтения); ЧтениеКонфигурации.ПрочитатьСтруктуруКонфигурации(ПараметрыЧтения);
ПараметрыЗаписи.Изменения.ИзмененКорневойОбъект = Ложь; ЗаписьКонфигурации.УстановитьПризнакИзменений(ПараметрыЗаписи, Ложь);
КонецПроцедуры КонецПроцедуры
Функция ДобавитьОбъект(Тип, ОписаниеОбъекта) Экспорт // Добавляет новый объект в конфигурацию
//
// Параметры:
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// ОписаниеОбъекта - Структура, Строка - Данные объекта или его имя
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъект(ТипОбъекта, ОписаниеОбъекта) Экспорт
ОбъектКонфигурации = РедакторКонфигурации.ДобавитьОбъект(ОписаниеКонфигурации, Тип, ОписаниеОбъекта); ОбъектКонфигурации = РедакторКонфигурации.ДобавитьОбъект(ОписаниеКонфигурации, ТипОбъекта, ОписаниеОбъекта);
ЗаписьКонфигурации.СохранитьОписание(ОбъектКонфигурации); ЗаписьКонфигурации.ПриДобавленииОбъекта(ОбъектКонфигурации);
Возврат ОбъектКонфигурации; Возврат ОбъектКонфигурации;
КонецФункции КонецФункции
// Добавляет объект базовой конфигурации в расширение
//
// Параметры:
// ОбъектРодительскойКонфигурации - СтрокаТаблицыЗначений - Описание объекта родительской конфигурации
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта расширения. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъектВРасширение(ОбъектРодительскойКонфигурации) Экспорт Функция ДобавитьОбъектВРасширение(ОбъектРодительскойКонфигурации) Экспорт
ОбъектКонфигурации = РедакторРасширения.ДобавитьОбъектВРасширение(ОписаниеКонфигурации, ОбъектРодительскойКонфигурации); ОбъектКонфигурации = РедакторРасширения.ДобавитьОбъектВРасширение(ОписаниеКонфигурации, ОбъектРодительскойКонфигурации);
ЗаписьКонфигурации.СохранитьОписание(ОбъектКонфигурации); ЗаписьКонфигурации.ПриДобавленииОбъекта(ОбъектКонфигурации);
Возврат ОбъектКонфигурации; Возврат ОбъектКонфигурации;
КонецФункции КонецФункции
// Записывает данные на диск
//
Процедура Зафиксировать() Экспорт Процедура Зафиксировать() Экспорт
ЗаписьКонфигурации.Зафиксировать(ПараметрыЗаписи); ЗаписьКонфигурации.Зафиксировать(ПараметрыЗаписи);
КонецПроцедуры КонецПроцедуры
// Читает описание переданного объекта, его свойства и параметры
//
// Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Процедура ПрочитатьОписаниеОбъекта(ОбъектКонфигурации) Экспорт
ЧтениеКонфигурации.ПрочитатьОписание(ОбъектКонфигурации);
КонецПроцедуры
// Сохраняет описание переданного объекта, его свойства и параметры
//
// Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Процедура ЗаписатьОписаниеОбъекта(ОбъектКонфигурации) Экспорт
ЗаписьКонфигурации.СохранитьОписание(ОбъектКонфигурации);
КонецПроцедуры
// Возвращает описание конфигурации // Возвращает описание конфигурации
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - Описание конфигурации // ДанныеКонфигурации - Описание конфигурации
// //
Функция ОписаниеКонфигурации() Экспорт Функция ОписаниеКонфигурации() Экспорт
@ -57,24 +102,71 @@
КонецФункции КонецФункции
// Возвращает объект для работы с иерархией каталогов расширения
//
// Возвращаемое значение:
// СтруктураКаталоговКонфигурации - объект для работы с иерархией каталогов расширения
//
Функция СтруктураКаталогов() Экспорт Функция СтруктураКаталогов() Экспорт
Возврат СтруктураКаталогов; Возврат СтруктураКаталогов;
КонецФункции КонецФункции
///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Возвращает служебные параметры для чтения данных с диска
//
// Возвращаемое значение:
// Структура - Параметры чтения
//
Функция ПараметрыЧтения() Экспорт Функция ПараметрыЧтения() Экспорт
Возврат ПараметрыЧтения; Возврат ПараметрыЧтения;
КонецФункции КонецФункции
// Возвращает служебные параметры для записи данных на диск
//
// Возвращаемое значение:
// Структура - Параметры записи
//
Функция ПараметрыЗаписи() Экспорт Функция ПараметрыЗаписи() Экспорт
Возврат ПараметрыЗаписи; Возврат ПараметрыЗаписи;
КонецФункции КонецФункции
// Выполняет поиск модулей конфигурации
// Найденные модули будут доступны ОписаниеКонфигурации().Модули
//
Процедура НайтиМодули() Экспорт
ЧтениеКонфигурации.НайтиМодулиКонфигурации(ПараметрыЧтения);
КонецПроцедуры
// Выполняет чтение вложенных подсистем и привязку их к объектам конфигурации
//
Процедура ЗаполнитьПодсистемыОбъектовКонфигурации() Экспорт
ЧтениеКонфигурации.ЗаполнитьПодсистемыОбъектовКонфигурации(ПараметрыЗаписи);
КонецПроцедуры
// Читает и выполняет анализ содержимого модуля
// Устанавливает реквизиты "НаборБлоков" и "Содержимое"
// Параметры:
// СтрокаМодуль - СтрокаТаблицыЗначений - Базовое описание модуля
//
Процедура ПрочитатьСодержимоеМодуля(СтрокаМодуль) Экспорт
ЧтениеКонфигурации.ПрочитатьСодержимоеМодуля(СтрокаМодуль);
КонецПроцедуры
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -86,6 +178,5 @@
ПараметрыЧтения = ЧтениеКонфигурации.СоздатьПараметрыЧтения(ЭтотОбъект, "Extension"); ПараметрыЧтения = ЧтениеКонфигурации.СоздатьПараметрыЧтения(ЭтотОбъект, "Extension");
ПараметрыЗаписи = ЗаписьКонфигурации.СоздатьПараметрыЗаписи(ЭтотОбъект, "Extension"); ПараметрыЗаписи = ЗаписьКонфигурации.СоздатьПараметрыЗаписи(ЭтотОбъект, "Extension");
ПараметрыЗаписи.Изменения.ИзмененКорневойОбъект = Истина;
КонецПроцедуры КонецПроцедуры

View File

@ -1,15 +1,28 @@
///////////////////////////////////////////////////////////////////////////////
//
// Корневой объект библиотеки. Содержит методы конструкторы.
// Создает объекты для работы с выгрузками описаний конфигураций и расширений
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Создает объект для чтение и редактирования описания конфигурации // Создает объект для чтение и редактирования описания конфигурации
// Выполняет чтение структуры описания // Выполняет чтение структуры описания
// //
// Параметры: // Параметры:
// КаталогИсходников - Строка - Каталог, который содержит описание конфигурации // КаталогИсходников - Строка - Каталог, который содержит описание конфигурации
// ФорматВыгрузки - Строка - Формат выгрузки. Значение перечисления ФорматыВыгрузки
// Если указать "Авто", произойдет автоматическое определение формата выгрузки
// //
// Возвращаемое значение: // Возвращаемое значение:
// Конфигурация - Объект для формирования описания // Конфигурация - Объект для формирования описания
// //
Функция ЗагрузитьКонфигурацию(КаталогИсходников, Формат = "Авто") Экспорт Функция ЗагрузитьКонфигурацию(КаталогИсходников, ФорматВыгрузки = "Авто") Экспорт
СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, Формат, Истина); СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, ФорматВыгрузки, Истина);
Конфигурация = Новый Конфигурация(СтруктураКаталогов); Конфигурация = Новый Конфигурация(СтруктураКаталогов);
Конфигурация.ПрочитатьСтруктуру(); Конфигурация.ПрочитатьСтруктуру();
@ -23,13 +36,15 @@
// //
// Параметры: // Параметры:
// КаталогИсходников - Строка - Каталог, который содержит описание расширения // КаталогИсходников - Строка - Каталог, который содержит описание расширения
// ФорматВыгрузки - Строка - Формат выгрузки. Значение перечисления ФорматыВыгрузки
// Если указать "Авто", произойдет автоматическое определение формата выгрузки
// //
// Возвращаемое значение: // Возвращаемое значение:
// Расширение - Объект для формирования описания // Расширение - Объект для формирования описания
// //
Функция ЗагрузитьРасширение(КаталогИсходников, Формат = "Авто") Экспорт Функция ЗагрузитьРасширение(КаталогИсходников, ФорматВыгрузки = "Авто") Экспорт
СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, Формат, Истина); СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, ФорматВыгрузки, Истина);
Расширение = Новый Расширение(СтруктураКаталогов); Расширение = Новый Расширение(СтруктураКаталогов);
Расширение.ПрочитатьСтруктуру(); Расширение.ПрочитатьСтруктуру();
@ -42,14 +57,14 @@
// //
// Параметры: // Параметры:
// КаталогИсходников - Строка - Каталог, в который записываются описания // КаталогИсходников - Строка - Каталог, в который записываются описания
// Формат - Строка - Формат описания // ФорматВыгрузки - Строка - Формат выгрузки. Значение перечисления ФорматыВыгрузки
// //
// Возвращаемое значение: // Возвращаемое значение:
// Конфигурация - Объект для формирования описания // Конфигурация - Объект для формирования описания
// //
Функция СоздатьНовуюКонфигурацию(КаталогИсходников, Формат) Экспорт Функция СоздатьНовуюКонфигурацию(КаталогИсходников, ФорматВыгрузки) Экспорт
СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, Формат, Истина); СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, ФорматВыгрузки, Истина);
Конфигурация = Новый Конфигурация(СтруктураКаталогов); Конфигурация = Новый Конфигурация(СтруктураКаталогов);
@ -63,14 +78,14 @@
// //
// Параметры: // Параметры:
// КаталогИсходников - Строка - Каталог, в который записываются описания // КаталогИсходников - Строка - Каталог, в который записываются описания
// Формат - Строка - Формат описания // ФорматВыгрузки - Строка - Формат выгрузки. Значение перечисления ФорматыВыгрузки
// //
// Возвращаемое значение: // Возвращаемое значение:
// Расширение - Объект для формирования описания // Расширение - Объект для формирования описания
// //
Функция СоздатьНовоеРасширение(КаталогИсходников, Формат) Экспорт Функция СоздатьНовоеРасширение(КаталогИсходников, ФорматВыгрузки) Экспорт
СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, Формат, Истина); СтруктураКаталогов = Новый СтруктураКаталоговКонфигурации(КаталогИсходников, ФорматВыгрузки, Истина);
Расширение = Новый Расширение(СтруктураКаталогов); Расширение = Новый Расширение(СтруктураКаталогов);
@ -85,14 +100,14 @@
// Используется для регистрации новых объектов в конфигурации // Используется для регистрации новых объектов в конфигурации
// //
// Параметры: // Параметры:
// Тип - Строка - Тип объекта конфигурации // ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// Наименование - Строка - Наименование объекта // Наименование - Строка - Наименование объекта
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - пустышка описания объекта // Структура - пустышка описания объекта
// //
Функция СоздатьОбъектКонфигурации(Тип, Наименование) Экспорт Функция СоздатьОбъектКонфигурации(ТипОбъекта, Наименование) Экспорт
Возврат СтруктурыОписаний.СоздатьОбъект(Тип, Наименование); Возврат СтруктурыОписаний.СоздатьОбъект(ТипОбъекта, Наименование);
КонецФункции КонецФункции

View File

@ -7,7 +7,7 @@
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#Использовать ".." #Использовать "../src"
#Использовать logos #Использовать logos
#Использовать asserts #Использовать asserts
#Использовать fs #Использовать fs
@ -42,23 +42,21 @@
Процедура ТестДолженПрочитатьВыгрузкуВИерархическомФорматеКонфигуратора() Экспорт Процедура ТестДолженПрочитатьВыгрузкуВИерархическомФорматеКонфигуратора() Экспорт
Парсер = ПарсерBSL.ПарсерКонфигурации(ОбъединитьПути(КаталогФикстур(), "configurations", "Demo_8_3_10")); Конфигурация = РазборКонфигураций.ЗагрузитьКонфигурацию(ОбъединитьПути(КаталогФикстур(), "configurations", "Demo_8_3_10"));
Парсер.ПрочитатьСтруктуруКонфигурации(); Конфигурация.ЗаполнитьПодсистемыОбъектовКонфигурации();
Парсер.ЗаполнитьПодсистемыОбъектовКонфигурации(); Конфигурация.НайтиМодули();
Парсер.НайтиМодулиКонфигурации();
ПроверитьРезультатЧтенияВыгрузки(Парсер, 168, 89); ПроверитьРезультатЧтенияВыгрузки(Конфигурация, 168, 89);
КонецПроцедуры КонецПроцедуры
Процедура ТестДолженПрочитатьВыгрузкуВФорматеEDT() Экспорт Процедура ТестДолженПрочитатьВыгрузкуВФорматеEDT() Экспорт
Парсер = ПарсерBSL.ПарсерКонфигурации(ОбъединитьПути(КаталогФикстур(), "edtconfigurations", "Demo_8_3_10", "src")); Конфигурация = РазборКонфигураций.ЗагрузитьКонфигурацию(ОбъединитьПути(КаталогФикстур(), "edtconfigurations", "Demo_8_3_10", "src"));
Парсер.ПрочитатьСтруктуруКонфигурации(); Конфигурация.ЗаполнитьПодсистемыОбъектовКонфигурации();
Парсер.ЗаполнитьПодсистемыОбъектовКонфигурации(); Конфигурация.НайтиМодули();
Парсер.НайтиМодулиКонфигурации();
ПроверитьРезультатЧтенияВыгрузки(Парсер, 167, 89); ПроверитьРезультатЧтенияВыгрузки(Конфигурация, 167, 89);
КонецПроцедуры КонецПроцедуры
@ -69,7 +67,7 @@
Процедура ПроверитьРезультатЧтенияВыгрузки(Парсер, КоличествоОбъектов, КоличествоМодулей) Процедура ПроверитьРезультатЧтенияВыгрузки(Парсер, КоличествоОбъектов, КоличествоМодулей)
Ожидаем.Что(Парсер.ОписаниеКонфигурации().ОбъектыКонфигурации.Количество(), "Количество найденных объектов не соответствует фактическому").Равно(КоличествоОбъектов); Ожидаем.Что(Парсер.ОписаниеКонфигурации().ОбъектыКонфигурации.Количество(), "Количество найденных объектов не соответствует фактическому").Равно(КоличествоОбъектов);
Ожидаем.Что(Парсер.ОписаниеКонфигурации().МодулиКонфигурации.Количество(), "Количество найденных модулей не соответствует фактическому").Равно(КоличествоМодулей); Ожидаем.Что(Парсер.ОписаниеКонфигурации().Модули.Количество(), "Количество найденных модулей не соответствует фактическому").Равно(КоличествоМодулей);
Для Каждого Объект Из Парсер.ОписаниеКонфигурации().ОбъектыКонфигурации Цикл Для Каждого Объект Из Парсер.ОписаниеКонфигурации().ОбъектыКонфигурации Цикл
@ -77,7 +75,7 @@
КонецЦикла; КонецЦикла;
Для Каждого Объект Из Парсер.ОписаниеКонфигурации().МодулиКонфигурации Цикл Для Каждого Объект Из Парсер.ОписаниеКонфигурации().Модули Цикл
Ожидаем.Что(ФС.ФайлСуществует(Объект.ПутьКФайлу), СтрШаблон("Не существует файл [%2] модуля объекта ""%1""", Объект.Родитель.ПолноеНаименование, Объект.ПутьКФайлу)).ЭтоИстина(); Ожидаем.Что(ФС.ФайлСуществует(Объект.ПутьКФайлу), СтрШаблон("Не существует файл [%2] модуля объекта ""%1""", Объект.Родитель.ПолноеНаименование, Объект.ПутьКФайлу)).ЭтоИстина();
Парсер.ПрочитатьСодержимоеМодуля(Объект); Парсер.ПрочитатьСодержимоеМодуля(Объект);
@ -91,3 +89,5 @@
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "common-fixtures"); Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "common-fixtures");
КонецФункции КонецФункции
ТестДолженПрочитатьВыгрузкуВФорматеEDT();

View File

@ -8,7 +8,7 @@
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
#Использовать asserts #Использовать asserts
#Использовать ".." #Использовать "../src"
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////

View File

@ -26,8 +26,8 @@
МассивТестов = Новый Массив; МассивТестов = Новый Массив;
МассивТестов.Добавить("ТестДобавитьВКонфигурациюЭлементы"); МассивТестов.Добавить("ТестДобавитьВКонфигурациюЭлементы");
МассивТестов.Добавить("ТестУдалитьИзКонфигурацииЭлементы"); // МассивТестов.Добавить("ТестУдалитьИзКонфигурацииЭлементы");
МассивТестов.Добавить("ТестИзменитьКонфигурацию"); // МассивТестов.Добавить("ТестИзменитьКонфигурацию");
Возврат МассивТестов; Возврат МассивТестов;
@ -45,6 +45,7 @@
КаталогКонфигурации = ОбъединитьПути(КаталогФикстур(), "configurations", "Demo_8_3_10"); КаталогКонфигурации = ОбъединитьПути(КаталогФикстур(), "configurations", "Demo_8_3_10");
КаталогКонфигурации = ВременныйКаталогКонфигурации(КаталогКонфигурации);
Конфигурация = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогКонфигурации); Конфигурация = РазборКонфигураций.ЗагрузитьКонфигурацию(КаталогКонфигурации);
Для Каждого Справочник Из Конфигурация.ОписаниеКонфигурации().НайтиОбъектыПоТипу("Справочник") Цикл Для Каждого Справочник Из Конфигурация.ОписаниеКонфигурации().НайтиОбъектыПоТипу("Справочник") Цикл
@ -58,6 +59,8 @@
Конфигурация.Зафиксировать(); Конфигурация.Зафиксировать();
УдалитьФайлы(КаталогКонфигурации);
КонецПроцедуры КонецПроцедуры
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -70,4 +73,12 @@
КонецФункции КонецФункции
ТестДобавитьВКонфигурациюЭлементы(); Функция ВременныйКаталогКонфигурации(КаталогИсходников)
Каталог = ПолучитьИмяВременногоФайла();
ФС.КопироватьСодержимоеКаталога(КаталогИсходников, Каталог);
Возврат Каталог;
КонецФункции

View File

@ -170,5 +170,3 @@
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "common-fixtures"); Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "common-fixtures");
КонецФункции КонецФункции
ТестВключенияВсехМодулейВРасширениеКонфигуратор();