diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/form" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/form" index 671fbc4..91f5b39 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/form" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/form" @@ -166,14 +166,14 @@ {0},7,1,0,00000000-0000-0000-0000-000000000000}, {1,0},0,0},9,2,0,2,0,1, {5,38a2bd79-81a8-456d-981f-b55d6bfa5fa5,4,1,2, -{6,77f470c0-df97-4932-99fa-c1eb91f65dbb,1,fbe38877-b914-4fd5-8540-07dde06ba2e1, +{6,3866864d-0692-4b09-a680-8b508bd581aa,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0}, +{6,f820c250-3622-4363-a93a-d3927c2c6198,1,fbe38877-b914-4fd5-8540-07dde06ba2e1, {6,2,00000000-0000-0000-0000-000000000000,142, -{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0}, -{6,1ac2e949-466a-428b-8eb3-dd3364ffc988,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1, -{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,2,1ac2e949-466a-428b-8eb3-dd3364ffc988, +{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0},1, +{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,2,3866864d-0692-4b09-a680-8b508bd581aa, {8,"Разделитель",0,1, -{1,0},0,38a2bd79-81a8-456d-981f-b55d6bfa5fa5,2,1e2,2,1,1,0,1,0,0},77f470c0-df97-4932-99fa-c1eb91f65dbb, +{1,0},0,38a2bd79-81a8-456d-981f-b55d6bfa5fa5,2,1e2,2,1,1,0,1,0,0},f820c250-3622-4363-a93a-d3927c2c6198, {8,"ОсновныеДействияФормыЗакрыть",0,1, {1,1, {"ru","Закрыть"} @@ -244,23 +244,23 @@ {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, {1,0},0,0},13, {1,1, -{"ru","Генерация данных для констант"} +{"ru","Генерация данных"} },1,1,0,0,0, {4,0, {0},"",-1,-1,1,0,""}, {0,0,0},0,0,0,0,0}, {1, {0,e1692cc2-605b-4535-84dd-28440238746c, -{3,"кнГенерацияДанныхДляКонстантНажатие", -{1,"кнГенерацияДанныхДляКонстантНажатие", +{3,"кнГенерацияДанных", +{1,"кнГенерацияДанных", {1,1, -{"ru","Кн генерация данных для констант нажатие"} +{"ru","Кн генерация данных"} }, {1,1, -{"ru","Кн генерация данных для констант нажатие"} +{"ru","Кн генерация данных"} }, {1,1, -{"ru","Кн генерация данных для констант нажатие"} +{"ru","Кн генерация данных"} }, {4,0, {0},"",-1,-1,1,0,""}, @@ -1178,7 +1178,7 @@ {-18},0,0,0}, {1,0},0,0},29,0,0,0,0,0,0,0,0,0,1,0,0,10,0,0,4,0, {"U"}, -{"U"},"",0,1,0,0,0,0, +{"U"},"",1,1,0,0,0,0, {4,0, {0},"",-1,-1,1,0,""}, {4,0, @@ -1332,7 +1332,7 @@ {-18},0,0,0}, {1,0},0,0},29,0,0,0,0,0,0,0,0,0,1,0,0,10,0,0,4,0, {"U"}, -{"U"},"",0,1,0,0,0,0, +{"U"},"",1,1,0,0,0,0, {4,0, {0},"",-1,-1,1,0,""}, {4,0, @@ -1407,7 +1407,7 @@ {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, {1,0},0,0},9,2,1,0,1,1, -{5,c3ed1a36-1a78-4de5-af21-f021e23c48fe,60,1,0,1, +{5,c3ed1a36-1a78-4de5-af21-f021e23c48fe,85,1,0,1, {5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0, {0,0, {0} @@ -1701,7 +1701,7 @@ CYGcwWBPZwKqGvLSfenfygT8jsON3BLEihiIbw==},0} {-18},0,0,0}, {1,0},0,0},29,0,0,0,0,0,0,0,0,0,1,0,0,10,0,0,4,0, {"U"}, -{"U"},"",0,1,0,0,0,0, +{"U"},"",1,1,0,0,0,0, {4,0, {0},"",-1,-1,1,0,""}, {4,0, @@ -2120,7 +2120,7 @@ CYGcwWBPZwKqGvLSfenfygT8jsON3BLEihiIbw==},0} {3,0, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, {1,0},0,0},9,2,1,0,1,1, -{5,c3ed1a36-1a78-4de5-af21-f021e23c48fe,91,1,0,1, +{5,c3ed1a36-1a78-4de5-af21-f021e23c48fe,116,1,0,1, {5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0, {0,0, {0} @@ -2377,7 +2377,7 @@ CYGcwWBPZwKqGvLSfenfygT8jsON3BLEihiIbw==},0} {0} } } -},619,419,1,0,1,4,4,719}, +},619,419,1,0,1,4,4,757}, { {1},25, {16, diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/module" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/module" index 7df05bd..82da536 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/module" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260/module" @@ -1,1443 +1,1493 @@ - -Процедура КнопкаВыполнитьНажатие(Кнопка) - // Вставить содержимое обработчика. -КонецПроцедуры - -Функция ПолучитьМассивКонстантДляОбработки() - Массив = Новый Массив; - - Для каждого Элем Из Метаданные.Константы Цикл - //Сообщить(Элем); - Имя = Элем.Имя; - Массив.Добавить(Имя); - КонецЦикла; - - Возврат Массив; -КонецФункции - -Функция ПолучитьСтрокуДляСтруктуры(Структура,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода) - - //Сообщить(" "); - //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); - ДобавитьСтрокуКода(ТаблицаКода," "); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения = Новый Структура;"); - - Для каждого Элем Из Структура Цикл - Ключ = Элем.Ключ; - Значение = Элем.Значение; - Если Значение = Неопределено Тогда - //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); - Продолжить; - КонецЕсли; - - СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); - Если СтрокаЗначения = Неопределено Тогда - СтрокаЗначения = "Неопределено"; - КонецЕсли; - //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); - КонецЦикла; - ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(ОбъектДляХранилищаЗначения);"); - Возврат "//Была создана структура"; -КонецФункции - -Функция ПолучитьСтрокуДляСоответствия(Соответствие,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода) - - //Сообщить(" "); - //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); - ДобавитьСтрокуКода(ТаблицаКода," "); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения = Новый Соответствие;"); - - Для каждого Элем Из Соответствие Цикл - Ключ = Элем.Ключ; - Значение = Элем.Значение; - - СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); - СтрокаКлюч = ПолучитьСтрокуДляЗначения(Ключ,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); - Если СтрокаЗначения = Неопределено Тогда - СтрокаЗначения = "Неопределено"; - КонецЕсли; - //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения.Вставить(" + СтрокаКлюч + "," + СтрокаЗначения + ");"); - КонецЦикла; - ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(ОбъектДляХранилищаЗначения);"); - Возврат "//Была создана структура"; -КонецФункции - -Функция ПолучитьСтрокуДляСпискаЗначений(Спс,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода) - - //Сообщить(" "); - //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); - ДобавитьСтрокуКода(ТаблицаКода," "); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения = Новый СписокЗначений;"); - - //Спс = Новый СписокЗначений; - //Спс.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001728"),"Товар"); - Для каждого Элем Из Спс Цикл - Значение = Элем.Значение; - Представление = Элем.Представление; - Если Значение = Неопределено Тогда - //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения.Добавить(Неопределено,""" + Представление + """);"); - Продолжить; - КонецЕсли; - - СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); - Если СтрокаЗначения = Неопределено Тогда - СтрокаЗначения = "Неопределено"; - КонецЕсли; - Если ЗначениеЗаполнено(Представление) Тогда - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения.Добавить(" + СтрокаЗначения + ",""" + Представление + """);"); - Иначе - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения.Добавить(" + СтрокаЗначения + ");"); - КонецЕсли; - КонецЦикла; - ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(ОбъектДляХранилищаЗначения);"); - Возврат "//Была создана структура"; -КонецФункции - -Функция ПолучитьСтрокуДляТаблицыЗначений(Тзн,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода) - - //Сообщить(" "); - //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); - ДобавитьСтрокуКода(ТаблицаКода," "); - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения = Новый ТаблицаЗначений;"); - - //Спс = Новый СписокЗначений; - //Спс.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001728"),"Товар"); - - Для каждого Колонка Из Тзн.Колонки Цикл - ДобавитьСтрокуКода(ТаблицаКода,"ОбъектДляХранилищаЗначения.Колонки.Добавить(""" + Колонка.Имя + """);"); - КонецЦикла; - - Ном = 0; - Для каждого СтрокаТаблицы Из Тзн Цикл - Ном = Ном + 1; - ДобавитьСтрокуКода(ТаблицаКода,"//Строка №" + Ном); - ДобавитьСтрокуКода(ТаблицаКода,"СтрокаТаблицы = ОбъектДляХранилищаЗначения.Добавить();"); - Для каждого Колонка Из Тзн.Колонки Цикл - ЗначениеИзТаблицы = СтрокаТаблицы[Колонка.Имя]; - Если ЗначениеИзТаблицы = Неопределено Тогда - //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); - ДобавитьСтрокуКода(ТаблицаКода,"СтрокаТаблицы." + Колонка.Имя + "=" + "Неопределено" + ";"); - Продолжить; - КонецЕсли; - - СтрокаЗначения = ПолучитьСтрокуДляЗначения(ЗначениеИзТаблицы,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); - Если СтрокаЗначения = Неопределено Тогда - СтрокаЗначения = "Неопределено"; - КонецЕсли; - ДобавитьСтрокуКода(ТаблицаКода,"СтрокаТаблицы." + Колонка.Имя + "=" + СтрокаЗначения + ";"); - КонецЦикла; - КонецЦикла; - ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(ОбъектДляХранилищаЗначения);"); - Возврат "//Была создана структура"; -КонецФункции - -Функция ПолучитьДатуСтрокой(Дат) - Возврат "'" + Формат(Дат,"ДФ=yyyyMMdd") + Формат(Дат,"ДФ=HHmmss") + "'"; -КонецФункции - -Процедура ДобавитьОбъектВТаблицу(ТаблицаОбъектов,Объект,Тип,Вид) - Если Не ЗначениеЗаполнено(Объект) Тогда - Возврат; - КонецЕсли; - - СтрТаблицаОбъектов = ТаблицаОбъектов.Добавить(); - СтрТаблицаОбъектов.Объект = Объект; - СтрТаблицаОбъектов.Тип = Тип; - СтрТаблицаОбъектов.Вид = Вид; -КонецПроцедуры - -Функция ПолучитьСтрокуДляЗначения(Значение,ИмяКонстанты = "",ТаблицаСправочников,ТаблицаКода); - ТипЗначения = ТипЗнч(Значение); - - Если ТипЗначения = Тип("Строка") Тогда - //СтрЧислоСтрок - //СтрПолучитьСтроку - - ПромСтр = СтрЗаменить(Значение,"""",""""""); - ЧислоСтрокВСтроке = СтрЧислоСтрок(ПромСтр); - Если ЧислоСтрокВСтроке = 1 Тогда - Возврат """" + ПромСтр + """"; - Иначе - СтрокаРезультат = """" + СтрПолучитьСтроку(ПромСтр,1); - Для Ккк = 2 По ЧислоСтрокВСтроке Цикл - СтрокаРезультат = СтрокаРезультат + Символы.ПС; - СтрокаРезультат = СтрокаРезультат + Символы.Таб + "|" + СтрПолучитьСтроку(ПромСтр,Ккк); - Если Ккк = ЧислоСтрокВСтроке Тогда - СтрокаРезультат = СтрокаРезультат + """"; - КонецЕсли; - КонецЦикла; - - Возврат СтрокаРезультат; - //Сообщить("Стр = """ + СтрПолучитьСтроку(ПромСтр,1)); - //ДобавитьСтрокуКода(ТаблицаКода,"Стр = """ + СтрПолучитьСтроку(ПромСтр,1)); - //Для Ккк=2 По ЧислоСтрокВСтроке Цикл - // Если Ккк = ЧислоСтрокВСтроке Тогда - // //Сообщить("|" + СтрПолучитьСтроку(ПромСтр,Ккк) + """;"); - // ДобавитьСтрокуКода(ТаблицаКода,"|" + СтрПолучитьСтроку(ПромСтр,Ккк) + """;"); - // иначе - // //Сообщить("|" + СтрПолучитьСтроку(ПромСтр,Ккк)); - // ДобавитьСтрокуКода(ТаблицаКода,"|" + СтрПолучитьСтроку(ПромСтр,Ккк)); - // КонецЕсли; - //КонецЦикла; - //Если ИмяКонстанты <> "" Тогда - // ДобавитьСтрокуКода(ТаблицаКода,"Константы." + ИмяКонстанты + ".Установить(" + "Стр" + ");"); - //КонецЕсли; - КонецЕсли; - - //Возврат "ОбработкаВнутриАлгоритма"; - - ИначеЕсли ТипЗначения = Тип("Число") Тогда - Возврат СтрЗаменить(СтрЗаменить(Значение,",","."),Символы.НПП,""); - - ИначеЕсли ТипЗначения = Тип("Булево") Тогда - Если Значение Тогда - Возврат "Истина"; - Иначе - Возврат "Ложь"; - КонецЕсли; - ИначеЕсли ТипЗначения = Тип("Дата") Тогда - //Возврат "'" + Формат(Значение,"ДФ=yyyyMMdd") + Формат(Значение,"ДФ=HHmmss") + "'"; - Возврат ПолучитьДатуСтрокой(Значение); - - ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда - ИмяМетаданного = Значение.Метаданные().Имя; - ДлинаКода = Значение.Метаданные().ДлинаКода; - ДлинаНаименования = Значение.Метаданные().ДлинаНаименования; - - ДобавитьОбъектВТаблицу(ТаблицаСправочников,Значение,"Справочник",ИмяМетаданного); - - Если ДлинаКода > 0 Тогда - Если Значение.Метаданные().ТипКода = Метаданные.СвойстваОбъектов.ТипКодаСправочника.Число Тогда - Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код""," + СтрЗаменить(СокрЛП(Значение.Код),Символы.НПП,"") + ")"; - Иначе - Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код"",""" + СокрЛП(Значение.Код) + """)"; - КонецЕсли; - ИначеЕсли ДлинаНаименования > 0 Тогда - Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Наименование"",""" + СокрЛП(Значение.Наименование) + """)"; - Иначе - Возврат Неопределено; - //Сообщить("//Константа " + Имя + ". Не смог определить как заплонять значение."); - КонецЕсли; - ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда - ИмяМетаданного = Значение.Метаданные().Имя; - ТипНомера = Значение.Метаданные().ТипНомера; - ДлинаНомера = Значение.Метаданные().ДлинаНомера; - Если ДлинаНомера > 0 Тогда - Если Значение.Метаданные().ТипНомера = Метаданные.СвойстваОбъектов.ТипНомераДокумента.Число Тогда - Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """," + СтрЗаменить(СокрЛП(Значение.Номер),Символы.НПП,"") + "," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; - Иначе - Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """,""" + СокрЛП(Значение.Номер) + """," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; - КонецЕсли; - Иначе - Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """,""" + "" + """," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; - //Сообщить("//Константа " + Имя + ". Не смог определить как заплонять значение."); - КонецЕсли; - ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда - ИмяМетаданного = Значение.Метаданные().Имя; - ИндексЗначенияПеречисления = Перечисления[ИмяМетаданного].Индекс(Значение); - ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяМетаданного].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя; - - Возврат "Перечисления." + ИмяМетаданного + "." + ИмяЗначенияПеречисления; - ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда - ЗначениеИзХранилища = Значение.Получить(); - Если ЗначениеИзХранилища = Неопределено Тогда - Возврат Неопределено; - КонецЕсли; - - ТипЗначенияИзХранилища = ТипЗнч(ЗначениеИзХранилища); - Если ТипЗначенияИзХранилища = Тип("Структура") Тогда - Если ЗначениеИзХранилища.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - Возврат ПолучитьСтрокуДляСтруктуры(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); - ИначеЕсли ТипЗначенияИзХранилища = Тип("СписокЗначений") Тогда - Если ЗначениеИзХранилища.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - Возврат ПолучитьСтрокуДляСпискаЗначений(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); - ИначеЕсли ТипЗначенияИзХранилища = Тип("ТаблицаЗначений") Тогда - Если ЗначениеИзХранилища.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - Возврат ПолучитьСтрокуДляТаблицыЗначений(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); - ИначеЕсли ТипЗначенияИзХранилища = Тип("Соответствие") Тогда - Если ЗначениеИзХранилища.Количество() = 0 Тогда - Возврат Неопределено; - КонецЕсли; - Возврат ПолучитьСтрокуДляСоответствия(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); - КонецЕсли; - - //Сообщить("ХранилищеЗначения"); - //ПолучитьСтрокуКодаДляЗначения(ЗначениеИзХранилища,Имя) - Если ИмяКонстанты <> "" Тогда - //Сообщить("//Здесь надо заполнить константу " + ИмяКонстанты + " в которой хранилище значения. ТипЗначенияИзХранилища="+ТипЗначенияИзХранилища); - ДобавитьСтрокуКода(ТаблицаКода,"//Здесь надо заполнить константу " + ИмяКонстанты + " в которой хранилище значения. ТипЗначенияИзХранилища="+ТипЗначенияИзХранилища); - КонецЕсли; - Возврат Неопределено; - Иначе - //Сообщить("//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); - Если ИмяКонстанты = "" Тогда //значит это подчиненное значение, которое имеет сложный тип, например в таблце значений внутри были структуры - - КонецЕсли; - Возврат Неопределено; - КонецЕсли; -КонецФункции - -Процедура ДобавитьСтрокуКода(ТаблицаКода,Стр,ДобавитьТаб = Истина) - СтрТаблицаКода = ТаблицаКода.Добавить(); - Если ДобавитьТаб Тогда - СтрТаблицаКода.СтрокаКода = Символы.Таб + Стр; - Иначе - СтрТаблицаКода.СтрокаКода = Стр; - КонецЕсли; -КонецПроцедуры - - -Процедура ПолучитьСтрокуКодаДляЗначения(Значение,Имя,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода) - ТипЗначения = ТипЗнч(Значение); - - - СтрокаДляЗначения = ПолучитьСтрокуДляЗначения(Значение,Имя,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); - Если СтрокаДляЗначения = Неопределено Тогда - //ДобавитьСтрокуКода(ТаблицаКода,); - //Сообщить("//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); - ДобавитьСтрокуКода(ТаблицаКода,"//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); - ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда - //Сообщить("Константы." + Имя + ".Установить(" + "ОбъектДляХранилищаЗначения" + ");"); - //Сообщить(" "); - ДобавитьСтрокуКода(ТаблицаКода,"Константы." + Имя + ".Установить(" + "ХранилищеЗначения" + ");"); - ДобавитьСтрокуКода(ТаблицаКода," "); - ИначеЕсли СтрокаДляЗначения = "ОбработкаВнутриАлгоритма" тогда - //значит уже всё сделано - Иначе - //Сообщить("Константы." + Имя + ".Установить(" + СтрокаДляЗначения + ");"); - //Сообщить(" "); - ДобавитьСтрокуКода(ТаблицаКода,"Константы." + Имя + ".Установить(" + СтрокаДляЗначения + ");"); - ДобавитьСтрокуКода(ТаблицаКода," "); - КонецЕсли; - - //Если ТипЗначения = Тип("Строка") Тогда - // Сообщить("Константы." + Имя + ".Установить(""" + Значение + """);"); - //ИначеЕсли ТипЗначения = Тип("Число") Тогда - // Сообщить("Константы." + Имя + ".Установить(" + СтрЗаменить(Значение,",",".") + ");"); - //ИначеЕсли ТипЗначения = Тип("Булево") Тогда - // Если Значение Тогда - // Сообщить("Константы." + Имя + ".Установить(" + "Истина" + ");"); - // Иначе - // Сообщить("Константы." + Имя + ".Установить(" + "Ложь" + ");"); - // КонецЕсли; - //ИначеЕсли ТипЗначения = Тип("Дата") Тогда - // Сообщить("Константы." + Имя + ".Установить('" + Формат(Значение,"ДФ=yyyyMMdd") + Формат(Значение,"ДФ=HHmmss") + "');"); - //ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда - // ИмяМетаданного = Значение.Метаданные().Имя; - // ДлинаКода = Значение.Метаданные().ДлинаКода; - // ДлинаНаименования = Значение.Метаданные().ДлинаНаименования; - // Если ДлинаКода > 0 Тогда - // Если Значение.Метаданные().ТипКода = Метаданные.СвойстваОбъектов.ТипКодаСправочника.Число Тогда - // Сообщить("Константы." + Имя + ".Установить(ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код""," + Значение.Код + "));"); - // Иначе - // Сообщить("Константы." + Имя + ".Установить(ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код"",""" + Значение.Код + """));"); - // КонецЕсли; - // ИначеЕсли ДлинаНаименования > 0 Тогда - // Сообщить("Константы." + Имя + ".Установить(ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Наименование"",""" + Значение.Наименование + """));"); - // Иначе - // Сообщить("//Константа " + Имя + ". Не смог определить как заплонять значение."); - // КонецЕсли; - //ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда - // ИмяМетаданного = Значение.Метаданные().Имя; - // ИндексЗначенияПеречисления = Перечисления[ИмяМетаданного].Индекс(Значение); - // ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяМетаданного].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя; - // Сообщить("Константы." + Имя + ".Установить(Перечисления." + ИмяМетаданного + "." + ИмяЗначенияПеречисления + ");"); - //ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда - // ЗначениеИзХранилища = Значение.Получить(); - // Если ЗначениеИзХранилища = Неопределено Тогда - // Сообщить("//Константа " + Имя + " была не заполнена."); - // Возврат; - // КонецЕсли; - // - // Сообщить("ХранилищеЗначения"); - // ПолучитьСтрокуКодаДляЗначения(ЗначениеИзХранилища,Имя) - //Иначе - // Сообщить("//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); - //КонецЕсли; -КонецПроцедуры - -Процедура СгенерироватьКодДляЗаполненияКонстант(ТаблицаКода,ТаблицаСправочниковДляПолученияМакетовFixtures) - МассивКонстантДляОбработки = ПолучитьМассивКонстантДляОбработки(); - //Сообщить("//код для вставки"); - ДобавитьСтрокуКода(ТаблицаКода,"Процедура ЗаполнениеКонстант() Экспорт",Ложь); - ДобавитьСтрокуКода(ТаблицаКода,"Сообщить(""Устанавливаю значения констант"");"); - Для каждого Элем Из МассивКонстантДляОбработки Цикл - ОбработкаПрерыванияПользователя(); - - Имя = Элем; - - Состояние("Константы." + Имя); - - Значение = Константы[Имя].Получить(); - Если НЕ ЗначениеЗаполнено(Значение) Тогда - Сообщить("//Константа " + Имя + " была не заполнена."); - ДобавитьСтрокуКода(ТаблицаКода,"//Константа " + Имя + " была не заполнена."); - Продолжить; - КонецЕсли; - - - ТипЗначения = ТипЗнч(Значение); - Если ТипЗначения = Тип("ХранилищеЗначения") Тогда - ЗначениеИзХранилища = Значение.Получить(); - Если ЗначениеИзХранилища = Неопределено Тогда - Сообщить("//Константа " + Имя + " была не заполнена."); - ДобавитьСтрокуКода(ТаблицаКода,"//Константа " + Имя + " была не заполнена."); - Продолжить; - КонецЕсли; - КонецЕсли; - - ПолучитьСтрокуКодаДляЗначения(Значение,Имя,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); - - Если ТестовыйРежим Тогда - Сообщить("ВКЛЮЧЕН ТЕСТОВЫЙ РЕЖИМ!!! ВЫГРУЖЕНЫ НЕ ВСЕ КОНСТАНТЫ!"); - Прервать; - КонецЕсли; - - //Сообщить("ПОТОМ УБРАТЬ!!! В СгенерироватьКодДляЗаполненияКонстант"); - //Прервать; - КонецЦикла; - ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); -КонецПроцедуры - -Процедура СгенерироватьКодДляСозданияFixturesСправочниковПоМакетам(ТаблицаКода,МассивМакетовСправочниковДляВставки) - ДобавитьСтрокуКода(ТаблицаКода," ",Ложь); - ДобавитьСтрокуКода(ТаблицаКода,"Процедура СоздатьFixturesСправочниковПоМакетам() Экспорт",Ложь); - Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл - ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesПоМакету(""" + Элем.ИмяМакета + """); //Загружено элементов " + Элем.ПолученоЭлементов); - КонецЦикла; - ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); -КонецПроцедуры - -Процедура СгенерироватьКодДляСозданияFixturesРСПоМакетам(ТаблицаКода,МассивМакетовРСДляВставки) - ДобавитьСтрокуКода(ТаблицаКода," ",Ложь); - ДобавитьСтрокуКода(ТаблицаКода,"Процедура СоздатьFixturesРСПоМакетам() Экспорт",Ложь); - Для каждого Элем Из МассивМакетовРСДляВставки Цикл - ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesПоМакету(""" + Элем.ИмяМакета + """);"); - КонецЦикла; - ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); -КонецПроцедуры - -Процедура СгенерироватьКодСОсновнымиПроцедурами(ТаблицаКода) - ДобавитьСтрокуКода(ТаблицаКода," ",Ложь); - ДобавитьСтрокуКода(ТаблицаКода,"Процедура СделатьНачальноеЗаполнениеБазы() Экспорт",Ложь); - ДобавитьСтрокуКода(ТаблицаКода,"Сообщить(""Начало обработки:"" + ТекущаяДата());"); - ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesСправочниковПоМакетам();"); - ДобавитьСтрокуКода(ТаблицаКода,"ЗаполнениеКонстант();"); - ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesРСПоМакетам();"); - ДобавитьСтрокуКода(ТаблицаКода,"Сообщить(""Окончание обработки:"" + ТекущаяДата());"); - ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); -КонецПроцедуры - -Процедура ДобавитьСправочникВВыгрузку(ТаблицаОбъектов,ИмяСпр,СколькоВыгружать,ПорогДляПолннойВыгрузки) - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | КОЛИЧЕСТВО(__ИмяСпр__.Ссылка) КАК КолЭлементов - |ИЗ - | Справочник.__ИмяСпр__ КАК __ИмяСпр__"; - - Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяСпр__",ИмяСпр); - РезультатЗапроса = Запрос.Выполнить(); - - ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); - - КолЭлементовВсего = 0; - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - КолЭлементовВсего = ВыборкаДетальныеЗаписи.КолЭлементов; - КонецЦикла; - - СколькоБудемВыгружать = СколькоВыгружать; - Если КолЭлементовВсего <= ПорогДляПолннойВыгрузки Тогда - СколькоБудемВыгружать = КолЭлементовВсего; - КонецЕсли; - - - Сообщить("Добавляю в выгрузку справочник: " + ИмяСпр + ". Всего элементов " + КолЭлементовВсего + ". Выгружаю " + СколькоБудемВыгружать + " элементов."); - - - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ МаксЧислоЭлементов - | __ИмяСпр__.Ссылка КАК Ссылка - |ИЗ - | Справочник.__ИмяСпр__ КАК __ИмяСпр__ - | ГДЕ НЕ ПометкаУдаления - |"; - - Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяСпр__",ИмяСпр); - Запрос.Текст = СтрЗаменить(Запрос.Текст,"МаксЧислоЭлементов",СтрЗаменить(СколькоБудемВыгружать,Символы.НПП,"")); - РезультатЗапроса = Запрос.Выполнить(); - - - ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - СтрТаблицаОбъектов = ТаблицаОбъектов.Добавить(); - СтрТаблицаОбъектов.Объект = ВыборкаДетальныеЗаписи.Ссылка; - СтрТаблицаОбъектов.Тип = "Справочник"; - СтрТаблицаОбъектов.Вид = ИмяСпр; - КонецЦикла; -КонецПроцедуры - -Процедура ДобавитьВВыгрузкуСправочники(ТаблицаОбъектов) - Для каждого Элем Из Метаданные.Справочники Цикл - ЭлементСписка = СписокВидовСправочниковКоторыеНеНадоВыгружать.НайтиПоЗначению(Элем.Имя); - Если ЭлементСписка <> Неопределено Тогда - Сообщить("Справочник " + Элем.Имя + " не будет выгружен, т.к. он добавлен в список невыгружаемых объектов."); - Продолжить; - КонецЕсли; - - Если ТестовыйРежим Тогда - Сообщить("ВКЛЮЧЕН ТЕСТОВЫЙ РЕЖИМ!!! ВЫГРУЖЕНЫ НЕ ВСЕ СПРАВОЧНИКИ!"); - Прервать; - КонецЕсли; - - //Сообщить("Добавляю в выгрузку справочник: " + Элем.Имя); - ДобавитьСправочникВВыгрузку(ТаблицаОбъектов,Элем.Имя,СколькоВыгружатьЭлементаСправочника,ПорогДляПолннойВыгрузкиСправочника); - КонецЦикла; - - //ПорогДляПолннойВыгрузкиСправочника -КонецПроцедуры - -Процедура ПолучитьОтчетПоМакетам(МассивМакетовСправочниковДляВставки,КоментарийОтчета) - ТаблицаОтчетПоМакетам = Новый ТаблицаЗначений; - ТаблицаОтчетПоМакетам.Колонки.Добавить("ИмяМакета"); - ТаблицаОтчетПоМакетам.Колонки.Добавить("КолСтрок"); - Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл - Макет = Элем.Макет; - КолСтрок = Макет.ВысотаТаблицы; - - - СтрТаблицаОтчетПоМакетам = ТаблицаОтчетПоМакетам.Добавить(); - СтрТаблицаОтчетПоМакетам.ИмяМакета = Элем.ИмяМакета; - СтрТаблицаОтчетПоМакетам.КолСтрок = КолСтрок; - КонецЦикла; - - ТаблицаОтчетПоМакетам.Сортировать("КолСтрок убыв,ИмяМакета"); - //ТаблицаОтчетПоМакетам.ВыбратьСтроку(); - - - ПечДок = Новый ТабличныйДокумент; - МакетОтчетПоМакетам = ПолучитьМакет("ОтчетПоМакетам"); - - ОбластьШапка = МакетОтчетПоМакетам.ПолучитьОбласть("Шапка"); - ОбластьСтрока = МакетОтчетПоМакетам.ПолучитьОбласть("Строка"); - - ПечДок.Вывести(ОбластьШапка); - - Для каждого СтрТаблицаОтчетПоМакетам Из ТаблицаОтчетПоМакетам Цикл - ОбластьСтрока.Параметры.Заполнить(СтрТаблицаОтчетПоМакетам); - ПечДок.Вывести(ОбластьСтрока); - КонецЦикла; - - ПечДок.Показать("Отчет по сгенерированным макетам. " + КоментарийОтчета + "."); -КонецПроцедуры - -Функция ПолучитьКоличествоЗаписейВРС(ИмяРС) - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | КОЛИЧЕСТВО(*) КАК КолЗаписей - |ИЗ - | РегистрСведений.__РС__ КАК __РС__"; - - Запрос.Текст = СтрЗаменить(Запрос.Текст,"__РС__",ИмяРС); - РезультатЗапроса = Запрос.Выполнить(); - ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); - - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - Возврат ВыборкаДетальныеЗаписи.КолЗаписей; - КонецЦикла; - - Возврат 0; -КонецФункции - -Функция ПолучитьМакетДляВидаРС(Вид,ИмяМакета) - - ГенераторFixtures = ВнешниеОбработки.Создать(ПутьКГенераторуFixtures); - ФормаГенератора = ГенераторFixtures.ПолучитьФорму("Форма"); - ФормаГенератора.Открыть(); - ГенераторFixtures.ВыгружатьКод = Истина; - ГенераторFixtures.ОбменДанными = Истина; - - ДеревоМетаданных = ГенераторFixtures.ДеревоМетаданных; - //ДеревоМетаданных.ВыбратьСтроку(); - - ВеткаДерева = ДеревоМетаданных.Строки[0].Строки[2]; - //Для каждого СтрокаДерева Из ВеткаСправочников.Строки Цикл - // Сообщить("" + СтрокаДерева.ПолноеИмяМетаданных); - //КонецЦикла; - НужнаяСтрокаДерева = ВеткаДерева.Строки.Найти(Вид,"ПолноеИмяМетаданных"); - Если НужнаяСтрокаДерева = Неопределено Тогда - Сообщить("Не найдена строка РС в дереве. Вид="+вид); - Возврат Неопределено; - КонецЕсли; - - - НужнаяСтрокаДерева.Выгружать = Истина; - НужнаяСтрокаДерева.ИспользоватьОтбор = Истина; - - - - ФормаГенератора.ЭлементыФормы.ДеревоМетаданных.ТекущаяСтрока = НужнаяСтрокаДерева; - //ФормаГенератора.ДеревоМетаданныхПриАктивизацииСтроки(""); - - - Макет = Новый ТабличныйДокумент; - Макет.Прочитать(ПутьУПустомуПравильномуМакету); - ГенераторFixtures.СоздатьМакетДанныхПоМетаданным(Макет); - - ИмяМакета = "РС_" + Вид; - Макет.Показать(ИмяМакета); - - ФормаГенератора.Закрыть(); - ГенераторFixtures = Неопределено; - - Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); - - Возврат Макет; - -КонецФункции - -Процедура ПолучитьFixturesДляРС(МассивМакетовРСДляВставки) - Для каждого Элем Из Метаданные.РегистрыСведений Цикл - Имя = Элем.Имя; - Если Элем.РежимЗаписи <> Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый Тогда - Продолжить; - КонецЕсли; - - ЭлементСписка = СписокВидовРСоторыеНеНадоВыгружать.НайтиПоЗначению(Имя); - Если ЭлементСписка <> Неопределено Тогда - Сообщить("РС " + Имя + " не будет выгружен, т.к. он добавлен в список невыгружаемых объектов."); - Продолжить; - КонецЕсли; - - Состояние("РС " + Имя); - - - Если Элем.Измерения.Количество() = 0 Тогда //такие РС xddDataFixtureGen не переваривает, хотя в типовых они встречаются - Сообщить("Не стал выгружать РС " + Имя + ", т.к. у него 0 измерений."); - Продолжить; - КонецЕсли; - - КоличествоЗаписейВРС = ПолучитьКоличествоЗаписейВРС(Имя); - Если КоличествоЗаписейВРС > ПорогДляПолннойВыгрузкиРС Тогда - Продолжить; - КонецЕсли; - Если КоличествоЗаписейВРС = 0 Тогда - Продолжить; - КонецЕсли; - - Сообщить("Выгружаю РС " + Имя + ", КоличествоЗаписей="+КоличествоЗаписейВРС); - - - ИмяМакета = ""; - Макет = ПолучитьМакетДляВидаРС(Имя,ИмяМакета); - //Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); - - - СтруктураМакета = Новый Структура; - СтруктураМакета.Вставить("Макет",Макет); - СтруктураМакета.Вставить("ИмяМакета",ИмяМакета); - - МассивМакетовРСДляВставки.Добавить(СтруктураМакета); - - - - Если ТестовыйРежим Тогда - Сообщить("ВКЛЮЧЕН ТЕСТОВЫЙ РЕЖИМ!!! ВЫГРУЖЕНЫ НЕ ВСЕ РС!"); - Прервать; - КонецЕсли; - //Сообщить("ПОТОМ УБРАТЬ!!!!!!!!!!!!!!!!!"); - //Прервать; - КонецЦикла; -КонецПроцедуры - -Процедура кнГенерацияДанныхДляКонстантНажатие(Элемент) - Сообщить("НАЧАЛО ОБРАБОТКИ " + ТекущаяДата()); - - ФайлМакета = Новый Файл(ПутьУПустомуПравильномуМакету); - Если Не ФайлМакета.Существует() Тогда - Сообщить("Файл макета " + ПутьУПустомуПравильномуМакету + " не найден!"); - Возврат; - КонецЕсли; - - ТаблицаСправочниковДляПолученияМакетовFixtures = Новый ТаблицаЗначений; - ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Объект"); - ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Тип"); - ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Вид"); - - ТаблицаКода = Новый ТаблицаЗначений; - ТаблицаКода.Колонки.Добавить("СтрокаКода"); - - //ГЕНЕРАЦИЯ КОДА ДЛЯ ЗАПОЛНЕНИЯ КОНСТАНТ - //Сообщить("ПОТОМ ВЕРНУТЬ!!! СгенерироватьКодДляЗаполненияКонстант"); - Если флагВыгружатьКонстанты Тогда - СгенерироватьКодДляЗаполненияКонстант(ТаблицаКода,ТаблицаСправочниковДляПолученияМакетовFixtures); - КонецЕсли; - - - - Если флагВыгружатьСправочники Тогда - ДобавитьВВыгрузкуСправочники(ТаблицаСправочниковДляПолученияМакетовFixtures); - КонецЕсли; - - //Сообщить("ПОТОМ ВЕРНУТЬ!!! ДобавитьВВыгрузкуСправочники"); - - - - - - - //ГЕНЕРАЦИЯ МАКЕТОВ - - ТаблицаСправочниковДляПолученияМакетовFixtures.Свернуть("Объект,Тип,Вид"); - ТаблицаСправочниковДляПолученияМакетовFixtures.Сортировать("Вид,Объект"); - - - //ТаблицаСправочниковДляПолученияМакетовFixtures.ВыбратьСтроку(); - Сообщить(" "); - - - МассивМакетовСправочниковДляВставки = Новый Массив; - //ДобавитьМассивмакетовОВОбработку(МассивМакетовСправочниковДляВставки,ПутьКОбработке); - - - //ГЕНЕРАЦИЯ FIXTURES ДЛЯ СПРАВОЧНИКОВ, КОТОРЫЕ БЫЛИ ПОЛУЧЕНЫ ОТ КОНСТАНТ И ПРОСТО СПРАВОЧНИКОВ - //Сообщить("ПОТОМ ВЕРНУТЬ!!! ПолучитьFixturesДляСправочников()"); - ПолучитьFixturesДляСправочников(ТаблицаСправочниковДляПолученияМакетовFixtures,МассивМакетовСправочниковДляВставки); - - - - - //ГЕНЕРАЦИЯ FIXTURES ДЛЯ РЕГИСТРОВ СВЕДЕНИЙ - МассивМакетовРСДляВставки = Новый Массив; - Если флагВыгружатьРС Тогда - ПолучитьFixturesДляРС(МассивМакетовРСДляВставки); - КонецЕсли; - - - - - - ПолучитьОтчетПоМакетам(МассивМакетовСправочниковДляВставки,"Справочники"); - ПолучитьОтчетПоМакетам(МассивМакетовРСДляВставки,"РС"); - - ПутьКОбработке = ПутьКШаблонуОбработки; - - - - - //ГЕНЕРАЦИЯ КОДА ДЛЯ СОЗДАНИЯ FIXTURES - СгенерироватьКодДляСозданияFixturesСправочниковПоМакетам(ТаблицаКода,МассивМакетовСправочниковДляВставки); - СгенерироватьКодДляСозданияFixturesРСПоМакетам(ТаблицаКода,МассивМакетовРСДляВставки); - СгенерироватьКодСОсновнымиПроцедурами(ТаблицаКода); - - - - - - ДобавитьМассивМакетовВОбработкуИКодМодуля(МассивМакетовСправочниковДляВставки,МассивМакетовРСДляВставки,ПутьКОбработке,ТаблицаКода); - - - Сообщить("ОКОНЧАНИЕ ОБРАБОТКИ " + ТекущаяДата()); - -КонецПроцедуры - - -Функция ПолучитьТаблицуВидовСправочников(ТаблицаОбъектов) - КопияТаблицы = ТаблицаОбъектов.Скопировать(); - - КопияТаблицы.Свернуть("Вид"); - КопияТаблицы.Сортировать("Вид"); - - Возврат КопияТаблицы; -КонецФункции - - -Функция ПолучитьМакетДляВидаСправочника(Вид,ВсяТаблицаОбъектов,ИмяМакета,ПолученоЭлементов) - Отбор = Новый Структура(); - Отбор.Вставить("Вид",Вид); - МассивСтрок = ВсяТаблицаОбъектов.НайтиСтроки(Отбор); - - //СтруктураПараметров = Новый Структура; - - МассивОбъектов = Новый Массив; - - Для каждого СтрокаСОбъектов Из МассивСтрок Цикл - //Сообщить("" + СтрокаСОбъектов.Объект + ", Вид="+СтрокаСОбъектов.Вид); - - //СтруктураОбъекта = Новый Структура; - //СтруктураОбъекта.Вставить("Объект",СтрокаСОбъектов.Объект); - //СтруктураОбъекта.Вставить("Вид",СтрокаСОбъектов.Вид); - - МассивОбъектов.Добавить(СтрокаСОбъектов.Объект); - - КонецЦикла; - - //СтруктураПараметров.Вставить("МассивОбъектов",МассивОбъектов); - - - - ГенераторFixtures = ВнешниеОбработки.Создать(ПутьКГенераторуFixtures); - ФормаГенератора = ГенераторFixtures.ПолучитьФорму("Форма"); - ФормаГенератора.Открыть(); - ГенераторFixtures.ВыгружатьКод = Истина; - ГенераторFixtures.ОбменДанными = Истина; - - ДеревоМетаданных = ГенераторFixtures.ДеревоМетаданных; - //ДеревоМетаданных.ВыбратьСтроку(); - - ВеткаСправочников = ДеревоМетаданных.Строки[0].Строки[0]; - //Для каждого СтрокаДерева Из ВеткаСправочников.Строки Цикл - // Сообщить("" + СтрокаДерева.ПолноеИмяМетаданных); - //КонецЦикла; - НужнаяСтрокаДерева = ВеткаСправочников.Строки.Найти(Вид,"ПолноеИмяМетаданных"); - Если НужнаяСтрокаДерева = Неопределено Тогда - Сообщить("Не найдена строка справочника в дереве. Вид="+вид); - Возврат Неопределено; - КонецЕсли; - - - НужнаяСтрокаДерева.Выгружать = Истина; - НужнаяСтрокаДерева.ИспользоватьОтбор = Истина; - - - - ФормаГенератора.ЭлементыФормы.ДеревоМетаданных.ТекущаяСтрока = НужнаяСтрокаДерева; - //ФормаГенератора.ДеревоМетаданныхПриАктивизацииСтроки(""); - - - ЭлементОтбора = ГенераторFixtures.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); - ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; - - СпсЗначений = Новый СписокЗначений; - //СпсЗначений.ЗагрузитьЗначения(ВсяТаблицаОбъектов.ВыгрузитьКолонку("Объект")); - СпсЗначений.ЗагрузитьЗначения(МассивОбъектов); - ЭлементОтбора.ПравоеЗначение = СпсЗначений; - - ЭлементОтбора.Использование = Истина; - - НужнаяСтрокаДерева.НастройкиКомпоновщика = ГенераторFixtures.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор; - - ПолученоЭлементов = СпсЗначений.Количество(); - Сообщить("Получаю fixtures для справочника " + Вид + ", в отборе " + ПолученоЭлементов + " элементов."); - - Макет = Новый ТабличныйДокумент; - Макет.Прочитать(ПутьУПустомуПравильномуМакету); - ГенераторFixtures.СоздатьМакетДанныхПоМетаданным(Макет); - - ИмяМакета = "Справочник_" + Вид; - Макет.Показать(ИмяМакета); - - ФормаГенератора.Закрыть(); - ГенераторFixtures = Неопределено; - - Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); - - Возврат Макет; - -КонецФункции - -Процедура ПолучитьFixturesДляСправочников(ТаблицаОбъектов,МассивМакетовСправочниковДляВставки) - - ФайлГенератораfixtures = Новый Файл(ПутьКГенераторуFixtures); - Если Не ФайлГенератораfixtures.Существует() Тогда - Сообщить("Не найден файл генератора Fixtures."); - Возврат; - КонецЕсли; - - - ТаблицаВидов = ПолучитьТаблицуВидовСправочников(ТаблицаОбъектов); - //ТаблицаВидов.ВыбратьСтроку(); - - Для каждого СтрТаблицаВидов Из ТаблицаВидов Цикл - ОбработкаПрерыванияПользователя(); - - Вид = СтрТаблицаВидов.Вид; - //Сообщить("Получаю fixtures для справочника " + Вид); - - ИмяМакета = ""; - ПолученоЭлементов = 0; - Макет = ПолучитьМакетДляВидаСправочника(Вид,ТаблицаОбъектов,ИмяМакета,ПолученоЭлементов); - //Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); - - - - СтруктураМакета = Новый Структура; - СтруктураМакета.Вставить("Макет",Макет); - СтруктураМакета.Вставить("ИмяМакета",ИмяМакета); - СтруктураМакета.Вставить("ПолученоЭлементов",ПолученоЭлементов); - - МассивМакетовСправочниковДляВставки.Добавить(СтруктураМакета); - - //Сообщить("ПОТОМ УБРАТь!!! ВЫГРУЖАЕТСЯ ТОЛЬКО ОДИН СПРАВОЧНИК!!!"); - //Прервать; - КонецЦикла; - - -КонецПроцедуры - -Процедура СделатьСообщение(Стр); - Сообщить(Стр); -КонецПроцедуры - -Процедура ВыполнитьКомандуОС(Стр) - КомандаСистемы(Стр); - //СистемнаяИнформация = Новый СистемнаяИнформация; - // - //Если (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86) или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64) Тогда - // Попытка - // ИмяВременногоBAT = ПолучитьИмяВременногоФайла("cmd"); - // - // //ЗТ = Новый ЗаписьТекста(ИмяВременногоBAT,"UTF-8",,Истина); - // ЗТ = Новый ЗаписьТекста(ИмяВременногоBAT,"UTF-8",,Истина); - // ЗТ.ЗаписатьСтроку(Стр); - // ЗТ.Закрыть(); - // - // WshShell = Новый COMОбъект("WScript.Shell"); - // //Сообщить(Стр); - // WshShell.Run(ИмяВременногоBAT,7,-1); - // УдалитьФайлы(ИмяВременногоBAT); - // Исключение - // #Если Клиент Тогда - // КомандаСистемы(Стр); - // #КонецЕсли - // КонецПопытки; - //Иначе - // ВызватьИсключение "Команда системы реализована только под Windows."; - //КонецЕсли; - -КонецПроцедуры - - -Функция РаспаковатьEPF(ИмяФайла,КаталогРаспаковки) - ФайлПрекомит = Новый Файл(ПутьКPrecommit); - Если НЕ ФайлПрекомит.Существует() Тогда - Сообщить("Не найден каталог прекоммита!"); - Возврат Ложь; - КонецЕсли; - - - ГенерироватьУФ = Ложь; - КаталогИнструментов = ПутьКPrecommit; - ЭтоУФ = Ложь; - Попытка - - Файл = Новый Файл(ИмяФайла); - - //ИмяКаталогаДляИсходников = Файл.Путь + "Src"; - ИмяКаталогаДляИсходников = КаталогРаспаковки; - - Если ГенерироватьУФ Тогда - ПутьКФайлуМодуля = ИмяКаталогаДляИсходников + "\" + Файл.ИмяБезРасширения + "\Form\Форма\Форма.txt"; - Иначе - ПутьКФайлуМодуля = ИмяКаталогаДляИсходников + "\" + Файл.ИмяБезРасширения + "\ObjectModule.txt"; - КонецЕсли; - - - - //ИмяКаталогаДляИсходников = КаталогВременныхФайлов() + "\src"; - - - УдалитьФайлы(ИмяКаталогаДляИсходников + "\" + Файл.ИмяБезРасширения); - ФайлКаталогSrc = Новый Файл(ИмяКаталогаДляИсходников); - Если Не ФайлКаталогSrc.Существует() Тогда - СоздатьКаталог(ИмяКаталогаДляИсходников); - КонецЕсли; - - СтрокаРазборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py """ + ИмяФайла + """ """ + ИмяКаталогаДляИсходников + """"; - СделатьСообщение("Делаю распаковку " + Файл.ПолноеИмя); - СделатьСообщение("Строка распаковки: " + СтрокаРазборкиEpf); - //КомандаСистемы(СтрокаРазборкиEpf,КаталогИнструментов); - ВыполнитьКомандуОС(СтрокаРазборкиEpf); - - - //Файл = Новый Файл(ПутьКФайлуМодуля); - //Если Не Файл.Существует() Тогда - // СделатьСообщение("Не найден файл после распаковки: " + ПутьКФайлуМодуля); - // Если ЭтоУФ Тогда - // СделатьСообщение("Возможно это обработка для обычных форм, а не для управляемых форм."); - // Иначе - // СделатьСообщение("Возможно это обработка для управляемых форм, а не для обычных форм."); - // КонецЕсли; - // Возврат Ложь; - //КонецЕсли; - - - Исключение - СделатьСообщение("Не смог распаковать " + ИмяФайла); - СделатьСообщение(ОписаниеОшибки()); - Возврат Ложь; - КонецПопытки; - - Возврат Истина; -КонецФункции - -Процедура УбратьЗаменитьЗапрещенныеСимволыИзСтроки(Стр) - Стр = СтрЗаменить(Стр,".","_"); - Стр = СтрЗаменить(Стр,",",""); - Стр = СтрЗаменить(Стр,":",""); - Стр = СтрЗаменить(Стр,";",""); - Стр = СтрЗаменить(Стр,"-","_"); - Стр = СтрЗаменить(Стр,"+",""); - //Стр = СтрЗаменить(Стр,"<",""); - //Стр = СтрЗаменить(Стр,">",""); -КонецПроцедуры - - -Процедура ЗаписатьМакетСПравильнымИменем(ИмяМакета,Макет,КаталогДляРаботы,ИДМакета) - УбратьЗаменитьЗапрещенныеСимволыИзСтроки(ИмяМакета); - - УИД = Новый УникальныйИдентификатор; - //Сообщить("ПРОИСХОДИТ ПОДМЕНА УИД!!! ПОТОМ УБРАТЬ!!!"); - //УИД = "7a3e66f5-c873-4e1b-9d97-2c5359d503a9"; - УИД = СокрЛП(УИД); - - ИДМакета = УИД; - - ИмяФайлаОписанияМакета = КаталогДляРаботы + "\" + УИД; - - ЗТ = Новый ЗаписьТекста(ИмяФайлаОписанияМакета,"UTF-8",,Истина); - ЗТ.ЗаписатьСтроку("{1,"); - ЗТ.ЗаписатьСтроку("{2,0,"); - ЗТ.ЗаписатьСтроку("{1,"); - ЗТ.ЗаписатьСтроку("{0,0," + УИД + "},""" + ИмяМакета + ""","); - ЗТ.ЗаписатьСтроку("{1,""ru"",""" + ИмяМакета + """},"""",0,0}"); - ЗТ.ЗаписатьСтроку("},0}"); - - ЗТ.Закрыть(); - - //Сообщить("Записал описание макета " + ИмяФайлаОписанияМакета); - - - ФайлТелоМакета = КаталогДляРаботы + "\" + УИД + ".0"; - //Макет = Новый ТабличныйДокумент; - Макет.Записать(ФайлТелоМакета); -КонецПроцедуры - -Функция ПолучитьИмяФайлаRoot(КаталогДляРаботы) - - СтрокаВозврата = Неопределено; - - ИмяФайла = КаталогДляРаботы + "\root"; - ФайлПроверкаСуществования = Новый Файл(ИмяФайла); - Если НЕ ФайлПроверкаСуществования.Существует() Тогда - Сообщить("Файл " + ИмяФайла + " не существует!"); - Возврат Неопределено; - КонецЕсли; - - Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайла,"UTF-8"); - - Пока Истина Цикл - Стр = Текст.ПрочитатьСтроку(); - Если Стр = Неопределено Тогда - Прервать; - КонецЕсли; - - Стр = Сред(Стр,4); - Стр = Лев(Стр,СтрДлина(Стр)-2); - //Сообщить(Стр); - - СтрокаВозврата = Стр; - КонецЦикла; - - Текст.Закрыть(); - - - Возврат СтрокаВозврата; -КонецФункции - -Процедура ЗаписатьВФайлRootИДМакетов(ПутьКRoot,МассивМакетовСправочниковДляВставки) - Текст = Новый ЧтениеТекста; - Текст.Открыть(ПутьКRoot,"UTF-8"); - - ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); - ЗТ = Новый ЗаписьТекста(ИмяВременногоФайла,"UTF-8",,Истина); - - СтрокаДляИДМакетов = "{3daea016-69b7-4ed4-9453-127911372fe6,"; - - Пока Истина Цикл - Стр = Текст.ПрочитатьСтроку(); - Если Стр = Неопределено Тогда - Прервать; - КонецЕсли; - - Поз = Найти(Стр,СтрокаДляИДМакетов); - Если Поз > 0 Тогда - //это строка в которой лежат макеты - ПромСтр = СтрЗаменить(Стр,СтрокаДляИДМакетов,""); - Поз1 = Найти(ПромСтр,","); - Поз2 = Найти(ПромСтр,"}"); - Поз = Мин(Поз1,Поз2); - - ИдУжеСуществующихМакетов = ""; - - СтрТекКолМакетов = Лев(ПромСтр,Поз-1); - ТекКолМакетов = Число(СтрТекКолМакетов); - Если ТекКолМакетов > 0 Тогда - ИдУжеСуществующихМакетов = Сред(ПромСтр,Поз1); - ИдУжеСуществующихМакетов = Лев(ИдУжеСуществующихМакетов,СтрДлина(ИдУжеСуществующихМакетов)-2);//убрали }, - КонецЕсли; - НовоеЧислоМакетов = ТекКолМакетов + МассивМакетовСправочниковДляВставки.Количество(); - СтрНовоеЧислоМакетов = СтрЗаменить(Строка(НовоеЧислоМакетов),Символы.НПП,""); - - СтрокаДляИДМакетов = СтрокаДляИДМакетов + СтрНовоеЧислоМакетов + ИдУжеСуществующихМакетов; - Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл - ИдМакета = Элем.ИдМакета; - СтрокаДляИДМакетов = СтрокаДляИДМакетов + "," + ИдМакета; - КонецЦикла; - СтрокаДляИДМакетов = СтрокаДляИДМакетов + "},"; - - Стр = СтрокаДляИДМакетов; - КонецЕсли; - - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; - - - - Текст.Закрыть(); - ЗТ.Закрыть(); - - //Сообщить("Записал " + ИмяВременногоФайла); - - КопироватьФайл(ИмяВременногоФайла,ПутьКRoot); - - -КонецПроцедуры - -Процедура ДобавитьСтрокиВФайлRenames(ПтуьКRenames,МассивМакетовСправочниковДляВставки) - ЗТ = Новый ЗаписьТекста(ПтуьКRenames,"UTF-8",,Истина); - - Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл - ЗТ.ЗаписатьСтроку(Элем.ИдМакета + "-->und\" + Элем.ИдМакета); - ЗТ.ЗаписатьСтроку(Элем.ИдМакета + ".0-->Макеты\" + Элем.ИмяМакета + ".mxl"); - ЗТ.ЗаписатьСтроку(Элем.ИдМакета + ".0-->und\" + Элем.ИдМакета + ".0"); - КонецЦикла; - - ЗТ.Закрыть(); - -КонецПроцедуры - -Процедура СкопироватьФайлыМакетовВСлужебныйКаталог(КудаСкопироватьМакеты,МассивМакетовСправочниковДляВставки) - ФайлПроверкаСуществования = Новый Файл(КудаСкопироватьМакеты); - Если НЕ ФайлПроверкаСуществования.Существует() Тогда - СоздатьКаталог(КудаСкопироватьМакеты); - КонецЕсли; - - - Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл - Макет = Элем.Макет; - //Макет = Новый ТабличныйДокумент; - Макет.Записать(КудаСкопироватьМакеты + "\" + Элем.ИмяМакета + ".mxl"); - КонецЦикла; -КонецПроцедуры - - -Процедура ДобавитьВМодульОбъектаОбработкиТаблицуКода(ПутькМодулюОбработки,ТаблицаКода) - ФайлПроверкаСуществования = Новый Файл(ПутькМодулюОбработки); - Если НЕ ФайлПроверкаСуществования.Существует() Тогда - Сообщить("Файл " + ПутькМодулюОбработки + " не существует!"); - Возврат; - КонецЕсли; - - ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); - - //скопируем то, что уже есть - КопироватьФайл(ПутькМодулюОбработки,ИмяВременногоФайла); - - - - - //ЗТ = Новый ЗаписьТекста(ИмяВременногоФайла,"UTF-8",,Истина); - ЗТ = Новый ЗаписьТекста; - ЗТ.Открыть(ИмяВременногоФайла,"UTF-8",,Истина); - Для каждого СтрТаблицаКода Из ТаблицаКода Цикл - ЗТ.ЗаписатьСтроку(СтрТаблицаКода.СтрокаКода); - КонецЦикла; - ЗТ.Закрыть(); - - - КопироватьФайл(ИмяВременногоФайла,ПутькМодулюОбработки); -КонецПроцедуры - -Процедура ЗаписатьСтрокуПодключенияКxUnitВМодульОбработки(ПутькМодулюОбработки) - ФайлПроверкаСуществования = Новый Файл(ПутькМодулюОбработки); - Если НЕ ФайлПроверкаСуществования.Существует() Тогда - Сообщить("Файл " + ПутькМодулюОбработки + " не существует!"); - Возврат; - КонецЕсли; - - ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); - - - ЗТ = Новый ЗаписьТекста; - ЗТ.Открыть(ИмяВременногоФайла,"UTF-8",,Истина); - - Текст = Новый ЧтениеТекста; - Текст.Открыть(ПутькМодулюОбработки,"UTF-8"); - - Пока Истина Цикл - Стр = Текст.ПрочитатьСтроку(); - Если Стр = Неопределено Тогда - Прервать; - КонецЕсли; - - Если Найти(Стр,"тут должно быть определено, как подключиться к xUnit") > 0 Тогда - Стр = СтрокаПодключенияКxUnit; - КонецЕсли; - - ЗТ.ЗаписатьСтроку(Стр); - КонецЦикла; - - Текст.Закрыть(); - ЗТ.Закрыть(); - - - КопироватьФайл(ИмяВременногоФайла,ПутькМодулюОбработки); -КонецПроцедуры - -Процедура ДобавитьМассивМакетовВОбработкуИКодМодуля(МассивМакетовСправочниковДляВставки,МассивМакетовРСДляВставки,ПутьКОбработке,ТаблицаКода) - ФайлОбработки = Новый Файл(ПутьКОбработке); - Если НЕ ФайлОбработки.Существует() Тогда - Сообщить("Файл " + ПутьКОбработке + " не найден."); - Возврат; - КонецЕсли; - - - - КаталогРаспаковки = "C:\Temp\111"; - //КаталогДляРаботы = ФайлОбработки.Путь + "Src\" + ФайлОбработки.ИмяБезРасширения + "\und"; - КаталогДляРаботы = КаталогРаспаковки + "\" + ФайлОбработки.ИмяБезРасширения + "\und"; - //ПутьКИсходникам = ФайлОбработки.Путь + "Src\" + ФайлОбработки.ИмяБезРасширения; - ПутьКИсходникам = КаталогРаспаковки + "\" + ФайлОбработки.ИмяБезРасширения; - КаталогИнструментов = ПутьКPrecommit; - - ИмяВременнойEPF = ПутьКГенерируемойEPF; - УдалитьФайлы(ИмяВременнойEPF); - - - - - //СтрокаСборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py --compile """ + ПутьКИсходникам + """ """ + ИмяВременнойEPF + """"; - //Сообщить("СтрокаСборкиEpf="+СтрокаСборкиEpf); - //ВыполнитьКомандуОС(СтрокаСборкиEpf); - //Сообщить("ПОТОМ ВЕРНУТЬ СОЗДАНИЕ EPF С МАКЕТАМИ!!!!!!!!!!!!!!!"); - //Возврат; - - - Если НЕ РаспаковатьEPF(ПутьКОбработке,КаталогРаспаковки) Тогда - Возврат; - КонецЕсли; - - //Возврат; - - - //Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл - // ИмяМакета = Элем.ИмяМакета; - // УбратьЗаменитьЗапрещенныеСимволыИзСтроки(ИмяМакета); - // Элем.ИмяМакета = ИмяМакета; - //КонецЦикла; - - - //Возврат; - //Сообщить("ПОТОМ ВЕРНУТЬ РАСПАКОВКУ!!!!!!!!!!!!!!!"); - - - - - //СтрокаСборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py --compile """ + ПутьКИсходникам + """ """ + ИмяВременнойEPF + """"; - //Сообщить("СтрокаСборкиEpf="+СтрокаСборкиEpf); - //ВыполнитьКомандуОС(СтрокаСборкиEpf); - //Сообщить("ПОТОМ ВЕРНУТЬ СОЗДАНИЕ EPF С МАКТАМИ!!!!!!!!!!!!!!!"); - //Возврат; - - - Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл - ИмяМакета = Элем.ИмяМакета; - Макет = Элем.Макет; - ИДМакета = ""; - ЗаписатьМакетСПравильнымИменем(ИмяМакета,Макет,КаталогДляРаботы,ИДМакета); - Элем.Вставить("ИДМакета",ИДМакета); - КонецЦикла; - - Для каждого Элем Из МассивМакетовРСДляВставки Цикл - ИмяМакета = Элем.ИмяМакета; - Макет = Элем.Макет; - ИДМакета = ""; - ЗаписатьМакетСПравильнымИменем(ИмяМакета,Макет,КаталогДляРаботы,ИДМакета); - Элем.Вставить("ИДМакета",ИДМакета); - КонецЦикла; - - - - ИмяФайлаRoot = ПолучитьИмяФайлаRoot(КаталогДляРаботы); - Если ИмяФайлаRoot = Неопределено Тогда - Сообщить("Не смог прочитать файл root."); - Возврат; - КонецЕсли; - - ПутьКRoot = КаталогДляРаботы + "\" + ИмяФайлаRoot; - ЗаписатьВФайлRootИДМакетов(ПутьКRoot,МассивМакетовСправочниковДляВставки); - ЗаписатьВФайлRootИДМакетов(ПутьКRoot,МассивМакетовРСДляВставки); - - ПтуьКRenames = ПутьКИсходникам + "\renames.txt"; - ДобавитьСтрокиВФайлRenames(ПтуьКRenames,МассивМакетовСправочниковДляВставки); - ДобавитьСтрокиВФайлRenames(ПтуьКRenames,МассивМакетовРСДляВставки); - - КудаСкопироватьМакеты = ПутьКИсходникам + "\Макеты"; - СкопироватьФайлыМакетовВСлужебныйКаталог(КудаСкопироватьМакеты,МассивМакетовСправочниковДляВставки); - СкопироватьФайлыМакетовВСлужебныйКаталог(КудаСкопироватьМакеты,МассивМакетовРСДляВставки); - - - - ПутькМодулюОбработки = ПутьКИсходникам + "\ObjectModule.txt"; - ЗаписатьСтрокуПодключенияКxUnitВМодульОбработки(ПутькМодулюОбработки); - Если ТаблицаКода <> Неопределено Тогда - ДобавитьВМодульОбъектаОбработкиТаблицуКода(ПутькМодулюОбработки,ТаблицаКода); - КонецЕсли; - - - - - СтрокаСборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py --compile """ + ПутьКИсходникам + """ """ + ИмяВременнойEPF + """"; - Сообщить("СтрокаСборкиEpf="+СтрокаСборкиEpf); - - ВыполнитьКомандуОС(СтрокаСборкиEpf); - -КонецПроцедуры - - -Процедура ОсновныеДействияФормыТестРаспаковки(Кнопка) - МассивМакетовСправочниковДляВставки = Новый Массив; - ТД = Новый ТабличныйДокумент; - ТД.Прочитать("C:\Temp\Справочник.ШаблонПисем.mxl"); - - СтруктураМакета = Новый Структура; - СтруктураМакета.Вставить("Макет",ТД); - СтруктураМакета.Вставить("ИмяМакета","Справочник.ШаблонПисем"); - - МассивМакетовСправочниковДляВставки.Добавить(СтруктураМакета); - - ПутьКОбработке = "C:\Commons\Rep\vanessa-BaseInit\ШаблонОбработкиДляНачальногоЗаполнения.epf"; - - ПромМассив = Новый Массив; - ДобавитьМассивМакетовВОбработкуИКодМодуля(МассивМакетовСправочниковДляВставки,ПромМассив,ПутьКОбработке,Неопределено); - -КонецПроцедуры - - - -Процедура ВосстановитьНастройки() - Настройки = ХранилищеОбщихНастроек.Загрузить("vanessa-base-init"); - Если ТипЗнч(Настройки) = Тип("Структура") Тогда - Настройки.Свойство("ПутьКГенераторуFixtures", ПутьКГенераторуFixtures); - Настройки.Свойство("ПутьКPrecommit", ПутьКPrecommit); - Настройки.Свойство("ПутьУПустомуПравильномуМакету", ПутьУПустомуПравильномуМакету); - Настройки.Свойство("ПутьКШаблонуОбработки", ПутьКШаблонуОбработки); - Настройки.Свойство("ПутьКГенерируемойEPF", ПутьКГенерируемойEPF); - Настройки.Свойство("СколькоВыгружатьЭлементаСправочника", СколькоВыгружатьЭлементаСправочника); - Настройки.Свойство("ПорогДляПолннойВыгрузкиСправочника", ПорогДляПолннойВыгрузкиСправочника); - Настройки.Свойство("СписокВидовСправочниковКоторыеНеНадоВыгружать", СписокВидовСправочниковКоторыеНеНадоВыгружать); - Настройки.Свойство("СписокВидовРСоторыеНеНадоВыгружать", СписокВидовРСоторыеНеНадоВыгружать); - Настройки.Свойство("ПорогДляПолннойВыгрузкиРС", ПорогДляПолннойВыгрузкиРС); - Настройки.Свойство("флагВыгружатьКонстанты", флагВыгружатьКонстанты); - Настройки.Свойство("флагВыгружатьСправочники", флагВыгружатьСправочники); - Настройки.Свойство("флагВыгружатьРС", флагВыгружатьРС); - Настройки.Свойство("СтрокаПодключенияКxUnit", СтрокаПодключенияКxUnit); - Настройки.Свойство("ТестовыйРежим", ТестовыйРежим); - КонецЕсли; -КонецПроцедуры - -Процедура СохранитьНастройки() - Настройки = Новый Структура; - Настройки.Вставить("ПутьКГенераторуFixtures", ПутьКГенераторуFixtures); - Настройки.Вставить("ПутьКPrecommit", ПутьКPrecommit); - Настройки.Вставить("ПутьУПустомуПравильномуМакету", ПутьУПустомуПравильномуМакету); - Настройки.Вставить("ПутьКШаблонуОбработки", ПутьКШаблонуОбработки); - Настройки.Вставить("ПутьКГенерируемойEPF", ПутьКГенерируемойEPF); - Настройки.Вставить("СколькоВыгружатьЭлементаСправочника", СколькоВыгружатьЭлементаСправочника); - Настройки.Вставить("ПорогДляПолннойВыгрузкиСправочника", ПорогДляПолннойВыгрузкиСправочника); - Настройки.Вставить("СписокВидовСправочниковКоторыеНеНадоВыгружать", СписокВидовСправочниковКоторыеНеНадоВыгружать); - Настройки.Вставить("СписокВидовРСоторыеНеНадоВыгружать", СписокВидовРСоторыеНеНадоВыгружать); - Настройки.Вставить("ПорогДляПолннойВыгрузкиРС", ПорогДляПолннойВыгрузкиРС); - Настройки.Вставить("флагВыгружатьКонстанты", флагВыгружатьКонстанты); - Настройки.Вставить("флагВыгружатьСправочники", флагВыгружатьСправочники); - Настройки.Вставить("флагВыгружатьРС", флагВыгружатьРС); - Настройки.Вставить("СтрокаПодключенияКxUnit", СтрокаПодключенияКxUnit); - Настройки.Вставить("ТестовыйРежим", ТестовыйРежим); - ХранилищеОбщихНастроек.Сохранить("vanessa-base-init",, Настройки); -КонецПроцедуры - - - -Процедура ПриОткрытии() - ВосстановитьНастройки(); - - ЭтаФорма.Заголовок = "Создание обработки по созданию fixtures для начального заполнения базы. " + ПолучитьВерсиюОбработки(); - - //заполним настройки, если обработка открывается в первый раз - начало - Если ПутьКГенераторуFixtures = "" Тогда - ПутьКГенераторуFixtures = "C:\Commons\Rep\xUnitFor1C\xddDataFixtureGen.epf"; - КонецЕсли; - Если ПутьКPrecommit = "" Тогда - ПутьКPrecommit = "C:\Commons\Rep\vanessa-base-init\.git\hooks"; - КонецЕсли; - Если ПутьУПустомуПравильномуМакету = "" Тогда - ПутьУПустомуПравильномуМакету = "C:\Commons\Rep\vanessa-base-init\ПустойПравильныйМакет.mxl"; - КонецЕсли; - Если ПутьКШаблонуОбработки = "" Тогда - ПутьКШаблонуОбработки = "C:\Commons\Rep\vanessa-base-init\ШаблонОбработкиДляНачальногоЗаполнения.epf"; - КонецЕсли; - Если ПутьКГенерируемойEPF = "" Тогда - ПутьКГенерируемойEPF = "C:\Temp\111.epf"; - КонецЕсли; - Если СколькоВыгружатьЭлементаСправочника = 0 Тогда - СколькоВыгружатьЭлементаСправочника = 15; - КонецЕсли; - Если ПорогДляПолннойВыгрузкиСправочника = 0 Тогда - ПорогДляПолннойВыгрузкиСправочника = 50; - КонецЕсли; - Если ПорогДляПолннойВыгрузкиРС = 0 Тогда - ПорогДляПолннойВыгрузкиРС = 10; - КонецЕсли; - Если СтрокаПодключенияКxUnit = "" Тогда - СтрокаПодключенияКxUnit = " xUnit = ВнешниеОбработки.Создать(""C:\Commons\Rep\xUnitFor1C\xddTestRunner.epf"");"; - КонецЕсли; - //заполним настройки, если обработка открывается в первый раз - окончание -КонецПроцедуры - -Процедура ПриЗакрытии() - СохранитьНастройки(); -КонецПроцедуры - -//Сообщить("111 " + Метаданные.ОсновнойЯзык); -//Макет = Новый ТабличныйДокумент; -//Макет.Прочитать("c:\users\pautov\desktop\444.mxl"); -//Макет.Показать(); -//ыа = 1; -//Макет.КодЯзыкаМакета = Метаданные.ОсновнойЯзык.КодЯзыка; -//Макет.Показать(); -//Макет.Записать("c:\users\pautov\desktop\333.mxl"); -//ыва = 1; - -//Метаданные.ОсновнойЯзык.КодЯзыка - - - - - - +Перем СчетчикОбъектов; + + +Процедура КнопкаВыполнитьНажатие(Кнопка) + // Вставить содержимое обработчика. +КонецПроцедуры + +Функция ПолучитьМассивКонстантДляОбработки() + Массив = Новый Массив; + + Для каждого Элем Из Метаданные.Константы Цикл + //Сообщить(Элем); + Имя = Элем.Имя; + Массив.Добавить(Имя); + КонецЦикла; + + Возврат Массив; +КонецФункции + +Функция ПолучитьСтрокуДляСтруктуры(Структура,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + //Сообщить(" "); + //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); + СчетчикОбъектов = СчетчикОбъектов + 1; + ИмяПеременной = "Структура" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый Структура;"); + + Для каждого Элем Из Структура Цикл + Ключ = Элем.Ключ; + Значение = Элем.Значение; + Если Значение = Неопределено Тогда + //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Вставить(""" + Ключ + """,Неопределено);"); + Продолжить; + КонецЕсли; + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьСтрокуДляСоответствия(Соответствие,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + //Сообщить(" "); + //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); + СчетчикОбъектов = СчетчикОбъектов + 1; + ИмяПеременной = "Соответствие" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый Соответствие;"); + + Для каждого Элем Из Соответствие Цикл + Ключ = Элем.Ключ; + Значение = Элем.Значение; + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + СтрокаКлюч = ПолучитьСтрокуДляЗначения(Ключ,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Вставить(" + СтрокаКлюч + "," + СтрокаЗначения + ");"); + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьСтрокуДляСпискаЗначений(Спс,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + //Сообщить(" "); + //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); + СчетчикОбъектов = СчетчикОбъектов + 1; + ИмяПеременной = "СписокЗначений" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый СписокЗначений;"); + + //Спс = Новый СписокЗначений; + //Спс.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001728"),"Товар"); + Для каждого Элем Из Спс Цикл + Значение = Элем.Значение; + Представление = Элем.Представление; + Если Значение = Неопределено Тогда + //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Добавить(Неопределено,""" + Представление + """);"); + Продолжить; + КонецЕсли; + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + Если ЗначениеЗаполнено(Представление) Тогда + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Добавить(" + СтрокаЗначения + ",""" + Представление + """);"); + Иначе + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Добавить(" + СтрокаЗначения + ");"); + КонецЕсли; + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьСтрокуДляТаблицыЗначений(Тзн,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + //Сообщить(" "); + //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); + СчетчикОбъектов = СчетчикОбъектов + 1; + ЗначениеСчетчика = СчетчикОбъектов; + ИмяПеременной = "ТаблицаЗначений" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый ТаблицаЗначений;"); + + //Спс = Новый СписокЗначений; + //Спс.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001728"),"Товар"); + + Для каждого Колонка Из Тзн.Колонки Цикл + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Колонки.Добавить(""" + Колонка.Имя + """);"); + КонецЦикла; + + Ном = 0; + Для каждого СтрокаТаблицы Из Тзн Цикл + Ном = Ном + 1; + ДобавитьСтрокуКода(ТаблицаКода,"//Строка №" + Ном); + ИдСтрокиТаблицы = "СтрокаТаблицы_" + ЗначениеСчетчика; + ДобавитьСтрокуКода(ТаблицаКода,ИдСтрокиТаблицы + " = " + ИмяПеременной + ".Добавить();"); + Для каждого Колонка Из Тзн.Колонки Цикл + ЗначениеИзТаблицы = СтрокаТаблицы[Колонка.Имя]; + Если ЗначениеИзТаблицы = Неопределено Тогда + //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); + ДобавитьСтрокуКода(ТаблицаКода,ИдСтрокиТаблицы + "." + Колонка.Имя + "=" + "Неопределено" + ";"); + Продолжить; + КонецЕсли; + + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(ЗначениеИзТаблицы,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + ДобавитьСтрокуКода(ТаблицаКода,ИдСтрокиТаблицы + "." + Колонка.Имя + "=" + СтрокаЗначения + ";"); + КонецЦикла; + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода,"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьДатуСтрокой(Дат) + Возврат "'" + Формат(Дат,"ДФ=yyyyMMdd") + Формат(Дат,"ДФ=HHmmss") + "'"; +КонецФункции + +Процедура ДобавитьОбъектВТаблицу(ТаблицаОбъектов,Объект,Тип,Вид) + Если Не ЗначениеЗаполнено(Объект) Тогда + Возврат; + КонецЕсли; + + СтрТаблицаОбъектов = ТаблицаОбъектов.Добавить(); + СтрТаблицаОбъектов.Объект = Объект; + СтрТаблицаОбъектов.Тип = Тип; + СтрТаблицаОбъектов.Вид = Вид; +КонецПроцедуры + +Функция ПолучитьСтрокуДляЗначения(Значение,ИмяКонстанты = "",ТаблицаСправочников,ТаблицаКода); + ТипЗначения = ТипЗнч(Значение); + + Если ТипЗначения = Тип("Строка") Тогда + //СтрЧислоСтрок + //СтрПолучитьСтроку + + ПромСтр = СтрЗаменить(Значение,"""",""""""); + ЧислоСтрокВСтроке = СтрЧислоСтрок(ПромСтр); + Если ЧислоСтрокВСтроке = 1 Тогда + Возврат """" + ПромСтр + """"; + Иначе + СтрокаРезультат = """" + СтрПолучитьСтроку(ПромСтр,1); + Для Ккк = 2 По ЧислоСтрокВСтроке Цикл + СтрокаРезультат = СтрокаРезультат + Символы.ПС; + СтрокаРезультат = СтрокаРезультат + Символы.Таб + "|" + СтрПолучитьСтроку(ПромСтр,Ккк); + Если Ккк = ЧислоСтрокВСтроке Тогда + СтрокаРезультат = СтрокаРезультат + """"; + КонецЕсли; + КонецЦикла; + + Возврат СтрокаРезультат; + //Сообщить("Стр = """ + СтрПолучитьСтроку(ПромСтр,1)); + //ДобавитьСтрокуКода(ТаблицаКода,"Стр = """ + СтрПолучитьСтроку(ПромСтр,1)); + //Для Ккк=2 По ЧислоСтрокВСтроке Цикл + // Если Ккк = ЧислоСтрокВСтроке Тогда + // //Сообщить("|" + СтрПолучитьСтроку(ПромСтр,Ккк) + """;"); + // ДобавитьСтрокуКода(ТаблицаКода,"|" + СтрПолучитьСтроку(ПромСтр,Ккк) + """;"); + // иначе + // //Сообщить("|" + СтрПолучитьСтроку(ПромСтр,Ккк)); + // ДобавитьСтрокуКода(ТаблицаКода,"|" + СтрПолучитьСтроку(ПромСтр,Ккк)); + // КонецЕсли; + //КонецЦикла; + //Если ИмяКонстанты <> "" Тогда + // ДобавитьСтрокуКода(ТаблицаКода,"Константы." + ИмяКонстанты + ".Установить(" + "Стр" + ");"); + //КонецЕсли; + КонецЕсли; + + //Возврат "ОбработкаВнутриАлгоритма"; + + ИначеЕсли ТипЗначения = Тип("Число") Тогда + Возврат СтрЗаменить(СтрЗаменить(Значение,",","."),Символы.НПП,""); + + ИначеЕсли ТипЗначения = Тип("Булево") Тогда + Если Значение Тогда + Возврат "Истина"; + Иначе + Возврат "Ложь"; + КонецЕсли; + ИначеЕсли ТипЗначения = Тип("Дата") Тогда + //Возврат "'" + Формат(Значение,"ДФ=yyyyMMdd") + Формат(Значение,"ДФ=HHmmss") + "'"; + Возврат ПолучитьДатуСтрокой(Значение); + + ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + ИмяМетаданного = Значение.Метаданные().Имя; + ДлинаКода = Значение.Метаданные().ДлинаКода; + ДлинаНаименования = Значение.Метаданные().ДлинаНаименования; + + ДобавитьОбъектВТаблицу(ТаблицаСправочников,Значение,"Справочник",ИмяМетаданного); + + Если ДлинаКода > 0 Тогда + Если Значение.Метаданные().ТипКода = Метаданные.СвойстваОбъектов.ТипКодаСправочника.Число Тогда + Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код""," + СтрЗаменить(СокрЛП(Значение.Код),Символы.НПП,"") + ")"; + Иначе + Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код"",""" + СокрЛП(Значение.Код) + """)"; + КонецЕсли; + ИначеЕсли ДлинаНаименования > 0 Тогда + Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Наименование"",""" + СокрЛП(Значение.Наименование) + """)"; + Иначе + Возврат Неопределено; + //Сообщить("//Константа " + Имя + ". Не смог определить как заплонять значение."); + КонецЕсли; + ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + ИмяМетаданного = Значение.Метаданные().Имя; + ТипНомера = Значение.Метаданные().ТипНомера; + ДлинаНомера = Значение.Метаданные().ДлинаНомера; + Если ДлинаНомера > 0 Тогда + Если Значение.Метаданные().ТипНомера = Метаданные.СвойстваОбъектов.ТипНомераДокумента.Число Тогда + Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """," + СтрЗаменить(СокрЛП(Значение.Номер),Символы.НПП,"") + "," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; + Иначе + Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """,""" + СокрЛП(Значение.Номер) + """," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; + КонецЕсли; + Иначе + Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """,""" + "" + """," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; + //Сообщить("//Константа " + Имя + ". Не смог определить как заплонять значение."); + КонецЕсли; + ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + ИмяМетаданного = Значение.Метаданные().Имя; + ИндексЗначенияПеречисления = Перечисления[ИмяМетаданного].Индекс(Значение); + ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяМетаданного].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя; + + Возврат "Перечисления." + ИмяМетаданного + "." + ИмяЗначенияПеречисления; + ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда + ЗначениеИзХранилища = Значение.Получить(); + Если ЗначениеИзХранилища = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ТипЗначенияИзХранилища = ТипЗнч(ЗначениеИзХранилища); + Если ТипЗначенияИзХранилища = Тип("Структура") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляСтруктуры(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + ИначеЕсли ТипЗначенияИзХранилища = Тип("СписокЗначений") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляСпискаЗначений(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + ИначеЕсли ТипЗначенияИзХранилища = Тип("ТаблицаЗначений") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляТаблицыЗначений(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + ИначеЕсли ТипЗначенияИзХранилища = Тип("Соответствие") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляСоответствия(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + КонецЕсли; + + //Сообщить("ХранилищеЗначения"); + //ПолучитьСтрокуКодаДляЗначения(ЗначениеИзХранилища,Имя) + Если ИмяКонстанты <> "" Тогда + //Сообщить("//Здесь надо заполнить константу " + ИмяКонстанты + " в которой хранилище значения. ТипЗначенияИзХранилища="+ТипЗначенияИзХранилища); + ДобавитьСтрокуКода(ТаблицаКода,"//Здесь надо заполнить константу " + ИмяКонстанты + " в которой хранилище значения. ТипЗначенияИзХранилища="+ТипЗначенияИзХранилища); + КонецЕсли; + Возврат Неопределено; + + + ИначеЕсли ТипЗначения = Тип("Структура") Тогда + Возврат ПолучитьСтрокуДляСтруктуры(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + ИначеЕсли ТипЗначения = Тип("СписокЗначений") Тогда + Возврат ПолучитьСтрокуДляСпискаЗначений(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + ИначеЕсли ТипЗначения = Тип("Соответствие") Тогда + Возврат ПолучитьСтрокуДляСоответствия(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + ИначеЕсли ТипЗначения = Тип("ТаблицаЗначений") Тогда + Возврат ПолучитьСтрокуДляТаблицыЗначений(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + Иначе + //Сообщить("//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); + Если ИмяКонстанты = "" Тогда //значит это подчиненное значение, которое имеет сложный тип, например в таблце значений внутри были структуры + + КонецЕсли; + Возврат Неопределено; + КонецЕсли; +КонецФункции + +Процедура ДобавитьСтрокуКода(ТаблицаКода,Стр,ДобавитьТаб = Истина) + СтрТаблицаКода = ТаблицаКода.Добавить(); + Если ДобавитьТаб Тогда + СтрТаблицаКода.СтрокаКода = Символы.Таб + Стр; + Иначе + СтрТаблицаКода.СтрокаКода = Стр; + КонецЕсли; +КонецПроцедуры + +Процедура ПолучитьСтрокуКодаДляЗначения(Значение,Имя, ТаблицаСправочниковДляПолученияМакетовFixtures, ТаблицаКода) + ТипЗначения = ТипЗнч(Значение); + + СтрокаДляЗначения = ПолучитьСтрокуДляЗначения(Значение,Имя,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаДляЗначения = Неопределено Тогда + //ДобавитьСтрокуКода(ТаблицаКода,); + //Сообщить("//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); + ДобавитьСтрокуКода(ТаблицаКода,"//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); + ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда + //Сообщить("Константы." + Имя + ".Установить(" + "ОбъектДляХранилищаЗначения" + ");"); + //Сообщить(" "); + ДобавитьСтрокуКода(ТаблицаКода,"Константы." + Имя + ".Установить(" + "ХранилищеЗначения" + ");"); + ДобавитьСтрокуКода(ТаблицаКода," "); + ИначеЕсли СтрокаДляЗначения = "ОбработкаВнутриАлгоритма" тогда + //значит уже всё сделано + Иначе + //Сообщить("Константы." + Имя + ".Установить(" + СтрокаДляЗначения + ");"); + //Сообщить(" "); + ДобавитьСтрокуКода(ТаблицаКода,"Константы." + Имя + ".Установить(" + СтрокаДляЗначения + ");"); + ДобавитьСтрокуКода(ТаблицаКода," "); + КонецЕсли; + + //Если ТипЗначения = Тип("Строка") Тогда + // Сообщить("Константы." + Имя + ".Установить(""" + Значение + """);"); + //ИначеЕсли ТипЗначения = Тип("Число") Тогда + // Сообщить("Константы." + Имя + ".Установить(" + СтрЗаменить(Значение,",",".") + ");"); + //ИначеЕсли ТипЗначения = Тип("Булево") Тогда + // Если Значение Тогда + // Сообщить("Константы." + Имя + ".Установить(" + "Истина" + ");"); + // Иначе + // Сообщить("Константы." + Имя + ".Установить(" + "Ложь" + ");"); + // КонецЕсли; + //ИначеЕсли ТипЗначения = Тип("Дата") Тогда + // Сообщить("Константы." + Имя + ".Установить('" + Формат(Значение,"ДФ=yyyyMMdd") + Формат(Значение,"ДФ=HHmmss") + "');"); + //ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + // ИмяМетаданного = Значение.Метаданные().Имя; + // ДлинаКода = Значение.Метаданные().ДлинаКода; + // ДлинаНаименования = Значение.Метаданные().ДлинаНаименования; + // Если ДлинаКода > 0 Тогда + // Если Значение.Метаданные().ТипКода = Метаданные.СвойстваОбъектов.ТипКодаСправочника.Число Тогда + // Сообщить("Константы." + Имя + ".Установить(ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код""," + Значение.Код + "));"); + // Иначе + // Сообщить("Константы." + Имя + ".Установить(ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код"",""" + Значение.Код + """));"); + // КонецЕсли; + // ИначеЕсли ДлинаНаименования > 0 Тогда + // Сообщить("Константы." + Имя + ".Установить(ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Наименование"",""" + Значение.Наименование + """));"); + // Иначе + // Сообщить("//Константа " + Имя + ". Не смог определить как заплонять значение."); + // КонецЕсли; + //ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + // ИмяМетаданного = Значение.Метаданные().Имя; + // ИндексЗначенияПеречисления = Перечисления[ИмяМетаданного].Индекс(Значение); + // ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяМетаданного].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя; + // Сообщить("Константы." + Имя + ".Установить(Перечисления." + ИмяМетаданного + "." + ИмяЗначенияПеречисления + ");"); + //ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда + // ЗначениеИзХранилища = Значение.Получить(); + // Если ЗначениеИзХранилища = Неопределено Тогда + // Сообщить("//Константа " + Имя + " была не заполнена."); + // Возврат; + // КонецЕсли; + // + // Сообщить("ХранилищеЗначения"); + // ПолучитьСтрокуКодаДляЗначения(ЗначениеИзХранилища,Имя) + //Иначе + // Сообщить("//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); + //КонецЕсли; +КонецПроцедуры + +Процедура СгенерироватьКодДляЗаполненияКонстант(ТаблицаКода,ТаблицаСправочниковДляПолученияМакетовFixtures) + МассивКонстантДляОбработки = ПолучитьМассивКонстантДляОбработки(); + //Сообщить("//код для вставки"); + ДобавитьСтрокуКода(ТаблицаКода,"Процедура ЗаполнениеКонстант() Экспорт",Ложь); + ДобавитьСтрокуКода(ТаблицаКода,"Сообщить(""Устанавливаю значения констант"");"); + Для каждого Элем Из МассивКонстантДляОбработки Цикл + ОбработкаПрерыванияПользователя(); + + Имя = Элем; + + Состояние("Константы." + Имя); + + Значение = Константы[Имя].Получить(); + Если НЕ ЗначениеЗаполнено(Значение) Тогда + Сообщить("//Константа " + Имя + " была не заполнена."); + ДобавитьСтрокуКода(ТаблицаКода,"//Константа " + Имя + " была не заполнена."); + Продолжить; + КонецЕсли; + + + ТипЗначения = ТипЗнч(Значение); + Если ТипЗначения = Тип("ХранилищеЗначения") Тогда + ЗначениеИзХранилища = Значение.Получить(); + Если ЗначениеИзХранилища = Неопределено Тогда + Сообщить("//Константа " + Имя + " была не заполнена."); + ДобавитьСтрокуКода(ТаблицаКода,"//Константа " + Имя + " была не заполнена."); + Продолжить; + КонецЕсли; + КонецЕсли; + + ПолучитьСтрокуКодаДляЗначения(Значение,Имя,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + + Если ТестовыйРежим Тогда + Сообщить("ВКЛЮЧЕН ТЕСТОВЫЙ РЕЖИМ!!! ВЫГРУЖЕНЫ НЕ ВСЕ КОНСТАНТЫ!"); + Прервать; + КонецЕсли; + + //Сообщить("ПОТОМ УБРАТЬ!!! В СгенерироватьКодДляЗаполненияКонстант"); + //Прервать; + КонецЦикла; + ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); +КонецПроцедуры + + +Процедура СгенерироватьКодДляСозданияFixturesСправочниковПоМакетам(ТаблицаКода,МассивМакетовСправочниковДляВставки) + ДобавитьСтрокуКода(ТаблицаКода," ",Ложь); + ДобавитьСтрокуКода(ТаблицаКода,"Процедура СоздатьFixturesСправочниковПоМакетам() Экспорт",Ложь); + Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл + ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesПоМакету(""" + Элем.ИмяМакета + """); //Загружено элементов " + Элем.ПолученоЭлементов); + КонецЦикла; + ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); +КонецПроцедуры + +Процедура СгенерироватьКодДляСозданияFixturesРСПоМакетам(ТаблицаКода,МассивМакетовРСДляВставки) + ДобавитьСтрокуКода(ТаблицаКода," ",Ложь); + ДобавитьСтрокуКода(ТаблицаКода,"Процедура СоздатьFixturesРСПоМакетам() Экспорт",Ложь); + Для каждого Элем Из МассивМакетовРСДляВставки Цикл + ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesПоМакету(""" + Элем.ИмяМакета + """);"); + КонецЦикла; + ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); +КонецПроцедуры + +Процедура СгенерироватьКодСОсновнымиПроцедурами(ТаблицаКода) + ДобавитьСтрокуКода(ТаблицаКода," ",Ложь); + ДобавитьСтрокуКода(ТаблицаКода,"Процедура СделатьНачальноеЗаполнениеБазы() Экспорт",Ложь); + ДобавитьСтрокуКода(ТаблицаКода,"Сообщить(""Начало обработки:"" + ТекущаяДата());"); + ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesСправочниковПоМакетам();"); + ДобавитьСтрокуКода(ТаблицаКода,"ЗаполнениеКонстант();"); + ДобавитьСтрокуКода(ТаблицаКода,"СоздатьFixturesРСПоМакетам();"); + ДобавитьСтрокуКода(ТаблицаКода,"Сообщить(""Окончание обработки:"" + ТекущаяДата());"); + ДобавитьСтрокуКода(ТаблицаКода,"КонецПроцедуры",Ложь); +КонецПроцедуры + +Процедура ДобавитьСправочникВВыгрузку(ТаблицаОбъектов,ИмяСпр,СколькоВыгружать,ПорогДляПолннойВыгрузки) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(__ИмяСпр__.Ссылка) КАК КолЭлементов + |ИЗ + | Справочник.__ИмяСпр__ КАК __ИмяСпр__"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяСпр__",ИмяСпр); + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + + КолЭлементовВсего = 0; + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + КолЭлементовВсего = ВыборкаДетальныеЗаписи.КолЭлементов; + КонецЦикла; + + СколькоБудемВыгружать = СколькоВыгружать; + Если КолЭлементовВсего <= ПорогДляПолннойВыгрузки Тогда + СколькоБудемВыгружать = КолЭлементовВсего; + КонецЕсли; + + + Сообщить("Добавляю в выгрузку справочник: " + ИмяСпр + ". Всего элементов " + КолЭлементовВсего + ". Выгружаю " + СколькоБудемВыгружать + " элементов."); + + + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ МаксЧислоЭлементов + | __ИмяСпр__.Ссылка КАК Ссылка + |ИЗ + | Справочник.__ИмяСпр__ КАК __ИмяСпр__ + | ГДЕ НЕ ПометкаУдаления И НЕ Предопределенный + |"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяСпр__",ИмяСпр); + Запрос.Текст = СтрЗаменить(Запрос.Текст,"МаксЧислоЭлементов",СтрЗаменить(СколькоБудемВыгружать,Символы.НПП,"")); + РезультатЗапроса = Запрос.Выполнить(); + + + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + СтрТаблицаОбъектов = ТаблицаОбъектов.Добавить(); + СтрТаблицаОбъектов.Объект = ВыборкаДетальныеЗаписи.Ссылка; + СтрТаблицаОбъектов.Тип = "Справочник"; + СтрТаблицаОбъектов.Вид = ИмяСпр; + КонецЦикла; +КонецПроцедуры + +Процедура ДобавитьВВыгрузкуСправочники(ТаблицаОбъектов) + Для каждого Элем Из Метаданные.Справочники Цикл + ЭлементСписка = СписокВидовСправочниковКоторыеНеНадоВыгружать.НайтиПоЗначению(Элем.Имя); + Если ЭлементСписка <> Неопределено Тогда + Сообщить("Справочник " + Элем.Имя + " не будет выгружен, т.к. он добавлен в список невыгружаемых объектов."); + Продолжить; + КонецЕсли; + + Если ТестовыйРежим Тогда + Сообщить("ВКЛЮЧЕН ТЕСТОВЫЙ РЕЖИМ!!! ВЫГРУЖЕНЫ НЕ ВСЕ СПРАВОЧНИКИ!"); + Прервать; + КонецЕсли; + + //Сообщить("Добавляю в выгрузку справочник: " + Элем.Имя); + ДобавитьСправочникВВыгрузку(ТаблицаОбъектов,Элем.Имя,СколькоВыгружатьЭлементаСправочника,ПорогДляПолннойВыгрузкиСправочника); + КонецЦикла; + + //ПорогДляПолннойВыгрузкиСправочника +КонецПроцедуры + +Процедура ПолучитьОтчетПоМакетам(МассивМакетовСправочниковДляВставки,КоментарийОтчета) + ТаблицаОтчетПоМакетам = Новый ТаблицаЗначений; + ТаблицаОтчетПоМакетам.Колонки.Добавить("ИмяМакета"); + ТаблицаОтчетПоМакетам.Колонки.Добавить("КолСтрок"); + Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл + Макет = Элем.Макет; + КолСтрок = Макет.ВысотаТаблицы; + + + СтрТаблицаОтчетПоМакетам = ТаблицаОтчетПоМакетам.Добавить(); + СтрТаблицаОтчетПоМакетам.ИмяМакета = Элем.ИмяМакета; + СтрТаблицаОтчетПоМакетам.КолСтрок = КолСтрок; + КонецЦикла; + + ТаблицаОтчетПоМакетам.Сортировать("КолСтрок убыв,ИмяМакета"); + //ТаблицаОтчетПоМакетам.ВыбратьСтроку(); + + + ПечДок = Новый ТабличныйДокумент; + МакетОтчетПоМакетам = ПолучитьМакет("ОтчетПоМакетам"); + + ОбластьШапка = МакетОтчетПоМакетам.ПолучитьОбласть("Шапка"); + ОбластьСтрока = МакетОтчетПоМакетам.ПолучитьОбласть("Строка"); + + ПечДок.Вывести(ОбластьШапка); + + Для каждого СтрТаблицаОтчетПоМакетам Из ТаблицаОтчетПоМакетам Цикл + ОбластьСтрока.Параметры.Заполнить(СтрТаблицаОтчетПоМакетам); + ПечДок.Вывести(ОбластьСтрока); + КонецЦикла; + + ПечДок.Показать("Отчет по сгенерированным макетам. " + КоментарийОтчета + "."); +КонецПроцедуры + +Функция ПолучитьКоличествоЗаписейВРС(ИмяРС) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(*) КАК КолЗаписей + |ИЗ + | РегистрСведений.__РС__ КАК __РС__"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__РС__",ИмяРС); + РезультатЗапроса = Запрос.Выполнить(); + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + Возврат ВыборкаДетальныеЗаписи.КолЗаписей; + КонецЦикла; + + Возврат 0; +КонецФункции + +Функция ПолучитьМакетДляВидаРС(Вид,ИмяМакета) + + ГенераторFixtures = ВнешниеОбработки.Создать(ПутьКГенераторуFixtures); + ФормаГенератора = ГенераторFixtures.ПолучитьФорму("Форма"); + ФормаГенератора.Открыть(); + ГенераторFixtures.ВыгружатьКод = Истина; + ГенераторFixtures.ОбменДанными = Истина; + + ДеревоМетаданных = ГенераторFixtures.ДеревоМетаданных; + //ДеревоМетаданных.ВыбратьСтроку(); + + ВеткаДерева = ДеревоМетаданных.Строки[0].Строки[2]; + //Для каждого СтрокаДерева Из ВеткаСправочников.Строки Цикл + // Сообщить("" + СтрокаДерева.ПолноеИмяМетаданных); + //КонецЦикла; + НужнаяСтрокаДерева = ВеткаДерева.Строки.Найти(Вид,"ПолноеИмяМетаданных"); + Если НужнаяСтрокаДерева = Неопределено Тогда + Сообщить("Не найдена строка РС в дереве. Вид="+вид); + Возврат Неопределено; + КонецЕсли; + + + НужнаяСтрокаДерева.Выгружать = Истина; + НужнаяСтрокаДерева.ИспользоватьОтбор = Истина; + + + + ФормаГенератора.ЭлементыФормы.ДеревоМетаданных.ТекущаяСтрока = НужнаяСтрокаДерева; + //ФормаГенератора.ДеревоМетаданныхПриАктивизацииСтроки(""); + + + Макет = Новый ТабличныйДокумент; + Макет.Прочитать(ПутьУПустомуПравильномуМакету); + ГенераторFixtures.СоздатьМакетДанныхПоМетаданным(Макет); + + ИмяМакета = "РС_" + Вид; + Макет.Показать(ИмяМакета); + + ФормаГенератора.Закрыть(); + ГенераторFixtures = Неопределено; + + Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); + + Возврат Макет; + +КонецФункции + +Процедура ПолучитьFixturesДляРС(МассивМакетовРСДляВставки) + Для каждого Элем Из Метаданные.РегистрыСведений Цикл + Имя = Элем.Имя; + Если Элем.РежимЗаписи <> Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый Тогда + Продолжить; + КонецЕсли; + + ЭлементСписка = СписокВидовРСоторыеНеНадоВыгружать.НайтиПоЗначению(Имя); + Если ЭлементСписка <> Неопределено Тогда + Сообщить("РС " + Имя + " не будет выгружен, т.к. он добавлен в список невыгружаемых объектов."); + Продолжить; + КонецЕсли; + + Состояние("РС " + Имя); + + + Если Элем.Измерения.Количество() = 0 Тогда //такие РС xddDataFixtureGen не переваривает, хотя в типовых они встречаются + Сообщить("Не стал выгружать РС " + Имя + ", т.к. у него 0 измерений."); + Продолжить; + КонецЕсли; + + КоличествоЗаписейВРС = ПолучитьКоличествоЗаписейВРС(Имя); + Если КоличествоЗаписейВРС > ПорогДляПолннойВыгрузкиРС Тогда + Продолжить; + КонецЕсли; + Если КоличествоЗаписейВРС = 0 Тогда + Продолжить; + КонецЕсли; + + Сообщить("Выгружаю РС " + Имя + ", КоличествоЗаписей="+КоличествоЗаписейВРС); + + + ИмяМакета = ""; + Макет = ПолучитьМакетДляВидаРС(Имя,ИмяМакета); + //Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); + + + СтруктураМакета = Новый Структура; + СтруктураМакета.Вставить("Макет",Макет); + СтруктураМакета.Вставить("ИмяМакета",ИмяМакета); + + МассивМакетовРСДляВставки.Добавить(СтруктураМакета); + + + + Если ТестовыйРежим Тогда + Сообщить("ВКЛЮЧЕН ТЕСТОВЫЙ РЕЖИМ!!! ВЫГРУЖЕНЫ НЕ ВСЕ РС!"); + Прервать; + КонецЕсли; + //Сообщить("ПОТОМ УБРАТЬ!!!!!!!!!!!!!!!!!"); + //Прервать; + КонецЦикла; +КонецПроцедуры + +Процедура кнГенерацияДанных(Элемент) + Сообщить("НАЧАЛО ОБРАБОТКИ " + ТекущаяДата()); + СчетчикОбъектов = 0; + + ФайлМакета = Новый Файл(ПутьУПустомуПравильномуМакету); + Если Не ФайлМакета.Существует() Тогда + Сообщить("Файл макета " + ПутьУПустомуПравильномуМакету + " не найден!"); + Возврат; + КонецЕсли; + + ТаблицаСправочниковДляПолученияМакетовFixtures = Новый ТаблицаЗначений; + ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Объект"); + ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Тип"); + ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Вид"); + + ТаблицаКода = Новый ТаблицаЗначений; + ТаблицаКода.Колонки.Добавить("СтрокаКода"); + + //ГЕНЕРАЦИЯ КОДА ДЛЯ ЗАПОЛНЕНИЯ КОНСТАНТ + //Сообщить("ПОТОМ ВЕРНУТЬ!!! СгенерироватьКодДляЗаполненияКонстант"); + Если флагВыгружатьКонстанты Тогда + СгенерироватьКодДляЗаполненияКонстант(ТаблицаКода,ТаблицаСправочниковДляПолученияМакетовFixtures); + КонецЕсли; + + + + Если флагВыгружатьСправочники Тогда + ДобавитьВВыгрузкуСправочники(ТаблицаСправочниковДляПолученияМакетовFixtures); + КонецЕсли; + + //Сообщить("ПОТОМ ВЕРНУТЬ!!! ДобавитьВВыгрузкуСправочники"); + + + + + + + //ГЕНЕРАЦИЯ МАКЕТОВ + + ТаблицаСправочниковДляПолученияМакетовFixtures.Свернуть("Объект,Тип,Вид"); + ТаблицаСправочниковДляПолученияМакетовFixtures.Сортировать("Вид,Объект"); + + + //ТаблицаСправочниковДляПолученияМакетовFixtures.ВыбратьСтроку(); + Сообщить(" "); + + + МассивМакетовСправочниковДляВставки = Новый Массив; + //ДобавитьМассивмакетовОВОбработку(МассивМакетовСправочниковДляВставки,ПутьКОбработке); + + + //ГЕНЕРАЦИЯ FIXTURES ДЛЯ СПРАВОЧНИКОВ, КОТОРЫЕ БЫЛИ ПОЛУЧЕНЫ ОТ КОНСТАНТ И ПРОСТО СПРАВОЧНИКОВ + //Сообщить("ПОТОМ ВЕРНУТЬ!!! ПолучитьFixturesДляСправочников()"); + ПолучитьFixturesДляСправочников(ТаблицаСправочниковДляПолученияМакетовFixtures,МассивМакетовСправочниковДляВставки); + + + + + //ГЕНЕРАЦИЯ FIXTURES ДЛЯ РЕГИСТРОВ СВЕДЕНИЙ + МассивМакетовРСДляВставки = Новый Массив; + Если флагВыгружатьРС Тогда + ПолучитьFixturesДляРС(МассивМакетовРСДляВставки); + КонецЕсли; + + + + + + ПолучитьОтчетПоМакетам(МассивМакетовСправочниковДляВставки,"Справочники"); + ПолучитьОтчетПоМакетам(МассивМакетовРСДляВставки,"РС"); + + ПутьКОбработке = ПутьКШаблонуОбработки; + + + + + //ГЕНЕРАЦИЯ КОДА ДЛЯ СОЗДАНИЯ FIXTURES + СгенерироватьКодДляСозданияFixturesСправочниковПоМакетам(ТаблицаКода,МассивМакетовСправочниковДляВставки); + СгенерироватьКодДляСозданияFixturesРСПоМакетам(ТаблицаКода,МассивМакетовРСДляВставки); + СгенерироватьКодСОсновнымиПроцедурами(ТаблицаКода); + + + + + + ДобавитьМассивМакетовВОбработкуИКодМодуля(МассивМакетовСправочниковДляВставки,МассивМакетовРСДляВставки,ПутьКОбработке,ТаблицаКода); + + + Сообщить("ОКОНЧАНИЕ ОБРАБОТКИ " + ТекущаяДата()); + +КонецПроцедуры + + +Функция ПолучитьТаблицуВидовСправочников(ТаблицаОбъектов) + КопияТаблицы = ТаблицаОбъектов.Скопировать(); + + КопияТаблицы.Свернуть("Вид"); + КопияТаблицы.Сортировать("Вид"); + + Возврат КопияТаблицы; +КонецФункции + + +Функция ПолучитьМакетДляВидаСправочника(Вид,ВсяТаблицаОбъектов,ИмяМакета,ПолученоЭлементов) + Отбор = Новый Структура(); + Отбор.Вставить("Вид",Вид); + МассивСтрок = ВсяТаблицаОбъектов.НайтиСтроки(Отбор); + + //СтруктураПараметров = Новый Структура; + + МассивОбъектов = Новый Массив; + + Для каждого СтрокаСОбъектов Из МассивСтрок Цикл + //Сообщить("" + СтрокаСОбъектов.Объект + ", Вид="+СтрокаСОбъектов.Вид); + + //СтруктураОбъекта = Новый Структура; + //СтруктураОбъекта.Вставить("Объект",СтрокаСОбъектов.Объект); + //СтруктураОбъекта.Вставить("Вид",СтрокаСОбъектов.Вид); + + МассивОбъектов.Добавить(СтрокаСОбъектов.Объект); + + КонецЦикла; + + //СтруктураПараметров.Вставить("МассивОбъектов",МассивОбъектов); + + + + ГенераторFixtures = ВнешниеОбработки.Создать(ПутьКГенераторуFixtures); + ФормаГенератора = ГенераторFixtures.ПолучитьФорму("Форма"); + ФормаГенератора.Открыть(); + ГенераторFixtures.ВыгружатьКод = Истина; + ГенераторFixtures.ОбменДанными = Истина; + + ДеревоМетаданных = ГенераторFixtures.ДеревоМетаданных; + //ДеревоМетаданных.ВыбратьСтроку(); + + ВеткаСправочников = ДеревоМетаданных.Строки[0].Строки[0]; + //Для каждого СтрокаДерева Из ВеткаСправочников.Строки Цикл + // Сообщить("" + СтрокаДерева.ПолноеИмяМетаданных); + //КонецЦикла; + НужнаяСтрокаДерева = ВеткаСправочников.Строки.Найти(Вид,"ПолноеИмяМетаданных"); + Если НужнаяСтрокаДерева = Неопределено Тогда + Сообщить("Не найдена строка справочника в дереве. Вид="+вид); + Возврат Неопределено; + КонецЕсли; + + + НужнаяСтрокаДерева.Выгружать = Истина; + НужнаяСтрокаДерева.ИспользоватьОтбор = Истина; + + + + ФормаГенератора.ЭлементыФормы.ДеревоМетаданных.ТекущаяСтрока = НужнаяСтрокаДерева; + //ФормаГенератора.ДеревоМетаданныхПриАктивизацииСтроки(""); + + + ЭлементОтбора = ГенераторFixtures.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); + ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; + + СпсЗначений = Новый СписокЗначений; + //СпсЗначений.ЗагрузитьЗначения(ВсяТаблицаОбъектов.ВыгрузитьКолонку("Объект")); + СпсЗначений.ЗагрузитьЗначения(МассивОбъектов); + ЭлементОтбора.ПравоеЗначение = СпсЗначений; + + ЭлементОтбора.Использование = Истина; + + НужнаяСтрокаДерева.НастройкиКомпоновщика = ГенераторFixtures.КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор; + + ПолученоЭлементов = СпсЗначений.Количество(); + Сообщить("Получаю fixtures для справочника " + Вид + ", в отборе " + ПолученоЭлементов + " элементов."); + + Макет = Новый ТабличныйДокумент; + Макет.Прочитать(ПутьУПустомуПравильномуМакету); + ГенераторFixtures.СоздатьМакетДанныхПоМетаданным(Макет); + + ИмяМакета = "Справочник_" + Вид; + Макет.Показать(ИмяМакета); + + ФормаГенератора.Закрыть(); + ГенераторFixtures = Неопределено; + + Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); + + Возврат Макет; + +КонецФункции + +Процедура ПолучитьFixturesДляСправочников(ТаблицаОбъектов,МассивМакетовСправочниковДляВставки) + + ФайлГенератораfixtures = Новый Файл(ПутьКГенераторуFixtures); + Если Не ФайлГенератораfixtures.Существует() Тогда + Сообщить("Не найден файл генератора Fixtures."); + Возврат; + КонецЕсли; + + + ТаблицаВидов = ПолучитьТаблицуВидовСправочников(ТаблицаОбъектов); + //ТаблицаВидов.ВыбратьСтроку(); + + Для каждого СтрТаблицаВидов Из ТаблицаВидов Цикл + ОбработкаПрерыванияПользователя(); + + Вид = СтрТаблицаВидов.Вид; + //Сообщить("Получаю fixtures для справочника " + Вид); + + ИмяМакета = ""; + ПолученоЭлементов = 0; + Макет = ПолучитьМакетДляВидаСправочника(Вид,ТаблицаОбъектов,ИмяМакета,ПолученоЭлементов); + //Сообщить("Получено " + Макет.ВысотаТаблицы + " строк."); + + + + СтруктураМакета = Новый Структура; + СтруктураМакета.Вставить("Макет",Макет); + СтруктураМакета.Вставить("ИмяМакета",ИмяМакета); + СтруктураМакета.Вставить("ПолученоЭлементов",ПолученоЭлементов); + + МассивМакетовСправочниковДляВставки.Добавить(СтруктураМакета); + + //Сообщить("ПОТОМ УБРАТь!!! ВЫГРУЖАЕТСЯ ТОЛЬКО ОДИН СПРАВОЧНИК!!!"); + //Прервать; + КонецЦикла; + + +КонецПроцедуры + +Процедура СделатьСообщение(Стр); + Сообщить(Стр); +КонецПроцедуры + +Процедура ВыполнитьКомандуОС(Стр) + КомандаСистемы(Стр); + //СистемнаяИнформация = Новый СистемнаяИнформация; + // + //Если (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86) или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64) Тогда + // Попытка + // ИмяВременногоBAT = ПолучитьИмяВременногоФайла("cmd"); + // + // //ЗТ = Новый ЗаписьТекста(ИмяВременногоBAT,"UTF-8",,Истина); + // ЗТ = Новый ЗаписьТекста(ИмяВременногоBAT,"UTF-8",,Истина); + // ЗТ.ЗаписатьСтроку(Стр); + // ЗТ.Закрыть(); + // + // WshShell = Новый COMОбъект("WScript.Shell"); + // //Сообщить(Стр); + // WshShell.Run(ИмяВременногоBAT,7,-1); + // УдалитьФайлы(ИмяВременногоBAT); + // Исключение + // #Если Клиент Тогда + // КомандаСистемы(Стр); + // #КонецЕсли + // КонецПопытки; + //Иначе + // ВызватьИсключение "Команда системы реализована только под Windows."; + //КонецЕсли; + +КонецПроцедуры + + +Функция РаспаковатьEPF(ИмяФайла,КаталогРаспаковки) + ФайлПрекомит = Новый Файл(ПутьКPrecommit); + Если НЕ ФайлПрекомит.Существует() Тогда + Сообщить("Не найден каталог прекоммита!"); + Возврат Ложь; + КонецЕсли; + + + ГенерироватьУФ = Ложь; + КаталогИнструментов = ПутьКPrecommit; + ЭтоУФ = Ложь; + Попытка + + Файл = Новый Файл(ИмяФайла); + + //ИмяКаталогаДляИсходников = Файл.Путь + "Src"; + ИмяКаталогаДляИсходников = КаталогРаспаковки; + + Если ГенерироватьУФ Тогда + ПутьКФайлуМодуля = ИмяКаталогаДляИсходников + "\" + Файл.ИмяБезРасширения + "\Form\Форма\Форма.txt"; + Иначе + ПутьКФайлуМодуля = ИмяКаталогаДляИсходников + "\" + Файл.ИмяБезРасширения + "\ObjectModule.txt"; + КонецЕсли; + + + + //ИмяКаталогаДляИсходников = КаталогВременныхФайлов() + "\src"; + + + УдалитьФайлы(ИмяКаталогаДляИсходников + "\" + Файл.ИмяБезРасширения); + ФайлКаталогSrc = Новый Файл(ИмяКаталогаДляИсходников); + Если Не ФайлКаталогSrc.Существует() Тогда + СоздатьКаталог(ИмяКаталогаДляИсходников); + КонецЕсли; + + СтрокаРазборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py """ + ИмяФайла + """ """ + ИмяКаталогаДляИсходников + """"; + СделатьСообщение("Делаю распаковку " + Файл.ПолноеИмя); + СделатьСообщение("Строка распаковки: " + СтрокаРазборкиEpf); + //КомандаСистемы(СтрокаРазборкиEpf,КаталогИнструментов); + ВыполнитьКомандуОС(СтрокаРазборкиEpf); + + + //Файл = Новый Файл(ПутьКФайлуМодуля); + //Если Не Файл.Существует() Тогда + // СделатьСообщение("Не найден файл после распаковки: " + ПутьКФайлуМодуля); + // Если ЭтоУФ Тогда + // СделатьСообщение("Возможно это обработка для обычных форм, а не для управляемых форм."); + // Иначе + // СделатьСообщение("Возможно это обработка для управляемых форм, а не для обычных форм."); + // КонецЕсли; + // Возврат Ложь; + //КонецЕсли; + + + Исключение + СделатьСообщение("Не смог распаковать " + ИмяФайла); + СделатьСообщение(ОписаниеОшибки()); + Возврат Ложь; + КонецПопытки; + + Возврат Истина; +КонецФункции + +Процедура УбратьЗаменитьЗапрещенныеСимволыИзСтроки(Стр) + Стр = СтрЗаменить(Стр,".","_"); + Стр = СтрЗаменить(Стр,",",""); + Стр = СтрЗаменить(Стр,":",""); + Стр = СтрЗаменить(Стр,";",""); + Стр = СтрЗаменить(Стр,"-","_"); + Стр = СтрЗаменить(Стр,"+",""); + //Стр = СтрЗаменить(Стр,"<",""); + //Стр = СтрЗаменить(Стр,">",""); +КонецПроцедуры + + +Процедура ЗаписатьМакетСПравильнымИменем(ИмяМакета,Макет,КаталогДляРаботы,ИДМакета) + УбратьЗаменитьЗапрещенныеСимволыИзСтроки(ИмяМакета); + + УИД = Новый УникальныйИдентификатор; + //Сообщить("ПРОИСХОДИТ ПОДМЕНА УИД!!! ПОТОМ УБРАТЬ!!!"); + //УИД = "7a3e66f5-c873-4e1b-9d97-2c5359d503a9"; + УИД = СокрЛП(УИД); + + ИДМакета = УИД; + + ИмяФайлаОписанияМакета = КаталогДляРаботы + "\" + УИД; + + ЗТ = Новый ЗаписьТекста(ИмяФайлаОписанияМакета,"UTF-8",,Истина); + ЗТ.ЗаписатьСтроку("{1,"); + ЗТ.ЗаписатьСтроку("{2,0,"); + ЗТ.ЗаписатьСтроку("{1,"); + ЗТ.ЗаписатьСтроку("{0,0," + УИД + "},""" + ИмяМакета + ""","); + ЗТ.ЗаписатьСтроку("{1,""ru"",""" + ИмяМакета + """},"""",0,0}"); + ЗТ.ЗаписатьСтроку("},0}"); + + ЗТ.Закрыть(); + + //Сообщить("Записал описание макета " + ИмяФайлаОписанияМакета); + + + ФайлТелоМакета = КаталогДляРаботы + "\" + УИД + ".0"; + //Макет = Новый ТабличныйДокумент; + Макет.Записать(ФайлТелоМакета); +КонецПроцедуры + +Функция ПолучитьИмяФайлаRoot(КаталогДляРаботы) + + СтрокаВозврата = Неопределено; + + ИмяФайла = КаталогДляРаботы + "\root"; + ФайлПроверкаСуществования = Новый Файл(ИмяФайла); + Если НЕ ФайлПроверкаСуществования.Существует() Тогда + Сообщить("Файл " + ИмяФайла + " не существует!"); + Возврат Неопределено; + КонецЕсли; + + Текст = Новый ЧтениеТекста; + Текст.Открыть(ИмяФайла,"UTF-8"); + + Пока Истина Цикл + Стр = Текст.ПрочитатьСтроку(); + Если Стр = Неопределено Тогда + Прервать; + КонецЕсли; + + Стр = Сред(Стр,4); + Стр = Лев(Стр,СтрДлина(Стр)-2); + //Сообщить(Стр); + + СтрокаВозврата = Стр; + КонецЦикла; + + Текст.Закрыть(); + + + Возврат СтрокаВозврата; +КонецФункции + +Процедура ЗаписатьВФайлRootИДМакетов(ПутьКRoot,МассивМакетовСправочниковДляВставки) + Текст = Новый ЧтениеТекста; + Текст.Открыть(ПутьКRoot,"UTF-8"); + + ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); + ЗТ = Новый ЗаписьТекста(ИмяВременногоФайла,"UTF-8",,Истина); + + СтрокаДляИДМакетов = "{3daea016-69b7-4ed4-9453-127911372fe6,"; + + Пока Истина Цикл + Стр = Текст.ПрочитатьСтроку(); + Если Стр = Неопределено Тогда + Прервать; + КонецЕсли; + + Поз = Найти(Стр,СтрокаДляИДМакетов); + Если Поз > 0 Тогда + //это строка в которой лежат макеты + ПромСтр = СтрЗаменить(Стр,СтрокаДляИДМакетов,""); + Поз1 = Найти(ПромСтр,","); + Поз2 = Найти(ПромСтр,"}"); + Поз = Мин(Поз1,Поз2); + + ИдУжеСуществующихМакетов = ""; + + СтрТекКолМакетов = Лев(ПромСтр,Поз-1); + ТекКолМакетов = Число(СтрТекКолМакетов); + Если ТекКолМакетов > 0 Тогда + ИдУжеСуществующихМакетов = Сред(ПромСтр,Поз1); + ИдУжеСуществующихМакетов = Лев(ИдУжеСуществующихМакетов,СтрДлина(ИдУжеСуществующихМакетов)-2);//убрали }, + КонецЕсли; + НовоеЧислоМакетов = ТекКолМакетов + МассивМакетовСправочниковДляВставки.Количество(); + СтрНовоеЧислоМакетов = СтрЗаменить(Строка(НовоеЧислоМакетов),Символы.НПП,""); + + СтрокаДляИДМакетов = СтрокаДляИДМакетов + СтрНовоеЧислоМакетов + ИдУжеСуществующихМакетов; + Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл + ИдМакета = Элем.ИдМакета; + СтрокаДляИДМакетов = СтрокаДляИДМакетов + "," + ИдМакета; + КонецЦикла; + СтрокаДляИДМакетов = СтрокаДляИДМакетов + "},"; + + Стр = СтрокаДляИДМакетов; + КонецЕсли; + + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; + + + + Текст.Закрыть(); + ЗТ.Закрыть(); + + //Сообщить("Записал " + ИмяВременногоФайла); + + КопироватьФайл(ИмяВременногоФайла,ПутьКRoot); + + +КонецПроцедуры + +Процедура ДобавитьСтрокиВФайлRenames(ПтуьКRenames,МассивМакетовСправочниковДляВставки) + ЗТ = Новый ЗаписьТекста(ПтуьКRenames,"UTF-8",,Истина); + + Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл + ЗТ.ЗаписатьСтроку(Элем.ИдМакета + "-->und\" + Элем.ИдМакета); + ЗТ.ЗаписатьСтроку(Элем.ИдМакета + ".0-->Макеты\" + Элем.ИмяМакета + ".mxl"); + ЗТ.ЗаписатьСтроку(Элем.ИдМакета + ".0-->und\" + Элем.ИдМакета + ".0"); + КонецЦикла; + + ЗТ.Закрыть(); + +КонецПроцедуры + +Процедура СкопироватьФайлыМакетовВСлужебныйКаталог(КудаСкопироватьМакеты,МассивМакетовСправочниковДляВставки) + ФайлПроверкаСуществования = Новый Файл(КудаСкопироватьМакеты); + Если НЕ ФайлПроверкаСуществования.Существует() Тогда + СоздатьКаталог(КудаСкопироватьМакеты); + КонецЕсли; + + + Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл + Макет = Элем.Макет; + //Макет = Новый ТабличныйДокумент; + Макет.Записать(КудаСкопироватьМакеты + "\" + Элем.ИмяМакета + ".mxl"); + КонецЦикла; +КонецПроцедуры + + +Процедура ДобавитьВМодульОбъектаОбработкиТаблицуКода(ПутькМодулюОбработки,ТаблицаКода) + ФайлПроверкаСуществования = Новый Файл(ПутькМодулюОбработки); + Если НЕ ФайлПроверкаСуществования.Существует() Тогда + Сообщить("Файл " + ПутькМодулюОбработки + " не существует!"); + Возврат; + КонецЕсли; + + ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); + + //скопируем то, что уже есть + КопироватьФайл(ПутькМодулюОбработки,ИмяВременногоФайла); + + + + + //ЗТ = Новый ЗаписьТекста(ИмяВременногоФайла,"UTF-8",,Истина); + ЗТ = Новый ЗаписьТекста; + ЗТ.Открыть(ИмяВременногоФайла,"UTF-8",,Истина); + Для каждого СтрТаблицаКода Из ТаблицаКода Цикл + ЗТ.ЗаписатьСтроку(СтрТаблицаКода.СтрокаКода); + КонецЦикла; + ЗТ.Закрыть(); + + + КопироватьФайл(ИмяВременногоФайла,ПутькМодулюОбработки); +КонецПроцедуры + +Процедура ЗаписатьСтрокуПодключенияКxUnitВМодульОбработки(ПутькМодулюОбработки) + ФайлПроверкаСуществования = Новый Файл(ПутькМодулюОбработки); + Если НЕ ФайлПроверкаСуществования.Существует() Тогда + Сообщить("Файл " + ПутькМодулюОбработки + " не существует!"); + Возврат; + КонецЕсли; + + ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); + + + ЗТ = Новый ЗаписьТекста; + ЗТ.Открыть(ИмяВременногоФайла,"UTF-8",,Истина); + + Текст = Новый ЧтениеТекста; + Текст.Открыть(ПутькМодулюОбработки,"UTF-8"); + + Пока Истина Цикл + Стр = Текст.ПрочитатьСтроку(); + Если Стр = Неопределено Тогда + Прервать; + КонецЕсли; + + Если Найти(Стр,"тут должно быть определено, как подключиться к xUnit") > 0 Тогда + Стр = СтрокаПодключенияКxUnit; + КонецЕсли; + + ЗТ.ЗаписатьСтроку(Стр); + КонецЦикла; + + Текст.Закрыть(); + ЗТ.Закрыть(); + + + КопироватьФайл(ИмяВременногоФайла,ПутькМодулюОбработки); +КонецПроцедуры + +Процедура ДобавитьМассивМакетовВОбработкуИКодМодуля(МассивМакетовСправочниковДляВставки,МассивМакетовРСДляВставки,ПутьКОбработке,ТаблицаКода) + ФайлОбработки = Новый Файл(ПутьКОбработке); + Если НЕ ФайлОбработки.Существует() Тогда + Сообщить("Файл " + ПутьКОбработке + " не найден."); + Возврат; + КонецЕсли; + + + + КаталогРаспаковки = "C:\Temp\111"; + //КаталогДляРаботы = ФайлОбработки.Путь + "Src\" + ФайлОбработки.ИмяБезРасширения + "\und"; + КаталогДляРаботы = КаталогРаспаковки + "\" + ФайлОбработки.ИмяБезРасширения + "\und"; + //ПутьКИсходникам = ФайлОбработки.Путь + "Src\" + ФайлОбработки.ИмяБезРасширения; + ПутьКИсходникам = КаталогРаспаковки + "\" + ФайлОбработки.ИмяБезРасширения; + КаталогИнструментов = ПутьКPrecommit; + + ИмяВременнойEPF = ПутьКГенерируемойEPF; + УдалитьФайлы(ИмяВременнойEPF); + + + + + //СтрокаСборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py --compile """ + ПутьКИсходникам + """ """ + ИмяВременнойEPF + """"; + //Сообщить("СтрокаСборкиEpf="+СтрокаСборкиEpf); + //ВыполнитьКомандуОС(СтрокаСборкиEpf); + //Сообщить("ПОТОМ ВЕРНУТЬ СОЗДАНИЕ EPF С МАКЕТАМИ!!!!!!!!!!!!!!!"); + //Возврат; + + + Если НЕ РаспаковатьEPF(ПутьКОбработке, КаталогРаспаковки) Тогда + Возврат; + КонецЕсли; + + //Возврат; + + + //Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл + // ИмяМакета = Элем.ИмяМакета; + // УбратьЗаменитьЗапрещенныеСимволыИзСтроки(ИмяМакета); + // Элем.ИмяМакета = ИмяМакета; + //КонецЦикла; + + + //Возврат; + //Сообщить("ПОТОМ ВЕРНУТЬ РАСПАКОВКУ!!!!!!!!!!!!!!!"); + + + + + //СтрокаСборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py --compile """ + ПутьКИсходникам + """ """ + ИмяВременнойEPF + """"; + //Сообщить("СтрокаСборкиEpf="+СтрокаСборкиEpf); + //ВыполнитьКомандуОС(СтрокаСборкиEpf); + //Сообщить("ПОТОМ ВЕРНУТЬ СОЗДАНИЕ EPF С МАКТАМИ!!!!!!!!!!!!!!!"); + //Возврат; + + + Для каждого Элем Из МассивМакетовСправочниковДляВставки Цикл + ИмяМакета = Элем.ИмяМакета; + Макет = Элем.Макет; + ИДМакета = ""; + ЗаписатьМакетСПравильнымИменем(ИмяМакета,Макет,КаталогДляРаботы,ИДМакета); + Элем.Вставить("ИДМакета",ИДМакета); + КонецЦикла; + + Для каждого Элем Из МассивМакетовРСДляВставки Цикл + ИмяМакета = Элем.ИмяМакета; + Макет = Элем.Макет; + ИДМакета = ""; + ЗаписатьМакетСПравильнымИменем(ИмяМакета,Макет,КаталогДляРаботы,ИДМакета); + Элем.Вставить("ИДМакета",ИДМакета); + КонецЦикла; + + + + ИмяФайлаRoot = ПолучитьИмяФайлаRoot(КаталогДляРаботы); + Если ИмяФайлаRoot = Неопределено Тогда + Сообщить("Не смог прочитать файл root."); + Возврат; + КонецЕсли; + + ПутьКRoot = КаталогДляРаботы + "\" + ИмяФайлаRoot; + ЗаписатьВФайлRootИДМакетов(ПутьКRoot,МассивМакетовСправочниковДляВставки); + ЗаписатьВФайлRootИДМакетов(ПутьКRoot,МассивМакетовРСДляВставки); + + ПтуьКRenames = ПутьКИсходникам + "\renames.txt"; + ДобавитьСтрокиВФайлRenames(ПтуьКRenames,МассивМакетовСправочниковДляВставки); + ДобавитьСтрокиВФайлRenames(ПтуьКRenames,МассивМакетовРСДляВставки); + + КудаСкопироватьМакеты = ПутьКИсходникам + "\Макеты"; + СкопироватьФайлыМакетовВСлужебныйКаталог(КудаСкопироватьМакеты,МассивМакетовСправочниковДляВставки); + СкопироватьФайлыМакетовВСлужебныйКаталог(КудаСкопироватьМакеты,МассивМакетовРСДляВставки); + + + + ПутькМодулюОбработки = ПутьКИсходникам + "\ObjectModule.txt"; + ЗаписатьСтрокуПодключенияКxUnitВМодульОбработки(ПутькМодулюОбработки); + Если ТаблицаКода <> Неопределено Тогда + ДобавитьВМодульОбъектаОбработкиТаблицуКода(ПутькМодулюОбработки,ТаблицаКода); + КонецЕсли; + + + + + СтрокаСборкиEpf = "python " + КаталогИнструментов + "\pyv8unpack.py --compile """ + ПутьКИсходникам + """ """ + ИмяВременнойEPF + """"; + Сообщить("СтрокаСборкиEpf="+СтрокаСборкиEpf); + + ВыполнитьКомандуОС(СтрокаСборкиEpf); + +КонецПроцедуры + + +Процедура ОсновныеДействияФормыТестРаспаковки(Кнопка) + МассивМакетовСправочниковДляВставки = Новый Массив; + ТД = Новый ТабличныйДокумент; + ТД.Прочитать("C:\Temp\Справочник.ШаблонПисем.mxl"); + + СтруктураМакета = Новый Структура; + СтруктураМакета.Вставить("Макет",ТД); + СтруктураМакета.Вставить("ИмяМакета","Справочник.ШаблонПисем"); + + МассивМакетовСправочниковДляВставки.Добавить(СтруктураМакета); + + ПутьКОбработке = "C:\Commons\Rep\vanessa-BaseInit\ШаблонОбработкиДляНачальногоЗаполнения.epf"; + + ПромМассив = Новый Массив; + ДобавитьМассивМакетовВОбработкуИКодМодуля(МассивМакетовСправочниковДляВставки,ПромМассив,ПутьКОбработке,Неопределено); + +КонецПроцедуры + + + +Процедура ВосстановитьНастройки() + Настройки = ХранилищеОбщихНастроек.Загрузить("vanessa-base-init"); + Если ТипЗнч(Настройки) = Тип("Структура") Тогда + Настройки.Свойство("ПутьКГенераторуFixtures", ПутьКГенераторуFixtures); + Настройки.Свойство("ПутьКPrecommit", ПутьКPrecommit); + Настройки.Свойство("ПутьУПустомуПравильномуМакету", ПутьУПустомуПравильномуМакету); + Настройки.Свойство("ПутьКШаблонуОбработки", ПутьКШаблонуОбработки); + Настройки.Свойство("ПутьКГенерируемойEPF", ПутьКГенерируемойEPF); + Настройки.Свойство("СколькоВыгружатьЭлементаСправочника", СколькоВыгружатьЭлементаСправочника); + Настройки.Свойство("ПорогДляПолннойВыгрузкиСправочника", ПорогДляПолннойВыгрузкиСправочника); + Настройки.Свойство("СписокВидовСправочниковКоторыеНеНадоВыгружать", СписокВидовСправочниковКоторыеНеНадоВыгружать); + Настройки.Свойство("СписокВидовРСоторыеНеНадоВыгружать", СписокВидовРСоторыеНеНадоВыгружать); + Настройки.Свойство("ПорогДляПолннойВыгрузкиРС", ПорогДляПолннойВыгрузкиРС); + Настройки.Свойство("флагВыгружатьКонстанты", флагВыгружатьКонстанты); + Настройки.Свойство("флагВыгружатьСправочники", флагВыгружатьСправочники); + Настройки.Свойство("флагВыгружатьРС", флагВыгружатьРС); + Настройки.Свойство("СтрокаПодключенияКxUnit", СтрокаПодключенияКxUnit); + Настройки.Свойство("ТестовыйРежим", ТестовыйРежим); + КонецЕсли; +КонецПроцедуры + +Процедура СохранитьНастройки() + Настройки = Новый Структура; + Настройки.Вставить("ПутьКГенераторуFixtures", ПутьКГенераторуFixtures); + Настройки.Вставить("ПутьКPrecommit", ПутьКPrecommit); + Настройки.Вставить("ПутьУПустомуПравильномуМакету", ПутьУПустомуПравильномуМакету); + Настройки.Вставить("ПутьКШаблонуОбработки", ПутьКШаблонуОбработки); + Настройки.Вставить("ПутьКГенерируемойEPF", ПутьКГенерируемойEPF); + Настройки.Вставить("СколькоВыгружатьЭлементаСправочника", СколькоВыгружатьЭлементаСправочника); + Настройки.Вставить("ПорогДляПолннойВыгрузкиСправочника", ПорогДляПолннойВыгрузкиСправочника); + Настройки.Вставить("СписокВидовСправочниковКоторыеНеНадоВыгружать", СписокВидовСправочниковКоторыеНеНадоВыгружать); + Настройки.Вставить("СписокВидовРСоторыеНеНадоВыгружать", СписокВидовРСоторыеНеНадоВыгружать); + Настройки.Вставить("ПорогДляПолннойВыгрузкиРС", ПорогДляПолннойВыгрузкиРС); + Настройки.Вставить("флагВыгружатьКонстанты", флагВыгружатьКонстанты); + Настройки.Вставить("флагВыгружатьСправочники", флагВыгружатьСправочники); + Настройки.Вставить("флагВыгружатьРС", флагВыгружатьРС); + Настройки.Вставить("СтрокаПодключенияКxUnit", СтрокаПодключенияКxUnit); + Настройки.Вставить("ТестовыйРежим", ТестовыйРежим); + ХранилищеОбщихНастроек.Сохранить("vanessa-base-init",, Настройки); +КонецПроцедуры + + + +Процедура ПриОткрытии() + ВосстановитьНастройки(); + + ЭтаФорма.Заголовок = "Создание обработки по созданию fixtures для начального заполнения базы. " + ПолучитьВерсиюОбработки(); + + //заполним настройки, если обработка открывается в первый раз - начало + Если ПутьКГенераторуFixtures = "" Тогда + ПутьКГенераторуFixtures = "C:\Commons\Rep\xUnitFor1C\xddDataFixtureGen.epf"; + КонецЕсли; + Если ПутьКPrecommit = "" Тогда + ПутьКPrecommit = "C:\Commons\Rep\vanessa-base-init\.git\hooks"; + КонецЕсли; + Если ПутьУПустомуПравильномуМакету = "" Тогда + ПутьУПустомуПравильномуМакету = "C:\Commons\Rep\vanessa-base-init\ПустойПравильныйМакет.mxl"; + КонецЕсли; + Если ПутьКШаблонуОбработки = "" Тогда + ПутьКШаблонуОбработки = "C:\Commons\Rep\vanessa-base-init\ШаблонОбработкиДляНачальногоЗаполнения.epf"; + КонецЕсли; + Если ПутьКГенерируемойEPF = "" Тогда + ПутьКГенерируемойEPF = "C:\Temp\111.epf"; + КонецЕсли; + Если СколькоВыгружатьЭлементаСправочника = 0 Тогда + СколькоВыгружатьЭлементаСправочника = 15; + КонецЕсли; + Если ПорогДляПолннойВыгрузкиСправочника = 0 Тогда + ПорогДляПолннойВыгрузкиСправочника = 50; + КонецЕсли; + Если ПорогДляПолннойВыгрузкиРС = 0 Тогда + ПорогДляПолннойВыгрузкиРС = 10; + КонецЕсли; + Если СтрокаПодключенияКxUnit = "" Тогда + СтрокаПодключенияКxUnit = " xUnit = ВнешниеОбработки.Создать(""C:\Commons\Rep\xUnitFor1C\xddTestRunner.epf"");"; + КонецЕсли; + //заполним настройки, если обработка открывается в первый раз - окончание +КонецПроцедуры + +Процедура ПриЗакрытии() + СохранитьНастройки(); +КонецПроцедуры + +//Сообщить("111 " + Метаданные.ОсновнойЯзык); +//Макет = Новый ТабличныйДокумент; +//Макет.Прочитать("c:\users\pautov\desktop\444.mxl"); +//Макет.Показать(); +//ыа = 1; +//Макет.КодЯзыкаМакета = Метаданные.ОсновнойЯзык.КодЯзыка; +//Макет.Показать(); +//Макет.Записать("c:\users\pautov\desktop\333.mxl"); +//ыва = 1; + +//Метаданные.ОсновнойЯзык.КодЯзыка + + + + + + diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260\320\243\320\277\321\200/\320\244\320\276\321\200\320\274\320\260.txt" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260\320\243\320\277\321\200/\320\244\320\276\321\200\320\274\320\260.txt" new file mode 100644 index 0000000..8bcada0 --- /dev/null +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/Form/\320\244\320\276\321\200\320\274\320\260\320\243\320\277\321\200/\320\244\320\276\321\200\320\274\320\260.txt" @@ -0,0 +1,96 @@ + +&НаКлиенте +Процедура ГенерацияДанных(Команда) + Результат = ГенерацияДанныхНаСервере(); + + Данные = ПолучитьИзВременногоХранилища(Результат); + + Текст = Новый ТекстовыйДокумент; + Текст.УстановитьТекст(Данные.Процедура); + Текст.Показать("Процедура"); + + Текст = Новый ТекстовыйДокумент; + Текст.УстановитьТекст(Данные.СписокТестов); + Текст.Показать("СписокТестов"); + + Для каждого ОписаниеМакета из Данные.МассивМакетов Цикл + Если СтрДлина(ОписаниеМакета.Макет.ПолучитьТекст()) > 3 Тогда + ОписаниеМакета.Макет.Показать(ОписаниеМакета.ИмяМакета); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ГенерацияДанныхНаСервере() + Результат = Новый Структура(); + Результат.Вставить("ТекстОписанияТестов", ""); + Результат.Вставить("ТекстПроцедурУстановитьКонстанты", ""); + + ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); + + Если ВыгружатьКонстанты = Истина Тогда + + МассивКонстантИсключений = Новый Массив; + МассивКонстантИсключений.Добавить("ИдентификаторИнформационнойБазы"); + Данные = ОбъектНаСервере.СгенерироватьУстановкуКонстатнтxUnit(ПутьКГенераторуFixtures, МассивКонстантИсключений); + Возврат ПоместитьВоВременноеХранилище(Данные, ЭтаФорма.УникальныйИдентификатор); + + //Результат = + КонецЕсли; + +КонецФункции + +&НаКлиенте +Процедура ПутьКГенераторуFixturesНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПараметрыВыбора = Новый Структура("Элемент", Элемент); + ПараметрыВыбора.Вставить("Значение", "ПутьКГенераторуFixtures"); + СтандартнаяОбработка = Ложь; + + Режим = РежимДиалогаВыбораФайла.Открытие; + ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); + ДиалогОткрытияФайла.МножественныйВыбор = Ложь; + ДиалогОткрытияФайла.Фильтр = НСтр("en='External processing form files (*.epf, *.erf)|*.epf; *.erf'; ru='Файлы внешних обработок (*.epf, *.erf)|*.epf; *.erf'"); + ДиалогОткрытияФайла.Заголовок = НСтр("en='Choose an external processing form file'; ru='Выберите файл с внешней обработкой'"); + ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина; + ФайлКаталог = Новый Файл(ДанныеВыбора); Каталог = ?(ФайлКаталог.Существует(), ФайлКаталог.Путь, ""); + Если Не ПустаяСтрока(Каталог) Тогда + ДиалогОткрытияФайла.Каталог = Каталог; + КонецЕсли; + + Если ЕстьПоддержкаАсинхронныхВызовов Тогда + Оповещение = Вычислить("Новый ОписаниеОповещения(""ПослеВыбораФайла"", ЭтаФорма, ПараметрыВыбора)"); + ДиалогОткрытияФайла.Показать(Оповещение); + ИначеЕсли ДиалогОткрытияФайла.Выбрать() Тогда + ПослеВыбораФайла(ДиалогОткрытияФайла.ВыбранныеФайлы, ПараметрыВыбора); + КонецЕсли; + + +КонецПроцедуры + + +&НаКлиенте +Процедура ПослеВыбораФайла(ВыбранныеФайлы, ПараметрыВыбора) Экспорт + + Если ВыбранныеФайлы = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ВыбранныеФайлы.Количество() > 0 Тогда + ЭтаФорма[ПараметрыВыбора.Значение] = ВыбранныеФайлы.Получить(0); + КонецЕсли; + +КонецПроцедуры + + + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ЕстьПоддержкаАсинхронныхВызовов = Ложь; + Попытка + ЕстьПоддержкаАсинхронныхВызовов = Вычислить("Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент <> Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.Использовать"); + Исключение; КонецПопытки; + +КонецПроцедуры diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/ObjectModule.txt" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/ObjectModule.txt" index 095caca..66aed4e 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/ObjectModule.txt" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/ObjectModule.txt" @@ -1,3 +1,542 @@ -Функция ПолучитьВерсиюОбработки() Экспорт - Возврат "ver 1.0"; -КонецФункции \ No newline at end of file +Перем СчетчикОбъектов; + +Функция ПолучитьСтрокуДляСтруктуры(Структура,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + СчетчикОбъектов = СчетчикОбъектов + 1; + ИмяПеременной = " "+"Структура" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый Структура;"); + + Для каждого Элем Из Структура Цикл + Ключ = Элем.Ключ; + Значение = Элем.Значение; + Если Значение = Неопределено Тогда + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Вставить(""" + Ключ + """,Неопределено);"); + Продолжить; + КонецЕсли; + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода, " "+"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьСтрокуДляСоответствия(Соответствие,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + //Сообщить(" "); + //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); + СчетчикОбъектов = СчетчикОбъектов + 1; + ИмяПеременной = " "+"Соответствие" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый Соответствие;"); + + Для каждого Элем Из Соответствие Цикл + Ключ = Элем.Ключ; + Значение = Элем.Значение; + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + СтрокаКлюч = ПолучитьСтрокуДляЗначения(Ключ,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """," + СтрокаЗначения + ");"); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Вставить(" + СтрокаКлюч + "," + СтрокаЗначения + ");"); + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода, " "+"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьСтрокуДляСпискаЗначений(Спс,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + //Сообщить(" "); + //Сообщить("ОбъектДляХранилищаЗначения = Новый Структура;"); + СчетчикОбъектов = СчетчикОбъектов + 1; + ИмяПеременной = " "+"СписокЗначений" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый СписокЗначений;"); + + //Спс = Новый СписокЗначений; + //Спс.Добавить(Справочники.Номенклатура.НайтиПоКоду("00000001728"),"Товар"); + Для каждого Элем Из Спс Цикл + Значение = Элем.Значение; + Представление = Элем.Представление; + Если Значение = Неопределено Тогда + //Сообщить("ОбъектДляХранилищаЗначения.Вставить(""" + Ключ + """,Неопределено);"); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Добавить(Неопределено,""" + Представление + """);"); + Продолжить; + КонецЕсли; + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(Значение,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + Если ЗначениеЗаполнено(Представление) Тогда + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Добавить(" + СтрокаЗначения + ",""" + Представление + """);"); + Иначе + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Добавить(" + СтрокаЗначения + ");"); + КонецЕсли; + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода, " "+"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьСтрокуДляТаблицыЗначений(Тзн,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода,ВернутьИмяПеременной = Ложь) + + СчетчикОбъектов = СчетчикОбъектов + 1; + ЗначениеСчетчика = СчетчикОбъектов; + ИмяПеременной = " "+"ТаблицаЗначений" + СчетчикОбъектов; + + ДобавитьСтрокуКода(ТаблицаКода," "); + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + " = Новый ТаблицаЗначений;"); + + Для каждого Колонка Из Тзн.Колонки Цикл + ДобавитьСтрокуКода(ТаблицаКода,ИмяПеременной + ".Колонки.Добавить(""" + Колонка.Имя + """);"); + КонецЦикла; + + Ном = 0; + Для каждого СтрокаТаблицы Из Тзн Цикл + Ном = Ном + 1; + ДобавитьСтрокуКода(ТаблицаКода, " "+"//Строка №" + Ном); + ИдСтрокиТаблицы = " "+"СтрокаТаблицы_" + ЗначениеСчетчика; + ДобавитьСтрокуКода(ТаблицаКода,ИдСтрокиТаблицы + " = " + ИмяПеременной + ".Добавить();"); + Для каждого Колонка Из Тзн.Колонки Цикл + ЗначениеИзТаблицы = СтрокаТаблицы[Колонка.Имя]; + Если ЗначениеИзТаблицы = Неопределено Тогда + ДобавитьСтрокуКода(ТаблицаКода,ИдСтрокиТаблицы + "." + Колонка.Имя + "=" + "Неопределено" + ";"); + Продолжить; + КонецЕсли; + + + СтрокаЗначения = ПолучитьСтрокуДляЗначения(ЗначениеИзТаблицы,"",ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаЗначения = Неопределено Тогда + СтрокаЗначения = "Неопределено"; + КонецЕсли; + ДобавитьСтрокуКода(ТаблицаКода,ИдСтрокиТаблицы + "." + Колонка.Имя + "=" + СтрокаЗначения + ";"); + КонецЦикла; + КонецЦикла; + + Если ВернутьИмяПеременной Тогда + Возврат ИмяПеременной; + Иначе + ДобавитьСтрокуКода(ТаблицаКода, " "+"ХранилищеЗначения = Новый ХранилищеЗначения(" + ИмяПеременной + ");"); + КонецЕсли; + + Возврат "//Была создана структура"; +КонецФункции + +Функция ПолучитьДатуСтрокой(Дат) + Возврат "'" + Формат(Дат,"ДФ=yyyyMMdd") + Формат(Дат,"ДФ=HHmmss") + "'"; +КонецФункции + +Процедура ДобавитьОбъектВТаблицу(ТаблицаОбъектов,Объект,Тип,Вид) + Если Не ЗначениеЗаполнено(Объект) Тогда + Возврат; + КонецЕсли; + + СтрТаблицаОбъектов = ТаблицаОбъектов.Добавить(); + СтрТаблицаОбъектов.Объект = Объект; + СтрТаблицаОбъектов.Тип = Тип; + СтрТаблицаОбъектов.Вид = Вид; +КонецПроцедуры + +Функция ПолучитьСтрокуДляЗначения(Значение,ИмяКонстанты = "",ТаблицаСправочников,ТаблицаКода); + ТипЗначения = ТипЗнч(Значение); + + Если ТипЗначения = Тип("Строка") Тогда + + ПромСтр = СтрЗаменить(Значение,"""",""""""); + ЧислоСтрокВСтроке = СтрЧислоСтрок(ПромСтр); + Если ЧислоСтрокВСтроке = 1 Тогда + Возврат """" + ПромСтр + """"; + Иначе + СтрокаРезультат = """" + СтрПолучитьСтроку(ПромСтр,1); + Для Ккк = 2 По ЧислоСтрокВСтроке Цикл + СтрокаРезультат = СтрокаРезультат + Символы.ПС; + СтрокаРезультат = СтрокаРезультат + Символы.Таб + "|" + СтрПолучитьСтроку(ПромСтр,Ккк); + Если Ккк = ЧислоСтрокВСтроке Тогда + СтрокаРезультат = СтрокаРезультат + """"; + КонецЕсли; + КонецЦикла; + + Возврат СтрокаРезультат; + КонецЕсли; + + ИначеЕсли ТипЗначения = Тип("Число") Тогда + Возврат СтрЗаменить(СтрЗаменить(Значение,",","."),Символы.НПП,""); + + ИначеЕсли ТипЗначения = Тип("Булево") Тогда + Если Значение Тогда + Возврат "Истина"; + Иначе + Возврат "Ложь"; + КонецЕсли; + ИначеЕсли ТипЗначения = Тип("Дата") Тогда + Возврат ПолучитьДатуСтрокой(Значение); + ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + ИмяМетаданного = Значение.Метаданные().Имя; + ДлинаКода = Значение.Метаданные().ДлинаКода; + ДлинаНаименования = Значение.Метаданные().ДлинаНаименования; + + ДобавитьОбъектВТаблицу(ТаблицаСправочников,Значение,"Справочник",ИмяМетаданного); + + Если ДлинаКода > 0 Тогда + Если Значение.Метаданные().ТипКода = Метаданные.СвойстваОбъектов.ТипКодаСправочника.Число Тогда + Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код""," + СтрЗаменить(СокрЛП(Значение.Код),Символы.НПП,"") + ")"; + Иначе + Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Код"",""" + СокрЛП(Значение.Код) + """)"; + КонецЕсли; + ИначеЕсли ДлинаНаименования > 0 Тогда + Возврат "ПолучитьСправочникПоРеквизиту(""" + ИмяМетаданного + """,""Наименование"",""" + СокрЛП(Значение.Наименование) + """)"; + Иначе + Возврат Неопределено; + КонецЕсли; + ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + ИмяМетаданного = Значение.Метаданные().Имя; + ТипНомера = Значение.Метаданные().ТипНомера; + ДлинаНомера = Значение.Метаданные().ДлинаНомера; + Если ДлинаНомера > 0 Тогда + Если Значение.Метаданные().ТипНомера = Метаданные.СвойстваОбъектов.ТипНомераДокумента.Число Тогда + Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """," + СтрЗаменить(СокрЛП(Значение.Номер),Символы.НПП,"") + "," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; + Иначе + Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """,""" + СокрЛП(Значение.Номер) + """," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; + КонецЕсли; + Иначе + Возврат "ПолучитьДокументПоНомеру(""" + ИмяМетаданного + """,""" + "" + """," + ПолучитьДатуСтрокой(Значение.Дата) + ")"; + КонецЕсли; + ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗначения) Тогда + ИмяМетаданного = Значение.Метаданные().Имя; + ИндексЗначенияПеречисления = Перечисления[ИмяМетаданного].Индекс(Значение); + ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяМетаданного].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя; + + Возврат "Перечисления." + ИмяМетаданного + "." + ИмяЗначенияПеречисления; + ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда + ЗначениеИзХранилища = Значение.Получить(); + Если ЗначениеИзХранилища = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ТипЗначенияИзХранилища = ТипЗнч(ЗначениеИзХранилища); + Если ТипЗначенияИзХранилища = Тип("Структура") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляСтруктуры(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + ИначеЕсли ТипЗначенияИзХранилища = Тип("СписокЗначений") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляСпискаЗначений(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + ИначеЕсли ТипЗначенияИзХранилища = Тип("ТаблицаЗначений") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляТаблицыЗначений(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + ИначеЕсли ТипЗначенияИзХранилища = Тип("Соответствие") Тогда + Если ЗначениеИзХранилища.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + Возврат ПолучитьСтрокуДляСоответствия(ЗначениеИзХранилища,ТаблицаСправочников,ТаблицаКода); + КонецЕсли; + + Если ИмяКонстанты <> "" Тогда + ДобавитьСтрокуКода(ТаблицаКода," "+"//Здесь надо заполнить константу " + ИмяКонстанты + " в которой хранилище значения. ТипЗначенияИзХранилища="+ТипЗначенияИзХранилища); + КонецЕсли; + Возврат Неопределено; + + ИначеЕсли ТипЗначения = Тип("Структура") Тогда + Возврат ПолучитьСтрокуДляСтруктуры(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + ИначеЕсли ТипЗначения = Тип("СписокЗначений") Тогда + Возврат ПолучитьСтрокуДляСпискаЗначений(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + ИначеЕсли ТипЗначения = Тип("Соответствие") Тогда + Возврат ПолучитьСтрокуДляСоответствия(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + ИначеЕсли ТипЗначения = Тип("ТаблицаЗначений") Тогда + Возврат ПолучитьСтрокуДляТаблицыЗначений(Значение,ТаблицаСправочников,ТаблицаКода,Истина); + Иначе + Если ИмяКонстанты = "" Тогда //значит это подчиненное значение, которое имеет сложный тип, например в таблце значений внутри были структуры + + КонецЕсли; + Возврат Неопределено; + КонецЕсли; +КонецФункции + +Процедура ПолучитьСтрокуКодаДляЗначения(Значение,Имя, ТаблицаСправочниковДляПолученияМакетовFixtures, ТаблицаКода) + + ТипЗначения = ТипЗнч(Значение); + + СтрокаДляЗначения = ПолучитьСтрокуДляЗначения(Значение,Имя,ТаблицаСправочниковДляПолученияМакетовFixtures,ТаблицаКода); + Если СтрокаДляЗначения = Неопределено Тогда + ДобавитьСтрокуКода(ТаблицаКода," "+"//Здесь надо установить значение для константы """ + Имя + """. ТипЗначения="+ТипЗначения); + ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда + ДобавитьСтрокуКода(ТаблицаКода," "+"Константы." + Имя + ".Установить(" + "ХранилищеЗначения" + ");"); + ИначеЕсли СтрокаДляЗначения = "ОбработкаВнутриАлгоритма" тогда + //значит уже всё сделано + Иначе + ДобавитьСтрокуКода(ТаблицаКода," "+"Константы." + Имя + ".Установить(" + СтрокаДляЗначения + ");"); + КонецЕсли; + +КонецПроцедуры + +Процедура ДобавитьСтрокуКода(Текст, ТекстДобавить) + + Текст = Текст + Символы.ПС + ТекстДобавить; + +КонецПроцедуры + +Функция ПолучитьТаблицуСправочников() + Перем ТаблицаСправочниковДляПолученияМакетовFixtures; + + ТаблицаСправочниковДляПолученияМакетовFixtures = Новый ТаблицаЗначений; + ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Объект"); + ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Тип"); + ТаблицаСправочниковДляПолученияМакетовFixtures.Колонки.Добавить("Вид"); + + Возврат ТаблицаСправочниковДляПолученияМакетовFixtures; + +КонецФункции + +Функция СгенерироватьУстановкуКонстатнтxUnit(Знач ПутьКОбработкеГенерации, Знач МассивИсключений = Неопределено) Экспорт + Перем РезультатПроцедуры, ТестовыеМетоды ; + РезультатПроцедуры = ""; + ТестовыеМетоды = ""; + + МассивМакетовДляВставки = Новый Массив; + Если МассивИсключений = Неопределено Тогда + МассивИсключений = Новый Массив; + КонецЕсли; + + + ГенераторFixtures = ВнешниеОбработки.Создать(ПутьКОбработкеГенерации, Ложь); + ГенераторFixtures.ВыгружатьКод = Истина; + ГенераторFixtures.ОбменДанными = Истина; + ГенераторFixtures.ВыгружатьВJSON = Истина; + + + ТаблицаКонстант = ПолучитьТаблицуКонстант(МассивИсключений); + СоответсвиеКонстантДляЗаполнения = Новый Соответствие; + + Для каждого Строка из ТаблицаКонстант Цикл + + ДобавитьСтрокуКода(РезультатПроцедуры, "#Область "+СтрЗаменить(Строка.Подсистема, ".", "_")); + ДобавитьСтрокуКода(ТестовыеМетоды, " "+"#Область "+СтрЗаменить(Строка.Подсистема, ".", "_")+"ТестовыйМетод"); + ДобавитьСтрокуКода(РезультатПроцедуры, ""); + Для каждого Константа из Строка.Значение Цикл + + Если СоответсвиеКонстантДляЗаполнения.Получить(Константа) = Неопределено Тогда + СоответсвиеКонстантДляЗаполнения.Вставить(Константа, Истина); + Иначе + ДобавитьСтрокуКода(РезультатПроцедуры,"//Константа " + Константа + "."); + Продолжить; + КонецЕсли; + + ТаблицаСправочников = ПолучитьТаблицуСправочников(); + + ИмяМакета = "МакетДанныхДля_"+Константа; + ИмяПроцедуры = "УстановитьКонстанту"+Константа + ""; + + ТекстТеста = СтрЗаменить("ПараметрыТеста = Новый Структура(""ПредставлениеТеста,ИмяТеста,Транзакция,Параметр"", ""%1%"", ""%2%"", Ложь, ""%3%"");", + "%1%", СтрЗаменить(Строка.Подсистема, ".", "_")+"-"+Константа); + ТекстТеста = СтрЗаменить(ТекстТеста, "%2%", ИмяПроцедуры); + + ДобавитьСтрокуКода(РезультатПроцедуры, ""); + ДобавитьСтрокуКода(РезультатПроцедуры, "Процедура "+ИмяПроцедуры + "(Параметр = Неопределено) Экспорт"); + + Значение = Константы[Константа].Получить(); + + Если НЕ ЗначениеЗаполнено(Значение) Тогда + ДобавитьСтрокуКода(РезультатПроцедуры, " "+"//Константа " + Константа + " была не заполнена."); + ДобавитьСтрокуКода(РезультатПроцедуры, " "+"Константы."+Константа+".Установить(Неопределено);"); + ДобавитьСтрокуКода(РезультатПроцедуры, "КонецПроцедуры //"+ИмяПроцедуры); + Продолжить; + КонецЕсли; + + ТипЗначения = ТипЗнч(Значение); + Если ТипЗначения = Тип("ХранилищеЗначения") Тогда + ЗначениеИзХранилища = Значение.Получить(); + Если ЗначениеИзХранилища = Неопределено Тогда + ДобавитьСтрокуКода(РезультатПроцедуры, " "+"//Константа " + Константа + " была не заполнена."); + ДобавитьСтрокуКода(РезультатПроцедуры, " "+"Константы."+Константа+".Установить(Новый ХранилищеЗначения(Неопределено))"); + ДобавитьСтрокуКода(РезультатПроцедуры, "КонецПроцедуры //"+ИмяПроцедуры); + Продолжить; + КонецЕсли; + КонецЕсли; + + СчетчикОбъектов = 0; + ТекстДляВставки = ""; + ПолучитьСтрокуКодаДляЗначения(Значение, Константа, ТаблицаСправочников, ТекстДляВставки); + Если ТаблицаСправочников.Количество() > 0 Тогда + + ТекстТеста = СтрЗаменить(ТекстТеста, "%3%", ИмяМакета); + + ДобавитьСтрокуКода(РезультатПроцедуры, ""); + ДобавитьСтрокуКода(РезультатПроцедуры, " "+"юТест.СоздатьДанныеПоМакетам(ЭтотОбъект, Параметр);"); + Иначе + СтроковоеПердставлениеЗначения = ""; + Попытка + + СтроковоеПердставлениеЗначения = Строка(Значение); + СтроковоеПердставлениеЗначения = СтрЗаменить(СтроковоеПердставлениеЗначения,"""",""""""); + СтроковоеПердставлениеЗначения = СокрЛП(Лев(СтроковоеПердставлениеЗначения, 100)); + Исключение + + КонецПопытки; + ТекстТеста = СтрЗаменить(ТекстТеста, "%3%", СтроковоеПердставлениеЗначения); + КонецЕсли; + + + ДобавитьСтрокуКода(ТестовыеМетоды, " "+ТекстТеста); + ДобавитьСтрокуКода(ТестовыеМетоды, " "+"ВсеТесты.Добавить(ПараметрыТеста);"); + + + ДобавитьСтрокуКода(РезультатПроцедуры, ТекстДляВставки); + ДобавитьСтрокуКода(РезультатПроцедуры, "КонецПроцедуры //"+ИмяПроцедуры); + + ТаблицаДанных = ТаблицаСправочников.Скопировать(); + ТаблицаДанных.Свернуть("Объект"); + Для каждого строкаданных из ТаблицаДанных Цикл + НоваяСтрока = ГенераторFixtures.ТаблицаДанных.Добавить(); + НоваяСтрока.Ссылка = строкаданных.Объект; + КонецЦикла; + + Если ТаблицаДанных.Количество() > 0 Тогда + Макет = Новый ТекстовыйДокумент; + МассивСсылок = ТаблицаДанных.ВыгрузитьКолонку("Объект"); + Текст = ГенераторFixtures.ОбъектыВJSON(МассивСсылок); + + Макет.УстановитьТекст(Текст); + Макет.ВставитьСтроку(0,"/* "+ИмяМакета+"*/"); + + ГенераторFixtures.ТаблицаДанных.Очистить(); + МассивМакетовДляВставки.Добавить(Новый Структура("Макет, ИмяМакета", Макет, ИмяМакета)); + КонецЕсли; + + КонецЦикла; + + ДобавитьСтрокуКода(РезультатПроцедуры, "#КонецОбласти"); + ДобавитьСтрокуКода(РезультатПроцедуры, "//КонецОбласти "+СтрЗаменить(Строка.Подсистема, ".", "_")); + ДобавитьСтрокуКода(РезультатПроцедуры, ""); + + ДобавитьСтрокуКода(ТестовыеМетоды, " "+"#КонецОбласти"); + ДобавитьСтрокуКода(ТестовыеМетоды, ""); + + КонецЦикла; + + ТекстШаблона = ПолучитьМакет("ШаблонТекстаМодуляxUnit"); + Текст = ТекстШаблона.ПолучитьТекст(); + Текст = СтрЗаменить(Текст, "%1%", ТестовыеМетоды); + Текст = СтрЗаменить(Текст, "%2%", РезультатПроцедуры); + + СтруктураРезультатов = Новый Структура("Процедура, СписокТестов, МассивМакетов", Текст, ТестовыеМетоды, МассивМакетовДляВставки); + + Возврат СтруктураРезультатов; + +КонецФункции //СгенерироватьУстановкуКонстатнт + +Процедура ПрочитатьПодсистемыРекурсивно(Подсистема, СоотвествиеМетаданныхИПодсистем, Родитель = "") + + ИмяПодсистемы = ?(ПустаяСтрока(Родитель), "", Родитель+".") + Подсистема.Имя; + Если Подсистема.Подсистемы.Количество() > 0 Тогда + Для каждого подпосистема из Подсистема.Подсистемы Цикл + ПрочитатьПодсистемыРекурсивно(подпосистема, СоотвествиеМетаданныхИПодсистем, ИмяПодсистемы); + КонецЦикла; + КонецЕсли; + + Для каждого ЭлементКоллекции из Подсистема.Состав Цикл + Если СоотвествиеМетаданныхИПодсистем.Получить(ЭлементКоллекции) = Неопределено Тогда + СоотвествиеМетаданныхИПодсистем.Вставить(ЭлементКоллекции, Новый Массив()); + КонецЕсли; + + Массив = СоотвествиеМетаданныхИПодсистем.Получить(ЭлементКоллекции); + Массив.Добавить(ИмяПодсистемы); + КонецЦикла; + +КонецПроцедуры + +Функция ПолучитьТаблицуКонстант(МассивИсключений) Экспорт + + СоотвествиеМетаданныхИПодсистем = Новый Соответствие; + Для каждого Подсистема из Метаданные.Подсистемы Цикл + ПрочитатьПодсистемыРекурсивно(Подсистема, СоотвествиеМетаданныхИПодсистем, ""); + КонецЦикла; + + СортировкаПоПодсистемам = Новый Соответствие; + + КС = Новый КвалификаторыСтроки(100); + Массив = Новый Массив; + Массив.Добавить(Тип("Строка")); + ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС); + + ТаблицаПодсистем = Новый ТаблицаЗначений; + ТаблицаПодсистем.Колонки.Добавить("Подсистема", ОписаниеТиповС); + ТаблицаПодсистем.Колонки.Добавить("Значение"); + + НоваяСтрока = ТаблицаПодсистем.Добавить(); + НоваяСтрока.Значение = Новый Массив; + НоваяСтрока.Подсистема = "ъБезПодсистемы"; + + СортировкаПоПодсистемам.Вставить("БезПодсистемы", НоваяСтрока); + + Для каждого константа Из Метаданные.Константы Цикл + + Если МассивИсключений.Найти(константа.Имя) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Результат = СоотвествиеМетаданныхИПодсистем.Получить(константа); + Если Результат = Неопределено Тогда + Результат = СортировкаПоПодсистемам.Получить("Без подсистемы"); + Результат.Значение.Добавить(Константа.Имя); + Иначе + Для каждого Элемент из Результат Цикл + Если СортировкаПоПодсистемам.Получить(Элемент) = Неопределено Тогда + НоваяСтрока = ТаблицаПодсистем.Добавить(); + НоваяСтрока.Значение = Новый Массив; + НоваяСтрока.Подсистема = Элемент; + СортировкаПоПодсистемам.Вставить(Элемент, НоваяСтрока); + КонецЕсли; + Строка = СортировкаПоПодсистемам.Получить(Элемент); + Строка.Значение.Добавить(константа.Имя); + КонецЦикла; + КонецЕсли; + + КонецЦикла; + + ТаблицаПодсистем.Сортировать("Подсистема"); + + Возврат ТаблицаПодсистем; + +КонецФункции + +Функция Версия() Экспорт + Возврат ПолучитьВерсиюОбработки(); +КонецФункции + +Функция ПолучитьВерсиюОбработки() Экспорт + Возврат "1.1.2"; +КонецФункции + +СчетчикОбъектов = 0; + \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/renames.txt" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/renames.txt" index 28a0440..e2ad74b 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/renames.txt" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/renames.txt" @@ -1,12 +1,19 @@ -4757cf39-19aa-4067-8d10-1fedb568e7ad-->und\4757cf39-19aa-4067-8d10-1fedb568e7ad -4757cf39-19aa-4067-8d10-1fedb568e7ad.0-->Макеты\ОтчетПоМакетам.mxl -4757cf39-19aa-4067-8d10-1fedb568e7ad.0-->und\4757cf39-19aa-4067-8d10-1fedb568e7ad.0 -99e5fc46-2b74-422a-8731-ff39e15eefbd-->und\99e5fc46-2b74-422a-8731-ff39e15eefbd -99e5fc46-2b74-422a-8731-ff39e15eefbd.0-->Form\Форма -af8543d6-5592-4827-a253-12a9ee4783b1-->und\af8543d6-5592-4827-a253-12a9ee4783b1 -copyinfo-->und\copyinfo -db29e233-6e54-4ee0-becb-d918aec28d42.0\info-->und\db29e233-6e54-4ee0-becb-d918aec28d42.0\info -db29e233-6e54-4ee0-becb-d918aec28d42.0\text-->ObjectModule.txt -root-->und\root -version-->und\version -versions-->und\versions +4757cf39-19aa-4067-8d10-1fedb568e7ad-->und\4757cf39-19aa-4067-8d10-1fedb568e7ad +4757cf39-19aa-4067-8d10-1fedb568e7ad.0-->Макеты\ОтчетПоМакетам.mxl +4757cf39-19aa-4067-8d10-1fedb568e7ad.0-->und\4757cf39-19aa-4067-8d10-1fedb568e7ad.0 +4bde79a9-e308-4a4f-9526-427ff7b05423-->und\4bde79a9-e308-4a4f-9526-427ff7b05423 +4bde79a9-e308-4a4f-9526-427ff7b05423.0-->Form\ФормаУпр\Форма.txt +4bde79a9-e308-4a4f-9526-427ff7b05423.0-->und\4bde79a9-e308-4a4f-9526-427ff7b05423.0 +4bde79a9-e308-4a4f-9526-427ff7b05423.0-->und\4bde79a9-e308-4a4f-9526-427ff7b05423.0 +87502c3a-d318-40d9-a888-4d4cf603f7fc-->und\87502c3a-d318-40d9-a888-4d4cf603f7fc +87502c3a-d318-40d9-a888-4d4cf603f7fc.0-->und\87502c3a-d318-40d9-a888-4d4cf603f7fc.0 +87502c3a-d318-40d9-a888-4d4cf603f7fc.0-->Макеты\ШаблонТекстаМодуляxUnit.txt +99e5fc46-2b74-422a-8731-ff39e15eefbd-->und\99e5fc46-2b74-422a-8731-ff39e15eefbd +99e5fc46-2b74-422a-8731-ff39e15eefbd.0-->Form\Форма +af8543d6-5592-4827-a253-12a9ee4783b1-->und\af8543d6-5592-4827-a253-12a9ee4783b1 +copyinfo-->und\copyinfo +db29e233-6e54-4ee0-becb-d918aec28d42.0\info-->und\db29e233-6e54-4ee0-becb-d918aec28d42.0\info +db29e233-6e54-4ee0-becb-d918aec28d42.0\text-->ObjectModule.txt +root-->und\root +version-->und\version +versions-->und\versions diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4757cf39-19aa-4067-8d10-1fedb568e7ad" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4757cf39-19aa-4067-8d10-1fedb568e7ad" index 19e0d7c..8478fa5 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4757cf39-19aa-4067-8d10-1fedb568e7ad" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4757cf39-19aa-4067-8d10-1fedb568e7ad" @@ -1,6 +1,6 @@ -{1, -{2,0, -{1, -{0,0,4757cf39-19aa-4067-8d10-1fedb568e7ad},"ОтчетПоМакетам", -{1,"ru","Отчет по макетам"},"",0,0} +{1, +{2,0, +{1, +{0,0,4757cf39-19aa-4067-8d10-1fedb568e7ad},"ОтчетПоМакетам", +{1,"ru","Отчет по макетам"},"",0,0} },0} \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4bde79a9-e308-4a4f-9526-427ff7b05423" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4bde79a9-e308-4a4f-9526-427ff7b05423" new file mode 100644 index 0000000..75e089e --- /dev/null +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4bde79a9-e308-4a4f-9526-427ff7b05423" @@ -0,0 +1,15 @@ +{1, +{1, +{0, +{12, +{1, +{0,0,4bde79a9-e308-4a4f-9526-427ff7b05423},"ФормаУпр", +{1,"ru","Форма упр"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1, +{2, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1}, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2} +} +}, +{0} +} +},0} \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4bde79a9-e308-4a4f-9526-427ff7b05423.0" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4bde79a9-e308-4a4f-9526-427ff7b05423.0" new file mode 100644 index 0000000..abda459 --- /dev/null +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/4bde79a9-e308-4a4f-9526-427ff7b05423.0" @@ -0,0 +1,887 @@ +{3, +{38,0,0,0,0,1,0,1,00000000-0000-0000-0000-000000000000,1, +{1,0},0,0,1,1,1,0,1,0, +{1,9f2e5ddb-3492-4f5d-8f0d-416b8d1d5c5b,"ПриСозданииНаСервере"}, +{0},1, +{19, +{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,9,"ФормаКоманднаяПанель", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{0,0,1},1,a9f3b1ac-f51b-431e-b102-55a69acdecad, +{25, +{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,1, +{0, +{0, +{"B",1},0} +},0,"ФормаГенерацияДанных", +{1,0},1, +{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a}, +{0},3,1,0,0,2,2,0,0,0, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},0, +{4,0, +{0},"",-1,-1,1,0,""},1, +{"Pattern"},"",2,0,1, +{8, +{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФормаГенерацияДанныхРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0}, +{"U"},1,0,0,1,0,0,0,3,3,3},1,0,0},5,77ffcc29-7f2d-4223-b22f-19666e7250ba, +{32, +{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, +{0, +{0, +{"B",1},0} +},3,"ВыгружатьКонстанты",1,0, +{1,0}, +{1,0}, +{1, +{2} +}, +{0},1,0,2,0,2, +{1,0}, +{1,0},1,1,0,3,0,3,1,3,0, +{4,0, +{0},"",-1,-1,1,0,""}, +{4,0, +{0},"",-1,-1,1,0,""}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{10,0, +{3,4, +{0} +}, +{3,4, +{0} +},0, +{1,0}, +{3,4, +{0} +}, +{7,3,0,1,100},0,0,0,2}, +{0},1, +{19, +{4,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ВыгружатьКонстантыКонтекстноеМеню", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{1,1},0,1,0,0},1, +{"Pattern"}, +{"Pattern"},"","", +{0},0,0,1, +{8, +{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ВыгружатьКонстантыРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{32, +{6,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, +{0, +{0, +{"B",1},0} +},3,"ВыгружатьРС",1,0, +{1,0}, +{1,0}, +{1, +{4} +}, +{0},1,0,2,0,2, +{1,0}, +{1,0},1,1,0,3,0,3,1,3,0, +{4,0, +{0},"",-1,-1,1,0,""}, +{4,0, +{0},"",-1,-1,1,0,""}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{10,0, +{3,4, +{0} +}, +{3,4, +{0} +},0, +{1,0}, +{3,4, +{0} +}, +{7,3,0,1,100},0,0,0,2}, +{0},1, +{19, +{7,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ВыгружатьРСКонтекстноеМеню", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{1,1},0,1,0,0},1, +{"Pattern"}, +{"Pattern"},"","", +{0},0,0,1, +{8, +{8,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ВыгружатьРСРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{32, +{9,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, +{0, +{0, +{"B",1},0} +},3,"ВыгружатьСправочники",1,0, +{1,0}, +{1,0}, +{1, +{3} +}, +{0},1,0,2,0,2, +{1,0}, +{1,0},1,1,0,3,0,3,1,3,0, +{4,0, +{0},"",-1,-1,1,0,""}, +{4,0, +{0},"",-1,-1,1,0,""}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{10,0, +{3,4, +{0} +}, +{3,4, +{0} +},0, +{1,0}, +{3,4, +{0} +}, +{7,3,0,1,100},0,0,0,2}, +{0},1, +{19, +{10,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ВыгружатьСправочникиКонтекстноеМеню", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{1,1},0,1,0,0},1, +{"Pattern"}, +{"Pattern"},"","", +{0},0,0,1, +{8, +{11,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ВыгружатьСправочникиРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{32, +{12,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, +{0, +{0, +{"B",1},0} +},3,"ФорматxUnit",1,0, +{1,0}, +{1,0}, +{1, +{6} +}, +{0},1,0,2,0,2, +{1,0}, +{1,0},1,1,0,3,0,3,1,3,0, +{4,0, +{0},"",-1,-1,1,0,""}, +{4,0, +{0},"",-1,-1,1,0,""}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{10,0, +{3,4, +{0} +}, +{3,4, +{0} +},0, +{1,0}, +{3,4, +{0} +}, +{7,3,0,1,100},0,0,0,2}, +{0},1, +{19, +{13,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ФорматxUnitКонтекстноеМеню", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{1,1},0,1,0,0},1, +{"Pattern"}, +{"Pattern"},"","", +{0},0,0,1, +{8, +{14,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ФорматxUnitРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +},77ffcc29-7f2d-4223-b22f-19666e7250ba, +{32, +{15,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, +{0, +{0, +{"B",1},0} +},2,"ПутьКГенераторуFixtures",1,0, +{1,0}, +{1,0}, +{1, +{7} +}, +{0},1,0,2,0,2, +{1,0}, +{1,0},1,1,0,3,0,3,1,3,0, +{4,0, +{0},"",-1,-1,1,0,""}, +{4,0, +{0},"",-1,-1,1,0,""}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{30, +{3,0},0,0,2,2,1,2,2,2,2,2,1,2,2,2, +{"U"}, +{"U"},"",0, +{4,0, +{0},"",-1,-1,1,0,""},0,0,2,3,00000000-0000-0000-0000-000000000000, +{5004,0}, +{0,0},2, +{1,0}, +{1,0},2,1,0, +{"Pattern"},1, +{1,1960479b-4d89-4eba-8b39-0aa802020558,"ПутьКГенераторуFixturesНачалоВыбора"}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{7,3,0,1,100},1, +{3,0,0},0, +{1,0},2,0,2,0}, +{0},1, +{19, +{16,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,8,"ПутьКГенераторуFixturesКонтекстноеМеню", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{1,1},0,1,0,0},1, +{"Pattern"}, +{"Pattern"},"","", +{0},0,0,1, +{8, +{17,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ПутьКГенераторуFixturesРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +},"","",1, +{19, +{0},0,0,0,7,"Navigator", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},0,0,1,0,1, +{8, +{0},0,0,0,0,"NavigatorExtendedTooltip", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +},1,"",0,0,1, +{19, +{0},0,0,0,7,"LeftCaptionButtons", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},0,0,1,0,1, +{8, +{0},0,0,0,0,"LeftCaptionButtonsExtendedTooltip", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +},1, +{19, +{0},0,0,0,7,"RightCaptionButtons", +{1,0}, +{1,0},0,1,0,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},0,0,1,0,1, +{8, +{0},0,0,0,0,"RightCaptionButtonsExtendedTooltip", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0} +} +}," +&НаКлиенте +Процедура ГенерацияДанных(Команда) + Результат = ГенерацияДанныхНаСервере(); + + Данные = ПолучитьИзВременногоХранилища(Результат); + + Текст = Новый ТекстовыйДокумент; + Текст.УстановитьТекст(Данные.Процедура); + Текст.Показать(""Процедура""); + + Текст = Новый ТекстовыйДокумент; + Текст.УстановитьТекст(Данные.СписокТестов); + Текст.Показать(""СписокТестов""); + + Для каждого ОписаниеМакета из Данные.МассивМакетов Цикл + Если СтрДлина(ОписаниеМакета.Макет.ПолучитьТекст()) > 3 Тогда + ОписаниеМакета.Макет.Показать(ОписаниеМакета.ИмяМакета); + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ГенерацияДанныхНаСервере() + Результат = Новый Структура(); + Результат.Вставить(""ТекстОписанияТестов"", """"); + Результат.Вставить(""ТекстПроцедурУстановитьКонстанты"", """"); + + ОбъектНаСервере = РеквизитФормыВЗначение(""Объект""); + + Если ВыгружатьКонстанты = Истина Тогда + + МассивКонстантИсключений = Новый Массив; + МассивКонстантИсключений.Добавить(""ИдентификаторИнформационнойБазы""); + Данные = ОбъектНаСервере.СгенерироватьУстановкуКонстатнтxUnit(ПутьКГенераторуFixtures, МассивКонстантИсключений); + Возврат ПоместитьВоВременноеХранилище(Данные, ЭтаФорма.УникальныйИдентификатор); + + //Результат = + КонецЕсли; + +КонецФункции + +&НаКлиенте +Процедура ПутьКГенераторуFixturesНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПараметрыВыбора = Новый Структура(""Элемент"", Элемент); + ПараметрыВыбора.Вставить(""Значение"", ""ПутьКГенераторуFixtures""); + СтандартнаяОбработка = Ложь; + + Режим = РежимДиалогаВыбораФайла.Открытие; + ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); + ДиалогОткрытияФайла.МножественныйВыбор = Ложь; + ДиалогОткрытияФайла.Фильтр = НСтр(""en='External processing form files (*.epf, *.erf)|*.epf; *.erf'; ru='Файлы внешних обработок (*.epf, *.erf)|*.epf; *.erf'""); + ДиалогОткрытияФайла.Заголовок = НСтр(""en='Choose an external processing form file'; ru='Выберите файл с внешней обработкой'""); + ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина; + ФайлКаталог = Новый Файл(ДанныеВыбора); Каталог = ?(ФайлКаталог.Существует(), ФайлКаталог.Путь, """"); + Если Не ПустаяСтрока(Каталог) Тогда + ДиалогОткрытияФайла.Каталог = Каталог; + КонецЕсли; + + Если ЕстьПоддержкаАсинхронныхВызовов Тогда + Оповещение = Вычислить(""Новый ОписаниеОповещения(""""ПослеВыбораФайла"""", ЭтаФорма, ПараметрыВыбора)""); + ДиалогОткрытияФайла.Показать(Оповещение); + ИначеЕсли ДиалогОткрытияФайла.Выбрать() Тогда + ПослеВыбораФайла(ДиалогОткрытияФайла.ВыбранныеФайлы, ПараметрыВыбора); + КонецЕсли; + + +КонецПроцедуры + + +&НаКлиенте +Процедура ПослеВыбораФайла(ВыбранныеФайлы, ПараметрыВыбора) Экспорт + + Если ВыбранныеФайлы = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ВыбранныеФайлы.Количество() > 0 Тогда + ЭтаФорма[ПараметрыВыбора.Значение] = ВыбранныеФайлы.Получить(0); + КонецЕсли; + +КонецПроцедуры + + + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ЕстьПоддержкаАсинхронныхВызовов = Ложь; + Попытка + ЕстьПоддержкаАсинхронныхВызовов = Вычислить(""Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент <> Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.Использовать""); + Исключение; КонецПопытки; + +КонецПроцедуры +", +{4,8, +{9, +{1},0,"Объект", +{1,0}, +{"Pattern", +{"#",bd98b060-1b8b-48b7-a575-20e9f075f191} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,0},1,0,0,0, +{0,0}, +{0,0} +}, +{9, +{2},0,"ВыгружатьКонстанты", +{1,1, +{"ru","Выгружать константы"} +}, +{"Pattern", +{"B"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,1, +{0} +},0,1,0,0, +{0,0}, +{0,0} +}, +{9, +{3},0,"ВыгружатьСправочники", +{1,1, +{"ru","Выгружать справочники"} +}, +{"Pattern", +{"B"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,1, +{0} +},0,1,0,0, +{0,0}, +{0,0} +}, +{9, +{4},0,"ВыгружатьРС", +{1,1, +{"ru","Выгружать РС"} +}, +{"Pattern", +{"B"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,1, +{0} +},0,1,0,0, +{0,0}, +{0,0} +}, +{9, +{5},0,"СоздаватьМакеты", +{1,1, +{"ru","Создавать макеты"} +}, +{"Pattern", +{"B"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,0},0,0,0,0, +{0,0}, +{0,0} +}, +{9, +{6},0,"ФорматxUnit", +{1,1, +{"ru","Форматx unit"} +}, +{"Pattern", +{"B"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,1, +{0} +},0,1,0,0, +{0,0}, +{0,0} +}, +{9, +{7},0,"ПутьКГенераторуFixtures", +{1,1, +{"ru","Путь к генератору макетов данных"} +}, +{"Pattern", +{"S"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,1, +{0} +},0,1,0,0, +{0,0}, +{0,0} +}, +{9, +{8},0,"ЕстьПоддержкаАсинхронныхВызовов", +{1,1, +{"ru","Есть поддержка асинхронных вызовов"} +}, +{"Pattern", +{"B"} +}, +{0, +{0, +{"B",1},0} +}, +{0, +{0, +{"B",1},0} +}, +{0,0}, +{0,0},0,0,0,0, +{0,0}, +{0,0} +},0,0, +{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0 +aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u +LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv +OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo +dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0 +cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9 +Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw +Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj +LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 +LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 +cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} +}, +{0,0}, +{0,1, +{7, +{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},"ГенерацияДанных", +{1,1, +{"ru","Генерация данных"} +}, +{1,1, +{"ru","Генерация данных"} +}, +{0, +{0, +{"B",1},0} +}, +{0,0,0}, +{4,0, +{0},"",-1,-1,1,0,""},"ГенерацияДанных",3,0,0, +{0,0},1,0} +}, +{0,0}, +{0,0},0,0} \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/87502c3a-d318-40d9-a888-4d4cf603f7fc" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/87502c3a-d318-40d9-a888-4d4cf603f7fc" new file mode 100644 index 0000000..48f06b5 --- /dev/null +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/87502c3a-d318-40d9-a888-4d4cf603f7fc" @@ -0,0 +1,6 @@ +{1, +{2,4, +{1, +{0,0,87502c3a-d318-40d9-a888-4d4cf603f7fc},"ШаблонТекстаМодуляxUnit", +{1,"ru","Шаблон текста модуляx unit"},"",0,0} +},0} \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/87502c3a-d318-40d9-a888-4d4cf603f7fc.0" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/87502c3a-d318-40d9-a888-4d4cf603f7fc.0" new file mode 100644 index 0000000..3e87694 --- /dev/null +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/87502c3a-d318-40d9-a888-4d4cf603f7fc.0" @@ -0,0 +1,61 @@ +Перем юТест; + +Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт + + юТест = ЮнитТестирование; + ВсеТесты = Новый Массив; + + %1% + + Возврат ВсеТесты; + +КонецФункции + +Функция ПолучитьСправочникПоРеквизиту(ИмяСпр,ИмяРеквизита,ЗначениеРеквизита) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | __ИмяСпр__.Ссылка Как Ссылка + |ИЗ + | Справочник.__ИмяСпр__ КАК __ИмяСпр__ + |ГДЕ + | __ИмяСпр__.__ИмяРеквизита__ = &ЗначениеРеквизита"; + + + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяСпр__",ИмяСпр); + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяРеквизита__",ИмяРеквизита); + Запрос.УстановитьПараметр("ЗначениеРеквизита", ЗначениеРеквизита); + + РезультатЗапроса = Запрос.Выполнить(); + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + Возврат ВыборкаДетальныеЗаписи.Ссылка; + КонецЦикла; + + Возврат Справочники[ИмяСпр].ПустаяСсылка(); +КонецФункции + +Функция ПолучитьДокументПоНомеру(ИмяДок,НомерДок,ДатаДок) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | __ИмяДок__.Ссылка Как Ссылка + |ИЗ + | Документ.__ИмяДок__ КАК __ИмяДок__ + |ГДЕ + | __ИмяДок__.Номер = &ЗначениеРеквизита"; + + + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяДок__",ИмяДок); + Запрос.УстановитьПараметр("ЗначениеРеквизита", НомерДок); + + РезультатЗапроса = Запрос.Выполнить(); + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + Возврат ВыборкаДетальныеЗаписи.Ссылка; + КонецЦикла; + + Возврат Документы[ИмяДок].ПустаяСсылка(); +КонецФункции + +%2% \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/99e5fc46-2b74-422a-8731-ff39e15eefbd" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/99e5fc46-2b74-422a-8731-ff39e15eefbd" index 1293bad..f992bb6 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/99e5fc46-2b74-422a-8731-ff39e15eefbd" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/99e5fc46-2b74-422a-8731-ff39e15eefbd" @@ -1,15 +1,15 @@ -{1, -{1, -{0, -{12, -{1, -{0,0,99e5fc46-2b74-422a-8731-ff39e15eefbd},"Форма", -{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,0, -{2, -{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1}, -{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2} -} -}, -{0} -} +{1, +{1, +{0, +{12, +{1, +{0,0,99e5fc46-2b74-422a-8731-ff39e15eefbd},"Форма", +{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,0, +{2, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1}, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2} +} +}, +{0} +} },0} \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/af8543d6-5592-4827-a253-12a9ee4783b1" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/af8543d6-5592-4827-a253-12a9ee4783b1" index 0671650..e395e4a 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/af8543d6-5592-4827-a253-12a9ee4783b1" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/af8543d6-5592-4827-a253-12a9ee4783b1" @@ -1,17 +1,17 @@ -{1, -{af8543d6-5592-4827-a253-12a9ee4783b1},1, -{c3831ec8-d8d5-4f93-8a22-f9bfae07327f, -{1, -{4,bd98b060-1b8b-48b7-a575-20e9f075f191,f129b882-ad00-42d6-b955-3499abbe967c, -{0, -{1, -{0,0,db29e233-6e54-4ee0-becb-d918aec28d42},"СозданиеFixturesДляНачальногоЗаполненияБазы", -{1,"ru","Создание fixtures для начального заполнения базы"},"",0,0} -},99e5fc46-2b74-422a-8731-ff39e15eefbd,"",00000000-0000-0000-0000-000000000000},4, -{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, -{3daea016-69b7-4ed4-9453-127911372fe6,1,4757cf39-19aa-4067-8d10-1fedb568e7ad}, -{d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,99e5fc46-2b74-422a-8731-ff39e15eefbd}, -{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0} -} -} +{1, +{af8543d6-5592-4827-a253-12a9ee4783b1},1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f, +{1, +{4,bd98b060-1b8b-48b7-a575-20e9f075f191,f129b882-ad00-42d6-b955-3499abbe967c, +{0, +{1, +{0,0,db29e233-6e54-4ee0-becb-d918aec28d42},"СозданиеFixturesДляНачальногоЗаполненияБазы", +{1,"ru","Создание fixtures для начального заполнения базы"},"",0,0} +},4bde79a9-e308-4a4f-9526-427ff7b05423,"",99e5fc46-2b74-422a-8731-ff39e15eefbd},4, +{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, +{3daea016-69b7-4ed4-9453-127911372fe6,2,4757cf39-19aa-4067-8d10-1fedb568e7ad,87502c3a-d318-40d9-a888-4d4cf603f7fc}, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,99e5fc46-2b74-422a-8731-ff39e15eefbd,4bde79a9-e308-4a4f-9526-427ff7b05423}, +{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0} +} +} } \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/copyinfo" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/copyinfo" index 7a0c14b..cc5cb26 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/copyinfo" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/copyinfo" @@ -1,16 +1,19 @@ -{4, -{2, -{99e5fc46-2b74-422a-8731-ff39e15eefbd,99e5fc46-2b74-422a-8731-ff39e15eefbd,1, -{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"} -}, -{db29e233-6e54-4ee0-becb-d918aec28d42,db29e233-6e54-4ee0-becb-d918aec28d42,1, -{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"СозданиеFixturesДляНачальногоЗаполненияБазы"} -} -}, -{1, -{bd98b060-1b8b-48b7-a575-20e9f075f191,db29e233-6e54-4ee0-becb-d918aec28d42,0} -}, -{0}, -{0,0}, -{0} +{4, +{3, +{4bde79a9-e308-4a4f-9526-427ff7b05423,4bde79a9-e308-4a4f-9526-427ff7b05423,1, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"ФормаУпр"} +}, +{99e5fc46-2b74-422a-8731-ff39e15eefbd,99e5fc46-2b74-422a-8731-ff39e15eefbd,1, +{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"} +}, +{db29e233-6e54-4ee0-becb-d918aec28d42,db29e233-6e54-4ee0-becb-d918aec28d42,1, +{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"СозданиеFixturesДляНачальногоЗаполненияБазы"} +} +}, +{1, +{bd98b060-1b8b-48b7-a575-20e9f075f191,db29e233-6e54-4ee0-becb-d918aec28d42,0} +}, +{0}, +{0,0}, +{0} } \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/version" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/version" index c23bfe2..92ae86a 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/version" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/version" @@ -1,3 +1,3 @@ -{ -{216,0} +{ +{216,0} } \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/versions" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/versions" index 191e6c3..d14c636 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/versions" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/und/versions" @@ -1 +1 @@ -{1,11,"",d26d6a4d-e2cb-40e7-8448-beeda04c56d5,"4757cf39-19aa-4067-8d10-1fedb568e7ad",7988311a-dc83-4d61-aaab-d2a088a6d671,"4757cf39-19aa-4067-8d10-1fedb568e7ad.0",406f3a19-5df9-4915-8266-c3e26ea72278,"99e5fc46-2b74-422a-8731-ff39e15eefbd",5e2279aa-4e76-467c-9f17-64238ce2abeb,"99e5fc46-2b74-422a-8731-ff39e15eefbd.0",3bb15e21-1a49-4558-8c9a-705216575f34,"af8543d6-5592-4827-a253-12a9ee4783b1",e21b5fe3-2e23-43b9-9e77-4079eaa914ac,"copyinfo",0cdc0d95-847b-4408-b6d7-424082619c28,"db29e233-6e54-4ee0-becb-d918aec28d42.0",09505828-c7c8-4a0a-8e9b-7acb77ef4aa1,"root",271844d7-4623-4146-8bbf-3cae9ac7320e,"version",8bbd5fe6-e682-4bf5-8207-8578497be136,"versions",67691443-0aee-46fc-a4cb-49a4a48ee2b4} \ No newline at end of file +{1,15,"",8182f731-7d38-4cf2-90ff-adf8344bbe60,"4757cf39-19aa-4067-8d10-1fedb568e7ad",eb4da30f-d268-490e-af57-cf59d35571b8,"4757cf39-19aa-4067-8d10-1fedb568e7ad.0",f5e376e6-71f3-42a9-9a9e-8634f7b8efe2,"4bde79a9-e308-4a4f-9526-427ff7b05423",ecba2d6c-d489-4eda-9ad2-d1ba173c89d2,"4bde79a9-e308-4a4f-9526-427ff7b05423.0",f5ee8fcf-407b-4f84-8ebe-a53acf819d26,"87502c3a-d318-40d9-a888-4d4cf603f7fc",d13af6f0-9bc9-4926-baac-0ec521cc0e17,"87502c3a-d318-40d9-a888-4d4cf603f7fc.0",b6137008-8ff6-4ea3-b05d-9276e95a6f4e,"99e5fc46-2b74-422a-8731-ff39e15eefbd",eacae476-7baf-4492-a3a5-ea47c9680c86,"99e5fc46-2b74-422a-8731-ff39e15eefbd.0",d28843b3-91a0-4ad8-994f-079cb69025c0,"af8543d6-5592-4827-a253-12a9ee4783b1",82657b01-77d1-4957-a3fc-630f2f1db0c6,"copyinfo",0d1fa46d-c38e-442d-a087-8c42d22fd2a8,"db29e233-6e54-4ee0-becb-d918aec28d42.0",9350733b-d904-4912-b5f6-865373611dcc,"root",65e0ed47-02f1-435a-8ba9-6b3dc53ee86e,"version",3d9a278e-9636-429d-9c69-0e515ea3e0d4,"versions",e6275912-659f-4e64-ab11-0f6a5080534e} \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\234\320\260\320\272\320\265\321\202\320\260\320\274_mxl.txt" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\234\320\260\320\272\320\265\321\202\320\260\320\274_mxl.txt" index b6c0091..cf58c9a 100644 --- "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\234\320\260\320\272\320\265\321\202\320\260\320\274_mxl.txt" +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/\320\234\320\260\320\272\320\265\321\202\321\213/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\234\320\260\320\272\320\265\321\202\320\260\320\274_mxl.txt" @@ -1,3 +1,3 @@ -Имя макета Количество строк - +Имя макета Количество строк + ИмяМакета КолСтрок \ No newline at end of file diff --git "a/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/\320\234\320\260\320\272\320\265\321\202\321\213/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\320\272\321\201\321\202\320\260\320\234\320\276\320\264\321\203\320\273\321\217xUnit.txt" "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/\320\234\320\260\320\272\320\265\321\202\321\213/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\320\272\321\201\321\202\320\260\320\234\320\276\320\264\321\203\320\273\321\217xUnit.txt" new file mode 100644 index 0000000..3e87694 --- /dev/null +++ "b/src/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213/\320\234\320\260\320\272\320\265\321\202\321\213/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\320\272\321\201\321\202\320\260\320\234\320\276\320\264\321\203\320\273\321\217xUnit.txt" @@ -0,0 +1,61 @@ +Перем юТест; + +Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт + + юТест = ЮнитТестирование; + ВсеТесты = Новый Массив; + + %1% + + Возврат ВсеТесты; + +КонецФункции + +Функция ПолучитьСправочникПоРеквизиту(ИмяСпр,ИмяРеквизита,ЗначениеРеквизита) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | __ИмяСпр__.Ссылка Как Ссылка + |ИЗ + | Справочник.__ИмяСпр__ КАК __ИмяСпр__ + |ГДЕ + | __ИмяСпр__.__ИмяРеквизита__ = &ЗначениеРеквизита"; + + + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяСпр__",ИмяСпр); + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяРеквизита__",ИмяРеквизита); + Запрос.УстановитьПараметр("ЗначениеРеквизита", ЗначениеРеквизита); + + РезультатЗапроса = Запрос.Выполнить(); + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + Возврат ВыборкаДетальныеЗаписи.Ссылка; + КонецЦикла; + + Возврат Справочники[ИмяСпр].ПустаяСсылка(); +КонецФункции + +Функция ПолучитьДокументПоНомеру(ИмяДок,НомерДок,ДатаДок) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | __ИмяДок__.Ссылка Как Ссылка + |ИЗ + | Документ.__ИмяДок__ КАК __ИмяДок__ + |ГДЕ + | __ИмяДок__.Номер = &ЗначениеРеквизита"; + + + Запрос.Текст = СтрЗаменить(Запрос.Текст,"__ИмяДок__",ИмяДок); + Запрос.УстановитьПараметр("ЗначениеРеквизита", НомерДок); + + РезультатЗапроса = Запрос.Выполнить(); + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + Возврат ВыборкаДетальныеЗаписи.Ссылка; + КонецЦикла; + + Возврат Документы[ИмяДок].ПустаяСсылка(); +КонецФункции + +%2% \ No newline at end of file diff --git "a/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213.epf" "b/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213.epf" index 8c32b93..e5599f7 100644 Binary files "a/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213.epf" and "b/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265Fixtures\320\224\320\273\321\217\320\235\320\260\321\207\320\260\320\273\321\214\320\275\320\276\320\263\320\276\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\221\320\260\320\267\321\213.epf" differ