1
0
mirror of https://github.com/SergeFocus/1C-Functin-to-yEd.git synced 2024-12-07 11:00:56 +02:00

Дополнительно обработки: Генерация UML диаграммы движений документов & Генерация XGML-диаграммы движений документов для yEd

This commit is contained in:
s.skurskiy@fundament.ua 2018-03-18 18:48:33 +02:00
parent b3e3dc95e7
commit 08b9903ac6
29 changed files with 3203 additions and 1 deletions

BIN
GeneratorUML.epf Normal file

Binary file not shown.

View File

@ -105,4 +105,10 @@
Доступно только в управляемой форме обработки под 8.2.
P.S. Для установки Graphviz и yEd можно использовать скрипт
`./tools/windows/env-install.cmd`
`./tools/windows/env-install.cmd`
## Дополнительно обработки:
КартаДвижений XGML-диаграммы для yEd.epf - [Генерация XGML-диаграммы движений документов для yEd](http://start1c.blogspot.com/2014/06/xgml-yed.html)
GeneratorUML.epf - [Генерация UML диаграммы движений документов](http://start1c.blogspot.ru/2014/01/uml.html)

View File

@ -0,0 +1,196 @@
&НаКлиентеНаСервереБезКонтекста
Функция ДлинаСтрелки(КоличествоЭлементов)
Тело = "-";
Для сч = 1 По Цел(КоличествоЭлементов / 3)- 1 Цикл
Тело = Тело + "-";
КонецЦикла;
Возврат Тело;
КонецФункции // ДлинаСтрелки()
&НаСервереБезКонтекста
Функция ТипРегистра(Регистр)
Если Метаданные.РегистрыНакопления.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыНакопления";
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыРасчета";
ИначеЕсли Метаданные.РегистрыБухгалтерии.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыБухгалтерии";
ИначеЕсли Метаданные.РегистрыСведений.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыСведений";
Иначе
ТипРегистра = "";
КонецЕсли;
Возврат ТипРегистра;
КонецФункции
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры
&НаСервере
Процедура СформироватьНаСервере()
Если Метаданные.Документы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Регистры.Очистить();
ТекстUML.Очистить();
ТекстUML.ДобавитьСтроку("@startuml");
Если LeftToRight Тогда
ТекстUML.ДобавитьСтроку("left to right direction");
КонецЕсли;
ТекстUMLДобавитьСтрокуГруппы("rectangle Документы {");
Для Каждого Док Из Метаданные.Документы Цикл
ТекстUML.ДобавитьСтроку(" (" + УбратьСимволы(Док.Синоним) + ") as (" + Док.Имя + ")");
Для Каждого Движение Из Док.Движения Цикл
ТипРегистра = ТипРегистра(Движение);
СтрокаТЗ = Регистры.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ, Движение);
СтрокаТЗ.Документ = Док.Имя;
СтрокаТЗ.ТипРегистра = ТипРегистра;
КонецЦикла;
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы("}");
#Область Запрос
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Регистры", Регистры.Выгрузить());
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(Регистры.Имя КАК СТРОКА(255)) КАК Имя,
| ВЫРАЗИТЬ(Регистры.Документ КАК СТРОКА(255)) КАК Документ,
| ВЫРАЗИТЬ(Регистры.ТипРегистра КАК СТРОКА(255)) КАК ТипРегистра,
| ВЫРАЗИТЬ(Регистры.ВидРегистра КАК СТРОКА(255)) КАК ВидРегистра,
| ВЫРАЗИТЬ(Регистры.Синоним КАК СТРОКА(1024)) КАК Синоним
|ПОМЕСТИТЬ ТЗ
|ИЗ
| &Регистры КАК Регистры
|
|ИНДЕКСИРОВАТЬ ПО
| ТипРегистра,
| Имя
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.Имя КАК Имя,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТЗ.Документ) КАК Количество,
| ТЗ.ТипРегистра КАК ТипРегистра
|ПОМЕСТИТЬ Связи
|ИЗ
| ТЗ КАК ТЗ
|
|СГРУППИРОВАТЬ ПО
| ТЗ.Имя,
| ТЗ.ТипРегистра
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.ТипРегистра КАК ТипРегистра,
| ТЗ.Имя КАК Имя,
| ТЗ.ВидРегистра КАК ВидРегистра,
| ТЗ.Синоним
|ИЗ
| ТЗ КАК ТЗ
|
|СГРУППИРОВАТЬ ПО
| ТЗ.Имя,
| ТЗ.ТипРегистра,
| ТЗ.ВидРегистра,
| ТЗ.Синоним
|
|УПОРЯДОЧИТЬ ПО
| ТипРегистра,
| ВидРегистра,
| Имя
|ИТОГИ ПО
| ТипРегистра,
| ВидРегистра
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.Документ КАК Документ,
| ТЗ.Имя КАК Имя,
| ТЗ.ТипРегистра,
| Связи.Количество
|ИЗ
| ТЗ КАК ТЗ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Связи КАК Связи
| ПО ТЗ.Имя = Связи.Имя
| И ТЗ.ТипРегистра = Связи.ТипРегистра
|
|УПОРЯДОЧИТЬ ПО
| Документ,
| Имя";
#КонецОбласти
Результат = Запрос.ВыполнитьПакет();
Группы = Результат[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Группы.Следующий() Цикл
ТекстUMLДобавитьСтрокуГруппы("rectangle " + СокрЛП(Группы.ТипРегистра) + " {");
Подгруппа = Группы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Подгруппа.Следующий() Цикл
ТекстUMLДобавитьСтрокуГруппы(?(ПустаяСтрока(Подгруппа.ВидРегистра), "", " rectangle " + СокрЛП(Подгруппа.ВидРегистра) + " {"));
РегистрыГруппы = Подгруппа.Выбрать();
Пока РегистрыГруппы.Следующий() Цикл
ТекстUML.ДобавитьСтроку(?(ПустаяСтрока(Подгруппа.ВидРегистра), " ", " ") + "(" + УбратьСимволы(СокрЛП(РегистрыГруппы.Синоним)) + ") as (" + СокрЛП(РегистрыГруппы.ТипРегистра) + СокрЛП(РегистрыГруппы.Имя) + ")");
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы(?(ПустаяСтрока(Подгруппа.ВидРегистра), "", " }"));
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы("}");
КонецЦикла;
НаправлениеРегистра = Новый Структура;
НаправлениеРегистра.Вставить("РегистрыНакопления", "-up");
НаправлениеРегистра.Вставить("РегистрыРасчета", "-right");
НаправлениеРегистра.Вставить("РегистрыБухгалтерии", "-down");
НаправлениеРегистра.Вставить("РегистрыСведений", "-left");
Связи = Результат[3].Выбрать();
Пока Связи.Следующий() Цикл
ТекстUML.ДобавитьСтроку(СокрЛП(Связи.ТипРегистра) + СокрЛП(Связи.Имя) + " <" + НаправлениеРегистра[СокрЛП(Связи.ТипРегистра)] + ДлинаСтрелки(Связи.Количество) + СокрЛП(Связи.Документ));
КонецЦикла;
ТекстUML.ДобавитьСтроку("@enduml");
КонецПроцедуры
Функция УбратьСимволы(Знач СтрокаДанных)
СтрокаДанных = СтрЗаменить(СтрокаДанных, "(", "");
СтрокаДанных = СтрЗаменить(СтрокаДанных, ")", "");
Возврат СтрокаДанных;
КонецФункции
&НаСервере
Процедура ТекстUMLДобавитьСтрокуГруппы(СтрокаUML)
Если ОтобразитьГруппы Тогда
ТекстUML.ДобавитьСтроку(СтрокаUML);
КонецЕсли;
КонецПроцедуры

View File

@ -0,0 +1,450 @@
{27,
{18,
{
{1,1,
{"ru","Обработка Generator UML"}
},6,2},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},25,0,2,
{0,2,1},
{0,3,1},1,
{0,2,2},2,
{0,2,3},
{0,3,3},0,0,
{7,1,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},0,1,
{1,1,
{4,
{1,1,
{"ru","Страница"}
},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},-1,1,1,"Страница",1,
{3,4,
{0}
},
{3,4,
{0}
}
}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,8,0,1,2,0,0,0,0},
{2,392,1,1,3,0,0,8,0},
{2,259,0,1,4,0,0,33,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0},
{0}
},
{4,
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2,
{2,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},7,1,0,00000000-0000-0000-0000-000000000000},
{1,0},0,0,100,0},9,2,0,2,0,1,
{5,f444e255-5170-45cd-a09e-a91e4733c948,3,1,3,
{6,bca1d66b-ae70-49ba-a8b2-7f1048733641,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаВыполнитьНажатие",
{1,"КнопкаВыполнитьНажатие",
{1,2,
{"ru","Кнопка выполнить нажатие"},
{"uk","Кнопка выполнить нажатие"}
},
{1,2,
{"ru","Кнопка выполнить нажатие"},
{"uk","Кнопка выполнить нажатие"}
},
{1,2,
{"ru","Кнопка выполнить нажатие"},
{"uk","Кнопка выполнить нажатие"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},0},
{6,e2fa6379-90f5-497e-9f4b-55e62bc21dd4,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,696262cf-3a79-4632-a365-0a1c36ae20b6,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,1,00000000-0000-0000-0000-000000000000,142,
{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,bca1d66b-ae70-49ba-a8b2-7f1048733641,
{8,"ОсновныеДействияФормыВыполнить",0,1,
{1,2,
{"ru","Выполнить"},
{"uk","Выполнить"}
},1,f444e255-5170-45cd-a09e-a91e4733c948,1,1e2,0,1,1,0,1,0,0},e2fa6379-90f5-497e-9f4b-55e62bc21dd4,
{8,"Разделитель",0,1,
{1,0},0,f444e255-5170-45cd-a09e-a91e4733c948,2,1e2,2,1,1,0,1,0,0},696262cf-3a79-4632-a365-0a1c36ae20b6,
{8,"ОсновныеДействияФормыЗакрыть",0,1,
{1,2,
{"ru","Закрыть"},
{"uk","Закрыть"}
},1,f444e255-5170-45cd-a09e-a91e4733c948,3,1e2,0,1,1,0,1,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,36a8637c-ae25-435d-839f-0e72d0be95b0,1,0,0}
},
{8,0,267,400,292,1,
{0,
{2,2,1,-25},
{2,-1,6,0}
},
{0,
{2,0,1,0},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,2,1},1,
{0,2,0},0,0,0,0,0,0,4,1,1},
{14,"ОсновныеДействияФормы",0,0,0,0},
{0}
},
{14c4a229-bfc3-42fe-9ce1-2da049fd0109,3,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},6,1,00000000-0000-0000-0000-000000000000,
{0},0,0},
{8,8,8,392,227,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,1,-65},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,2,
{0,5,0},
{0,6,0},0,0,0,0,0,1,1,0,0},
{14,"ТекстUML",4294967295,0,0,0},
{0}
},
{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,5,
{1,
{
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},6,
{1,1,
{"ru","ОтобразитьГруппы"}
},1,0,1,0,100,1},4,0,0,0,0,0},
{0}
},
{8,8,232,201,259,1,
{0,
{2,3,1,5},
{2,-1,6,0}
},
{0,
{2,5,0,27},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,5,2,193},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,5,1},0,1,
{0,5,3},0,0,0,0,2,2,0,0},
{14,"ОтобразитьГруппы",4294967295,0,0,0},
{0}
},
{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,6,
{1,
{
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},6,
{1,1,
{"ru","Left To Right dierction"}
},1,0,1,0,100,1},4,0,0,0,0,0},
{0}
},
{8,206,232,392,259,1,
{0,
{2,3,1,5},
{2,-1,6,0}
},
{0,
{2,6,0,27},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,6,2,186},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,6,1},0,1,
{0,6,3},0,0,0,0,3,3,0,0},
{14,"LeftToRight",4294967295,0,0,0},
{0}
}
}
},400,292,1,0,1,4,4,21,400,292,96},
{
{1},9,
{4,
{
{1},0,0,1,"ОбработкаОбъект",
{"Pattern",
{"#",d8437fe3-62e5-46a1-bab0-f119d83ca55f}
}
},
{
{2},0,0,1,"LeftToRight",
{"Pattern",
{"B"}
}
},
{
{3},0,0,1,"ОтобразитьГруппы",
{"Pattern",
{"B"}
}
},
{
{5},0,0,1,"Регистры",
{"Pattern",
{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
}
}
},
{2,
{5,
{1,
{3}
}
},
{6,
{1,
{2}
}
}
}
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
{0,0},
{0},1}
},
{1,
{70000,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПередОткрытием",
{1,"ПередОткрытием",
{1,2,
{"ru","Перед открытием"},
{"uk","Перед открытием"}
},
{1,2,
{"ru","Перед открытием"},
{"uk","Перед открытием"}
},
{1,2,
{"ru","Перед открытием"},
{"uk","Перед открытием"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{0},
{0},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},1,2,0,0,1,1}

View File

@ -0,0 +1,200 @@

Процедура КнопкаВыполнитьНажатие(Кнопка)
СформироватьНаСервере();
КонецПроцедуры
Функция ДлинаСтрелки(КоличествоЭлементов)
Тело = "-";
Для сч = 1 По Цел(КоличествоЭлементов / 3)- 1 Цикл
Тело = Тело + "-";
КонецЦикла;
Возврат Тело;
КонецФункции // ДлинаСтрелки()
Функция ТипРегистра(Регистр)
Если Метаданные.РегистрыНакопления.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыНакопления";
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыРасчета";
ИначеЕсли Метаданные.РегистрыБухгалтерии.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыБухгалтерии";
ИначеЕсли Метаданные.РегистрыСведений.Содержит(Регистр) Тогда
ТипРегистра = "РегистрыСведений";
Иначе
ТипРегистра = "";
КонецЕсли;
Возврат ТипРегистра;
КонецФункции
Процедура СформироватьНаСервере()
Если Метаданные.Документы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ЭтаФорма.Регистры.Очистить();
ЭлементыФормы.ТекстUML.Очистить();
ЭлементыФормы.ТекстUML.ДобавитьСтроку("@startuml");
Если LeftToRight Тогда
ЭлементыФормы.ТекстUML.ДобавитьСтроку("left to right direction");
КонецЕсли;
ТекстUMLДобавитьСтрокуГруппы("rectangle Документы {");
Для Каждого Док Из Метаданные.Документы Цикл
ЭлементыФормы.ТекстUML.ДобавитьСтроку(" (" + УбратьСимволы(Док.Синоним) + ") as (" + Док.Имя + ")");
Для Каждого Движение Из Док.Движения Цикл
ТипРегистра = ТипРегистра(Движение);
СтрокаТЗ = ЭтаФорма.Регистры.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ, Движение);
СтрокаТЗ.Документ = Док.Имя;
СтрокаТЗ.ТипРегистра = ТипРегистра;
КонецЦикла;
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы("}");
#Область Запрос
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Регистры", Регистры.Скопировать() );
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(Регистры.Имя КАК СТРОКА(255)) КАК Имя,
| ВЫРАЗИТЬ(Регистры.Документ КАК СТРОКА(255)) КАК Документ,
| ВЫРАЗИТЬ(Регистры.ТипРегистра КАК СТРОКА(255)) КАК ТипРегистра,
| ВЫРАЗИТЬ(Регистры.ВидРегистра КАК СТРОКА(255)) КАК ВидРегистра,
| ВЫРАЗИТЬ(Регистры.Синоним КАК СТРОКА(1024)) КАК Синоним
|ПОМЕСТИТЬ ТЗ
|ИЗ
| &Регистры КАК Регистры
|
|ИНДЕКСИРОВАТЬ ПО
| ТипРегистра,
| Имя
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.Имя КАК Имя,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТЗ.Документ) КАК Количество,
| ТЗ.ТипРегистра КАК ТипРегистра
|ПОМЕСТИТЬ Связи
|ИЗ
| ТЗ КАК ТЗ
|
|СГРУППИРОВАТЬ ПО
| ТЗ.Имя,
| ТЗ.ТипРегистра
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.ТипРегистра КАК ТипРегистра,
| ТЗ.Имя КАК Имя,
| ТЗ.ВидРегистра КАК ВидРегистра,
| ТЗ.Синоним
|ИЗ
| ТЗ КАК ТЗ
|
|СГРУППИРОВАТЬ ПО
| ТЗ.Имя,
| ТЗ.ТипРегистра,
| ТЗ.ВидРегистра,
| ТЗ.Синоним
|
|УПОРЯДОЧИТЬ ПО
| ТипРегистра,
| ВидРегистра,
| Имя
|ИТОГИ ПО
| ТипРегистра,
| ВидРегистра
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.Документ КАК Документ,
| ТЗ.Имя КАК Имя,
| ТЗ.ТипРегистра,
| Связи.Количество
|ИЗ
| ТЗ КАК ТЗ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Связи КАК Связи
| ПО ТЗ.Имя = Связи.Имя
| И ТЗ.ТипРегистра = Связи.ТипРегистра
|
|УПОРЯДОЧИТЬ ПО
| Документ,
| Имя";
#КонецОбласти
Результат = Запрос.ВыполнитьПакет();
Группы = Результат[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Группы.Следующий() Цикл
ТекстUMLДобавитьСтрокуГруппы("rectangle " + СокрЛП(Группы.ТипРегистра) + " {");
Подгруппа = Группы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Подгруппа.Следующий() Цикл
ТекстUMLДобавитьСтрокуГруппы(?(ПустаяСтрока(Подгруппа.ВидРегистра), "", " rectangle " + СокрЛП(Подгруппа.ВидРегистра) + " {"));
РегистрыГруппы = Подгруппа.Выбрать();
Пока РегистрыГруппы.Следующий() Цикл
ЭлементыФормы.ТекстUML.ДобавитьСтроку(?(ПустаяСтрока(Подгруппа.ВидРегистра), " ", " ") + "(" + УбратьСимволы(СокрЛП(РегистрыГруппы.Синоним)) + ") as (" + СокрЛП(РегистрыГруппы.ТипРегистра) + СокрЛП(РегистрыГруппы.Имя) + ")");
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы(?(ПустаяСтрока(Подгруппа.ВидРегистра), "", " }"));
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы("}");
КонецЦикла;
НаправлениеРегистра = Новый Структура;
НаправлениеРегистра.Вставить("РегистрыНакопления", "-up");
НаправлениеРегистра.Вставить("РегистрыРасчета", "-right");
НаправлениеРегистра.Вставить("РегистрыБухгалтерии", "-down");
НаправлениеРегистра.Вставить("РегистрыСведений", "-left");
Связи = Результат[3].Выбрать();
Пока Связи.Следующий() Цикл
ЭлементыФормы.ТекстUML.ДобавитьСтроку(СокрЛП(Связи.ТипРегистра) + СокрЛП(Связи.Имя) + " <" + НаправлениеРегистра[СокрЛП(Связи.ТипРегистра)] + ДлинаСтрелки(Связи.Количество) + СокрЛП(Связи.Документ));
КонецЦикла;
ЭлементыФормы.ТекстUML.ДобавитьСтроку("@enduml");
КонецПроцедуры
Функция УбратьСимволы(Знач СтрокаДанных)
СтрокаДанных = СтрЗаменить(СтрокаДанных, "(", "");
СтрокаДанных = СтрЗаменить(СтрокаДанных, ")", "");
Возврат СтрокаДанных;
КонецФункции
Процедура ТекстUMLДобавитьСтрокуГруппы(СтрокаUML)
Если ОтобразитьГруппы Тогда
ЭлементыФормы.ТекстUML.ДобавитьСтроку(СтрокаUML);
КонецЕсли;
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ЭтаФорма.Регистры.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ЭтаФорма.Регистры.Колонки.Добавить("Документ", Новый ОписаниеТипов("Строка"));
ЭтаФорма.Регистры.Колонки.Добавить("ТипРегистра", Новый ОписаниеТипов("Строка"));
ЭтаФорма.Регистры.Колонки.Добавить("ВидРегистра", Новый ОписаниеТипов("Строка"));
ЭтаФорма.Регистры.Колонки.Добавить("Синоним", Новый ОписаниеТипов("Строка"));
КонецПроцедуры

View File

@ -0,0 +1 @@
Form\Форма\Форма.bsl-->0ad249d1-ed3e-4608-8915-d4152ecd01c3.0 (417, 613)

View File

@ -0,0 +1,9 @@
0ad249d1-ed3e-4608-8915-d4152ecd01c3-->und\0ad249d1-ed3e-4608-8915-d4152ecd01c3
0ad249d1-ed3e-4608-8915-d4152ecd01c3.0-->und\0ad249d1-ed3e-4608-8915-d4152ecd01c3.0
c588685e-bb31-48f6-ab9e-1e26ca9b6f7d-->und\c588685e-bb31-48f6-ab9e-1e26ca9b6f7d
c588685e-bb31-48f6-ab9e-1e26ca9b6f7d.0-->Form\Форма_
copyinfo-->und\copyinfo
fe802ec6-a2d9-4f8a-a18c-9ffe361a695a-->und\fe802ec6-a2d9-4f8a-a18c-9ffe361a695a
root-->und\root
version-->und\version
versions-->und\versions

View File

@ -0,0 +1,15 @@
{1,
{1,
{0,
{12,
{1,
{0,0,0ad249d1-ed3e-4608-8915-d4152ecd01c3},"Форма",
{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}

View File

@ -0,0 +1,832 @@
{3,
{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
{1,9f2e5ddb-3492-4f5d-8f0d-416b8d1d5c5b,"ПриСозданииНаСервере",1,0,9f2e5ddb-3492-4f5d-8f0d-416b8d1d5c5b,0,1},
{0},1,
{21,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},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,0},1,a9f3b1ac-f51b-431e-b102-55a69acdecad,
{28,
{7,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
{0,
{0,
{"B",1},0}
},0,"ФормаСформировать",
{1,0},1,
{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
{0},3,0,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,
{10,
{8,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},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,1,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,0,3,3},
{"U"},1,0,0,1,0,0,0,3,3,3,0,0,0,0},1,0,0,0,3,3},2,cd5394d0-7dda-4b56-8927-93ccbe967a01,
{21,
{12,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},5,"ГруппаНастройки",
{1,1,
{"ru","Настройки"}
},
{1,1,
{"ru","Группа настройки"}
},0,1,0,0,0,2,2,
{3,4,
{0}
},
{7,3,0,1,100},
{0,0,0},1,
{23,1,0,2,1,
{0},
{1,0},
{"Pattern"},"",
{3,4,
{0}
},0,0,0,1,
{1,0},0,0,3,3,2,0,1,1},2,77ffcc29-7f2d-4223-b22f-19666e7250ba,
{33,
{4,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,0},1,
{21,
{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},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,0,3,3},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{10,
{6,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},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,1,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,0,3,3},3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
{33,
{9,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},3,"LeftToRight",1,0,
{1,0},
{1,0},
{1,
{5}
},
{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,0},1,
{21,
{10,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},8,"LeftToRightКонтекстноеМеню",
{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,0,3,3},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{10,
{11,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},0,"LeftToRightРасширеннаяПодсказка",
{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,1,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,0,3,3},3,3},1,0,1,
{10,
{13,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},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,1,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,0,3,3},0,3,3},77ffcc29-7f2d-4223-b22f-19666e7250ba,
{33,
{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},7,"ТекстUML",0,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,
{4,50,10,1,1,0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},1,0,0,1,0},
{0,1,0},1,
{21,
{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},8,"ТекстUMLКонтекстноеМеню",
{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,0,3,3},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{10,
{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},0,"ТекстUMLРасширеннаяПодсказка",
{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,1,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,0,3,3},3,3},"","",1,
{21,
{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,
{10,
{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,1,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,0,3,3},0,3,3},1,"",0,0,0,0,0,0,3,3,0,0,0,100,1,1,0},"&НаКлиентеНаСервереБезКонтекста
Функция ДлинаСтрелки(КоличествоЭлементов)
Тело = ""-"";
Для сч = 1 По Цел(КоличествоЭлементов / 3)- 1 Цикл
Тело = Тело + ""-"";
КонецЦикла;
Возврат Тело;
КонецФункции // ДлинаСтрелки()
&НаСервереБезКонтекста
Функция ТипРегистра(Регистр)
Если Метаданные.РегистрыНакопления.Содержит(Регистр) Тогда
ТипРегистра = ""РегистрыНакопления"";
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(Регистр) Тогда
ТипРегистра = ""РегистрыРасчета"";
ИначеЕсли Метаданные.РегистрыБухгалтерии.Содержит(Регистр) Тогда
ТипРегистра = ""РегистрыБухгалтерии"";
ИначеЕсли Метаданные.РегистрыСведений.Содержит(Регистр) Тогда
ТипРегистра = ""РегистрыСведений"";
Иначе
ТипРегистра = """";
КонецЕсли;
Возврат ТипРегистра;
КонецФункции
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры
&НаСервере
Процедура СформироватьНаСервере()
Если Метаданные.Документы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Регистры.Очистить();
ТекстUML.Очистить();
ТекстUML.ДобавитьСтроку(""@startuml"");
Если LeftToRight Тогда
ТекстUML.ДобавитьСтроку(""left to right direction"");
КонецЕсли;
ТекстUMLДобавитьСтрокуГруппы(""rectangle Документы {"");
Для Каждого Док Из Метаданные.Документы Цикл
ТекстUML.ДобавитьСтроку("" ("" + УбратьСимволы(Док.Синоним) + "") as ("" + Док.Имя + "")"");
Для Каждого Движение Из Док.Движения Цикл
ТипРегистра = ТипРегистра(Движение);
СтрокаТЗ = Регистры.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЗ, Движение);
СтрокаТЗ.Документ = Док.Имя;
СтрокаТЗ.ТипРегистра = ТипРегистра;
КонецЦикла;
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы(""}"");
#Область Запрос
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(""Регистры"", Регистры.Выгрузить());
Запрос.Текст =
""ВЫБРАТЬ
| ВЫРАЗИТЬ(Регистры.Имя КАК СТРОКА(255)) КАК Имя,
| ВЫРАЗИТЬ(Регистры.Документ КАК СТРОКА(255)) КАК Документ,
| ВЫРАЗИТЬ(Регистры.ТипРегистра КАК СТРОКА(255)) КАК ТипРегистра,
| ВЫРАЗИТЬ(Регистры.ВидРегистра КАК СТРОКА(255)) КАК ВидРегистра,
| ВЫРАЗИТЬ(Регистры.Синоним КАК СТРОКА(1024)) КАК Синоним
|ПОМЕСТИТЬ ТЗ
|ИЗ
| &Регистры КАК Регистры
|
|ИНДЕКСИРОВАТЬ ПО
| ТипРегистра,
| Имя
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.Имя КАК Имя,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТЗ.Документ) КАК Количество,
| ТЗ.ТипРегистра КАК ТипРегистра
|ПОМЕСТИТЬ Связи
|ИЗ
| ТЗ КАК ТЗ
|
|СГРУППИРОВАТЬ ПО
| ТЗ.Имя,
| ТЗ.ТипРегистра
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.ТипРегистра КАК ТипРегистра,
| ТЗ.Имя КАК Имя,
| ТЗ.ВидРегистра КАК ВидРегистра,
| ТЗ.Синоним
|ИЗ
| ТЗ КАК ТЗ
|
|СГРУППИРОВАТЬ ПО
| ТЗ.Имя,
| ТЗ.ТипРегистра,
| ТЗ.ВидРегистра,
| ТЗ.Синоним
|
|УПОРЯДОЧИТЬ ПО
| ТипРегистра,
| ВидРегистра,
| Имя
|ИТОГИ ПО
| ТипРегистра,
| ВидРегистра
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.Документ КАК Документ,
| ТЗ.Имя КАК Имя,
| ТЗ.ТипРегистра,
| Связи.Количество
|ИЗ
| ТЗ КАК ТЗ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Связи КАК Связи
| ПО ТЗ.Имя = Связи.Имя
| И ТЗ.ТипРегистра = Связи.ТипРегистра
|
|УПОРЯДОЧИТЬ ПО
| Документ,
| Имя"";
#КонецОбласти
Результат = Запрос.ВыполнитьПакет();
Группы = Результат[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Группы.Следующий() Цикл
ТекстUMLДобавитьСтрокуГруппы(""rectangle "" + СокрЛП(Группы.ТипРегистра) + "" {"");
Подгруппа = Группы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Подгруппа.Следующий() Цикл
ТекстUMLДобавитьСтрокуГруппы(?(ПустаяСтрока(Подгруппа.ВидРегистра), """", "" rectangle "" + СокрЛП(Подгруппа.ВидРегистра) + "" {""));
РегистрыГруппы = Подгруппа.Выбрать();
Пока РегистрыГруппы.Следующий() Цикл
ТекстUML.ДобавитьСтроку(?(ПустаяСтрока(Подгруппа.ВидРегистра), "" "", "" "") + ""("" + УбратьСимволы(СокрЛП(РегистрыГруппы.Синоним)) + "") as ("" + СокрЛП(РегистрыГруппы.ТипРегистра) + СокрЛП(РегистрыГруппы.Имя) + "")"");
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы(?(ПустаяСтрока(Подгруппа.ВидРегистра), """", "" }""));
КонецЦикла;
ТекстUMLДобавитьСтрокуГруппы(""}"");
КонецЦикла;
НаправлениеРегистра = Новый Структура;
НаправлениеРегистра.Вставить(""РегистрыНакопления"", ""-up"");
НаправлениеРегистра.Вставить(""РегистрыРасчета"", ""-right"");
НаправлениеРегистра.Вставить(""РегистрыБухгалтерии"", ""-down"");
НаправлениеРегистра.Вставить(""РегистрыСведений"", ""-left"");
Связи = Результат[3].Выбрать();
Пока Связи.Следующий() Цикл
ТекстUML.ДобавитьСтроку(СокрЛП(Связи.ТипРегистра) + СокрЛП(Связи.Имя) + "" <"" + НаправлениеРегистра[СокрЛП(Связи.ТипРегистра)] + ДлинаСтрелки(Связи.Количество) + СокрЛП(Связи.Документ));
КонецЦикла;
ТекстUML.ДобавитьСтроку(""@enduml"");
КонецПроцедуры
Функция УбратьСимволы(Знач СтрокаДанных)
СтрокаДанных = СтрЗаменить(СтрокаДанных, ""("", """");
СтрокаДанных = СтрЗаменить(СтрокаДанных, "")"", """");
Возврат СтрокаДанных;
КонецФункции
&НаСервере
Процедура ТекстUMLДобавитьСтрокуГруппы(СтрокаUML)
Если ОтобразитьГруппы Тогда
ТекстUML.ДобавитьСтроку(СтрокаUML);
КонецЕсли;
КонецПроцедуры
",
{4,5,
{9,
{1},0,"Объект",
{1,0},
{"Pattern",
{"#",d8437fe3-62e5-46a1-bab0-f119d83ca55f}
},
{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,"ТекстUML",
{1,1,
{"ru","Текст UML"}
},
{"Pattern",
{"#",ebf766b1-f32c-11d3-9851-008048da1252}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,0},
{0,0},0,0,0,0,
{0,0},
{0,0}
},
{9,
{3},0,"Регистры",
{1,1,
{"ru","Регистры"}
},
{"Pattern",
{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,0},
{0,0},0,0,0,5,
{5,1,0,"Имя",
{1,1,
{"ru","Имя"}
},
{"Pattern",
{"S"}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,0},0},
{5,4,0,"Документ",
{1,1,
{"ru","Документ"}
},
{"Pattern",
{"S"}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,0},0},
{5,5,0,"ТипРегистра",
{1,1,
{"ru","Тип регистра"}
},
{"Pattern",
{"S"}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,0},0},
{5,2,0,"ВидРегистра",
{1,1,
{"ru","Вид регистра"}
},
{"Pattern",
{"S"}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,0},0},
{5,3,0,"Синоним",
{1,1,
{"ru","Синоним"}
},
{"Pattern",
{"S"}
},
{0,
{0,
{"B",1},0}
},
{0,
{0,
{"B",1},0}
},
{0,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,0},0,0,0,0,
{0,0},
{0,0}
},
{9,
{5},0,"LeftToRight",
{1,1,
{"ru","Left to right direction"}
},
{"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
L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
},
{0,0},
{0,1,
{8,
{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,1,0,0}
},
{0,0},
{0,0},0,0}

View File

@ -0,0 +1,15 @@
{1,
{1,
{0,
{12,
{1,
{0,0,c588685e-bb31-48f6-ab9e-1e26ca9b6f7d},"Форма_",
{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}

View File

@ -0,0 +1,19 @@
{4,
{3,
{0ad249d1-ed3e-4608-8915-d4152ecd01c3,0ad249d1-ed3e-4608-8915-d4152ecd01c3,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
},
{c588685e-bb31-48f6-ab9e-1e26ca9b6f7d,c588685e-bb31-48f6-ab9e-1e26ca9b6f7d,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма_"}
},
{f3ba1a90-9f16-479a-8051-11a4016ec754,f3ba1a90-9f16-479a-8051-11a4016ec754,1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"GeneratorUML"}
}
},
{1,
{d8437fe3-62e5-46a1-bab0-f119d83ca55f,f3ba1a90-9f16-479a-8051-11a4016ec754,0}
},
{0},
{0,0},
{0}
}

View File

@ -0,0 +1,17 @@
{1,
{fe802ec6-a2d9-4f8a-a18c-9ffe361a695a},1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
{1,
{4,d8437fe3-62e5-46a1-bab0-f119d83ca55f,7dc68c5a-4fac-40ae-8506-c219f70d5da6,
{0,
{1,
{0,0,f3ba1a90-9f16-479a-8051-11a4016ec754},"GeneratorUML",
{1,"ru","Generator UML"},"",0,0}
},0ad249d1-ed3e-4608-8915-d4152ecd01c3,"",c588685e-bb31-48f6-ab9e-1e26ca9b6f7d},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,0ad249d1-ed3e-4608-8915-d4152ecd01c3,c588685e-bb31-48f6-ab9e-1e26ca9b6f7d},
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
}
}
}

View File

@ -0,0 +1 @@
{2,fe802ec6-a2d9-4f8a-a18c-9ffe361a695a,}

View File

@ -0,0 +1,5 @@
{
{216,0,
{80214,0}
}
}

View File

@ -0,0 +1 @@
{1,10,"",c5eed308-f8e4-4fee-8856-4fa70bae8a1f,"0ad249d1-ed3e-4608-8915-d4152ecd01c3",6070500f-b577-49a4-8022-fd6b1664b4ac,"0ad249d1-ed3e-4608-8915-d4152ecd01c3.0",588d873a-1169-4cfa-b409-c13f92426d42,"c588685e-bb31-48f6-ab9e-1e26ca9b6f7d",f9435b73-95ba-4c84-824c-0c40b5bc3d0b,"c588685e-bb31-48f6-ab9e-1e26ca9b6f7d.0",83c25ac1-fe9d-4528-85f6-a6946cdde65a,"copyinfo",adf9c8b2-0b22-483b-8ec2-2c0ccb23761e,"fe802ec6-a2d9-4f8a-a18c-9ffe361a695a",3ed4e2cd-e7c0-42b3-94ff-8e7f272bf170,"root",901bf451-3ed6-4a01-8ea3-2e74aac5f02b,"version",6ffadd81-731d-417d-9df8-03626105f04c,"versions",2cacdd2f-c353-4ab2-ba6b-e7f118f2c454}

View File

@ -0,0 +1,258 @@
&НаСервереБезКонтекста
Функция ПолучитьТаблицуРегистров()
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("ВидДокумента");
Таблица.Колонки.Добавить("Регистр");
Таблица.Колонки.Добавить("ВидРегистра");
Для Каждого мДокумент Из Метаданные.Документы Цикл
ВидДокумента = мДокумент.Имя;
Для Каждого мДвижение Из мДокумент.Движения Цикл
Строка = Таблица.Добавить();
Строка.ВидДокумента = ВидДокумента;
Строка.Регистр = мДвижение.Имя;
Строка.ВидРегистра = ОпределитьВидРегистра(мДвижение);
КонецЦикла;
КонецЦикла;
Возврат Таблица;
КонецФункции // ПолучитьТаблицуРегистров()
&НаСервереБезКонтекста
Функция ОпределитьВидРегистра(мДвижение)
Перем ЗначениеВозврата;
Если Метаданные.РегистрыБухгалтерии.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрБухгалтерии";
ИначеЕсли Метаданные.РегистрыНакопления.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрНакопления";
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрРасчета";
ИначеЕсли Метаданные.РегистрыСведений.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрСведений";
КонецЕсли;
Возврат ЗначениеВозврата;
КонецФункции // ОпределитьВидРегистра()
&НаСервереБезКонтекста
Функция ПолучитьТекстXGML()
ТаблицаРегистров = ПолучитьТаблицуРегистров();
СводнаяТаблица = ТаблицаРегистров.Скопировать(, "Регистр, ВидРегистра");
СводнаяТаблица.Свернуть("Регистр, ВидРегистра");
ТекстЗапроса = "";
Для Каждого СтрокаТаблицы Из СводнаяТаблица Цикл
ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", "
| ОБЪЕДИНИТЬ ВСЕ
|") + ПолучитьТекстЗапроса(СтрокаТаблицы.Регистр, СтрокаТаблицы.ВидРегистра);
КонецЦикла;
Если ПустаяСтрока(ТекстЗапроса) Тогда
Возврат Неопределено;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|ИТОГИ
| СУММА(КоличествоДокументов)
|ПО
| ВидРегистра,
| ИмяРегистра";
Запрос = Новый Запрос(ТекстЗапроса);
Возврат ОбработататьРезультатЗапроса(Запрос.Выполнить());
КонецФункции// ТекстXGML()
&НаСервереБезКонтекста
Функция ОбработататьРезультатЗапроса(Результат)
Если Результат.Пустой() Тогда
Возврат Неопределено;
КонецЕсли;
КэшРегистраторы = Новый Соответствие;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("section");
ЗаписьXML.ЗаписатьАтрибут("name", "xgml");
ЗаписьXML.ЗаписатьНачалоЭлемента("section");
ЗаписьXML.ЗаписатьАтрибут("name", "graph");
СоздатьГруппуXGML(ЗаписьXML, "Документы", "Документы");
ВидыРегистров = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВидыРегистров.Следующий() Цикл
ВидРегистра = ВидыРегистров.ВидРегистра;
СоздатьГруппуXGML(ЗаписьXML, ВидРегистра);
Регистры = ВидыРегистров.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Регистры.Следующий() Цикл
ИмяРегистра = Регистры.ИмяРегистра;
СоздатьЭлементXGML(ЗаписьXML, ИмяРегистра, ВидРегистра);
Регистраторы = Регистры.Выбрать();
Пока Регистраторы.Следующий() Цикл
ВидДокумента = Строка(Регистраторы.ВидДокумента);
Если НЕ ЗначениеЗаполнено(КэшРегистраторы[ВидДокумента]) Тогда
СоздатьЭлементXGML(ЗаписьXML, ВидДокумента, "Документы");
КэшРегистраторы.Вставить(ВидДокумента, Истина);
КонецЕсли;
СоздатьСвязьXGML(ЗаписьXML, ВидДокумента, ИмяРегистра);
КонецЦикла;
КонецЦикла;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //graph
ЗаписьXML.ЗаписатьКонецЭлемента(); //xgml
Возврат ЗаписьXML.Закрыть();
КонецФункции // ОбработататьРезультатЗапроса()
&НаСервереБезКонтекста
Процедура СоздатьСвязьXGML(ЗаписьXML, Начало, Конец)
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "edge");
ЗаписатьАтрибутXGML(ЗаписьXML, "source", "string", Начало);
ЗаписатьАтрибутXGML(ЗаписьXML, "target", "string", Конец);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "graphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "string", "#000000");
ЗаписатьАтрибутXGML(ЗаписьXML, "targetArrow", "string", "standard");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписьXML.ЗаписатьКонецЭлемента(); //edge
КонецПроцедуры // СоздатьСвязьXGML()
&НаСервереБезКонтекста
Процедура СоздатьЭлементXGML(ЗаписьXML, ИмяЭлемента, ГруппаЭлемента = "");
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "node");
ЗаписатьАтрибутXGML(ЗаписьXML, "id", "string", ИмяЭлемента);
ЗаписатьАтрибутXGML(ЗаписьXML, "label", "string", ИмяЭлемента);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "graphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "type", "string", "rectangle");
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "string", "#FFCC00");
ЗаписатьАтрибутXGML(ЗаписьXML, "outline", "string", "#000000");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "LabelGraphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "text", "String", ИмяЭлемента);
ЗаписатьАтрибутXGML(ЗаписьXML, "fontSize", "int", "12");
ЗаписьXML.ЗаписатьКонецЭлемента(); //LabelGraphics
Если НЕ ПустаяСтрока(ГруппаЭлемента) Тогда
ЗаписатьАтрибутXGML(ЗаписьXML, "gid", "String", ГруппаЭлемента);
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента(); //node
КонецПроцедуры // СоздатьЭлементXGML()
&НаСервереБезКонтекста
Процедура СоздатьГруппуXGML(ЗаписьXML, ИмяГруппы, ЗаголовокГруппы = "")
Если ПустаяСтрока(ЗаголовокГруппы) Тогда
ЗаголовокГруппы = ИмяГруппы;
КонецЕсли;
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "node");
ЗаписатьАтрибутXGML(ЗаписьXML, "id", "string", ИмяГруппы);
ЗаписатьАтрибутXGML(ЗаписьXML, "label", "string", ЗаголовокГруппы);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "graphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "type", "string", "roundrectangle");
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "string", "#F5F5F5");
ЗаписатьАтрибутXGML(ЗаписьXML, "outline", "string", "#000000");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "LabelGraphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "text", "String", ЗаголовокГруппы);
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "String", "#EBEBEB");
ЗаписатьАтрибутXGML(ЗаписьXML, "fontSize", "int", "14");
ЗаписатьАтрибутXGML(ЗаписьXML, "anchor", "String", "t");
ЗаписьXML.ЗаписатьКонецЭлемента(); //LabelGraphics
ЗаписатьАтрибутXGML(ЗаписьXML, "isGroup", "boolean", "true");
ЗаписьXML.ЗаписатьКонецЭлемента(); //node
КонецПроцедуры // СоздатьГруппуXGML()
&НаСервереБезКонтекста
Процедура ЗаписатьНачалоСекцииXGML(ЗаписьXML, name)
ЗаписьXML.ЗаписатьНачалоЭлемента("section");
ЗаписьXML.ЗаписатьАтрибут("name", name);
КонецПроцедуры // ЗаписатьНачалоСекции()
&НаСервереБезКонтекста
Процедура ЗаписатьАтрибутXGML(ЗаписьXML, key, type, text)
ЗаписьXML.ЗаписатьНачалоЭлемента("attribute");
ЗаписьXML.ЗаписатьАтрибут("key", key);
ЗаписьXML.ЗаписатьАтрибут("type", type);
ЗаписьXML.ЗаписатьТекст(text);
ЗаписьXML.ЗаписатьКонецЭлемента(); //attribute
КонецПроцедуры // ЗаписатьАтрибутXGML()
&НаСервереБезКонтекста
Функция ПолучитьТекстЗапроса(ИмяРегистра, ВидРегистра)
ВидРегистраСтрока = """" + ВидРегистра + """";
ИмяРегистраСтрока = """" + ИмяРегистра + """";
ТекстЗапроса =
"ВЫБРАТЬ
| ТИПЗНАЧЕНИЯ(Движения.Регистратор) КАК ВидДокумента,
| " + ВидРегистраСтрока+ " КАК ВидРегистра,
| " + ИмяРегистраСтрока+ " КАК ИмяРегистра,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Движения.Регистратор) КАК КоличествоДокументов
|ИЗ
| "+ВидРегистра+"."+ИмяРегистра+" КАК Движения
|
|СГРУППИРОВАТЬ ПО
| ТИПЗНАЧЕНИЯ(Движения.Регистратор)";
Возврат ТекстЗапроса;
КонецФункции
&НаКлиенте
Процедура Сформировать(Команда)
ТекстXGML = ПолучитьТекстXGML();
КонецПроцедуры

View File

@ -0,0 +1,335 @@
{27,
{18,
{
{1,1,
{"ru","Обработка Карта движений"}
},9,3},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},25,0,2,
{0,3,1},
{0,9,1},2,
{0,2,2},
{0,3,2},3,
{0,2,3},
{0,3,3},
{0,9,3},0,0,
{7,1,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},0,1,
{1,1,
{4,
{1,1,
{"ru","Страница1"}
},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Страница1",1,
{3,4,
{0}
},
{3,4,
{0}
}
}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,33,0,1,2,0,0,0,0},
{2,400,1,1,3,0,0,0,0},
{2,270,0,1,4,0,0,33,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0},
{0}
},
{3,
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2,
{2,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},4,1,0,00000000-0000-0000-0000-000000000000},
{1,0},0,0,100,0},9,2,1,0,1,1,
{5,244e84b1-2a7d-4375-9fa4-25f692e22a14,6,1,0,1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0,
{0,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0}
},
{8,0,0,400,25,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,2,0,25},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,2,1},0,0,0,0,0,0,0,1,1,0},
{14,"КоманднаяПанель1",0,0,0,0},
{0}
},
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,3,
{2,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},7,1,0,00000000-0000-0000-0000-000000000000},
{1,0},0,0,100,0},9,2,0,2,0,1,
{5,1f28e5f6-42b8-4132-935f-e9ccabbe7ee7,3,1,3,
{6,b9b0b76f-3c73-4320-bad3-a73ca0678165,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,c2dddf18-2a9e-4a56-bcfb-7de95c8bac32,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаВыполнитьНажатие",
{1,"КнопкаВыполнитьНажатие",
{1,2,
{"ru","Кнопка выполнить нажатие"},
{"uk","Кнопка выполнить нажатие"}
},
{1,2,
{"ru","Кнопка выполнить нажатие"},
{"uk","Кнопка выполнить нажатие"}
},
{1,2,
{"ru","Кнопка выполнить нажатие"},
{"uk","Кнопка выполнить нажатие"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},0},
{6,0a7d7e43-c26c-4fa4-8430-3f10c99e3df2,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,c2dddf18-2a9e-4a56-bcfb-7de95c8bac32,
{8,"ОсновныеДействияФормыВыполнить",0,1,
{1,2,
{"ru","Выполнить"},
{"uk","Выполнить"}
},1,1f28e5f6-42b8-4132-935f-e9ccabbe7ee7,1,1e2,0,1,1,0,1,0,0},0a7d7e43-c26c-4fa4-8430-3f10c99e3df2,
{8,"Разделитель",0,1,
{1,0},0,1f28e5f6-42b8-4132-935f-e9ccabbe7ee7,2,1e2,2,1,1,0,1,0,0},b9b0b76f-3c73-4320-bad3-a73ca0678165,
{8,"ОсновныеДействияФормыЗакрыть",0,1,
{1,2,
{"ru","Закрыть"},
{"uk","Закрыть"}
},1,1f28e5f6-42b8-4132-935f-e9ccabbe7ee7,3,1e2,0,1,1,0,1,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,8034f069-a986-4e06-93a6-5f2c0c1565a0,1,0,0}
},
{8,0,278,400,303,1,
{0,
{2,3,1,-25},
{2,-1,6,0}
},
{0,
{2,0,1,0},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,3,1},1,
{0,3,0},0,0,0,0,0,1,3,1,1},
{14,"ОсновныеДействияФормы",0,0,0,0},
{0}
},
{14c4a229-bfc3-42fe-9ce1-2da049fd0109,9,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},6,1,00000000-0000-0000-0000-000000000000,
{0},0,0},
{8,8,33,394,270,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,1,-33},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-6},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,0,0,0,0,0,0,2,2,0,0},
{14,"ТекстXGML",4294967295,0,0,0},
{0}
}
}
},400,303,1,0,1,4,4,11,400,303,96},
{
{1},5,
{1,
{
{1},0,0,1,"ОбработкаОбъект",
{"Pattern",
{"#",9a81e79a-3f27-464a-a8b7-32ff4b14a7dc}
}
}
},
{0}
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
{0,0},
{0},1}
},
{0},1,4,1,0,0,0,
{0},
{0},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},1,2,0,0,1,1}

View File

@ -0,0 +1,245 @@
Функция ПолучитьТаблицуРегистров()
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("ВидДокумента");
Таблица.Колонки.Добавить("Регистр");
Таблица.Колонки.Добавить("ВидРегистра");
Для Каждого мДокумент Из Метаданные.Документы Цикл
ВидДокумента = мДокумент.Имя;
Для Каждого мДвижение Из мДокумент.Движения Цикл
Строка = Таблица.Добавить();
Строка.ВидДокумента = ВидДокумента;
Строка.Регистр = мДвижение.Имя;
Строка.ВидРегистра = ОпределитьВидРегистра(мДвижение);
КонецЦикла;
КонецЦикла;
Возврат Таблица;
КонецФункции // ПолучитьТаблицуРегистров()
Функция ОпределитьВидРегистра(мДвижение)
Перем ЗначениеВозврата;
Если Метаданные.РегистрыБухгалтерии.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрБухгалтерии";
ИначеЕсли Метаданные.РегистрыНакопления.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрНакопления";
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрРасчета";
ИначеЕсли Метаданные.РегистрыСведений.Содержит(мДвижение) Тогда
ЗначениеВозврата = "РегистрСведений";
КонецЕсли;
Возврат ЗначениеВозврата;
КонецФункции // ОпределитьВидРегистра()
Функция ПолучитьТекстXGML()
ТаблицаРегистров = ПолучитьТаблицуРегистров();
СводнаяТаблица = ТаблицаРегистров.Скопировать(, "Регистр, ВидРегистра");
СводнаяТаблица.Свернуть("Регистр, ВидРегистра");
ТекстЗапроса = "";
Для Каждого СтрокаТаблицы Из СводнаяТаблица Цикл
ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", "
| ОБЪЕДИНИТЬ ВСЕ
|") + ПолучитьТекстЗапроса(СтрокаТаблицы.Регистр, СтрокаТаблицы.ВидРегистра);
КонецЦикла;
Если ПустаяСтрока(ТекстЗапроса) Тогда
Возврат Неопределено;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|ИТОГИ
| СУММА(КоличествоДокументов)
|ПО
| ВидРегистра,
| ИмяРегистра";
Запрос = Новый Запрос(ТекстЗапроса);
Возврат ОбработататьРезультатЗапроса(Запрос.Выполнить());
КонецФункции// ТекстXGML()
Функция ОбработататьРезультатЗапроса(Результат)
Если Результат.Пустой() Тогда
Возврат Неопределено;
КонецЕсли;
КэшРегистраторы = Новый Соответствие;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("section");
ЗаписьXML.ЗаписатьАтрибут("name", "xgml");
ЗаписьXML.ЗаписатьНачалоЭлемента("section");
ЗаписьXML.ЗаписатьАтрибут("name", "graph");
СоздатьГруппуXGML(ЗаписьXML, "Документы", "Документы");
ВидыРегистров = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВидыРегистров.Следующий() Цикл
ВидРегистра = ВидыРегистров.ВидРегистра;
СоздатьГруппуXGML(ЗаписьXML, ВидРегистра);
Регистры = ВидыРегистров.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Регистры.Следующий() Цикл
ИмяРегистра = Регистры.ИмяРегистра;
СоздатьЭлементXGML(ЗаписьXML, ИмяРегистра, ВидРегистра);
Регистраторы = Регистры.Выбрать();
Пока Регистраторы.Следующий() Цикл
ВидДокумента = Строка(Регистраторы.ВидДокумента);
Если НЕ ЗначениеЗаполнено(КэшРегистраторы[ВидДокумента]) Тогда
СоздатьЭлементXGML(ЗаписьXML, ВидДокумента, "Документы");
КэшРегистраторы.Вставить(ВидДокумента, Истина);
КонецЕсли;
СоздатьСвязьXGML(ЗаписьXML, ВидДокумента, ИмяРегистра);
КонецЦикла;
КонецЦикла;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //graph
ЗаписьXML.ЗаписатьКонецЭлемента(); //xgml
Возврат ЗаписьXML.Закрыть();
КонецФункции // ОбработататьРезультатЗапроса()
Процедура СоздатьСвязьXGML(ЗаписьXML, Начало, Конец)
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "edge");
ЗаписатьАтрибутXGML(ЗаписьXML, "source", "string", Начало);
ЗаписатьАтрибутXGML(ЗаписьXML, "target", "string", Конец);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "graphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "string", "#000000");
ЗаписатьАтрибутXGML(ЗаписьXML, "targetArrow", "string", "standard");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписьXML.ЗаписатьКонецЭлемента(); //edge
КонецПроцедуры // СоздатьСвязьXGML()
Процедура СоздатьЭлементXGML(ЗаписьXML, ИмяЭлемента, ГруппаЭлемента = "");
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "node");
ЗаписатьАтрибутXGML(ЗаписьXML, "id", "string", ИмяЭлемента);
ЗаписатьАтрибутXGML(ЗаписьXML, "label", "string", ИмяЭлемента);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "graphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "type", "string", "rectangle");
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "string", "#FFCC00");
ЗаписатьАтрибутXGML(ЗаписьXML, "outline", "string", "#000000");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "LabelGraphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "text", "String", ИмяЭлемента);
ЗаписатьАтрибутXGML(ЗаписьXML, "fontSize", "int", "12");
ЗаписьXML.ЗаписатьКонецЭлемента(); //LabelGraphics
Если НЕ ПустаяСтрока(ГруппаЭлемента) Тогда
ЗаписатьАтрибутXGML(ЗаписьXML, "gid", "String", ГруппаЭлемента);
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента(); //node
КонецПроцедуры // СоздатьЭлементXGML()
Процедура СоздатьГруппуXGML(ЗаписьXML, ИмяГруппы, ЗаголовокГруппы = "")
Если ПустаяСтрока(ЗаголовокГруппы) Тогда
ЗаголовокГруппы = ИмяГруппы;
КонецЕсли;
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "node");
ЗаписатьАтрибутXGML(ЗаписьXML, "id", "string", ИмяГруппы);
ЗаписатьАтрибутXGML(ЗаписьXML, "label", "string", ЗаголовокГруппы);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "graphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "type", "string", "roundrectangle");
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "string", "#F5F5F5");
ЗаписатьАтрибутXGML(ЗаписьXML, "outline", "string", "#000000");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписатьНачалоСекцииXGML(ЗаписьXML, "LabelGraphics");
ЗаписатьАтрибутXGML(ЗаписьXML, "text", "String", ЗаголовокГруппы);
ЗаписатьАтрибутXGML(ЗаписьXML, "fill", "String", "#EBEBEB");
ЗаписатьАтрибутXGML(ЗаписьXML, "fontSize", "int", "14");
ЗаписатьАтрибутXGML(ЗаписьXML, "anchor", "String", "t");
ЗаписьXML.ЗаписатьКонецЭлемента(); //LabelGraphics
ЗаписатьАтрибутXGML(ЗаписьXML, "isGroup", "boolean", "true");
ЗаписьXML.ЗаписатьКонецЭлемента(); //node
КонецПроцедуры // СоздатьГруппуXGML()
Процедура ЗаписатьНачалоСекцииXGML(ЗаписьXML, name)
ЗаписьXML.ЗаписатьНачалоЭлемента("section");
ЗаписьXML.ЗаписатьАтрибут("name", name);
КонецПроцедуры // ЗаписатьНачалоСекции()
Процедура ЗаписатьАтрибутXGML(ЗаписьXML, key, type, text)
ЗаписьXML.ЗаписатьНачалоЭлемента("attribute");
ЗаписьXML.ЗаписатьАтрибут("key", key);
ЗаписьXML.ЗаписатьАтрибут("type", type);
ЗаписьXML.ЗаписатьТекст(text);
ЗаписьXML.ЗаписатьКонецЭлемента(); //attribute
КонецПроцедуры // ЗаписатьАтрибутXGML()
Функция ПолучитьТекстЗапроса(ИмяРегистра, ВидРегистра)
ВидРегистраСтрока = """" + ВидРегистра + """";
ИмяРегистраСтрока = """" + ИмяРегистра + """";
ТекстЗапроса =
"ВЫБРАТЬ
| ТИПЗНАЧЕНИЯ(Движения.Регистратор) КАК ВидДокумента,
| " + ВидРегистраСтрока+ " КАК ВидРегистра,
| " + ИмяРегистраСтрока+ " КАК ИмяРегистра,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Движения.Регистратор) КАК КоличествоДокументов
|ИЗ
| "+ВидРегистра+"."+ИмяРегистра+" КАК Движения
|
|СГРУППИРОВАТЬ ПО
| ТИПЗНАЧЕНИЯ(Движения.Регистратор)";
Возврат ТекстЗапроса;
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЭлементыФормы.ТекстXGML.УстановитьТекст(ПолучитьТекстXGML());
КонецПроцедуры

View File

@ -0,0 +1 @@
Form\Форма\Форма.bsl-->d39855c8-66ff-4c01-9237-21ef1084e8ca.0 (180, 438)

View File

@ -0,0 +1,9 @@
ba6a7c6e-96eb-4bcc-b976-e3e4e0bfc787-->und\ba6a7c6e-96eb-4bcc-b976-e3e4e0bfc787
copyinfo-->und\copyinfo
d39855c8-66ff-4c01-9237-21ef1084e8ca-->und\d39855c8-66ff-4c01-9237-21ef1084e8ca
d39855c8-66ff-4c01-9237-21ef1084e8ca.0-->und\d39855c8-66ff-4c01-9237-21ef1084e8ca.0
d78e9e79-b1e4-4504-ab55-76f5a4139a5c-->und\d78e9e79-b1e4-4504-ab55-76f5a4139a5c
d78e9e79-b1e4-4504-ab55-76f5a4139a5c.0-->Form\Форма_
root-->und\root
version-->und\version
versions-->und\versions

View File

@ -0,0 +1,17 @@
{1,
{ba6a7c6e-96eb-4bcc-b976-e3e4e0bfc787},1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,
{1,
{4,9a81e79a-3f27-464a-a8b7-32ff4b14a7dc,4c5c92b8-1914-413c-87d1-627a22bd39b6,
{0,
{1,
{0,0,4920dfaf-268a-4308-a0d1-466d2dcca69c},"КартаДвижений",
{1,"ru","Карта движений"},"",0,0}
},d39855c8-66ff-4c01-9237-21ef1084e8ca,"",d78e9e79-b1e4-4504-ab55-76f5a4139a5c},4,
{2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0},
{3daea016-69b7-4ed4-9453-127911372fe6,0},
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,2,d39855c8-66ff-4c01-9237-21ef1084e8ca,d78e9e79-b1e4-4504-ab55-76f5a4139a5c},
{ec6bb5e5-b7a8-4d75-bec9-658107a699cf,0}
}
}
}

View File

@ -0,0 +1,19 @@
{4,
{3,
{4920dfaf-268a-4308-a0d1-466d2dcca69c,4920dfaf-268a-4308-a0d1-466d2dcca69c,1,
{c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"КартаДвижений"}
},
{d39855c8-66ff-4c01-9237-21ef1084e8ca,d39855c8-66ff-4c01-9237-21ef1084e8ca,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"}
},
{d78e9e79-b1e4-4504-ab55-76f5a4139a5c,d78e9e79-b1e4-4504-ab55-76f5a4139a5c,1,
{d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма_"}
}
},
{1,
{9a81e79a-3f27-464a-a8b7-32ff4b14a7dc,4920dfaf-268a-4308-a0d1-466d2dcca69c,0}
},
{0},
{0,0},
{0}
}

View File

@ -0,0 +1,15 @@
{1,
{1,
{0,
{12,
{1,
{0,0,d39855c8-66ff-4c01-9237-21ef1084e8ca},"Форма",
{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}

View File

@ -0,0 +1,514 @@
{3,
{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1,
{1,0},0,0,1,1,1,0,1,0,
{0,1,0},
{0},1,
{21,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},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,
{28,
{3,02023637-7868-4a5f-8576-835a76e0c9ba},0,1,
{0,
{0,
{"B",1},0}
},0,"ФормаСформировать",
{1,0},1,
{1,409b9a53-7f7e-4178-86c1-33176c7c7a7a},
{0},3,0,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,
{10,
{4,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,1,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,0,3,3},
{"U"},1,0,0,1,0,0,0,3,3,3,0,0,0,0},1,0,0,0,3,3},1,77ffcc29-7f2d-4223-b22f-19666e7250ba,
{33,
{1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},7,"ТекстXGML",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,
{4,50,10,1,1,0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},1,0,0,1,0},
{0,1,0},1,
{21,
{2,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},8,"ТекстXGMLКонтекстноеМеню",
{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,0,3,3},1,
{"Pattern"},
{"Pattern"},"","",
{0},0,0,1,
{10,
{5,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,0,0,"ТекстXGMLРасширеннаяПодсказка",
{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,1,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,0,3,3},3,3},"","",1,
{21,
{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,
{10,
{0},0,0,0,0,"NavigatorРасширеннаяПодсказка",
{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,1,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,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0},"&НаСервереБезКонтекста
Функция ПолучитьТаблицуРегистров()
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить(""ВидДокумента"");
Таблица.Колонки.Добавить(""Регистр"");
Таблица.Колонки.Добавить(""ВидРегистра"");
Для Каждого мДокумент Из Метаданные.Документы Цикл
ВидДокумента = мДокумент.Имя;
Для Каждого мДвижение Из мДокумент.Движения Цикл
Строка = Таблица.Добавить();
Строка.ВидДокумента = ВидДокумента;
Строка.Регистр = мДвижение.Имя;
Строка.ВидРегистра = ОпределитьВидРегистра(мДвижение);
КонецЦикла;
КонецЦикла;
Возврат Таблица;
КонецФункции // ПолучитьТаблицуРегистров()
&НаСервереБезКонтекста
Функция ОпределитьВидРегистра(мДвижение)
Перем ЗначениеВозврата;
Если Метаданные.РегистрыБухгалтерии.Содержит(мДвижение) Тогда
ЗначениеВозврата = ""РегистрБухгалтерии"";
ИначеЕсли Метаданные.РегистрыНакопления.Содержит(мДвижение) Тогда
ЗначениеВозврата = ""РегистрНакопления"";
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(мДвижение) Тогда
ЗначениеВозврата = ""РегистрРасчета"";
ИначеЕсли Метаданные.РегистрыСведений.Содержит(мДвижение) Тогда
ЗначениеВозврата = ""РегистрСведений"";
КонецЕсли;
Возврат ЗначениеВозврата;
КонецФункции // ОпределитьВидРегистра()
&НаСервереБезКонтекста
Функция ПолучитьТекстXGML()
ТаблицаРегистров = ПолучитьТаблицуРегистров();
СводнаяТаблица = ТаблицаРегистров.Скопировать(, ""Регистр, ВидРегистра"");
СводнаяТаблица.Свернуть(""Регистр, ВидРегистра"");
ТекстЗапроса = """";
Для Каждого СтрокаТаблицы Из СводнаяТаблица Цикл
ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), """", ""
| ОБЪЕДИНИТЬ ВСЕ
|"") + ПолучитьТекстЗапроса(СтрокаТаблицы.Регистр, СтрокаТаблицы.ВидРегистра);
КонецЦикла;
Если ПустаяСтрока(ТекстЗапроса) Тогда
Возврат Неопределено;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + ""
|ИТОГИ
| СУММА(КоличествоДокументов)
|ПО
| ВидРегистра,
| ИмяРегистра"";
Запрос = Новый Запрос(ТекстЗапроса);
Возврат ОбработататьРезультатЗапроса(Запрос.Выполнить());
КонецФункции// ТекстXGML()
&НаСервереБезКонтекста
Функция ОбработататьРезультатЗапроса(Результат)
Если Результат.Пустой() Тогда
Возврат Неопределено;
КонецЕсли;
КэшРегистраторы = Новый Соответствие;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента(""section"");
ЗаписьXML.ЗаписатьАтрибут(""name"", ""xgml"");
ЗаписьXML.ЗаписатьНачалоЭлемента(""section"");
ЗаписьXML.ЗаписатьАтрибут(""name"", ""graph"");
СоздатьГруппуXGML(ЗаписьXML, ""Документы"", ""Документы"");
ВидыРегистров = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВидыРегистров.Следующий() Цикл
ВидРегистра = ВидыРегистров.ВидРегистра;
СоздатьГруппуXGML(ЗаписьXML, ВидРегистра);
Регистры = ВидыРегистров.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Регистры.Следующий() Цикл
ИмяРегистра = Регистры.ИмяРегистра;
СоздатьЭлементXGML(ЗаписьXML, ИмяРегистра, ВидРегистра);
Регистраторы = Регистры.Выбрать();
Пока Регистраторы.Следующий() Цикл
ВидДокумента = Строка(Регистраторы.ВидДокумента);
Если НЕ ЗначениеЗаполнено(КэшРегистраторы[ВидДокумента]) Тогда
СоздатьЭлементXGML(ЗаписьXML, ВидДокумента, ""Документы"");
КэшРегистраторы.Вставить(ВидДокумента, Истина);
КонецЕсли;
СоздатьСвязьXGML(ЗаписьXML, ВидДокумента, ИмяРегистра);
КонецЦикла;
КонецЦикла;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //graph
ЗаписьXML.ЗаписатьКонецЭлемента(); //xgml
Возврат ЗаписьXML.Закрыть();
КонецФункции // ОбработататьРезультатЗапроса()
&НаСервереБезКонтекста
Процедура СоздатьСвязьXGML(ЗаписьXML, Начало, Конец)
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""edge"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""source"", ""string"", Начало);
ЗаписатьАтрибутXGML(ЗаписьXML, ""target"", ""string"", Конец);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""graphics"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""fill"", ""string"", ""#000000"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""targetArrow"", ""string"", ""standard"");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписьXML.ЗаписатьКонецЭлемента(); //edge
КонецПроцедуры // СоздатьСвязьXGML()
&НаСервереБезКонтекста
Процедура СоздатьЭлементXGML(ЗаписьXML, ИмяЭлемента, ГруппаЭлемента = """");
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""node"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""id"", ""string"", ИмяЭлемента);
ЗаписатьАтрибутXGML(ЗаписьXML, ""label"", ""string"", ИмяЭлемента);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""graphics"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""type"", ""string"", ""rectangle"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""fill"", ""string"", ""#FFCC00"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""outline"", ""string"", ""#000000"");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""LabelGraphics"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""text"", ""String"", ИмяЭлемента);
ЗаписатьАтрибутXGML(ЗаписьXML, ""fontSize"", ""int"", ""12"");
ЗаписьXML.ЗаписатьКонецЭлемента(); //LabelGraphics
Если НЕ ПустаяСтрока(ГруппаЭлемента) Тогда
ЗаписатьАтрибутXGML(ЗаписьXML, ""gid"", ""String"", ГруппаЭлемента);
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента(); //node
КонецПроцедуры // СоздатьЭлементXGML()
&НаСервереБезКонтекста
Процедура СоздатьГруппуXGML(ЗаписьXML, ИмяГруппы, ЗаголовокГруппы = """")
Если ПустаяСтрока(ЗаголовокГруппы) Тогда
ЗаголовокГруппы = ИмяГруппы;
КонецЕсли;
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""node"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""id"", ""string"", ИмяГруппы);
ЗаписатьАтрибутXGML(ЗаписьXML, ""label"", ""string"", ЗаголовокГруппы);
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""graphics"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""type"", ""string"", ""roundrectangle"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""fill"", ""string"", ""#F5F5F5"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""outline"", ""string"", ""#000000"");
ЗаписьXML.ЗаписатьКонецЭлемента(); //graphics
ЗаписатьНачалоСекцииXGML(ЗаписьXML, ""LabelGraphics"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""text"", ""String"", ЗаголовокГруппы);
ЗаписатьАтрибутXGML(ЗаписьXML, ""fill"", ""String"", ""#EBEBEB"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""fontSize"", ""int"", ""14"");
ЗаписатьАтрибутXGML(ЗаписьXML, ""anchor"", ""String"", ""t"");
ЗаписьXML.ЗаписатьКонецЭлемента(); //LabelGraphics
ЗаписатьАтрибутXGML(ЗаписьXML, ""isGroup"", ""boolean"", ""true"");
ЗаписьXML.ЗаписатьКонецЭлемента(); //node
КонецПроцедуры // СоздатьГруппуXGML()
&НаСервереБезКонтекста
Процедура ЗаписатьНачалоСекцииXGML(ЗаписьXML, name)
ЗаписьXML.ЗаписатьНачалоЭлемента(""section"");
ЗаписьXML.ЗаписатьАтрибут(""name"", name);
КонецПроцедуры // ЗаписатьНачалоСекции()
&НаСервереБезКонтекста
Процедура ЗаписатьАтрибутXGML(ЗаписьXML, key, type, text)
ЗаписьXML.ЗаписатьНачалоЭлемента(""attribute"");
ЗаписьXML.ЗаписатьАтрибут(""key"", key);
ЗаписьXML.ЗаписатьАтрибут(""type"", type);
ЗаписьXML.ЗаписатьТекст(text);
ЗаписьXML.ЗаписатьКонецЭлемента(); //attribute
КонецПроцедуры // ЗаписатьАтрибутXGML()
&НаСервереБезКонтекста
Функция ПолучитьТекстЗапроса(ИмяРегистра, ВидРегистра)
ВидРегистраСтрока = """""""" + ВидРегистра + """""""";
ИмяРегистраСтрока = """""""" + ИмяРегистра + """""""";
ТекстЗапроса =
""ВЫБРАТЬ
| ТИПЗНАЧЕНИЯ(Движения.Регистратор) КАК ВидДокумента,
| "" + ВидРегистраСтрока+ "" КАК ВидРегистра,
| "" + ИмяРегистраСтрока+ "" КАК ИмяРегистра,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Движения.Регистратор) КАК КоличествоДокументов
|ИЗ
| ""+ВидРегистра+"".""+ИмяРегистра+"" КАК Движения
|
|СГРУППИРОВАТЬ ПО
| ТИПЗНАЧЕНИЯ(Движения.Регистратор)"";
Возврат ТекстЗапроса;
КонецФункции
&НаКлиенте
Процедура Сформировать(Команда)
ТекстXGML = ПолучитьТекстXGML();
КонецПроцедуры
",
{4,2,
{9,
{1},0,"Объект",
{1,0},
{"Pattern",
{"#",9a81e79a-3f27-464a-a8b7-32ff4b14a7dc}
},
{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,"ТекстXGML",
{1,1,
{"ru","Текст XGML"}
},
{"Pattern",
{"S"}
},
{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
L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ
YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+}
},
{0,0},
{0,1,
{8,
{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,1,0,0}
},
{0,0},
{0,0},0,0}

View File

@ -0,0 +1,15 @@
{1,
{1,
{0,
{12,
{1,
{0,0,d78e9e79-b1e4-4504-ab55-76f5a4139a5c},"Форма_",
{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}

View File

@ -0,0 +1 @@
{2,ba6a7c6e-96eb-4bcc-b976-e3e4e0bfc787,}

View File

@ -0,0 +1,5 @@
{
{216,0,
{80214,0}
}
}

View File

@ -0,0 +1 @@
{1,10,"",3f318382-3bf5-4f0b-9f10-ff4647477f4b,"ba6a7c6e-96eb-4bcc-b976-e3e4e0bfc787",0c4cdaec-f38b-47a3-83b6-d4c16f108024,"copyinfo",41e4fe16-eef5-4983-b3d6-fa33935c83bc,"d39855c8-66ff-4c01-9237-21ef1084e8ca",fda7afb7-b498-4788-94ed-1b8c190f4845,"d39855c8-66ff-4c01-9237-21ef1084e8ca.0",3aec994d-15f7-4fa5-9b1d-5c5f9d1807d6,"d78e9e79-b1e4-4504-ab55-76f5a4139a5c",0e1e1316-e1a6-432f-94b2-6d8d91346025,"d78e9e79-b1e4-4504-ab55-76f5a4139a5c.0",8a04f2da-9441-49ff-8771-45777e5781e9,"root",d96cf930-a900-4ff2-a75a-8832ab105900,"version",b391483b-d348-424b-bdd9-3313299a30f8,"versions",129d8182-87ed-4ca5-98a7-28498d2b2eb7}