├── gitignore ├── ИТМ_ИсторияФормированияОтчетов ├── src │ ├── Reports │ │ └── ИТМ_АнализИсторииФормированияОтчетов │ │ │ ├── ManagerModule.bsl │ │ │ ├── ИТМ_АнализИсторииФормированияОтчетов.mdo │ │ │ └── ObjectModule.bsl │ ├── InformationRegisters │ │ ├── ИТМ_ИсторияФормированияОтчетов │ │ │ ├── RecordSetModule.bsl │ │ │ ├── Forms │ │ │ │ ├── ФормаЗаписи │ │ │ │ │ └── Module.bsl │ │ │ │ ├── ФормаВыбора │ │ │ │ │ ├── ConditionalAppearance.dcssca │ │ │ │ │ ├── Attributes │ │ │ │ │ │ └── Список │ │ │ │ │ │ │ └── ExtInfo │ │ │ │ │ │ │ └── ListSettings.dcss │ │ │ │ │ └── Module.bsl │ │ │ │ └── ФормаСписка │ │ │ │ │ ├── Module.bsl │ │ │ │ │ └── Attributes │ │ │ │ │ └── Список │ │ │ │ │ └── ExtInfo │ │ │ │ │ └── ListSettings.dcss │ │ │ ├── ManagerModule.bsl │ │ │ └── ИТМ_ИсторияФормированияОтчетов.mdo │ │ └── ИТМ_НастройкиИсторииФормированияОтчетов │ │ │ ├── RecordSetModule.bsl │ │ │ ├── Forms │ │ │ ├── ФормаВыбораОтчета │ │ │ │ ├── Module.bsl │ │ │ │ ├── Attributes │ │ │ │ │ └── Список │ │ │ │ │ │ └── ExtInfo │ │ │ │ │ │ └── ListSettings.dcss │ │ │ │ └── Form.form │ │ │ └── ФормаНастроек │ │ │ │ ├── Attributes │ │ │ │ └── Список │ │ │ │ │ └── ExtInfo │ │ │ │ │ └── ListSettings.dcss │ │ │ │ └── Module.bsl │ │ │ ├── ManagerModule.bsl │ │ │ ├── ИТМ_НастройкиИсторииФормированияОтчетов.mdo │ │ │ └── Templates │ │ │ └── ОтборыНеобходимостиЗаписи │ │ │ └── Template.dcs │ ├── DataProcessors │ │ └── ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов │ │ │ ├── ManagerModule.bsl │ │ │ ├── ObjectModule.bsl │ │ │ ├── Commands │ │ │ └── ПанельПодсистемы │ │ │ │ └── CommandModule.bsl │ │ │ ├── ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов.mdo │ │ │ └── Forms │ │ │ └── Форма │ │ │ └── Form.form │ ├── Roles │ │ ├── ИТМ_АнализИсторииФормированияОтчетов │ │ │ ├── ИТМ_АнализИсторииФормированияОтчетов.mdo │ │ │ └── Rights.rights │ │ ├── ИТМ_АдминистраторИсторииФормированияОтчетов │ │ │ ├── ИТМ_АдминистраторИсторииФормированияОтчетов.mdo │ │ │ └── Rights.rights │ │ ├── ИТМ_ПросмотрВсейИсторииФормированияОтчетов │ │ │ ├── ИТМ_ПросмотрВсейИсторииФормированияОтчетов.mdo │ │ │ └── Rights.rights │ │ └── ИТМ_ПросмотрСвоейИсторииФормированияОтчетов │ │ │ ├── ИТМ_ПросмотрСвоейИсторииФормированияОтчетов.mdo │ │ │ └── Rights.rights │ ├── CommonModules │ │ ├── ИТМ_ИсторияФормированияОтчетовВызовСервера │ │ │ ├── ИТМ_ИсторияФормированияОтчетовВызовСервера.mdo │ │ │ └── Module.bsl │ │ ├── ИТМ_ИсторияФормированияОтчетов │ │ │ └── ИТМ_ИсторияФормированияОтчетов.mdo │ │ ├── ИТМ_ИсторияФормированияОтчетовКлиент │ │ │ ├── ИТМ_ИсторияФормированияОтчетовКлиент.mdo │ │ │ └── Module.bsl │ │ ├── ОтчетыКлиентПереопределяемый │ │ │ ├── Module.bsl │ │ │ └── ОтчетыКлиентПереопределяемый.mdo │ │ ├── ОтчетыПереопределяемый │ │ │ ├── Module.bsl │ │ │ └── ОтчетыПереопределяемый.mdo │ │ ├── ИТМ_ИсторияФормированияОтчетовПереопределяемый │ │ │ ├── ИТМ_ИсторияФормированияОтчетовПереопределяемый.mdo │ │ │ └── Module.bsl │ │ ├── ИТМ_ИсторияФормированияОтчетовКлиентСервер │ │ │ ├── ИТМ_ИсторияФормированияОтчетовКлиентСервер.mdo │ │ │ └── Module.bsl │ │ └── ВариантыОтчетов │ │ │ ├── ВариантыОтчетов.mdo │ │ │ └── Module.bsl │ ├── Catalogs │ │ ├── Пользователи │ │ │ └── Пользователи.mdo │ │ ├── ВариантыОтчетов │ │ │ └── ВариантыОтчетов.mdo │ │ ├── ДополнительныеОтчетыИОбработки │ │ │ └── ДополнительныеОтчетыИОбработки.mdo │ │ ├── ИдентификаторыОбъектовРасширений │ │ │ └── ИдентификаторыОбъектовРасширений.mdo │ │ ├── ПредопределенныеВариантыОтчетов │ │ │ └── ПредопределенныеВариантыОтчетов.mdo │ │ ├── ПредопределенныеВариантыОтчетовРасширений │ │ │ └── ПредопределенныеВариантыОтчетовРасширений.mdo │ │ └── ИдентификаторыОбъектовМетаданных │ │ │ └── ИдентификаторыОбъектовМетаданных.mdo │ ├── Subsystems │ │ └── ИТМ_ИсторияФормированияОтчетов │ │ │ └── ИТМ_ИсторияФормированияОтчетов.mdo │ └── Configuration │ │ └── Configuration.mdo ├── .settings │ └── org.eclipse.core.resources.prefs ├── DT-INF │ └── PROJECT.PMF └── .project ├── docs └── img │ ├── 01.png │ ├── 02.png │ ├── 03.png │ ├── 04.png │ ├── 05.png │ ├── 06.png │ ├── 07.png │ ├── 08.png │ ├── 09.png │ ├── 10.png │ ├── 11.png │ ├── 12.png │ ├── 13.png │ ├── 14.png │ ├── 15.png │ ├── 16.png │ ├── 17.png │ ├── 18.png │ ├── 19.png │ ├── 20.png │ ├── 21.png │ ├── 22.png │ ├── 23.png │ ├── 24.png │ ├── 25.png │ ├── 26.png │ ├── 27.png │ ├── 28.png │ ├── 29.png │ └── 30.png ├── bsl-language-server.json ├── sonar-project.properties ├── README.MD └── LICENSE /gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .scannerwork -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Reports/ИТМ_АнализИсторииФормированияОтчетов/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/img/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/01.png -------------------------------------------------------------------------------- /docs/img/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/02.png -------------------------------------------------------------------------------- /docs/img/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/03.png -------------------------------------------------------------------------------- /docs/img/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/04.png -------------------------------------------------------------------------------- /docs/img/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/05.png -------------------------------------------------------------------------------- /docs/img/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/06.png -------------------------------------------------------------------------------- /docs/img/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/07.png -------------------------------------------------------------------------------- /docs/img/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/08.png -------------------------------------------------------------------------------- /docs/img/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/09.png -------------------------------------------------------------------------------- /docs/img/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/10.png -------------------------------------------------------------------------------- /docs/img/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/11.png -------------------------------------------------------------------------------- /docs/img/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/12.png -------------------------------------------------------------------------------- /docs/img/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/13.png -------------------------------------------------------------------------------- /docs/img/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/14.png -------------------------------------------------------------------------------- /docs/img/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/15.png -------------------------------------------------------------------------------- /docs/img/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/16.png -------------------------------------------------------------------------------- /docs/img/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/17.png -------------------------------------------------------------------------------- /docs/img/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/18.png -------------------------------------------------------------------------------- /docs/img/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/19.png -------------------------------------------------------------------------------- /docs/img/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/20.png -------------------------------------------------------------------------------- /docs/img/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/21.png -------------------------------------------------------------------------------- /docs/img/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/22.png -------------------------------------------------------------------------------- /docs/img/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/23.png -------------------------------------------------------------------------------- /docs/img/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/24.png -------------------------------------------------------------------------------- /docs/img/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/25.png -------------------------------------------------------------------------------- /docs/img/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/26.png -------------------------------------------------------------------------------- /docs/img/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/27.png -------------------------------------------------------------------------------- /docs/img/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/28.png -------------------------------------------------------------------------------- /docs/img/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/29.png -------------------------------------------------------------------------------- /docs/img/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magnit-tech/one-s-reports-history/HEAD/docs/img/30.png -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/RecordSetModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/DataProcessors/ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/DataProcessors/ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/RecordSetModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/DT-INF/PROJECT.PMF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Runtime-Version: 8.3.24 3 | Base-Project: configuration 4 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/Forms/ФормаВыбораОтчета/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область ОбработчикиСобытийФормы 4 | 5 | &НаСервере 6 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 7 | 8 | Список.Параметры.УстановитьЗначениеПараметра("ШаблонПоискаИмени", "Отчет.%"); 9 | 10 | КонецПроцедуры 11 | 12 | #КонецОбласти 13 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_АнализИсторииФормированияОтчетов/ИТМ_АнализИсторииФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_АнализИсторииФормированияОтчетов 4 | 5 | ru 6 | Анализ истории формирования отчетов (ИТМ) 7 | 8 | 9 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/DataProcessors/ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов/Commands/ПанельПодсистемы/CommandModule.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область ОбработчикиСобытий 4 | 5 | &НаКлиенте 6 | Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) 7 | 8 | ОткрытьФорму( 9 | "Обработка.ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов.Форма",, 10 | ПараметрыВыполненияКоманды.Источник); 11 | 12 | КонецПроцедуры 13 | 14 | #КонецОбласти -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_АдминистраторИсторииФормированияОтчетов/ИТМ_АдминистраторИсторииФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_АдминистраторИсторииФормированияОтчетов 4 | 5 | ru 6 | Администратор истории формирования отчетов (ИТМ) 7 | 8 | 9 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_ПросмотрВсейИсторииФормированияОтчетов/ИТМ_ПросмотрВсейИсторииФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ПросмотрВсейИсторииФормированияОтчетов 4 | 5 | ru 6 | Просмотр всей истории формирования отчетов (ИТМ) 7 | 8 | 9 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_ПросмотрСвоейИсторииФормированияОтчетов/ИТМ_ПросмотрСвоейИсторииФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ПросмотрСвоейИсторииФормированияОтчетов 4 | 5 | ru 6 | Просмотр своей истории формирования отчетов (ИТМ) 7 | 8 | 9 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетов 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.xtext.ui.shared.xtextBuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.xtext.ui.shared.xtextNature 16 | com._1c.g5.v8.dt.core.V8ExtensionNature 17 | 18 | 19 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовВызовСервера/ИТМ_ИсторияФормированияОтчетовВызовСервера.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетовВызовСервера 4 | 5 | ru 6 | История формирования отчетов вызов сервера (ИТМ) 7 | 8 | true 9 | true 10 | 11 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетов/ИТМ_ИсторияФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетов 4 | 5 | ru 6 | ИТМ история формирования отчетов 7 | 8 | true 9 | true 10 | true 11 | 12 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовКлиент/ИТМ_ИсторияФормированияОтчетовКлиент.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетовКлиент 4 | 5 | ru 6 | История формирования отчетов клиент (ИТМ) 7 | 8 | true 9 | true 10 | 11 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl: -------------------------------------------------------------------------------- 1 | 2 | #Область СлужебныйПрограммныйИнтерфейс 3 | 4 | &Перед("ОбработчикКоманды") 5 | Процедура ИТМ_ОбработчикКоманды(ФормаОтчета, Команда, Результат) Экспорт 6 | 7 | Попытка 8 | ИТМ_ИсторияФормированияОтчетовКлиент.ФормаОтчета_ОбработчикКоманды( 9 | ФормаОтчета, Команда, Результат); 10 | Исключение 11 | ИТМ_ИсторияФормированияОтчетовВызовСервера.ДобавитьЗаписьВЖурналРегистрации( 12 | Неопределено, "ФормаОтчета_ОбработчикКоманды", ОписаниеОшибки()); 13 | КонецПопытки; 14 | 15 | КонецПроцедуры 16 | 17 | #КонецОбласти 18 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ОтчетыПереопределяемый/Module.bsl: -------------------------------------------------------------------------------- 1 | 2 | #Область СлужебныйПрограммныйИнтерфейс 3 | 4 | &После("ПриСозданииНаСервере") 5 | Процедура ИТМ_ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт 6 | 7 | Попытка 8 | ИТМ_ИсторияФормированияОтчетов.ФормаОтчета_ПриСозданииНаСервере( 9 | Форма, Отказ, СтандартнаяОбработка); 10 | Исключение 11 | ИТМ_ИсторияФормированияОтчетов.ДобавитьЗаписьВЖурналРегистрации( 12 | Неопределено, "ФормаОтчета_ПриСозданииНаСервере", ОписаниеОшибки()); 13 | КонецПопытки; 14 | 15 | КонецПроцедуры 16 | 17 | #КонецОбласти 18 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовПереопределяемый/ИТМ_ИсторияФормированияОтчетовПереопределяемый.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетовПереопределяемый 4 | 5 | ru 6 | История формирования отчетов переопределяемый (ИТМ) 7 | 8 | true 9 | true 10 | true 11 | 12 | -------------------------------------------------------------------------------- /bsl-language-server.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://1c-syntax.github.io/bsl-language-server/configuration/schema.json", 3 | "language": "ru", 4 | "diagnostics": { 5 | "computeTrigger": "onType", 6 | "parameters": { 7 | "LineLength": { 8 | "maxLineLength": 140 9 | }, 10 | "SpaceAtStartComment": { 11 | "commentsAnnotation": "//@,//(c),//©,//<<,//>>" 12 | }, 13 | "MissingSpace": { 14 | "allowMultipleCommas": true 15 | }, 16 | "Typo": { 17 | "minWordLength": 4, 18 | "userWordsToIgnore": "SVOD" 19 | }, 20 | "allowParensInComparisons": true 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовКлиентСервер/ИТМ_ИсторияФормированияОтчетовКлиентСервер.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетовКлиентСервер 4 | 5 | ru 6 | История формирования отчетов клиент сервер (ИТМ) 7 | 8 | true 9 | true 10 | true 11 | true 12 | 13 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/Forms/ФормаЗаписи/Module.bsl: -------------------------------------------------------------------------------- 1 | 2 | // @strict-types 3 | 4 | #Область ОбработчикиСобытийФормы 5 | 6 | &НаСервере 7 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 8 | 9 | Если НЕ ИТМ_ИсторияФормированияОтчетов.ЕстьПравоПросмотрСвоейИстории() Тогда 10 | Отказ = Истина; 11 | Возврат; 12 | КонецЕсли; 13 | 14 | КонецПроцедуры 15 | 16 | #КонецОбласти 17 | 18 | #Область ОбработчикиКомандФормы 19 | 20 | &НаКлиенте 21 | Процедура Команда_ОткрытьОтчет(Команда) 22 | 23 | ИТМ_ИсторияФормированияОтчетовКлиент.ОткрытьОтчетПоЗаписиРегистра( 24 | ЭтотОбъект, Запись.ИсходныйКлючЗаписи); 25 | 26 | КонецПроцедуры 27 | 28 | #КонецОбласти 29 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_АнализИсторииФормированияОтчетов/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Report.ИТМ_АнализИсторииФормированияОтчетов 8 | 9 | Use 10 | true 11 | 12 | 13 | View 14 | true 15 | 16 | 17 | 18 | InformationRegister.ИТМ_ИсторияФормированияОтчетов 19 | 20 | Read 21 | true 22 | 23 | 24 | View 25 | true 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectKey=BSPM_one-s-reports-history 2 | sonar.projectVersion=2.0.1 3 | 4 | #Используйте https://native2ascii.net/ для вставки русских наименований проектов, не используйте английский если ваша команда русскоязычная и кодите вы на русском 5 | sonar.projectName=\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u043e\u0432 (\u0411\u0421\u041f\u041c) 6 | 7 | sonar.sources=./\u0418\u0422\u041c_\u0418\u0441\u0442\u043e\u0440\u0438\u044f\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u041e\u0442\u0447\u0435\u0442\u043e\u0432 8 | 9 | sonar.sourceEncoding=UTF-8 10 | 11 | sonar.dbcleaner.branchesToKeepWhenInactive=main,develop,release-.* 12 | sonar.inclusions=**/*.bsl,**/*.os,**/*.xml 13 | sonar.lang.patterns.xml=**/*.xsd,**/*.xsl 14 | 15 | sonar.bsl.platformEdition=8.3.23 16 | sonar.bsl.maxDepthSearchConfiguration=6 17 | sonar.bsl.skipAbsorptionComments=false -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_ПросмотрВсейИсторииФормированияОтчетов/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | InformationRegister.ИТМ_НастройкиИсторииФормированияОтчетов 8 | 9 | Read 10 | true 11 | 12 | 13 | 14 | InformationRegister.ИТМ_ИсторияФормированияОтчетов 15 | 16 | Read 17 | true 18 | 19 | 20 | Update 21 | true 22 | 23 | 24 | View 25 | true 26 | 27 | 28 | ReadDataHistory 29 | true 30 | 31 | 32 | ViewDataHistory 33 | true 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_ПросмотрСвоейИсторииФормированияОтчетов/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | InformationRegister.ИТМ_НастройкиИсторииФормированияОтчетов 8 | 9 | Read 10 | true 11 | 12 | 13 | 14 | InformationRegister.ИТМ_ИсторияФормированияОтчетов 15 | 16 | Read 17 | true 18 | 19 | 20 | Update 21 | true 22 | 23 | 24 | View 25 | true 26 | 27 | 28 | ReadDataHistory 29 | true 30 | 31 | 32 | ViewDataHistory 33 | true 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ВариантыОтчетов/ВариантыОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ВариантыОтчетов 4 | Adopted 5 | 6 | Checked 7 | Extended 8 | Checked 9 | Checked 10 | Checked 11 | Checked 12 | Checked 13 | Checked 14 | 15 | true 16 | true 17 | true 18 | 19 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ОтчетыКлиентПереопределяемый/ОтчетыКлиентПереопределяемый.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ОтчетыКлиентПереопределяемый 4 | Adopted 5 | 6 | Checked 7 | Extended 8 | Checked 9 | Checked 10 | Checked 11 | Checked 12 | Checked 13 | Checked 14 | 15 | true 16 | true 17 | 18 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ОтчетыПереопределяемый/ОтчетыПереопределяемый.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ОтчетыПереопределяемый 4 | Adopted 5 | 6 | Checked 7 | Extended 8 | Checked 9 | Checked 10 | Checked 11 | Checked 12 | Checked 13 | Checked 14 | 15 | true 16 | true 17 | true 18 | 19 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/Forms/ФормаВыбораОтчета/Attributes/Список/ExtInfo/ListSettings.dcss: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Normal 5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb 6 | 7 | 8 | Normal 9 | 88619765-ccb3-46c6-ac52-38e9c992ebd4 10 | 11 | 12 | Normal 13 | b75fecce-942b-4aed-abc9-e6a02e460fb3 14 | 15 | Normal 16 | 911b6018-f537-43e8-a417-da56b22f9aec 17 | 18 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Catalogs/Пользователи/Пользователи.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Пользователи 11 | Adopted 12 | 13 | Checked 14 | 15 | 16 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ВариантыОтчетов 11 | Adopted 12 | 13 | Checked 14 | 15 | 16 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Catalogs/ДополнительныеОтчетыИОбработки/ДополнительныеОтчетыИОбработки.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ДополнительныеОтчетыИОбработки 11 | Adopted 12 | 13 | Checked 14 | 15 | 16 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Catalogs/ИдентификаторыОбъектовРасширений/ИдентификаторыОбъектовРасширений.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ИдентификаторыОбъектовРасширений 11 | Adopted 12 | 13 | Checked 14 | 15 | 16 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Catalogs/ПредопределенныеВариантыОтчетов/ПредопределенныеВариантыОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ПредопределенныеВариантыОтчетов 11 | Adopted 12 | 13 | Checked 14 | 15 | 16 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ПредопределенныеВариантыОтчетовРасширений.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ПредопределенныеВариантыОтчетовРасширений 11 | Adopted 12 | 13 | Checked 14 | 15 | 16 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/Forms/ФормаВыбора/ConditionalAppearance.dcssca: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Список 7 | 8 | 9 | 10 | 11 | Список.Успех 12 | Equal 13 | false 14 | 15 | 16 | 17 | 18 | ЦветТекста 19 | style:SpecialTextColor 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/DataProcessors/ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов/ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов 8 | 9 | ru 10 | Панель подсистемы: История формирования отчетов (ИТМ) 11 | 12 | DataProcessor.ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов.Form.Форма 13 | 14 | Форма 15 | 16 | ru 17 | Форма 18 | 19 | PersonalComputer 20 | MobileDevice 21 | 22 | 23 | ПанельПодсистемы 24 | 25 | ru 26 | Панель подсистемы: История формирования отчетов (ИТМ) 27 | 28 | NavigationPanelOrdinary 29 | 30 | Auto 31 | 32 | 33 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/Forms/ФормаСписка/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область ОбработчикиСобытийФормы 4 | 5 | &НаСервере 6 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 7 | 8 | ИТМ_ИсторияФормированияОтчетов.ФормаСписка_ПриСозданииНаСервере(ЭтотОбъект, Отказ); 9 | 10 | КонецПроцедуры 11 | 12 | // Обработка оповещения. 13 | // 14 | // Параметры: 15 | // ИмяСобытия - Строка 16 | // Параметр - Произвольный 17 | // Источник - Произвольный 18 | &НаКлиенте 19 | Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) 20 | 21 | ИТМ_ИсторияФормированияОтчетовКлиент.ФормаСписка_ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник); 22 | 23 | КонецПроцедуры 24 | 25 | #КонецОбласти 26 | 27 | #Область ОбработчикиКомандФормы 28 | 29 | &НаКлиенте 30 | Процедура Команда_ТолькоТекущегоПользователя(Команда) 31 | 32 | КнопкаТолькоСвои(); 33 | 34 | КонецПроцедуры 35 | 36 | &НаКлиенте 37 | Процедура Команда_ОткрытьОтчет(Команда) 38 | 39 | КлючЗаписи = Элементы.Список.ТекущаяСтрока; //РегистрСведенийКлючЗаписи.ИТМ_ИсторияФормированияОтчетов 40 | ИТМ_ИсторияФормированияОтчетовКлиент.ОткрытьОтчетПоЗаписиРегистра(ЭтотОбъект, КлючЗаписи); 41 | 42 | КонецПроцедуры 43 | 44 | &НаКлиенте 45 | Процедура Команда_ВыгрузитьВФайл(Команда) 46 | 47 | ИТМ_ИсторияФормированияОтчетовКлиент.ВыгрузитьЗаписиРегистраВФайл(Элементы.Список.ВыделенныеСтроки); 48 | 49 | КонецПроцедуры 50 | 51 | &НаКлиенте 52 | Процедура Команда_ЗагрузитьИзФайла(Команда) 53 | 54 | ИТМ_ИсторияФормированияОтчетовКлиент.ВыбратьФайлЗагрузкиЗаписейРегистра(); 55 | 56 | КонецПроцедуры 57 | 58 | #КонецОбласти 59 | 60 | #Область СлужебныеПроцедурыИФункции 61 | 62 | &НаСервере 63 | Процедура КнопкаТолькоСвои() 64 | 65 | ИТМ_ИсторияФормированияОтчетов.ФормаСписка_КнопкаТолькоСвои_ПриНажатии(ЭтотОбъект); 66 | 67 | КонецПроцедуры 68 | 69 | #КонецОбласти 70 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Normal 5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb 6 | 7 | 8 | 9 | НачалоФормирования 10 | Asc 11 | 12 | Normal 13 | 88619765-ccb3-46c6-ac52-38e9c992ebd4 14 | 15 | 16 | 17 | 18 | 19 | 20 | Успех 21 | Equal 22 | false 23 | 24 | 25 | 26 | 27 | ЦветТекста 28 | style:NegativeTextColor 29 | 30 | 31 | 32 | Normal 33 | b75fecce-942b-4aed-abc9-e6a02e460fb3 34 | 35 | Normal 36 | 911b6018-f537-43e8-a417-da56b22f9aec 37 | 38 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Normal 5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb 6 | 7 | 8 | 9 | НачалоФормирования 10 | Asc 11 | 12 | Normal 13 | 88619765-ccb3-46c6-ac52-38e9c992ebd4 14 | 15 | 16 | 17 | 18 | 19 | 20 | Успех 21 | Equal 22 | false 23 | 24 | 25 | 26 | 27 | ЦветТекста 28 | style:SpecialTextColor 29 | 30 | 31 | 32 | Normal 33 | b75fecce-942b-4aed-abc9-e6a02e460fb3 34 | 35 | Normal 36 | 911b6018-f537-43e8-a417-da56b22f9aec 37 | 38 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ВариантыОтчетов/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область ПрограммныйИнтерфейс 4 | 5 | // см. ВариантыОтчетов.СформироватьОтчет 6 | &Вместо("СформироватьОтчет") 7 | Функция ИТМ_СформироватьОтчет(Знач Параметры, Знач ПроверятьЗаполнение, Знач ПолучатьФлажокПустой) Экспорт 8 | 9 | ИспользоватьИсториюФормированияОтчетов = ИТМ_ИсторияФормированияОтчетов.ИспользоватьИсториюФормированияОтчетов(); 10 | 11 | Если НЕ ИспользоватьИсториюФормированияОтчетов Тогда 12 | Возврат ПродолжитьВызов(Параметры, ПроверятьЗаполнение, ПолучатьФлажокПустой); 13 | КонецЕсли; 14 | 15 | Попытка 16 | ИТМ_ИсторияФормированияОтчетов.ВариантыОтчетов_СформироватьОтчет_ПередВыполнением(Параметры); 17 | Исключение 18 | ИТМ_ИсторияФормированияОтчетов.ДобавитьЗаписьВЖурналРегистрации( 19 | Параметры, "ВариантыОтчетов_СформироватьОтчет_ПередВыполнением", ОписаниеОшибки()); 20 | КонецПопытки; 21 | 22 | Попытка 23 | Результат = ПродолжитьВызов(Параметры, ПроверятьЗаполнение, ПолучатьФлажокПустой); 24 | Исключение 25 | Результат = ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонРезультатВыполненияОтчета(); 26 | Результат.ТекстОшибки = ОписаниеОшибки(); 27 | Результат.ВызватьИсключение = Истина; 28 | //@skip-check bsl-legacy-check-static-feature-access 29 | Результат.ТекстИсключения = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); 30 | КонецПопытки; 31 | 32 | Попытка 33 | ИТМ_ИсторияФормированияОтчетов.ВариантыОтчетов_СформироватьОтчет_ПослеВыполнения(Параметры, Результат); 34 | Исключение 35 | ИТМ_ИсторияФормированияОтчетов.ДобавитьЗаписьВЖурналРегистрации( 36 | Параметры, "ВариантыОтчетов_СформироватьОтчет_ПослеВыполнения", ОписаниеОшибки()); 37 | КонецПопытки; 38 | 39 | Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ВызватьИсключение", Ложь) Тогда 40 | ВызватьИсключение Результат.ТекстИсключения; 41 | КонецЕсли; 42 | 43 | Возврат Результат; 44 | 45 | КонецФункции 46 | 47 | #КонецОбласти 48 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ИдентификаторыОбъектовМетаданных 11 | Adopted 12 | 13 | Checked 14 | 15 | 16 | ПолноеИмя 17 | Adopted 18 | 19 | Checked 20 | 21 | 22 | Checked 23 | String 24 | 25 | 26 | 430 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Subsystems/ИТМ_ИсторияФормированияОтчетов/ИТМ_ИсторияФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетов 4 | 5 | ru 6 | История формирования отчетов (ИТМ) 7 | 8 | true 9 | 10 | ru 11 | Подсистема предоставляет возможность сохранения информации о выполнении отчетов пользователями: длительность, используемые настройки, описание ошибки и т.д., что позволяет применять сохраненные настройки отчета, анализировать возникающие ошибки и выявлять настройки, приводящие к долгому выполнению отчетов 12 | 13 | 14 | StdPicture.History 15 | 16 | CommonModule.ИТМ_ИсторияФормированияОтчетов 17 | CommonModule.ИТМ_ИсторияФормированияОтчетовПереопределяемый 18 | CommonModule.ИТМ_ИсторияФормированияОтчетовВызовСервера 19 | InformationRegister.ИТМ_ИсторияФормированияОтчетов 20 | InformationRegister.ИТМ_НастройкиИсторииФормированияОтчетов 21 | Role.ИТМ_ПросмотрСвоейИсторииФормированияОтчетов 22 | Role.ИТМ_ПросмотрВсейИсторииФормированияОтчетов 23 | Role.ИТМ_АдминистраторИсторииФормированияОтчетов 24 | CommonModule.ИТМ_ИсторияФормированияОтчетовКлиент 25 | CommonModule.ИТМ_ИсторияФормированияОтчетовКлиентСервер 26 | Report.ИТМ_АнализИсторииФормированияОтчетов 27 | Role.ИТМ_АнализИсторииФормированияОтчетов 28 | DataProcessor.ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов 29 | 30 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/Forms/ФормаНастроек/Attributes/Список/ExtInfo/ListSettings.dcss: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Normal 5 | dfcece9d-5077-440b-b6b3-45a5cb4538eb 6 | 7 | 8 | 9 | Отчет.ПолноеИмя 10 | Asc 11 | Inaccessible 12 | 13 | Normal 14 | 88619765-ccb3-46c6-ac52-38e9c992ebd4 15 | 16 | 17 | 18 | 19 | 20 | Отчет 21 | 22 | 23 | 24 | 25 | Отчет 26 | NotFilled 27 | 28 | 29 | 30 | 31 | ЦветТекста 32 | #808080 33 | 34 | 35 | Текст 36 | <Общие настройки> 37 | 38 | 39 | 40 | Normal 41 | b75fecce-942b-4aed-abc9-e6a02e460fb3 42 | 43 | Normal 44 | 911b6018-f537-43e8-a417-da56b22f9aec 45 | 46 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/Forms/ФормаВыбора/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область ОбработчикиСобытийФормы 4 | 5 | &НаСервере 6 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 7 | 8 | ИТМ_ИсторияФормированияОтчетов.ФормаСписка_ПриСозданииНаСервере(ЭтотОбъект, Отказ); 9 | 10 | КонецПроцедуры 11 | 12 | // Обработка оповещения. 13 | // 14 | // Параметры: 15 | // ИмяСобытия - Строка 16 | // Параметр - Произвольный 17 | // Источник - Произвольный 18 | &НаКлиенте 19 | Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) 20 | 21 | ИТМ_ИсторияФормированияОтчетовКлиент.ФормаСписка_ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник); 22 | 23 | КонецПроцедуры 24 | 25 | #КонецОбласти 26 | 27 | #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок 28 | 29 | // Список выбор. 30 | // 31 | // Параметры: 32 | // Элемент - ТаблицаФормы 33 | // ВыбраннаяСтрока - Число 34 | // Поле - ПолеФормы 35 | // СтандартнаяОбработка - Булево 36 | &НаКлиенте 37 | Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) 38 | 39 | СтандартнаяОбработка = Ложь; 40 | ВыбратьСтроку(); 41 | 42 | КонецПроцедуры 43 | 44 | #КонецОбласти 45 | 46 | #Область ОбработчикиКомандФормы 47 | 48 | &НаКлиенте 49 | Процедура Команда_Выбрать(Команда) 50 | 51 | ВыбратьСтроку(); 52 | 53 | КонецПроцедуры 54 | 55 | &НаКлиенте 56 | Процедура Команда_ТолькоТекущегоПользователя(Команда) 57 | 58 | КнопкаТолькоСвои(); 59 | 60 | КонецПроцедуры 61 | 62 | &НаКлиенте 63 | Процедура Команда_ВыгрузитьВФайл(Команда) 64 | 65 | ИТМ_ИсторияФормированияОтчетовКлиент.ВыгрузитьЗаписиРегистраВФайл(Элементы.Список.ВыделенныеСтроки); 66 | 67 | КонецПроцедуры 68 | 69 | &НаКлиенте 70 | Процедура Команда_ЗагрузитьИзФайла(Команда) 71 | 72 | ИТМ_ИсторияФормированияОтчетовКлиент.ВыбратьФайлЗагрузкиЗаписейРегистра(); 73 | 74 | КонецПроцедуры 75 | 76 | #КонецОбласти 77 | 78 | #Область СлужебныеПроцедурыИФункции 79 | 80 | &НаСервере 81 | Процедура КнопкаТолькоСвои() 82 | 83 | ИТМ_ИсторияФормированияОтчетов.ФормаСписка_КнопкаТолькоСвои_ПриНажатии(ЭтотОбъект); 84 | 85 | КонецПроцедуры 86 | 87 | &НаКлиенте 88 | Процедура ВыбратьСтроку() 89 | 90 | КлючЗаписи = Элементы.Список.ТекущаяСтрока; //РегистрСведенийКлючЗаписи.ИТМ_ИсторияФормированияОтчетов 91 | 92 | ИТМ_ИсторияФормированияОтчетовКлиентСервер.ПрименитьВсеНастройкиЗавершение(ВладелецФормы, КлючЗаписи); 93 | 94 | Закрыть(); 95 | 96 | КонецПроцедуры 97 | 98 | #КонецОбласти 99 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовВызовСервера/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область СлужебныйПрограммныйИнтерфейс 4 | 5 | // Содержимое записи. 6 | // 7 | // Параметры: 8 | // КлючЗаписиРегистра - См. РегистрыСведений.ИТМ_ИсторияФормированияОтчетов.СодержимоеЗаписи.КлючЗаписиРегистра 9 | // 10 | // Возвращаемое значение: 11 | // см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов 12 | Функция СодержимоеЗаписи(КлючЗаписиРегистра) Экспорт 13 | 14 | Возврат РегистрыСведений.ИТМ_ИсторияФормированияОтчетов.СодержимоеЗаписи(КлючЗаписиРегистра); 15 | 16 | КонецФункции 17 | 18 | // см. ИТМ_ИсторияФормированияОтчетов.ДобавитьЗаписьВЖурналРегистрации 19 | Процедура ДобавитьЗаписьВЖурналРегистрации(Параметры, 20 | ПодИмяСобытия, Комментарий, ЭтоОшибка = Истина, Сообщать = Истина) Экспорт 21 | 22 | ИТМ_ИсторияФормированияОтчетов.ДобавитьЗаписьВЖурналРегистрации( 23 | Параметры, ПодИмяСобытия, Комментарий, ЭтоОшибка, Сообщать); 24 | 25 | КонецПроцедуры 26 | 27 | // см. ИТМ_ИсторияФормированияОтчетов.ИспользоватьИсториюФормированияОтчетов 28 | Функция ИспользоватьИсториюФормированияОтчетов() Экспорт 29 | 30 | Возврат ИТМ_ИсторияФормированияОтчетов.ИспользоватьИсториюФормированияОтчетов(); 31 | 32 | КонецФункции 33 | 34 | // см. ИТМ_ИсторияФормированияОтчетов.ЗагрузитьЗаписиВРегистрИзТекстаФайла 35 | Процедура ЗагрузитьЗаписиВРегистрИзТекстаФайла(ТекстФайла) Экспорт 36 | 37 | ИТМ_ИсторияФормированияОтчетов.ЗагрузитьЗаписиВРегистрИзТекстаФайла(ТекстФайла); 38 | 39 | КонецПроцедуры 40 | 41 | // см. ИТМ_ИсторияФормированияОтчетов.ДанныеЗаписейРегистраДляСохраненияВФайл 42 | Функция ДанныеЗаписейРегистраДляСохраненияВФайл(ЗаписиРегистра) Экспорт 43 | 44 | Возврат ИТМ_ИсторияФормированияОтчетов.ДанныеЗаписейРегистраДляСохраненияВФайл(ЗаписиРегистра); 45 | 46 | КонецФункции 47 | 48 | // см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеВСтрокуJSON 49 | Функция ЗначениеВСтрокуJSON(Значение) Экспорт 50 | 51 | Возврат ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеВСтрокуJSON(Значение); 52 | 53 | КонецФункции 54 | 55 | // см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеИзСтрокиJSON 56 | Функция ЗначениеИзСтрокиJSON(СтрокаJSON, ПрочитатьВСоответствие = Ложь) Экспорт 57 | 58 | Возврат ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеИзСтрокиJSON(СтрокаJSON, ПрочитатьВСоответствие); 59 | 60 | КонецФункции 61 | 62 | // см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеВСтрокуXML 63 | Функция ЗначениеВСтрокуXML(Значение) Экспорт 64 | 65 | Возврат ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеВСтрокуXML(Значение); 66 | 67 | КонецФункции 68 | 69 | // см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеИзСтрокиXML 70 | Функция ЗначениеИзСтрокиXML(СтрокаXML) Экспорт 71 | 72 | Возврат ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеИзСтрокиXML(СтрокаXML); 73 | 74 | КонецФункции 75 | 76 | #КонецОбласти 77 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда 4 | 5 | #Область СлужебныйПрограммныйИнтерфейс 6 | 7 | // Содержимое записи. 8 | // 9 | // Параметры: 10 | // КлючЗаписиРегистра - РегистрСведенийКлючЗаписи.ИТМ_ИсторияФормированияОтчетов - Ключ записи регистра 11 | // ИзвлекатьХранилища - Булево - Извлекать хранилища 12 | // ИзвлекатьДополнительныеСвойства - Булево - Извлекать дополнительные свойства 13 | // 14 | // Возвращаемое значение: 15 | // см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов 16 | Функция СодержимоеЗаписи(КлючЗаписиРегистра, ИзвлекатьХранилища = Истина, ИзвлекатьДополнительныеСвойства = Ложь) Экспорт 17 | 18 | СодержимоеЗаписи = ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов(); 19 | 20 | ЗаписьРегистра = СоздатьМенеджерЗаписи(); 21 | ЗаполнитьЗначенияСвойств(ЗаписьРегистра, КлючЗаписиРегистра); 22 | ЗаписьРегистра.Прочитать(); 23 | 24 | ИменаКоллекций = "Измерения,Ресурсы,Реквизиты"; 25 | КоллекцияСвойств = СтрРазделить(ИменаКоллекций, ","); 26 | МетаданныеРегистра = Метаданные.РегистрыСведений.ИТМ_ИсторияФормированияОтчетов; 27 | Для Каждого ТекущаяКоллекцияСвойств Из КоллекцияСвойств Цикл 28 | Для Каждого ТекущееСвойство Из МетаданныеРегистра[ТекущаяКоллекцияСвойств] Цикл //ОбъектМетаданных 29 | 30 | ЗначениеТекущегоСвойства = ЗаписьРегистра[ТекущееСвойство.Имя]; //Произвольный 31 | 32 | Если ТипЗнч(ЗначениеТекущегоСвойства) = Тип("ХранилищеЗначения") Тогда 33 | ИзвлечьСодержимое = ИзвлекатьХранилища 34 | И (ИзвлекатьДополнительныеСвойства ИЛИ ТекущееСвойство.Имя <> "ДополнительныеСвойства"); 35 | Если ИзвлечьСодержимое Тогда 36 | ЗначениеТекущегоСвойства = ЗначениеТекущегоСвойства.Получить(); //Произвольный, ХранилищеЗначения - ЕДТ хочет 37 | КонецЕсли; 38 | КонецЕсли; 39 | 40 | СодержимоеЗаписи.Вставить(ТекущееСвойство.Имя, ЗначениеТекущегоСвойства); 41 | 42 | КонецЦикла; 43 | КонецЦикла; 44 | 45 | Возврат СодержимоеЗаписи; 46 | 47 | КонецФункции 48 | 49 | // Записать данные записи. 50 | // 51 | // Параметры: 52 | // ДанныеЗаписи - Структура - Данные записи 53 | // ПомещатьВХранилище - Булево - Помещать в хранилище 54 | Процедура ЗаписатьДанныеЗаписи(ДанныеЗаписи, ПомещатьВХранилище = Истина) Экспорт 55 | 56 | ЗаписьРегистра = СоздатьМенеджерЗаписи(); 57 | МетаданныеРегистра = Метаданные.РегистрыСведений.ИТМ_ИсторияФормированияОтчетов; 58 | 59 | ИменаКоллекций = "Измерения,Ресурсы,Реквизиты"; 60 | КоллекцияСвойств = СтрРазделить(ИменаКоллекций, ","); 61 | Для Каждого ТекущаяКоллекцияСвойств Из КоллекцияСвойств Цикл 62 | Для Каждого ТекущееСвойство Из МетаданныеРегистра[ТекущаяКоллекцияСвойств] Цикл //ОбъектМетаданныхРеквизит 63 | 64 | ЗначениеТекущегоСвойства = Неопределено; 65 | Если НЕ ДанныеЗаписи.Свойство(ТекущееСвойство.Имя, ЗначениеТекущегоСвойства) Тогда 66 | Продолжить; 67 | КонецЕсли; 68 | 69 | Если ПомещатьВХранилище И ТекущееСвойство.Тип.СодержитТип(Тип("ХранилищеЗначения")) Тогда 70 | ЗначениеТекущегоСвойства = Новый ХранилищеЗначения(ЗначениеТекущегоСвойства); 71 | КонецЕсли; 72 | 73 | ЗаписьРегистра[ТекущееСвойство.Имя] = ЗначениеТекущегоСвойства; 74 | 75 | КонецЦикла; 76 | КонецЦикла; 77 | 78 | ЗаписьРегистра.Записать(Истина); 79 | 80 | КонецПроцедуры 81 | 82 | #КонецОбласти 83 | 84 | #КонецЕсли 85 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Roles/ИТМ_АдминистраторИсторииФормированияОтчетов/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | DataProcessor.ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов 8 | 9 | Use 10 | true 11 | 12 | 13 | View 14 | true 15 | 16 | 17 | 18 | Report.ИТМ_АнализИсторииФормированияОтчетов 19 | 20 | Use 21 | true 22 | 23 | 24 | View 25 | true 26 | 27 | 28 | 29 | InformationRegister.ИТМ_НастройкиИсторииФормированияОтчетов 30 | 31 | Read 32 | true 33 | 34 | 35 | Update 36 | true 37 | 38 | 39 | View 40 | true 41 | 42 | 43 | Edit 44 | true 45 | 46 | 47 | TotalsControl 48 | true 49 | 50 | 51 | ReadDataHistory 52 | true 53 | 54 | 55 | ReadDataHistoryOfMissingData 56 | true 57 | 58 | 59 | UpdateDataHistory 60 | true 61 | 62 | 63 | UpdateDataHistoryOfMissingData 64 | true 65 | 66 | 67 | UpdateDataHistorySettings 68 | true 69 | 70 | 71 | UpdateDataHistoryVersionComment 72 | true 73 | 74 | 75 | ViewDataHistory 76 | true 77 | 78 | 79 | EditDataHistoryVersionComment 80 | true 81 | 82 | 83 | SwitchToDataHistoryVersion 84 | true 85 | 86 | 87 | 88 | InformationRegister.ИТМ_ИсторияФормированияОтчетов 89 | 90 | Read 91 | true 92 | 93 | 94 | Update 95 | true 96 | 97 | 98 | View 99 | true 100 | 101 | 102 | Edit 103 | true 104 | 105 | 106 | TotalsControl 107 | true 108 | 109 | 110 | ReadDataHistory 111 | true 112 | 113 | 114 | ReadDataHistoryOfMissingData 115 | true 116 | 117 | 118 | UpdateDataHistory 119 | true 120 | 121 | 122 | UpdateDataHistoryOfMissingData 123 | true 124 | 125 | 126 | UpdateDataHistorySettings 127 | true 128 | 129 | 130 | UpdateDataHistoryVersionComment 131 | true 132 | 133 | 134 | ViewDataHistory 135 | true 136 | 137 | 138 | EditDataHistoryVersionComment 139 | true 140 | 141 | 142 | SwitchToDataHistoryVersion 143 | true 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда 4 | 5 | #Область СлужебныйПрограммныйИнтерфейс 6 | 7 | // Настройки отчета. 8 | // 9 | // Параметры: 10 | // НеобходимыйОтчет - Неопределено, СправочникСсылка.ИдентификаторыОбъектовМетаданных - 11 | // ВыбиратьОбщие - Булево 12 | // 13 | // Возвращаемое значение: 14 | // см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонНастроекПодсистемы 15 | Функция НастройкиОтчета(Знач НеобходимыйОтчет = Неопределено, Знач ВыбиратьОбщие = Истина) Экспорт 16 | 17 | СсылкаНаОбщиеНастройки = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); 18 | Если НЕ ТипЗнч(НеобходимыйОтчет) = ТипЗнч(СсылкаНаОбщиеНастройки) Тогда 19 | НеобходимыйОтчет = СсылкаНаОбщиеНастройки; 20 | КонецЕсли; 21 | 22 | НеобходимыеОтчеты = Новый Массив; //Массив из СправочникСсылка.ИдентификаторыОбъектовМетаданных 23 | НеобходимыеОтчеты.Добавить(НеобходимыйОтчет); 24 | Если ВыбиратьОбщие И НЕ (НеобходимыйОтчет = СсылкаНаОбщиеНастройки) Тогда 25 | НеобходимыеОтчеты.Добавить(СсылкаНаОбщиеНастройки); 26 | КонецЕсли; 27 | 28 | НастройкиОтчета = Новый Структура; 29 | 30 | Запрос = Новый Запрос("ВЫБРАТЬ 31 | | *, 32 | | Отчет = &СсылкаНаОбщиеНастройки КАК ЭтоОбщиеНастройки 33 | |ИЗ 34 | | РегистрСведений.ИТМ_НастройкиИсторииФормированияОтчетов 35 | |ГДЕ 36 | | Отчет В(&НеобходимыеОтчеты) 37 | | 38 | |УПОРЯДОЧИТЬ ПО 39 | | ЭтоОбщиеНастройки"); 40 | Запрос.УстановитьПараметр("СсылкаНаОбщиеНастройки", СсылкаНаОбщиеНастройки); 41 | Запрос.УстановитьПараметр("НеобходимыеОтчеты", НеобходимыеОтчеты); 42 | РезультатЗапроса = Запрос.Выполнить(); 43 | Если НЕ РезультатЗапроса.Пустой() Тогда 44 | Выборка = РезультатЗапроса.Выбрать(); 45 | Пока Выборка.Следующий() Цикл 46 | НастройкиОтчета_ОбработатьЭлементВыборки(Выборка, НастройкиОтчета); 47 | КонецЦикла; 48 | КонецЕсли; 49 | 50 | Если НастройкиОтчета = Неопределено Тогда 51 | НастройкиОтчета = ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонНастроекПодсистемы(); 52 | КонецЕсли; 53 | 54 | Возврат НастройкиОтчета; 55 | 56 | КонецФункции 57 | 58 | #КонецОбласти 59 | 60 | #Область СлужебныеПроцедурыИФункции 61 | 62 | // Настройки отчета обработать элемент выборки. 63 | // 64 | // Параметры: 65 | // Выборка - ВыборкаИзРезультатаЗапроса -: 66 | // * ЭтоОбщиеНастройки - Булево 67 | // НастройкиОтчета - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонНастроекПодсистемы 68 | Процедура НастройкиОтчета_ОбработатьЭлементВыборки(Выборка, НастройкиОтчета) 69 | 70 | ЕстьНастройкиОтчета = ЗначениеЗаполнено(НастройкиОтчета) ИЛИ НЕ Выборка.ЭтоОбщиеНастройки; 71 | ТолькоДозаполнить = Выборка.ЭтоОбщиеНастройки И ЕстьНастройкиОтчета; 72 | 73 | ТекущиеНастройки = Новый Структура; //см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонНастроекПодсистемы 74 | Для Каждого РесурсРегистра Из Метаданные.РегистрыСведений.ИТМ_НастройкиИсторииФормированияОтчетов.Ресурсы Цикл 75 | ПолеВыборки = Выборка[РесурсРегистра.Имя]; //Произвольный 76 | Если ТипЗнч(ПолеВыборки) = Тип("ХранилищеЗначения") Тогда 77 | ТекущееЗначение = ПолеВыборки.Получить(); 78 | Иначе 79 | ТекущееЗначение = ПолеВыборки; 80 | КонецЕсли; 81 | ТекущиеНастройки.Вставить(РесурсРегистра.Имя, ТекущееЗначение); 82 | КонецЦикла; 83 | 84 | Если ТипЗнч(ТекущиеНастройки.ДополнительныеНастройки) <> Тип("Структура") Тогда 85 | ТекущиеНастройки.ДополнительныеНастройки = Новый Структура; 86 | КонецЕсли; 87 | 88 | ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ТекущиеНастройки.ДополнительныеНастройки, 89 | ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонДополнительныхНастроекПодсистемы(), Ложь); 90 | 91 | Если ТолькоДозаполнить Тогда 92 | //Если в общих настройках мы фиксируем историю и используем отборы, 93 | //а в настройках отчета мы НЕ используем свои отборы, 94 | //то общие отборы применяются к текущему. 95 | Если Не НастройкиОтчета.ИспользоватьОтборы И ТекущиеНастройки.ФиксироватьИсторию 96 | И ТекущиеНастройки.ИспользоватьОтборы Тогда 97 | НастройкиОтчета.ИспользоватьОтборы = Истина; 98 | НастройкиОтчета.ДополнительныеНастройки.Отборы = ТекущиеНастройки.ДополнительныеНастройки.Отборы; 99 | КонецЕсли; 100 | Иначе 101 | НастройкиОтчета = ТекущиеНастройки; 102 | КонецЕсли; 103 | 104 | КонецПроцедуры 105 | 106 | #КонецОбласти 107 | 108 | #КонецЕсли 109 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовПереопределяемый/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | // sonar:off 3 | 4 | #Область СлужебныйПрограммныйИнтерфейс 5 | 6 | // Вызывается перед подготовкой параметров истории формирования и их помещения в переменную "Параметры" 7 | // 8 | // Параметры: 9 | // Параметры - См. ВариантыОтчетов.СформироватьОтчет.Параметры 10 | // СтандартнаяОбработка - Булево - Если Ложь, то стандартная обработка выполняться не будет. 11 | // 12 | Процедура ПередПодготовкойВыполнениемОтчета(Параметры, СтандартнаяОбработка) Экспорт 13 | 14 | // 15 | 16 | КонецПроцедуры 17 | 18 | // см. ИТМ_ИсторияФормированияОтчетов.ВариантыОтчетов_СформироватьОтчет_ПередВыполнением 19 | Процедура ПослеПодготовкиВыполненияОтчета(Параметры) Экспорт 20 | 21 | // 22 | 23 | КонецПроцедуры 24 | 25 | // Вызывается перерд основным алгоритмом подсистемы (после формирования отчета) 26 | // 27 | // Параметры: 28 | // Параметры - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонПараметровФормированияОтчета 29 | // Результат - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонРезультатВыполненияОтчета 30 | // СтандартнаяОбработка - Булево - Если Ложь, то стандартная обработка выполняться не будет. 31 | // 32 | Процедура ПередВыполнениемАлгоритмаПослеФормированияОтчета(Параметры, Результат, СтандартнаяОбработка) Экспорт 33 | 34 | // 35 | 36 | КонецПроцедуры 37 | 38 | // Вызывается перед заполнением структуры с данными, которые будут записаны в регистр истории. 39 | // 40 | // Параметры: 41 | // Параметры - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонПараметровФормированияОтчета 42 | // Результат - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонРезультатВыполненияОтчета 43 | // ДанныеДляИстории - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов 44 | // СтандартнаяОбработка - Булево - Если Ложь, то стандартная обработка выполняться не будет. 45 | // 46 | Процедура ПередЗаполнениемДанныхДляИстории(Параметры, Результат, ДанныеДляИстории, СтандартнаяОбработка) Экспорт 47 | 48 | // 49 | 50 | КонецПроцедуры 51 | 52 | // Вызывается после заполнения структуры с данными, которые будут записаны в регистр истории. 53 | // 54 | // Параметры: 55 | // Параметры - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонПараметровФормированияОтчета 56 | // Результат - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонРезультатВыполненияОтчета 57 | // ДанныеДляИстории - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов 58 | // 59 | Процедура ПослеЗаполненияДанныхДляИстории(Параметры, Результат, ДанныеДляИстории) Экспорт 60 | 61 | // 62 | 63 | КонецПроцедуры 64 | 65 | // Запускается перед проверкой необходимости записи в историю формирования 66 | // 67 | // Параметры: 68 | // Параметры - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонПараметровФормированияОтчета 69 | // Результат - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонРезультатВыполненияОтчета 70 | // ДанныеДляИстории - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов 71 | // СтандартнаяОбработка - Булево - если установить Ложь, то стандартная обработка выполняться не будет. 72 | // Отказ - Булево - если Истина, то писаться в историю не будет 73 | // 74 | Процедура ПередОпределениемНеобходимостиЗаписиВРегистрИстории( 75 | Параметры, Результат, ДанныеДляИстории, СтандартнаяОбработка, Отказ) Экспорт 76 | 77 | // 78 | 79 | КонецПроцедуры 80 | 81 | 82 | // Запускается перед непосредственной записью в историю формирования 83 | // 84 | // Параметры: 85 | // Параметры - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонПараметровФормированияОтчета 86 | // Результат - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонРезультатВыполненияОтчета 87 | // ДанныеДляИстории - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов 88 | // СтандартнаяОбработка - Булево - если установить Ложь, то стандартная обработка выполняться не будет. 89 | // 90 | Процедура ПередЗаписьюВРегистрИстории(Параметры, Результат, ДанныеДляИстории, СтандартнаяОбработка) Экспорт 91 | 92 | // 93 | 94 | КонецПроцедуры 95 | 96 | // Метод вызывается перед определением командной панели на форме отчета 97 | // 98 | // Параметры: 99 | // Форма - ФормаКлиентскогоПриложения - Форма отчета 100 | // ВозможныеКомандныеПанели - Массив из Строка - коллекция с именами командных панелей, которые возможно есть на форме 101 | // КоманднаяПанель - Неопределено - группа формы, на которую нужно помещать кнопки подсистемы 102 | // 103 | Процедура ПередОпределениемКоманднойПанелиОтчета(Форма, ВозможныеКомандныеПанели, КоманднаяПанель) Экспорт 104 | 105 | //Можно добавить возможную командную панель 106 | //ВозможныеКомандныеПанели.Добавить("КоманднаяПанельНашейПодсистемы"); 107 | 108 | //Можно указать напрямую командную панель 109 | //КоманднаяПанель = Форма.Элементы.МояКоманднаяПанель 110 | 111 | КонецПроцедуры 112 | 113 | #КонецОбласти 114 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Reports/ИТМ_АнализИсторииФормированияОтчетов/ИТМ_АнализИсторииФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ИТМ_АнализИсторииФормированияОтчетов 8 | 9 | ru 10 | Анализ истории формирования отчетов (ИТМ) 11 | 12 | true 13 | Report.ИТМ_АнализИсторииФормированияОтчетов.Template.ОсновнаяСхемаКомпоновкиДанных 14 | 15 | ru 16 | Формирование отчета по накопленным данным подсистемы 17 | 18 | 19 | РасширеннаяНастройка 20 | 21 | ru 22 | Расширенная настройка 23 | 24 | 25 | Boolean 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | Сообщения 36 | 37 | ru 38 | Сообщения 39 | 40 | 41 | Use 42 | LineNumber 43 | 44 | Use 45 | 46 | 47 | 48 | 49 | Начало 50 | 51 | ru 52 | Начало 53 | 54 | 55 | Date 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | Окончание 64 | 65 | ru 66 | Окончание 67 | 68 | 69 | Date 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | Комментарий 78 | 79 | ru 80 | Комментарий 81 | 82 | 83 | String 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | ЭтоИсключение 92 | 93 | ru 94 | Это исключение 95 | 96 | 97 | Boolean 98 | 99 | 100 | 101 | 102 | 103 | 104 | ВидСообщения 105 | 106 | ru 107 | Вид сообщения 108 | 109 | 110 | String 111 | 112 | 150 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | ОсновнаяСхемаКомпоновкиДанных 124 | 125 | ru 126 | Основная схема компоновки данных 127 | 128 | DataCompositionSchema 129 | 130 | 131 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Configuration/Configuration.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ИТМ_ИсторияФормированияОтчетов 4 | 5 | ru 6 | История формирования отчетов (ИТМ) 7 | 8 | Adopted 9 | 10 | Checked 11 | Checked 12 | Checked 13 | Checked 14 | Checked 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | true 24 | ИТМ_ 25 | 8.3.21 26 | AddOn 27 | ManagedApplication 28 | PersonalComputer 29 | Russian 30 | https://github.com/magnit-tech 31 | 2.0.1 32 | Language.Русский 33 | 34 | ru 35 | Подсистема предоставляет возможность сохранения информации о выполнении отчетов пользователями: длительность, используемые настройки, описание ошибки и т.д., что позволяет применять сохраненные настройки отчета, анализировать возникающие ошибки и выявлять 36 | 37 | 38 | ru 39 | https://github.com/SeiOkami 40 | 41 | 42 | ru 43 | https://github.com/magnit-tech 44 | 45 | 46 | ru 47 | https://github.com/magnit-tech/one-s-reports-history 48 | 49 | TaxiEnableVersion8_2 50 | 8.3.21 51 | 52 | Русский 53 | Adopted 54 | 55 | Checked 56 | Checked 57 | 58 | ru 59 | 60 | Subsystem.ИТМ_ИсторияФормированияОтчетов 61 | Role.ИТМ_АдминистраторИсторииФормированияОтчетов 62 | Role.ИТМ_АнализИсторииФормированияОтчетов 63 | Role.ИТМ_ПросмотрВсейИсторииФормированияОтчетов 64 | Role.ИТМ_ПросмотрСвоейИсторииФормированияОтчетов 65 | CommonModule.ИТМ_ИсторияФормированияОтчетов 66 | CommonModule.ИТМ_ИсторияФормированияОтчетовВызовСервера 67 | CommonModule.ИТМ_ИсторияФормированияОтчетовКлиент 68 | CommonModule.ИТМ_ИсторияФормированияОтчетовКлиентСервер 69 | CommonModule.ИТМ_ИсторияФормированияОтчетовПереопределяемый 70 | CommonModule.ВариантыОтчетов 71 | CommonModule.ОтчетыКлиентПереопределяемый 72 | CommonModule.ОтчетыПереопределяемый 73 | Catalog.Пользователи 74 | Catalog.ВариантыОтчетов 75 | Catalog.ДополнительныеОтчетыИОбработки 76 | Catalog.ПредопределенныеВариантыОтчетов 77 | Catalog.ПредопределенныеВариантыОтчетовРасширений 78 | Catalog.ИдентификаторыОбъектовМетаданных 79 | Catalog.ИдентификаторыОбъектовРасширений 80 | Report.ИТМ_АнализИсторииФормированияОтчетов 81 | DataProcessor.ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов 82 | InformationRegister.ИТМ_ИсторияФормированияОтчетов 83 | InformationRegister.ИТМ_НастройкиИсторииФормированияОтчетов 84 | 85 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/ИТМ_НастройкиИсторииФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ИТМ_НастройкиИсторииФормированияОтчетов 13 | 14 | ru 15 | Настройки истории формирования отчетов (ИТМ) 16 | 17 | true 18 | InDialog 19 | InformationRegister.ИТМ_НастройкиИсторииФормированияОтчетов.Form.ФормаНастроек 20 | 21 | Use 22 | Active 23 | 24 | Use 25 | 26 | 27 | 28 | 29 | Use 30 | LineNumber 31 | 32 | Use 33 | 34 | 35 | 36 | 37 | Use 38 | Recorder 39 | 40 | Use 41 | 42 | 43 | 44 | 45 | Use 46 | Period 47 | 48 | ShowError 49 | Use 50 | 51 | 52 | 53 | Managed 54 | 55 | ru 56 | Настройка истории формирования отчета (ИТМ) 57 | 58 | 59 | ru 60 | Выполнение настроек подсистемы для формирования отчетов 61 | 62 | 63 | ФиксироватьИсторию 64 | 65 | ru 66 | Фиксировать историю 67 | 68 | 69 | Boolean 70 | 71 | 72 | 73 | Use 74 | Use 75 | 76 | 77 | 78 | ИспользоватьОтборы 79 | 80 | ru 81 | Использовать отборы 82 | 83 | 84 | Boolean 85 | 86 | 87 | 88 | Use 89 | Use 90 | 91 | 92 | 93 | ДополнительныеНастройки 94 | 95 | ru 96 | Дополнительные настройки 97 | 98 | 99 | ValueStorage 100 | 101 | 102 | 103 | Use 104 | 105 | 106 | 107 | Отчет 108 | 109 | ru 110 | Отчет 111 | 112 | 113 | CatalogRef.ИдентификаторыОбъектовМетаданных 114 | 115 | 116 | 117 | Index 118 | Use 119 | Use 120 | 121 | 122 | 123 | ФормаНастроек 124 | 125 | ru 126 | Настройки 127 | 128 | PersonalComputer 129 | MobileDevice 130 | 131 | 132 | ФормаВыбораОтчета 133 | 134 | ru 135 | Форма выбора отчета 136 | 137 | PersonalComputer 138 | MobileDevice 139 | 140 | 141 | ОтборыНеобходимостиЗаписи 142 | 143 | ru 144 | Отборы необходимости записи 145 | 146 | DataCompositionSchema 147 | 148 | 149 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовКлиент/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область СлужебныйПрограммныйИнтерфейс 4 | 5 | #Область ФормаОтчета 6 | 7 | // Форма отчета обработчик команды. 8 | // 9 | // Параметры: 10 | // ФормаОтчета - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ОписаниеФормыОтчета 11 | // Команда - КомандаФормы - Команда 12 | // Результат - Булево - Результат 13 | // ДополнительныеПараметры - Произвольный - Дополнительные параметры 14 | Процедура ФормаОтчета_ОбработчикКоманды(ФормаОтчета, Команда, 15 | Результат = Ложь, ДополнительныеПараметры = Неопределено) Экспорт 16 | 17 | Если Команда = Неопределено Тогда 18 | Возврат; 19 | КонецЕсли; 20 | 21 | ИмяКомандыИсторияФормированияОтчета = 22 | ИТМ_ИсторияФормированияОтчетовКлиентСервер.ФормаОтчета_ИмяКомандыИсторияФормированияОтчета(); 23 | 24 | ИмяТекущейКоманды = Команда.Имя; 25 | Если ИмяТекущейКоманды = ИмяКомандыИсторияФормированияОтчета Тогда 26 | ФормаОтчета_ОбработчикКомандыИсторияФормированияОтчета(ФормаОтчета, Команда, Результат, ДополнительныеПараметры); 27 | Иначе 28 | Возврат; 29 | КонецЕсли; 30 | 31 | КонецПроцедуры 32 | 33 | // Форма отчета обработчик команды история формирования отчета. 34 | // 35 | // Параметры: 36 | // ФормаОтчета - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ОписаниеФормыОтчета 37 | // Команда - КомандаФормы - Команда 38 | // Результат - Булево - Результат 39 | // ДополнительныеПараметры - Произвольный - Дополнительные параметры 40 | Процедура ФормаОтчета_ОбработчикКомандыИсторияФормированияОтчета(ФормаОтчета, Команда, 41 | Результат = Ложь, ДополнительныеПараметры = Неопределено) Экспорт 42 | 43 | Результат = Истина; 44 | 45 | ОтборСтрок = Новый Структура("ПолноеИмя,КлючВарианта", "", Неопределено); 46 | Если ДополнительныеПараметры <> Неопределено Тогда 47 | ЗаполнитьЗначенияСвойств(ОтборСтрок, ДополнительныеПараметры); 48 | КонецЕсли; 49 | 50 | Если НЕ ЗначениеЗаполнено(ОтборСтрок.ПолноеИмя) Тогда 51 | Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ФормаОтчета, "НастройкиОтчета") Тогда 52 | ОтборСтрок.ПолноеИмя = ФормаОтчета.НастройкиОтчета.ПолноеИмя; 53 | Иначе 54 | ИмяФормыСоставное = СтрРазделить(ФормаОтчета.ИмяФормы, ".", Ложь); 55 | ОтборСтрок.ПолноеИмя = СтрШаблон("%1.%2", ИмяФормыСоставное[0], ИмяФормыСоставное[1]); 56 | КонецЕсли; 57 | КонецЕсли; 58 | 59 | Если НЕ ЗначениеЗаполнено(ОтборСтрок.КлючВарианта) Тогда 60 | ОтборСтрок.КлючВарианта = ФормаОтчета.КлючТекущегоВарианта; 61 | КонецЕсли; 62 | 63 | ОткрытьФорму("РегистрСведений.ИТМ_ИсторияФормированияОтчетов.Форма.ФормаВыбора", 64 | Новый Структура("Отбор", ОтборСтрок), ФормаОтчета); 65 | 66 | КонецПроцедуры 67 | 68 | #КонецОбласти 69 | 70 | #Область ФормаСписка 71 | 72 | // Форма списка обработка оповещения. 73 | // 74 | // Параметры: 75 | // Форма - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ОписаниеФормыСпискаИстории 76 | // ИмяСобытия - Строка 77 | // Параметр - Произвольный 78 | // Источник - Произвольный 79 | Процедура ФормаСписка_ОбработкаОповещения(Форма, ИмяСобытия, Параметр, Источник) Экспорт 80 | 81 | Если ИмяСобытия = ИТМ_ИсторияФормированияОтчетовКлиентСервер.ИмяСобытияЗагрузкиЗаписейИзФайла() Тогда 82 | Форма.Элементы.Список.Обновить(); 83 | КонецЕсли; 84 | 85 | КонецПроцедуры 86 | 87 | #КонецОбласти 88 | 89 | #Область Вспомогательные 90 | 91 | // Открыть отчет по записи регистра. 92 | // 93 | // Параметры: 94 | // Форма - ФормаКлиентскогоПриложения - Эта форма 95 | // КлючЗаписиРегистра - РегистрСведенийКлючЗаписи.ИТМ_ИсторияФормированияОтчетов - Ключ записи регистра 96 | Процедура ОткрытьОтчетПоЗаписиРегистра(Форма, КлючЗаписиРегистра) Экспорт 97 | 98 | СодержимоеЗаписи = ИТМ_ИсторияФормированияОтчетовВызовСервера.СодержимоеЗаписи(КлючЗаписиРегистра); 99 | 100 | ИменаСвойств = "ФиксированныеНастройки,Настройки,ПользовательскиеНастройки"; 101 | ПеребираемыеСвойства = СтрРазделить(ИменаСвойств, ","); 102 | Для Каждого ТекущееСвойство Из ПеребираемыеСвойства Цикл 103 | ТекущееЗначение = Неопределено; 104 | Если СодержимоеЗаписи.Свойство(ТекущееСвойство + "КД", ТекущееЗначение) Тогда 105 | СодержимоеЗаписи.Вставить(ТекущееСвойство, ТекущееЗначение); 106 | КонецЕсли; 107 | КонецЦикла; 108 | 109 | ФормаОтчета = ОткрытьФорму(СодержимоеЗаписи.ПолноеИмя + ".Форма", СодержимоеЗаписи, Форма, Форма.УникальныйИдентификатор); 110 | ИТМ_ИсторияФормированияОтчетовКлиентСервер.ПрименитьВсеНастройкиЗавершение(ФормаОтчета, КлючЗаписиРегистра, СодержимоеЗаписи); 111 | 112 | КонецПроцедуры 113 | 114 | // Выбрать файл загрузки записей регистра. 115 | // 116 | // Параметры: 117 | // ВыбранныеФайлы - Null, Массив из Строка - Выбранные файлы 118 | // ДополнительныеПараметры - Неопределено, Произвольный - Дополнительные параметры 119 | Процедура ВыбратьФайлЗагрузкиЗаписейРегистра(ВыбранныеФайлы = Null, ДополнительныеПараметры = Неопределено) Экспорт 120 | 121 | Если ВыбранныеФайлы = Null Тогда 122 | 123 | ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); 124 | ДиалогВыбораФайла.Фильтр = "Файлы истории в xml (*.xml)|*.xml|"; 125 | ДиалогВыбораФайла.Показать(Новый ОписаниеОповещения("ВыбратьФайлЗагрузкиЗаписейРегистра", ЭтотОбъект, ДополнительныеПараметры)); 126 | 127 | ИначеЕсли ЗначениеЗаполнено(ВыбранныеФайлы) Тогда 128 | 129 | ФайлДанных = ВыбранныеФайлы[0]; 130 | ДанныеФайла = Новый ТекстовыйДокумент; 131 | ДанныеФайла.Прочитать(ФайлДанных); 132 | ИТМ_ИсторияФормированияОтчетовВызовСервера.ЗагрузитьЗаписиВРегистрИзТекстаФайла(ДанныеФайла.ПолучитьТекст()); 133 | Оповестить(ИТМ_ИсторияФормированияОтчетовКлиентСервер.ИмяСобытияЗагрузкиЗаписейИзФайла()); 134 | 135 | КонецЕсли; 136 | 137 | КонецПроцедуры 138 | 139 | // Выбрать файл сохранения записей регистра. 140 | // 141 | // Параметры: 142 | // ВыбранныеФайлы - Null, Массив из Строка - Выбранные файлы 143 | // ДополнительныеПараметры - см. ПараметрыЗаписиВФайл 144 | Процедура ВыбратьФайлСохраненияЗаписейРегистра(ВыбранныеФайлы = Null, ДополнительныеПараметры = Неопределено) Экспорт 145 | 146 | Если ВыбранныеФайлы = Null Тогда 147 | 148 | ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); 149 | ДиалогВыбораФайла.Фильтр = "Файлы истории в xml (*.xml)|*.xml|"; 150 | //@skip-check invocation-parameter-type-intersect - Баг ЕДТ 151 | ДиалогВыбораФайла.Показать(Новый ОписаниеОповещения("ВыбратьФайлСохраненияЗаписейРегистра", ЭтотОбъект, ДополнительныеПараметры)); 152 | 153 | ИначеЕсли ЗначениеЗаполнено(ВыбранныеФайлы) Тогда 154 | 155 | ФайлДляСохранения = ВыбранныеФайлы[0]; 156 | ВыгрузитьЗаписиРегистраВФайл(ДополнительныеПараметры.ЗаписиРегистра, ФайлДляСохранения); 157 | 158 | Иначе 159 | 160 | Возврат; 161 | 162 | КонецЕсли; 163 | 164 | КонецПроцедуры 165 | 166 | // Выгрузить записи регистра в файл. 167 | // 168 | // Параметры: 169 | // ЗаписиРегистра - Массив из РегистрСведенийКлючЗаписи.ИТМ_ИсторияФормированияОтчетов - Записи регистра 170 | // ИмяФайла - Строка - Имя файла 171 | Процедура ВыгрузитьЗаписиРегистраВФайл(ЗаписиРегистра, ИмяФайла = "") Экспорт 172 | 173 | Если НЕ ЗначениеЗаполнено(ЗаписиРегистра) Тогда 174 | Возврат; 175 | КонецЕсли; 176 | 177 | Если ПустаяСтрока(ИмяФайла) Тогда 178 | ВыбратьФайлСохраненияЗаписейРегистра(Null, ПараметрыЗаписиВФайл(ЗаписиРегистра)); 179 | Иначе 180 | ДанныеДляСохранения = ИТМ_ИсторияФормированияОтчетовВызовСервера.ДанныеЗаписейРегистраДляСохраненияВФайл(ЗаписиРегистра); 181 | СохраняемыйТекст = Новый ТекстовыйДокумент; 182 | СохраняемыйТекст.УстановитьТекст(ДанныеДляСохранения); 183 | СохраняемыйТекст.НачатьЗапись(, ИмяФайла); 184 | КонецЕсли; 185 | 186 | КонецПроцедуры 187 | 188 | #КонецОбласти 189 | 190 | #КонецОбласти 191 | 192 | #Область СлужебныеПроцедурыИФункции 193 | 194 | // Параметры записи в файл. 195 | // 196 | // Параметры: 197 | // ЗаписиРегистра - см. ВыгрузитьЗаписиРегистраВФайл.ЗаписиРегистра 198 | // 199 | // Возвращаемое значение: 200 | // Структура - : 201 | // * ЗаписиРегистра - см. ВыгрузитьЗаписиРегистраВФайл.ЗаписиРегистра 202 | Функция ПараметрыЗаписиВФайл(ЗаписиРегистра) 203 | 204 | Возврат Новый Структура("ЗаписиРегистра", ЗаписиРегистра); 205 | 206 | КонецФункции 207 | 208 | #КонецОбласти 209 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/Forms/ФормаНастроек/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область ОбработчикиСобытийФормы 4 | 5 | &НаСервере 6 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 7 | 8 | Попытка 9 | ИТМ_ИсторияФормированияОтчетов.СоздатьОбщуюНастройкуПриОтсутствии(); 10 | Исключение 11 | ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки()); 12 | КонецПопытки; 13 | 14 | СхемаКомпоновкиДанных = РегистрыСведений.ИТМ_НастройкиИсторииФормированияОтчетов.ПолучитьМакет("ОтборыНеобходимостиЗаписи"); 15 | АдресСхемыКомпоновки = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор); 16 | 17 | КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыКомпоновки)); 18 | КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); 19 | 20 | КомпоновщикНастроекПоУмолчанию.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыКомпоновки)); 21 | КомпоновщикНастроекПоУмолчанию.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); 22 | 23 | КонецПроцедуры 24 | 25 | #КонецОбласти 26 | 27 | #Область ОбработчикиСобытийЭлементовШапкиФормы 28 | 29 | &НаКлиенте 30 | Процедура ЗаписьФиксироватьИсториюПриИзменении(Элемент) 31 | 32 | СохранитьТекущуюЗапись(); 33 | 34 | КонецПроцедуры 35 | 36 | &НаКлиенте 37 | Процедура ИспользоватьОтборыПриИзменении(Элемент) 38 | 39 | СохранитьТекущуюЗапись(); 40 | 41 | КонецПроцедуры 42 | 43 | &НаКлиенте 44 | Процедура КомпоновщикНастроекНастройкиОтборПриИзменении(Элемент) 45 | 46 | СохранитьТекущуюЗапись(); 47 | 48 | КонецПроцедуры 49 | 50 | #КонецОбласти 51 | 52 | #Область ОбработчикиСобытийЭлементовТаблицыФормыКомпоновщикНастроекНастройкиПользовательскиеПоля 53 | 54 | &НаКлиенте 55 | Процедура КомпоновщикНастроекНастройкиПользовательскиеПоляПриИзменении(Элемент) 56 | 57 | СохранитьТекущуюЗапись(); 58 | 59 | КонецПроцедуры 60 | 61 | 62 | #КонецОбласти 63 | 64 | #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок 65 | 66 | &НаКлиенте 67 | Процедура СписокПриАктивизацииСтроки(Элемент) 68 | 69 | УстановитьТекущуюСтраницу(ЭтотОбъект, Элементы.СтраницаПустая); 70 | ПодключитьОбработчикОжидания("ОбработатьИзменениеТекущейСтроки", 0.1, Истина); 71 | 72 | КонецПроцедуры 73 | 74 | &НаКлиенте 75 | Процедура СписокПередНачаломИзменения(Элемент, Отказ) 76 | 77 | Отказ = Истина; 78 | 79 | КонецПроцедуры 80 | 81 | &НаКлиенте 82 | Процедура СписокПередУдалением(Элемент, Отказ) 83 | 84 | ТекущиеДанные = Элементы.Список.ТекущиеДанные; 85 | Если ТекущиеДанные = Неопределено ИЛИ ТекущиеДанные.Отчет.Пустая() Тогда 86 | Отказ = Истина; 87 | КонецЕсли; 88 | 89 | КонецПроцедуры 90 | 91 | &НаКлиенте 92 | Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) 93 | 94 | Отказ = Истина; 95 | 96 | ПараметрыВыбора = Новый Структура; 97 | ПараметрыВыбора.Вставить("Отбор", Новый Структура); 98 | ПараметрыВыбора.Отбор.Вставить("БезДанных", Истина); 99 | ПараметрыВыбора.Отбор.Вставить("ПометкаУдаления", Ложь); 100 | 101 | ПараметрыОповещения = Новый Структура("Копирование", Копирование); 102 | ОписаниеОповещения = Новый ОписаниеОповещения("ДобавитьНастройкуПоОтчету", ЭтотОбъект, ПараметрыОповещения); 103 | 104 | //@skip-check invocation-parameter-type-intersect - Баг ЕДТ 105 | ОткрытьФорму("РегистрСведений.ИТМ_НастройкиИсторииФормированияОтчетов.Форма.ФормаВыбораОтчета",ПараметрыВыбора, 106 | ЭтотОбъект,,,, ОписаниеОповещения ,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); 107 | 108 | КонецПроцедуры 109 | 110 | #КонецОбласти 111 | 112 | #Область ОбработчикиКомандФормы 113 | 114 | &НаКлиенте 115 | Процедура Команда_СохранитьНастройки(Команда) 116 | 117 | Закрыть(); 118 | 119 | КонецПроцедуры 120 | 121 | #КонецОбласти 122 | 123 | #Область СлужебныеПроцедурыИФункции 124 | 125 | &НаСервере 126 | Процедура СохранитьТекущуюЗапись() 127 | 128 | Если НЕ ЗначениеЗаполнено(АктивнаяСтрока) Тогда 129 | Возврат; 130 | КонецЕсли; 131 | 132 | ЗаписьРегистра = РегистрыСведений.ИТМ_НастройкиИсторииФормированияОтчетов.СоздатьМенеджерЗаписи(); 133 | ЗаполнитьЗначенияСвойств(ЗаписьРегистра, Запись); 134 | 135 | ДополнительныеНастройки = ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонДополнительныхНастроекПодсистемы(); 136 | ДополнительныеНастройки.Отборы = КомпоновщикНастроек.ПолучитьНастройки(); 137 | ЗаписьРегистра.ДополнительныеНастройки = Новый ХранилищеЗначения(ДополнительныеНастройки); 138 | 139 | ЗаписьРегистра.Записать(Истина); 140 | 141 | Элементы.Список.Обновить(); 142 | 143 | КонецПроцедуры 144 | 145 | // Добавить настройку по отчету. 146 | // 147 | // Параметры: 148 | // РезультатЗакрытия - СправочникСсылка.ИдентификаторыОбъектовМетаданных 149 | // ДополнительныеПараметры - Структура 150 | &НаКлиенте 151 | Процедура ДобавитьНастройкуПоОтчету(РезультатЗакрытия, ДополнительныеПараметры) Экспорт 152 | 153 | Если ТипЗнч(РезультатЗакрытия) <> Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") 154 | ИЛИ РезультатЗакрытия.Пустая() Тогда 155 | Возврат; 156 | КонецЕсли; 157 | 158 | ДобавитьНастройкуПоОтчетуНаСервере(РезультатЗакрытия, ДополнительныеПараметры); 159 | 160 | КонецПроцедуры 161 | 162 | // Добавить настройку по отчету на сервере. 163 | // 164 | // Параметры: 165 | // СсылкаНаОтчет - СправочникСсылка.ИдентификаторыОбъектовМетаданных 166 | // ДополнительныеПараметры - Структура 167 | &НаСервере 168 | Процедура ДобавитьНастройкуПоОтчетуНаСервере(СсылкаНаОтчет, ДополнительныеПараметры) 169 | 170 | ЭтоКопирование = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "Копирование", Ложь); 171 | 172 | НоваяЗапись = РегистрыСведений.ИТМ_НастройкиИсторииФормированияОтчетов.СоздатьМенеджерЗаписи(); 173 | НоваяЗапись.Отчет = СсылкаНаОтчет; 174 | НоваяЗапись.Записать(Истина); 175 | 176 | КлючТекущейЗаписи = РегистрыСведений.ИТМ_НастройкиИсторииФормированияОтчетов.СоздатьКлючЗаписи(Новый Структура("Отчет", СсылкаНаОтчет)); 177 | Если ЭтоКопирование Тогда 178 | АктивнаяСтрока = КлючТекущейЗаписи; 179 | Запись.Отчет = СсылкаНаОтчет; 180 | СохранитьТекущуюЗапись(); 181 | АктивнаяСтрока = Неопределено; 182 | КонецЕсли; 183 | 184 | Элементы.Список.ТекущаяСтрока = КлючТекущейЗаписи; 185 | 186 | КонецПроцедуры 187 | 188 | // Обработать изменение текущей строки. 189 | &НаКлиенте 190 | Процедура ОбработатьИзменениеТекущейСтроки() Экспорт 191 | 192 | Если АктивнаяСтрока = Элементы.Список.ТекущаяСтрока Тогда 193 | УстановитьТекущуюСтраницу(ЭтотОбъект); 194 | Возврат; 195 | КонецЕсли; 196 | 197 | ОбработатьИзменениеТекущейСтрокиНаСервере(); 198 | 199 | КонецПроцедуры 200 | 201 | &НаСервере 202 | Процедура ОбработатьИзменениеТекущейСтрокиНаСервере() 203 | 204 | ТекущаяАктивнаяСтрока = Элементы.Список.ТекущаяСтрока; //РегистрСведенийКлючЗаписи.ИТМ_НастройкиИсторииФормированияОтчетов 205 | АктивнаяСтрока = ТекущаяАктивнаяСтрока; 206 | 207 | Если ЗначениеЗаполнено(ТекущаяАктивнаяСтрока) Тогда 208 | 209 | НастройкиОтчета = РегистрыСведений.ИТМ_НастройкиИсторииФормированияОтчетов.НастройкиОтчета(ТекущаяАктивнаяСтрока.Отчет, Ложь); 210 | ЗаполнитьЗначенияСвойств(Запись, НастройкиОтчета); 211 | Запись.Отчет = ТекущаяАктивнаяСтрока.Отчет; 212 | 213 | ОтборыНеобходимостиЗаписи = НастройкиОтчета.ДополнительныеНастройки.Отборы; 214 | 215 | Если ТипЗнч(ОтборыНеобходимостиЗаписи) = Тип("НастройкиКомпоновкиДанных") Тогда 216 | ИТМ_ИсторияФормированияОтчетов.ПрименитьОтборыИзНастроекОтчета(КомпоновщикНастроек.Настройки, ОтборыНеобходимостиЗаписи); 217 | Иначе 218 | КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроекПоУмолчанию.Настройки); 219 | КонецЕсли; 220 | 221 | КонецЕсли; 222 | 223 | УстановитьТекущуюСтраницу(ЭтотОбъект); 224 | 225 | КонецПроцедуры 226 | 227 | &НаКлиентеНаСервереБезКонтекста 228 | Процедура УстановитьТекущуюСтраницу(Форма, Знач ТекущаяСтраница = Неопределено) 229 | 230 | Если ТекущаяСтраница = Неопределено Тогда 231 | //@skip-warning - баг ЕДТ. Ругается на произвольный тип реквизита формы, но никак типизировать его нельзя 232 | ИмяСтраницы = ?(Форма.АктивнаяСтрока = Неопределено, "СтраницаПустая", "СтраницаНастроек"); 233 | ТекущаяСтраница = Форма.Элементы[ИмяСтраницы]; 234 | КонецЕсли; 235 | 236 | ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, 237 | "СтраницыНастройкиОтчета", "ТекущаяСтраница", ТекущаяСтраница); 238 | 239 | КонецПроцедуры 240 | 241 | #КонецОбласти 242 | -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | # Внедрение 2 | 3 | Подсистема «**История формирования отчетов**» (далее ИФО) сохраняет информацию о выполнениях отчетов пользователями: длительность, используемые настройки, описание ошибки и т.д. 4 | 5 | Предоставляет возможность применять используемые ранее настройки отчета, сохранять возникающие ошибки и выявлять настройки, приводящие к долгому выполнению отчета. 6 | 7 | Расширение внедряется в стандартный код формирования отчетов БСП и общую форму отчета. Но можно вызовать методы вручную, если какой-то отчет отличается от типового подхода БСП. 8 | 9 | ## Что дает подсистема? 10 | 11 | - **Пользователям** - интерфейс, который позволит "откатиться" к прежним настройкам отчета, а так же делиться ими без сохранения в качестве отдельного варианта. 12 | - **Администраторам** - подсистему для контроля скорости выполнение отчетов и проблем по ним. 13 | - **Разработчикам** - механизм, который позволяет выполнять отчет с такими же настройками, что были у пользователя. 14 | 15 | # Установка 16 | 17 | Необходимо установить расширение как указано на скриншоте 18 | 19 | ![image](docs/img/01.png) 20 | 21 | # Настройка 22 | 23 | Настройка происходит в регистре сведений по навигационной ссылке: 24 | `e1cib/list/РегистрСведений.ИТМ_НастройкиИсторииФормированияОтчетов` 25 | 26 | ![image](docs/img/02.png) 27 | 28 | Настройки подсистемы ведутся в разрезе отчетов. То есть, каждому отчету можно задать свои собственные настройки. Если не задавать, то будут применяться "общие". 29 | 30 | На данный момент подсистема не включена. В таком виде база будет работать как всегда и история фиксироваться не будет. Давайте включим подсистему. Для этого нажмём в общих настройках "Фиксировать историю". 31 | 32 | ![image](docs/img/03.png) 33 | 34 | Теперь по всем отчетам всегда будет фиксироваться история. 35 | 36 | Но что если нет необходимости писать историю какого-то отчета? Для этого можно просто сделать для него отдельную настройку. К примеру, отключим историю для "Движения документа". Это простой контекстный отчёт и нам отслеживать его нет смысла. 37 | 38 | Нажмём "Добавить" и выберем в списке отчет "Движения документа". В настройки подсистемы добавлена новая запись. Проверим, что снят флажок "Фиксировать историю". 39 | 40 | ![image](docs/img/04.png) 41 | 42 | Теперь подсистема будет фиксировать все отчеты, кроме "Движения документа". 43 | 44 | Но что, если нам не нужно вообще хранить каждое выполнение отчётов? Допустим, что есть смысл хранить только те настройки отчётов, которые привели к ошибке выполнения. Для этого необходимо воспользоваться настройкой отборов. 45 | 46 | Активируем строку с общими настройками и нажмём на выбор отборов. 47 | 48 | ![image](docs/img/05.png) 49 | 50 | Настройка отборов базируется на СКД. Вот доступные "из коробки" поля для отборов. 51 | 52 | ![image](docs/img/06.png) 53 | 54 | Примеры настроек: 55 | 56 | - Фиксируем только ошибочное выполнение: 57 | ![image](docs/img/07.png) 58 | 59 | - Фиксируем выполнение, которое медленнее указанного в ключевой операции времени: 60 | ![image](docs/img/08.png) 61 | 62 | - Фиксируем только выполнения пользователей из списка: 63 | ![image](docs/img/09.png) 64 | 65 | И так далее. Так же есть возможность добавления дополнительных пользовательских полей: 66 | ![image](docs/img/10.png) 67 | 68 | Сейчас мы сделаем простую настройку. История будет фиксироваться только под этими пользователем "Орлов АВ" (Администратор демо-базы ERP). 69 | 70 | Отборы будут учитываться только когда включен флаг "Собственные отборы". Допустим, что вы решили отказаться от отборов на какое-то время. Вам нет необходимости удалять отборы. Достаточно снять флаг. А потом, как понадобится, включить снова. 71 | 72 | Всё, на данный момент у нас будет фиксироваться история всех отчётов только по Орлову. При этом по "Движения документа" история отключена. 73 | 74 | ![image](docs/img/11.png) 75 | 76 | Давайте укажем ещё один пример настройки подсистемы. Предположим, что "Универсальный отчёт" должен хранить историю по всем пользователям. То есть для него необходимо "отменить" использование общих отборов. Для этого можно добавить нашему отчёту настройку и установить флаг "Собственные отборы". Всё, уже на этом этапе отчет больше не смотрит на общие отборы и ему можно установить свои. Или не указывать - тогда история будет писаться по нему всегда. 77 | 78 | ![image](docs/img/12.png) 79 | 80 | ## Права доступа 81 | 82 | По умолчанию только у администраторов есть доступ к настройке и просмотру истории отчетов. Но пишется история под любым пользователем (в соответствии с настройками подсистемы). 83 | 84 | Но можно настроить более гибко. Для этого в составе подсистемы есть роли: 85 | 86 | - **Просмотр своей истории формирования отчетов** - позволяет смотреть только свою историю формирования 87 | - **Просмотр всей истории формирования отчетов** - позволяет смотреть историю формирования всех пользователей 88 | - **Анализ истории формирования отчетов** - позволяет формировать одноименный отчет для анализа истории 89 | - **Администратор истории формирования отчетов** - позволяет изменять настройки подсистемы, а так же выгружать и загружать записи истории из базы. 90 | Эти роли можно выдавать разным пользователям. Вот пример настройки для демо-базы ERP: 91 | 92 | Для начала создадим профили доступа на каждую роль подсистемы 93 | 94 | ![image](docs/img/13.png) 95 | 96 | В каждом профиле указывается только одноименная роль: 97 | 98 | ![image](docs/img/14.png) 99 | 100 | ![image](docs/img/15.png) 101 | 102 | ![image](docs/img/16.png) 103 | 104 | По такому же принципу создадим и группы доступа 105 | 106 | ![image](docs/img/17.png) 107 | 108 | Теперь в каждую группу можно добавлять пользователей. Например, дадим право просмотра своей истории Кислову Артему Сергеевичу (демо-кладовщик) 109 | 110 | ![image](docs/img/18.png) 111 | 112 | После перезахода в базу этот пользователь сможет смотреть историю по себе. 113 | 114 | Подобным образом можно использовать и роль просмотра всей истории и роль администрирования. 115 | 116 | # Использование 117 | 118 | Как только настройка подсистемы завершена, у всех пользователей (которым доступен просмотр истории) в типовой форме отчета появляется соответствующая кнопка 119 | 120 | ![image](docs/img/19.png) 121 | 122 | После чего открывается форма выбора настроек с которыми формировали этот вариант отчета. 123 | 124 | ![image](docs/img/20.png) 125 | 126 | В этой форме можно выбрать записи истории формирования отчетов и настройки из них автоматически загрузятся. 127 | 128 | - **Выбрать** - Применить настройки из истории 129 | - **Только мои** - Показывать только историю текущего пользователя. Кнопку можно "отключить", если есть право администрирования или просмотра всей истории. 130 | - **Выгрузить в файл** - Выгрузить выбранные записи истории в файл. Позволяет сохранять записи в формате XML, чтобы потом использовать для анализа на копии. Кнопка доступна только администратору. 131 | - **Загрузить из файла** - Загрузить записи истории из файла. Читает файл, который был создан по кнопке "Выгрузить в файл". Кнопка доступна только администратору. 132 | 133 | Отображаемые колонки: 134 | 135 | - **Начало** - Начало формирования отчета с настройками 136 | - **Пользователь** - Пользователь, который формировал отчет 137 | - **Длительность** - Сколько времени формировался отчет 138 | - **Текст ошибки** - По какой причине отчет не удалось сформировать 139 | - **Успех** - Удалось ли сформировать отчет 140 | - **Комментарий** - Комментарий к записи истории, установленный вручную. Доступна для редактирования администратору подсистемы. 141 | 142 | Помимо вызова из формы самого отчета, можно перейти в сам регистр и увидеть там полный набор записей: 143 | `e1cib/list/РегистрСведений.ИТМ_ИсторияФормированияОтчетов` 144 | 145 | В общей форме списка состав колонок шире 146 | 147 | ![image](docs/img/21.png) 148 | 149 | Из общей формы списка можно сразу же открыть отчет по соответствующей кнопке. Откроется вариант отчета с установленными настройками из записи истории. 150 | 151 | В любой записи истории можно установить произвольный комментарий. 152 | 153 | ![image](docs/img/22.png) 154 | 155 | Для удобства не забывайте пользоваться навигационными ссылками. Таким образом можно пересылать друг другу ссылки на нужные записи 156 | 157 | ![image](docs/img/23.png) 158 | 159 | Для анализа накопленных данных в подсистеме есть свой отчет "Анализ истории формирования отчетов". 160 | 161 | Встроенный вариант "Количество ошибок за день": 162 | 163 | ![image](docs/img/24.png) 164 | 165 | Вариант "Различные ошибки": 166 | 167 | ![image](docs/img/25.png) 168 | 169 | На его базе можно собрать любые необходимые варианты. 170 | 171 | # Разработка 172 | 173 | Для удобства доработки подсистемы под свои нужды добавлены переопределяемые модуль. В них вынесены процедуры и функции для гибкого управления логикой механизмов. Методы прокоментированы с примерами использования. 174 | 175 | Подсистему можно использовать и не только в отчетах, которые используют типовую форму БСП. Для фиксирования истории по любым отчетам можно воспользоваться методами, которые находятся в области `ЗамерПроизвольногоОтчета` модуля `ИТМ_ИсторияФормированияОтчетов` 176 | 177 | ![image](docs/img/26.png) 178 | 179 | Для выноса кнопки на форму нетипового отчета можно использовать метод `ИТМ_ИсторияФормированияОтчетов.ФормаОтчета_ПриСозданииНаСервере()`. В составе дополнительных параметров можно передать имя командной панели, в которой необходимо разместить кнопку. 180 | 181 | # Разбор ошибок формирования отчетов 182 | 183 | Рассмотрим кейс, когда к вам пришел инцидент, что какой-то из отчетов формируется с ошибкой и вам нужно определить порядок воспроизведения ошибки, чтобы подтвердить существование проблемы и затем поставить запрос на исправление ошибки. 184 | 185 | Рассмотрим реальный пример на основании данных отчета "Анализ истории формирования отчетов", вариант "Анализ истории формирования отчетов (Количество ошибок за день)" за период 14 декабря в базе КИС ГКЦ. 186 | 187 | Отчет показывает следующие данные: 188 | 189 | ![image](docs/img/27.png) 190 | 191 | На скриншоте видно, что за 14 декабря 9 раз формирование отчетов падало по ошибке. Попробуем воспроизвести ошибку в отчете "Отчет.КадровыеДанныеСотрудников": 192 | 193 | 1. Открываем форму регистра сведений "История формирования отчетов", убираем отбор "Только мои" 194 | ![image](docs/img/28.png) 195 | 196 | 2. Делаем следующий отбор: 197 | Полное имя - Отчет.КадровыеДанныеСотрудников 198 | Успех - Нет 199 | Видим запись формирования отчета, когда он упал с ошибкой: 200 | ![image](docs/img/29.png) 201 | 202 | 3. Позиционируемся на данной строке регистра сведений и нажимаем кнопку "Открыть отчет" 203 | 204 | 4. Открылась форма отчета "Кадровые данные сотрудников" и в нее автоматически подтянулись те же самые настройки, с которыми формирование отчета у пользователя "Иванов Петр Юрьевич" завершилось ошибкой. Сформируем отчет. 205 | ![image](docs/img/30.png) 206 | 207 | 5. Как видим у нас отчет сформировался без ошибок, а это в скорее всего значит, что дело в правах пользователя и у него не хватает прав на одну из таблиц запроса. 208 | 209 | 6. Смотрим по данному регистру сведений формировался ли этот отчет без ошибок у других пользователей, и если да, то разбираемся в правах пользователей, чтобы выяснить в чем разница между ними. 210 | 211 | Это был один конкретный случай и найдена причина проблемы, но нужно действовать по ситуации. 212 | 213 | ## Заключение 214 | 215 | Если вам интересен проект, то не пожалейте поставить "звездочку" =) 216 | 217 | По всем вопросам можете обращаться к разработчику [@Черненко Виталий](https://github.com/SeiOkami) 218 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2024 chernenko_vv 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/Templates/ОтборыНеобходимостиЗаписи/Template.dcs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ИсточникДанных1 5 | Local 6 | 7 | 8 | НаборДанных1 9 | 10 | НачалоФормирования 11 | НачалоФормирования 12 | 13 | <v8:item> 14 | <v8:lang>ru</v8:lang> 15 | <v8:content>Начало формирования</v8:content> 16 | </v8:item> 17 | 18 | 19 | xs:dateTime 20 | 21 | DateTime 22 | 23 | 24 | 25 | 26 | ПолноеИмя 27 | ПолноеИмя 28 | 29 | <v8:item> 30 | <v8:lang>ru</v8:lang> 31 | <v8:content>Полное имя</v8:content> 32 | </v8:item> 33 | 34 | 35 | xs:string 36 | 37 | 150 38 | Variable 39 | 40 | 41 | 42 | 43 | КлючВарианта 44 | КлючВарианта 45 | 46 | <v8:item> 47 | <v8:lang>ru</v8:lang> 48 | <v8:content>Ключ варианта</v8:content> 49 | </v8:item> 50 | 51 | 52 | xs:string 53 | 54 | 150 55 | Variable 56 | 57 | 58 | 59 | 60 | Пользователь 61 | Пользователь 62 | 63 | <v8:item> 64 | <v8:lang>ru</v8:lang> 65 | <v8:content>Пользователь</v8:content> 66 | </v8:item> 67 | 68 | 69 | c54edff0-c3a1-44d7-9707-1fe05700b055 70 | 71 | 72 | 73 | НомерСеанса 74 | НомерСеанса 75 | 76 | <v8:item> 77 | <v8:lang>ru</v8:lang> 78 | <v8:content>Номер сеанса</v8:content> 79 | </v8:item> 80 | 81 | 82 | xs:decimal 83 | 84 | 9 85 | 0 86 | Nonnegative 87 | 88 | 89 | 90 | 91 | СсылкаВарианта 92 | СсылкаВарианта 93 | 94 | <v8:item> 95 | <v8:lang>ru</v8:lang> 96 | <v8:content>Ссылка варианта</v8:content> 97 | </v8:item> 98 | 99 | 100 | b7ea0510-1c17-417a-b55c-5e6720efe4fd 101 | 102 | 103 | 104 | СсылкаОтчета 105 | СсылкаОтчета 106 | 107 | <v8:item> 108 | <v8:lang>ru</v8:lang> 109 | <v8:content>Ссылка отчета</v8:content> 110 | </v8:item> 111 | 112 | 113 | ad99c086-2ae3-4648-ad31-fef3acf326e4 114 | f6b1de62-9422-4ed0-8d1c-7a9ec4ab1ffe 115 | 116 | 117 | 118 | ТекстОшибки 119 | ТекстОшибки 120 | 121 | <v8:item> 122 | <v8:lang>ru</v8:lang> 123 | <v8:content>Текст ошибки</v8:content> 124 | </v8:item> 125 | 126 | 127 | xs:string 128 | 129 | 0 130 | Variable 131 | 132 | 133 | 134 | 135 | Успех 136 | Успех 137 | 138 | <v8:item> 139 | <v8:lang>ru</v8:lang> 140 | <v8:content>Успех</v8:content> 141 | </v8:item> 142 | 143 | 144 | xs:boolean 145 | 146 | 147 | 148 | ОкончаниеФормирования 149 | ОкончаниеФормирования 150 | 151 | <v8:item> 152 | <v8:lang>ru</v8:lang> 153 | <v8:content>Окончание формирования</v8:content> 154 | </v8:item> 155 | 156 | 157 | xs:dateTime 158 | 159 | DateTime 160 | 161 | 162 | 163 | 164 | ДлительностьФормирования 165 | ДлительностьФормирования 166 | 167 | <v8:item> 168 | <v8:lang>ru</v8:lang> 169 | <v8:content>Длительность формирования</v8:content> 170 | </v8:item> 171 | 172 | 173 | true 174 | 175 | 176 | xs:dateTime 177 | 178 | Time 179 | 180 | 181 | 182 | 183 | Комментарий 184 | Комментарий 185 | 186 | <v8:item> 187 | <v8:lang>ru</v8:lang> 188 | <v8:content>Комментарий</v8:content> 189 | </v8:item> 190 | 191 | 192 | xs:string 193 | 194 | 0 195 | Variable 196 | 197 | 198 | 199 | 200 | ИспользуемоеИмяФайла 201 | ИспользуемоеИмяФайла 202 | 203 | <v8:item> 204 | <v8:lang>ru</v8:lang> 205 | <v8:content>Используемое имя файла</v8:content> 206 | </v8:item> 207 | 208 | 209 | xs:string 210 | 211 | 0 212 | Variable 213 | 214 | 215 | 216 | 217 | КлючеваяОперация 218 | КлючеваяОперация 219 | 220 | <v8:item> 221 | <v8:lang>ru</v8:lang> 222 | <v8:content>Ключевая операция</v8:content> 223 | </v8:item> 224 | 225 | 226 | 676b2de3-8483-43bc-96a9-b6dc37c0fa3d 227 | 228 | 229 | ИсточникДанных1 230 | ПараметрыВыполнения 231 | 232 | 233 | ДлительностьФормированияВСекундах 234 | Секунда(ДлительностьФормирования) 235 | 236 | <v8:item> 237 | <v8:lang>ru</v8:lang> 238 | <v8:content>Длительность формирования (кол-во секундах)</v8:content> 239 | </v8:item> 240 | 241 | 242 | xs:decimal 243 | 244 | 0 245 | 0 246 | Any 247 | 248 | 249 | 250 | 251 | ТипСсылкиОтчета 252 | ТипЗначения(СсылкаОтчета) 253 | 254 | <v8:item> 255 | <v8:lang>ru</v8:lang> 256 | <v8:content>Тип ссылки отчета</v8:content> 257 | </v8:item> 258 | 259 | 260 | 261 | ЭтоДополнительныйОтчет 262 | ТипЗначения(СсылкаОтчета) = ТипЗначения(Значение(Справочник.ДополнительныеОтчетыИОбработки.ПустаяСсылка)) 263 | 264 | <v8:item> 265 | <v8:lang>ru</v8:lang> 266 | <v8:content>Это дополнительный отчет</v8:content> 267 | </v8:item> 268 | 269 | 270 | xs:boolean 271 | 272 | 273 | 274 | Основной 275 | Основной 276 | 277 | 278 | 279 | ТипСсылкиОтчета 280 | 281 | 282 | ЭтоДополнительныйОтчет 283 | 284 | 285 | ДлительностьФормирования 286 | 287 | 288 | ИспользуемоеИмяФайла 289 | 290 | 291 | КлючВарианта 292 | 293 | 294 | КлючеваяОперация 295 | 296 | 297 | Комментарий 298 | 299 | 300 | НачалоФормирования 301 | 302 | 303 | НомерСеанса 304 | 305 | 306 | ОкончаниеФормирования 307 | 308 | 309 | ПолноеИмя 310 | 311 | 312 | Пользователь 313 | 314 | 315 | СсылкаВарианта 316 | 317 | 318 | СсылкаОтчета 319 | 320 | 321 | ТекстОшибки 322 | 323 | 324 | Успех 325 | 326 | 327 | ДлительностьФормированияВСекундах 328 | 329 | 330 | 331 | 332 | false 333 | Пользователь 334 | InList 335 | 336 | 337 | -1 338 | 339 | 340 | 341 | false 342 | Успех 343 | Equal 344 | false 345 | 346 | 347 | false 348 | ДлительностьФормирования 349 | Greater 350 | 0001-01-01T00:30:00 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/DataProcessors/ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов/Forms/Форма/Form.form: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ИТМ_ИсторияФормированияОтчетов 5 | 23 6 | 7 | КраткоеОписаниеПодсистемы 8 | 25 9 | true 10 | true 11 | 12 | true 13 | 14 | 15 | КраткоеОписаниеПодсистемыРасширеннаяПодсказка 16 | 27 17 | true 18 | true 19 | 20 | true 21 | 22 | Label 23 | true 24 | true 25 | 26 | Left 27 | 28 | 29 | 30 | КраткоеОписаниеПодсистемыКонтекстноеМеню 31 | 26 32 | true 33 | true 34 | 35 | true 36 | 37 | true 38 | 39 | Label 40 | 80 41 | true 42 | true 43 | 44 | Left 45 | 46 | 47 | 48 | ГруппаКолонки 49 | 30 50 | 51 | ГруппаЛевая 52 | 32 53 | 54 | КонстантаИспользоватьИсториюФормированияОтчетовОткрыть 55 | 34 56 | true 57 | true 58 | 59 | true 60 | 61 | 62 | КонстантаИспользоватьИсториюФормированияОтчетовОткрытьРасширеннаяПодсказка 63 | 35 64 | true 65 | true 66 | 67 | true 68 | 69 | Label 70 | true 71 | 72 | 73 | Hyperlink 74 | Constant.ИспользоватьИсториюФормированияОтчетов.StandardCommand.Open 75 | Auto 76 | true 77 | true 78 | UserCmds 79 | ShowBottom 80 | Auto 81 | 82 | 83 | РегистрСведенийИТМ_НастройкиИсторииФормированияОтчетовОткрытьСписок 84 | 36 85 | 86 | <key>ru</key> 87 | <value>Настройки истории формирования отчетов</value> 88 | 89 | true 90 | true 91 | 92 | true 93 | 94 | 95 | РегистрСведенийИТМ_НастройкиИсторииФормированияОтчетовОткрытьСписокРасширеннаяПодсказка 96 | 37 97 | true 98 | true 99 | 100 | true 101 | 102 | Label 103 | true 104 | 105 | 106 | Hyperlink 107 | InformationRegister.ИТМ_НастройкиИсторииФормированияОтчетов.StandardCommand.OpenList 108 | Auto 109 | true 110 | true 111 | UserCmds 112 | ShowBottom 113 | Auto 114 | 115 | true 116 | true 117 | 118 | true 119 | 120 | 121 | <key>ru</key> 122 | <value>Группа левая</value> 123 | 124 | 40 125 | false 126 | false 127 | 128 | ГруппаЛеваяРасширеннаяПодсказка 129 | 33 130 | true 131 | true 132 | 133 | true 134 | 135 | Label 136 | true 137 | true 138 | 139 | Left 140 | 141 | 142 | UsualGroup 143 | 144 | Vertical 145 | true 146 | true 147 | Auto 148 | Auto 149 | 150 | 151 | 152 | ГруппаПравая 153 | 38 154 | 155 | РегистрСведенийИТМ_ИсторияФормированияОтчетовОткрытьСписок 156 | 40 157 | 158 | <key>ru</key> 159 | <value>История формирования отчетов</value> 160 | 161 | true 162 | true 163 | 164 | true 165 | 166 | 167 | РегистрСведенийИТМ_ИсторияФормированияОтчетовОткрытьСписокРасширеннаяПодсказка 168 | 41 169 | true 170 | true 171 | 172 | true 173 | 174 | Label 175 | true 176 | 177 | 178 | Hyperlink 179 | InformationRegister.ИТМ_ИсторияФормированияОтчетов.StandardCommand.OpenList 180 | Auto 181 | true 182 | true 183 | UserCmds 184 | ShowBottom 185 | Auto 186 | 187 | 188 | ОтчетИТМ_АнализИсторииФормированияОтчетовОткрыть 189 | 42 190 | 191 | <key>ru</key> 192 | <value>Анализ истории формирования отчетов</value> 193 | 194 | true 195 | true 196 | 197 | true 198 | 199 | 200 | ОтчетИТМ_АнализИсторииФормированияОтчетовОткрытьРасширеннаяПодсказка 201 | 43 202 | true 203 | true 204 | 205 | true 206 | 207 | Label 208 | true 209 | 210 | 211 | Hyperlink 212 | Report.ИТМ_АнализИсторииФормированияОтчетов.StandardCommand.Open 213 | Auto 214 | true 215 | true 216 | UserCmds 217 | ShowBottom 218 | Auto 219 | 220 | true 221 | true 222 | 223 | true 224 | 225 | 226 | <key>ru</key> 227 | <value>Группа правая</value> 228 | 229 | 40 230 | false 231 | false 232 | 233 | ГруппаПраваяРасширеннаяПодсказка 234 | 39 235 | true 236 | true 237 | 238 | true 239 | 240 | Label 241 | true 242 | true 243 | 244 | Left 245 | 246 | 247 | UsualGroup 248 | 249 | Vertical 250 | true 251 | true 252 | Auto 253 | Auto 254 | 255 | 256 | true 257 | true 258 | 259 | true 260 | 261 | 262 | <key>ru</key> 263 | <value>Группа колонки</value> 264 | 265 | false 266 | false 267 | 268 | ГруппаКолонкиРасширеннаяПодсказка 269 | 31 270 | true 271 | true 272 | 273 | true 274 | 275 | Label 276 | true 277 | true 278 | 279 | Left 280 | 281 | 282 | UsualGroup 283 | 284 | HorizontalIfPossible 285 | true 286 | true 287 | Auto 288 | Auto 289 | 290 | 291 | true 292 | true 293 | 294 | true 295 | 296 | 297 | <key>ru</key> 298 | <value>История формирования отчетов</value> 299 | 300 | false 301 | false 302 | 303 | ИТМ_ИсторияФормированияОтчетовРасширеннаяПодсказка 304 | 24 305 | true 306 | true 307 | 308 | true 309 | 310 | Label 311 | true 312 | true 313 | 314 | Left 315 | 316 | 317 | UsualGroup 318 | 319 | Vertical 320 | WeakSeparation 321 | true 322 | true 323 | true 324 | Auto 325 | Auto 326 | 327 | 328 | 329 | ФормаКоманднаяПанель 330 | -1 331 | true 332 | true 333 | 334 | true 335 | 336 | Left 337 | true 338 | 339 | true 340 | true 341 | Vertical 342 | true 343 | true 344 | true 345 | true 346 | true 347 | 348 | Объект 349 | 1 350 | 351 | DataProcessorObject.ИТМ_ПанельПодсистемы_ИсторияФормированияОтчетов 352 | 353 | 354 | true 355 | 356 | 357 | true 358 | 359 |
true
360 |
361 | 362 | 363 | 364 | 365 | 366 |
367 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_ИсторияФормированияОтчетов/ИТМ_ИсторияФормированияОтчетов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ИТМ_ИсторияФормированияОтчетов 13 | 14 | ru 15 | История формирования отчетов (ИТМ) 16 | 17 | true 18 | InDialog 19 | InformationRegister.ИТМ_ИсторияФормированияОтчетов.Form.ФормаЗаписи 20 | InformationRegister.ИТМ_ИсторияФормированияОтчетов.Form.ФормаСписка 21 | 22 | Use 23 | Active 24 | 25 | Use 26 | 27 | 28 | 29 | 30 | Use 31 | LineNumber 32 | 33 | Use 34 | 35 | 36 | 37 | 38 | Use 39 | Recorder 40 | 41 | Use 42 | 43 | 44 | 45 | 46 | Use 47 | Period 48 | 49 | ShowError 50 | Use 51 | 52 | 53 | 54 | Managed 55 | 56 | ru 57 | История формирования отчета 58 | 59 | 60 | ru 61 | Журнал истории формирования отчетов 62 | 63 | 64 | НастройкиКД 65 | 66 | ru 67 | Настройки КД 68 | 69 | 70 | ValueStorage 71 | 72 | 73 | 74 | Use 75 | Use 76 | 77 | 78 | 79 | ПользовательскиеНастройкиКД 80 | 81 | ru 82 | Пользовательские настройки КД 83 | 84 | 85 | ValueStorage 86 | 87 | 88 | 89 | Use 90 | Use 91 | 92 | 93 | 94 | ФиксированныеНастройкиКД 95 | 96 | ru 97 | Фиксированные настройки КД 98 | 99 | 100 | ValueStorage 101 | 102 | 103 | 104 | Use 105 | Use 106 | 107 | 108 | 109 | СсылкаВарианта 110 | 111 | ru 112 | Ссылка варианта 113 | 114 | 115 | CatalogRef.ВариантыОтчетов 116 | 117 | 118 | 119 | Use 120 | Use 121 | 122 | 123 | 124 | СсылкаОтчета 125 | 126 | ru 127 | Ссылка отчета 128 | 129 | 130 | CatalogRef.ИдентификаторыОбъектовМетаданных 131 | CatalogRef.ДополнительныеОтчетыИОбработки 132 | 133 | 134 | 135 | Use 136 | Use 137 | 138 | 139 | 140 | ТекстОшибки 141 | 142 | ru 143 | Текст ошибки 144 | 145 | 146 | String 147 | 148 | 149 | true 150 | true 151 | 152 | 153 | Use 154 | Use 155 | 156 | 157 | 158 | 159 | 160 | Успех 161 | 162 | ru 163 | Успех 164 | 165 | 166 | Boolean 167 | 168 | 169 | 170 | Use 171 | Use 172 | 173 | 174 | 175 | ОкончаниеФормирования 176 | 177 | ru 178 | Окончание формирования 179 | 180 | 181 | Date 182 | 183 | 184 | 185 | 186 | Use 187 | Use 188 | 189 | 190 | 191 | ДлительностьФормирования 192 | 193 | ru 194 | Длительность формирования 195 | 196 | 197 | Date 198 | 199 | Time 200 | 201 | 202 | 203 | 204 | Use 205 | Use 206 | 207 | 208 | 209 | Комментарий 210 | 211 | ru 212 | Комментарий 213 | 214 | 215 | String 216 | 217 | 218 | true 219 | true 220 | 221 | 222 | Use 223 | Use 224 | 225 | 226 | 227 | 228 | 229 | ИспользуемоеИмяФайла 230 | 231 | ru 232 | Используемое имя файла 233 | 234 | 235 | String 236 | 237 | 238 | 239 | 240 | Use 241 | Use 242 | 243 | 244 | 245 | 246 | 247 | ДополнительныеСвойства 248 | 249 | ru 250 | Дополнительные свойства 251 | 252 | 253 | ValueStorage 254 | 255 | 256 | 257 | Use 258 | Use 259 | 260 | 261 | 262 | ПолноеИмя 263 | 264 | ru 265 | Полное имя 266 | 267 | 268 | String 269 | 270 | 150 271 | 272 | 273 | 274 | 275 | Index 276 | Use 277 | Use 278 | 279 | 280 | 281 | true 282 | 283 | 284 | НачалоФормирования 285 | 286 | ru 287 | Начало формирования 288 | 289 | 290 | Date 291 | 292 | 293 | 294 | 295 | Index 296 | Use 297 | Use 298 | 299 | true 300 | 301 | 302 | КлючВарианта 303 | 304 | ru 305 | Ключ варианта 306 | 307 | 308 | String 309 | 310 | 150 311 | 312 | 313 | 314 | 315 | Index 316 | Use 317 | Use 318 | 319 | 320 | 321 | true 322 | 323 | 324 | Пользователь 325 | 326 | ru 327 | Пользователь 328 | 329 | 330 | CatalogRef.Пользователи 331 | 332 | 333 | 334 | Index 335 | Use 336 | Use 337 | 338 | true 339 | 340 | 341 | НомерСеанса 342 | 343 | ru 344 | Номер сеанса 345 | 346 | 347 | Number 348 | 349 | 9 350 | 351 | 352 | 353 | 354 | Use 355 | Use 356 | 357 | true 358 | 359 | 360 | ФормаЗаписи 361 | 362 | ru 363 | Форма записи 364 | 365 | PersonalComputer 366 | MobileDevice 367 | 368 | 369 | ФормаСписка 370 | 371 | ru 372 | Форма списка 373 | 374 | PersonalComputer 375 | MobileDevice 376 | 377 | 378 | ФормаВыбора 379 | 380 | ru 381 | Форма выбора 382 | 383 | PersonalComputer 384 | MobileDevice 385 | 386 | 387 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/Reports/ИТМ_АнализИсторииФормированияОтчетов/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда 4 | 5 | #Область ПрограммныйИнтерфейс 6 | 7 | #Область УРБД 8 | 9 | // Инициализация отчета перед формированием. 10 | Процедура ИнициализацияОтчета() Экспорт 11 | 12 | Возврат; 13 | 14 | КонецПроцедуры 15 | 16 | // Поиск и загрузка настроек варианта отчета. 17 | // 18 | // Параметры: 19 | // КлючВарианта - Строка - ключ варианта настройки которого необходимо загрузить. 20 | // 21 | // Возвращаемое значение: 22 | // Булево - Истина если настройка найдена и загружена, Ложь - иначе. 23 | Функция ЗагрузитьНастройку(КлючВарианта) Экспорт 24 | 25 | Возврат Истина; 26 | 27 | КонецФункции 28 | 29 | // Установить параметр. 30 | // 31 | // Параметры: 32 | // КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных - Компоновщик настроек 33 | // Ключ - Строка - Ключ 34 | // Значение - Произвольный - Значение 35 | Процедура УстановитьПараметр(КомпоновщикНастроек, Ключ, Знач Значение) Экспорт 36 | 37 | ТипЗначения = ТипЗнч(Значение); 38 | Если Ключ = "ПодсистемыКонфигурации" И ТипЗначения = Тип("Строка") Тогда 39 | НовоеЗначение = Новый СписокЗначений; //СписокЗначений из СправочникСсылка.ИдентификаторыОбъектовМетаданных 40 | Для Каждого ИмяПодсистемы Из СтрРазделить(Строка(Значение), ",", Ложь) Цикл 41 | ПолноеИмяПодсистемы = "." + ИмяПодсистемы; 42 | ПолноеИмяПодсистемы = СтрЗаменить(ПолноеИмяПодсистемы, ".", "Подсистема."); 43 | Попытка 44 | НовоеЗначение.Добавить(ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяПодсистемы)); 45 | Исключение 46 | ДобавитьСообщение(ОписаниеОшибки()); 47 | КонецПопытки; 48 | КонецЦикла; 49 | Значение = НовоеЗначение; 50 | КонецЕсли; 51 | 52 | ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра( 53 | Новый ПараметрКомпоновкиДанных(Ключ)); //см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеПараметраКомпоновкиДанных 54 | Если Не ЗначениеПараметра = Неопределено Тогда 55 | ЗначениеПараметра.Использование = Истина; 56 | ЗначениеПараметра.Значение = Значение; 57 | КонецЕсли; 58 | 59 | КонецПроцедуры 60 | 61 | // Сформировать отчет. 62 | // 63 | // Параметры: 64 | // Результат - Неопределено, ТабличныйДокумент - Результат 65 | // ДанныеРасшифровки - Неопределено, ДанныеРасшифровкиКомпоновкиДанных - Данные расшифровки 66 | // ВыводВФормуОтчета - Булево - Вывод в форму отчета 67 | Процедура СформироватьОтчет(Результат = Неопределено, 68 | ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина) Экспорт 69 | 70 | СкомпоноватьРезультат(Результат, ДанныеРасшифровки); 71 | 72 | КонецПроцедуры 73 | 74 | // Возвращает таблицу сообщений с логом выполнения действий обработки 75 | // Сообщения бывают двух видов - сообщения о ходе процесса (у них есть даты начала и окончания) и сообщения о событиях - у них есть только дата начала 76 | // 77 | // Возвращаемое значение: 78 | // ТаблицаЗначений - содержимое табличной части Сообщения 79 | // 80 | Функция ПолучитьСообщения() Экспорт 81 | 82 | Возврат Сообщения.Выгрузить(, "Начало, Окончание, Комментарий, ЭтоИсключение"); 83 | 84 | КонецФункции 85 | 86 | // Добавить сообщение. 87 | // 88 | // Параметры: 89 | // Комментарий - Строка - Комментарий 90 | // ЭтоИсключение - Булево - Это исключение 91 | Процедура ДобавитьСообщение(Комментарий, ЭтоИсключение = Ложь) Экспорт 92 | 93 | Если ПустаяСтрока(Комментарий) Тогда 94 | Возврат; 95 | КонецЕсли; 96 | 97 | НоваяСтрока = Сообщения.Добавить(); 98 | НоваяСтрока.Начало = ТекущаяДатаСеанса(); 99 | НоваяСтрока.Комментарий = СокрЛП(Комментарий); 100 | НоваяСтрока.ЭтоИсключение = ЭтоИсключение; 101 | 102 | ОбщегоНазначения.СообщитьПользователю(НоваяСтрока.Комментарий); 103 | 104 | КонецПроцедуры 105 | 106 | #КонецОбласти 107 | 108 | #КонецОбласти 109 | 110 | #Область ОбработчикиСобытий 111 | 112 | // При компоновке результата. 113 | // 114 | // Параметры: 115 | // ДокументРезультат - ТабличныйДокумент 116 | // ДанныеРасшифровки - ДанныеРасшифровкиКомпоновкиДанных 117 | // СтандартнаяОбработка - Булево 118 | Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) 119 | 120 | СтандартнаяОбработка = Ложь; 121 | ДокументРезультат.Очистить(); 122 | 123 | ВнешниеНаборыДанных = Новый Структура; 124 | ЗаполнитьПодсистемыОтчетов(ВнешниеНаборыДанных); 125 | 126 | ДополнительныеПараметры = Новый Структура; 127 | ДополнительныеПараметры.Вставить("ВозможностьИспользованияВнешнихФункций", Истина); 128 | ДополнительныеПараметры.Вставить("ПроверятьДоступностьПолей", Ложь); 129 | ДополнительныеПараметры.Вставить("ОграничиватьПолучениеПолейПоСсылкамПоПравуПросмотр", Ложь); 130 | 131 | СкомпоноватьРезультатОтчета(ДокументРезультат, СхемаКомпоновкиДанных, 132 | КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки, ВнешниеНаборыДанных, ДополнительныеПараметры); 133 | 134 | КонецПроцедуры 135 | 136 | #КонецОбласти 137 | 138 | #Область СлужебныеПроцедурыИФункции 139 | 140 | // Заполнить подсистемы отчетов. 141 | // 142 | // Параметры: 143 | // ВнешниеНаборыДанных - Структура 144 | Процедура ЗаполнитьПодсистемыОтчетов(ВнешниеНаборыДанных) 145 | 146 | НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); 147 | НеобходимыеПодсистемы = Неопределено; 148 | 149 | ОтборПодсистем = НастройкиКомпоновки.ПараметрыДанных.НайтиЗначениеПараметра( 150 | Новый ПараметрКомпоновкиДанных("ПодсистемыКонфигурации")); //см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ЗначениеПараметраКомпоновкиДанных 151 | Если ОтборПодсистем = Неопределено ИЛИ НЕ ОтборПодсистем.Использование Тогда 152 | ОтборПодсистем = Неопределено; 153 | Иначе 154 | ОтборПодсистем = ОтборПодсистем.Значение; 155 | Если НЕ ТипЗнч(ОтборПодсистем) = Тип("СписокЗначений") Тогда 156 | НовыйОтборПодсистем = Новый СписокЗначений; //СписокЗначений из Неопределено 157 | НовыйОтборПодсистем.Добавить(ОтборПодсистем); 158 | ОтборПодсистем = НовыйОтборПодсистем; 159 | КонецЕсли; 160 | НеобходимыеПодсистемы = Новый Соответствие; 161 | Для Каждого ЭлементОтбораПодсистем Из ОтборПодсистем Цикл 162 | НеобходимыеПодсистемы.Вставить(ЭлементОтбораПодсистем.Значение, Истина); 163 | КонецЦикла; 164 | КонецЕсли; 165 | ЕстьОтборПодсистем = НеобходимыеПодсистемы <> Неопределено; 166 | 167 | НеобходимыПодсистемы = ЕстьОтборПодсистем ИЛИ ИспользуетсяНаборДанных("ПодсистемыОтчетов"); 168 | Если НЕ НеобходимыПодсистемы Тогда 169 | Возврат; 170 | КонецЕсли; 171 | 172 | ВыводимыеОтчеты = Новый Массив; //Массив из СправочникСсылка.ИдентификаторыОбъектовМетаданных 173 | ПодсистемыОтчетов = ТаблицаПодсистемыОтчетов(); 174 | ЗаполнитьПодсистемыОтчетов_ОбработатьПодсистемы(ПодсистемыОтчетов, ЕстьОтборПодсистем, НеобходимыеПодсистемы, ВыводимыеОтчеты); 175 | 176 | Если ЕстьОтборПодсистем Тогда 177 | 178 | СписокОтчетов = Новый СписокЗначений; 179 | СписокОтчетов.ЗагрузитьЗначения(ВыводимыеОтчеты); 180 | КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ВыводимыеОтчеты", СписокОтчетов); 181 | 182 | КонецЕсли; 183 | 184 | ВнешниеНаборыДанных.Вставить("ПодсистемыОтчетов", ПодсистемыОтчетов); 185 | 186 | КонецПроцедуры 187 | 188 | // Заполнить подсистемы отчетов обработать подсистемы. 189 | // 190 | // Параметры: 191 | // ПодсистемыОтчетов - см. ТаблицаПодсистемыОтчетов 192 | // ЕстьОтборПодсистем - Булево - Есть отбор подсистем 193 | // НеобходимыеПодсистемы - Неопределено, Соответствие из КлючИЗначение - Необходимые подсистемы 194 | // ВыводимыеОтчеты - Массив из СправочникСсылка.ИдентификаторыОбъектовМетаданных - Выводимые отчеты 195 | Процедура ЗаполнитьПодсистемыОтчетов_ОбработатьПодсистемы( 196 | ПодсистемыОтчетов, ЕстьОтборПодсистем, НеобходимыеПодсистемы, ВыводимыеОтчеты) 197 | 198 | Для Каждого МетаданныеПодсистемы Из Метаданные.Подсистемы Цикл 199 | 200 | ИдентификаторПодсистемы = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(МетаданныеПодсистемы); 201 | 202 | Если ЕстьОтборПодсистем И НеобходимыеПодсистемы.Получить(ИдентификаторПодсистемы) = Неопределено Тогда 203 | Продолжить; 204 | КонецЕсли; 205 | 206 | Для Каждого МетаданныеОтчета Из Метаданные.Отчеты Цикл 207 | 208 | Если НЕ ПринадлежитПодсистеме(МетаданныеОтчета, МетаданныеПодсистемы) Тогда 209 | Продолжить; 210 | КонецЕсли; 211 | 212 | НоваяСтрока = ПодсистемыОтчетов.Добавить(); 213 | НоваяСтрока.ИдентификаторПодсистемы = ИдентификаторПодсистемы; 214 | НоваяСтрока.ИдентификаторОтчета = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(МетаданныеОтчета); 215 | 216 | Если ЕстьОтборПодсистем И ВыводимыеОтчеты.Найти(НоваяСтрока.ИдентификаторОтчета) = Неопределено Тогда 217 | ВыводимыеОтчеты.Добавить(НоваяСтрока.ИдентификаторОтчета); 218 | КонецЕсли; 219 | 220 | КонецЦикла; 221 | 222 | КонецЦикла; 223 | 224 | КонецПроцедуры 225 | 226 | Функция ПринадлежитПодсистеме(ОбъектМетаданных,ОбъектПодсистема) 227 | 228 | Если ОбъектПодсистема.Состав.Содержит(ОбъектМетаданных) Тогда 229 | Возврат Истина; 230 | КонецЕсли; 231 | 232 | ВключенВПодсистему = Ложь; 233 | Для Каждого ВложеннаяПодсистема Из ОбъектПодсистема.Подсистемы Цикл 234 | ВключенВПодсистему = ПринадлежитПодсистеме(ОбъектМетаданных,ВложеннаяПодсистема); 235 | Если ВключенВПодсистему Тогда 236 | Прервать; 237 | КонецЕсли; 238 | КонецЦикла; 239 | 240 | Возврат ВключенВПодсистему; 241 | 242 | КонецФункции 243 | 244 | Функция ИспользуетсяНаборДанных(ИмяНабораДанных) 245 | 246 | КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; 247 | МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки()); 248 | Возврат МакетКомпоновки.НаборыДанных.Найти(ИмяНабораДанных) <> Неопределено; 249 | 250 | КонецФункции 251 | 252 | // Таблица подсистемы отчетов. 253 | // 254 | // Возвращаемое значение: 255 | // ТаблицаЗначений - : 256 | // * ИдентификаторПодсистемы - СправочникСсылка.ИдентификаторыОбъектовМетаданных 257 | // * ИдентификаторОтчета - СправочникСсылка.ИдентификаторыОбъектовМетаданных 258 | Функция ТаблицаПодсистемыОтчетов() 259 | 260 | Возврат ТаблицаЗначенийИзНабораДанных(СхемаКомпоновкиДанных.НаборыДанных.Найти("ПодсистемыОтчетов")); 261 | 262 | КонецФункции 263 | 264 | Функция ТаблицаЗначенийИзНабораДанных(НаборДанных) 265 | 266 | ТаблицаЗначений = Новый ТаблицаЗначений; 267 | 268 | Для Каждого ПолеНабораДанных Из НаборДанных.Поля Цикл 269 | ТаблицаЗначений.Колонки.Добавить(ПолеНабораДанных.Поле, 270 | ПолеНабораДанных.ТипЗначения, ПолеНабораДанных.Заголовок); 271 | КонецЦикла; 272 | 273 | Возврат ТаблицаЗначений; 274 | 275 | КонецФункции 276 | 277 | // Выполняет компоновку СКД по переданным настройкам 278 | // 279 | // Параметры: 280 | // Результат - ТабличныйДокумент,ТаблицаЗначений,ДеревоЗначений - результат выполнения 281 | // СхемаКомпоновки - СхемаКомпоновкиДанных - выполняемая СКД 282 | // НастройкиКомпоновки - НастройкиКомпоновкиДанных,КомпоновщикНастроекКомпоновкиДанных,Строка - выполняемые настройки или адрес временного хранилища или компоновщик с настройками 283 | // ДанныеРасшифровки - ДанныеРасшифровкиКомпоновкиДанных, Неопределено - данные расшифровки 284 | // ВнешниеНаборыДанных - Структура, Неопределено - коллекция внешних наборов данных 285 | // ДополнительныеПараметры - Структура, Неопределено - коллекция внешних наборов данных: 286 | // * МакетОформления - МакетОформленияКомпоновкиДанных - Макет оформления, в соответствии с которым необходимо оформлять макет компоновки данных. 287 | // * ПроверятьДоступностьПолей - Булево - Определяет, выполнять ли проверку прав на просмотр полей и проверку доступности поля во включенных функциональных возможностях. 288 | // * ПараметрыФункциональныхОпций - Булево - Содержит параметры функциональных опций, используемые при исполнении отчета. 289 | // * ВозможностьИспользованияВнешнихФункций - Булево - Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных. 290 | // 291 | // SeiOkami: 292 | // https://infostart.ru/profile/309462/ 293 | // https://t.me/JuniorOneS 294 | //Подробнее об использовании метода: https://infostart.ru/public/1082944/?ref=1159 295 | // 296 | Процедура СкомпоноватьРезультатОтчета(Результат, СхемаКомпоновки, НастройкиКомпоновки, 297 | ДанныеРасшифровки = Неопределено, ВнешниеНаборыДанных = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт 298 | 299 | 300 | //Инициализируем настройки 301 | ТипПараметраНастроек = ТипЗнч(НастройкиКомпоновки); 302 | Если ТипПараметраНастроек = Тип("КомпоновщикНастроекКомпоновкиДанных") Тогда 303 | ВыполняемыеНастройки = НастройкиКомпоновки.ПолучитьНастройки(); 304 | ИначеЕсли ТипПараметраНастроек = Тип("Строка") И ЭтоАдресВременногоХранилища(НастройкиКомпоновки) Тогда 305 | ВыполняемыеНастройки = ПолучитьИзВременногоХранилища(НастройкиКомпоновки); //НастройкиКомпоновкиДанных 306 | Иначе 307 | ВыполняемыеНастройки = НастройкиКомпоновки; 308 | КонецЕсли; 309 | 310 | Если НЕ ТипЗнч(ВыполняемыеНастройки) = Тип("НастройкиКомпоновкиДанных") Тогда 311 | Возврат; 312 | КонецЕсли; 313 | 314 | 315 | //Инициализируем дополнительные параметры вывода 316 | ПараметрыВывода = Новый Структура; 317 | ПараметрыВывода.Вставить("МакетОформления" , Неопределено); 318 | ПараметрыВывода.Вставить("ПроверятьДоступностьПолей" , Истина); 319 | ПараметрыВывода.Вставить("ПараметрыФункциональныхОпций" , Новый Структура); 320 | ПараметрыВывода.Вставить("ВозможностьИспользованияВнешнихФункций" , Ложь); 321 | ПараметрыВывода.Вставить("МенеджерВременныхТаблиц" , Неопределено); 322 | ПараметрыВывода.Вставить("ОграничиватьПолучениеПолейПоСсылкамПоПравуПросмотр" , Истина); 323 | 324 | Если НЕ ДополнительныеПараметры = Неопределено Тогда 325 | ЗаполнитьЗначенияСвойств(ПараметрыВывода, ДополнительныеПараметры); 326 | КонецЕсли; 327 | 328 | //Определяем тип генератора 329 | ТипЗначенияРезультата = ТипЗнч(Результат); 330 | Если ТипЗначенияРезультата = Тип("ТаблицаЗначений") ИЛИ ТипЗначенияРезультата = Тип("ДеревоЗначений") Тогда 331 | ВыводВКоллекциюЗначений = Истина; 332 | ТипГенератораВывода = Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"); 333 | Иначе 334 | ВыводВКоллекциюЗначений = Ложь; 335 | ТипГенератораВывода = Тип("ГенераторМакетаКомпоновкиДанных"); 336 | КонецЕсли; 337 | 338 | //Формируем макет, с помощью компоновщика макета 339 | КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; 340 | 341 | //Передаем в макет компоновки схему, настройки и данные расшифровки 342 | МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, ВыполняемыеНастройки, 343 | ДанныеРасшифровки, ПараметрыВывода.МакетОформления, ТипГенератораВывода, 344 | ПараметрыВывода.ПроверятьДоступностьПолей, ПараметрыВывода.ПараметрыФункциональныхОпций); 345 | 346 | //Выполним компоновку с помощью процессора компоновки 347 | ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; 348 | ПроцессорКомпоновкиДанных.Инициализировать( 349 | МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, 350 | ПараметрыВывода.ВозможностьИспользованияВнешнихФункций, 351 | ПараметрыВывода.ОграничиватьПолучениеПолейПоСсылкамПоПравуПросмотр, 352 | ПараметрыВывода.МенеджерВременныхТаблиц); 353 | 354 | ПроцессорВывода = Неопределено; //ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений, ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент 355 | 356 | //Выводим результат 357 | Если ВыводВКоллекциюЗначений Тогда 358 | ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; 359 | ПроцессорВывода.УстановитьОбъект(Результат); 360 | Иначе 361 | ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; 362 | ПроцессорВывода.УстановитьДокумент(Результат); 363 | КонецЕсли; 364 | 365 | ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); 366 | 367 | КонецПроцедуры 368 | 369 | #КонецОбласти 370 | 371 | #КонецЕсли -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/CommonModules/ИТМ_ИсторияФормированияОтчетовКлиентСервер/Module.bsl: -------------------------------------------------------------------------------- 1 | // @strict-types 2 | 3 | #Область СлужебныйПрограммныйИнтерфейс 4 | 5 | #Область ОписанияТипов 6 | 7 | // Параметры формирования отчета. 8 | // Параметры, которые прилетают в метод ВариантыОтчетов.СформироватьОтчет() 9 | // Дополняются дополнительно структурой ИсторияФормированияОтчетов 10 | // 11 | // Возвращаемое значение: 12 | // Структура - Параметры формирования отчета: 13 | // * ИсторияФормированияОтчетов - см. ШаблонПараметровИсторииФормирования 14 | // * Объект - Неопределено, ОтчетОбъект - 15 | // * ПолноеИмя - Строка 16 | // * ИмяКлючевойОперации - Неопределено, Строка - 17 | // * КомментарийКлючевойОперации - Неопределено, Строка - 18 | // * КлючВарианта - Неопределено, Строка - 19 | // * КлючСхемы - Неопределено, Строка - 20 | // * НастройкиКД - Неопределено, НастройкиКомпоновкиДанных - 21 | // * ПользовательскиеНастройкиКД - Неопределено, ПользовательскиеНастройкиКомпоновкиДанных - 22 | // * СсылкаВарианта - Неопределено, СправочникСсылка.ВариантыОтчетов - 23 | // * СсылкаОтчета - Неопределено, СправочникСсылка.ДополнительныеОтчетыИОбработки, СправочникСсылка.ИдентификаторыОбъектовМетаданных - 24 | // * СхемаМодифицирована - Булево - 25 | // * ФиксированныеНастройкиКД - Неопределено, НастройкиКомпоновкиДанных - 26 | // * ДополнительныеСвойства - Неопределено, Структура - 27 | Функция ШаблонПараметровФормированияОтчета() Экспорт 28 | 29 | Результат = Новый Структура; 30 | 31 | //Параметры истории 32 | Результат.Вставить("ИсторияФормированияОтчетов", Неопределено); 33 | 34 | //Параметры из ВариантыОтчетов.СформироватьОтчет 35 | Результат.Вставить("Объект", Неопределено); 36 | Результат.Вставить("ПолноеИмя", ""); 37 | Результат.Вставить("ИмяКлючевойОперации", Неопределено); 38 | Результат.Вставить("КомментарийКлючевойОперации", Неопределено); 39 | Результат.Вставить("КлючВарианта", Неопределено); 40 | Результат.Вставить("КлючСхемы", Неопределено); 41 | Результат.Вставить("НастройкиКД", Неопределено); 42 | Результат.Вставить("ПользовательскиеНастройкиКД", Неопределено); 43 | Результат.Вставить("СсылкаВарианта", Неопределено); 44 | Результат.Вставить("СсылкаОтчета", Неопределено); 45 | Результат.Вставить("СхемаМодифицирована", Ложь); 46 | Результат.Вставить("ФиксированныеНастройкиКД", Неопределено); 47 | Результат.Вставить("ДополнительныеСвойства", Неопределено); 48 | 49 | //@skip-check constructor-function-return-section - ЕДТ не дает указать Неопределено + см 50 | Возврат Результат; 51 | 52 | КонецФункции 53 | 54 | // Параметры истории формирования. 55 | // 56 | // Возвращаемое значение: 57 | // Структура - Параметры истории формирования: 58 | // * НачалоФормирования - Дата - Начало формирования отчета 59 | // * ФиксироватьИсторию - Булево - Стоит ли фиксировать текущее формирование 60 | // * ИгнорироватьОтборы - Булево - Игнорировать ли отборы из настроек 61 | // * ДополнительныеПараметры - Структура - Произвольная структура 62 | // * НастройкиПодсистемы - см. ШаблонНастроекПодсистемы 63 | Функция ШаблонПараметровИсторииФормирования() Экспорт 64 | 65 | ПараметрыИсторииФормирования = Новый Структура; 66 | ПараметрыИсторииФормирования.Вставить("НачалоФормирования" , '00010101'); 67 | ПараметрыИсторииФормирования.Вставить("ФиксироватьИсторию" , Ложь); 68 | ПараметрыИсторииФормирования.Вставить("ИгнорироватьОтборы" , Ложь); 69 | ПараметрыИсторииФормирования.Вставить("ДополнительныеПараметры" , Новый Структура); 70 | ПараметрыИсторииФормирования.Вставить("НастройкиПодсистемы" , Новый Структура); 71 | 72 | Возврат ПараметрыИсторииФормирования; 73 | 74 | КонецФункции 75 | 76 | // Шаблон настроек подсистемы. 77 | // 78 | // Возвращаемое значение: 79 | // Структура - Шаблон настроек подсистемы: 80 | // * ФиксироватьИсторию - Булево - Стоит ли фиксировать историю по отчету 81 | // * ИспользоватьОтборы - Булево - Использовать ли проверку по отборам из дополнительных параметров 82 | // * ДополнительныеНастройки - см. ШаблонДополнительныхНастроекПодсистемы 83 | Функция ШаблонНастроекПодсистемы() Экспорт 84 | 85 | Результат = Новый Структура; 86 | Результат.Вставить("ФиксироватьИсторию", Ложь); 87 | Результат.Вставить("ИспользоватьОтборы", Ложь); 88 | Результат.Вставить("ДополнительныеНастройки", ШаблонДополнительныхНастроекПодсистемы()); 89 | 90 | Возврат Результат; 91 | 92 | КонецФункции 93 | 94 | // Шаблон дополнительных настроек подсистемы. 95 | // 96 | // Возвращаемое значение: 97 | // Структура - : 98 | // * Отборы - НастройкиКомпоновкиДанных, Неопределено - Отборы для проверки необходимости записи истории 99 | Функция ШаблонДополнительныхНастроекПодсистемы() Экспорт 100 | 101 | Возврат Новый Структура("Отборы", Неопределено); 102 | 103 | КонецФункции 104 | 105 | // Шаблон результат выполнения отчета 106 | // В описании указаны не все свойства. Подробнее см. ВариантыОтчетов.СформироватьОтчет 107 | // 108 | // Возвращаемое значение: 109 | // Структура - Шаблон результат выполнения отчета: 110 | // * ТекстОшибки - Строка 111 | // * ВызватьИсключение - Булево 112 | // * ТекстИсключения - Строка 113 | Функция ШаблонРезультатВыполненияОтчета() Экспорт 114 | 115 | Результат = Новый Структура; 116 | Результат.Вставить("ТекстОшибки", ""); 117 | Результат.Вставить("ВызватьИсключение", Ложь); 118 | Результат.Вставить("ТекстИсключения", ""); 119 | 120 | Возврат Результат; 121 | 122 | КонецФункции 123 | 124 | // Шаблон записи истории формирования отчетов. 125 | // 126 | // Возвращаемое значение: 127 | // Структура - Шаблон записи истории формирования отчетов: 128 | // * ПолноеИмя - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.ПолноеИмя 129 | // * НачалоФормирования - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.НачалоФормирования 130 | // * КлючВарианта - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.КлючВарианта 131 | // * Пользователь - Неопределено, СправочникСсылка.Пользователи - 132 | // * НомерСеанса - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.НомерСеанса 133 | // * НастройкиКД - Неопределено, НастройкиКомпоновкиДанных - 134 | // * ПользовательскиеНастройкиКД - Неопределено, ПользовательскиеНастройкиКомпоновкиДанных - 135 | // * СсылкаВарианта - Неопределено, СправочникСсылка.ВариантыОтчетов - 136 | // * СсылкаОтчета - Неопределено, СправочникСсылка.ДополнительныеОтчетыИОбработки, СправочникСсылка.ИдентификаторыОбъектовМетаданных - 137 | // * ТекстОшибки - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.ТекстОшибки 138 | // * Успех - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.Успех 139 | // * ОкончаниеФормирования - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.ОкончаниеФормирования 140 | // * ДлительностьФормирования - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.ДлительностьФормирования 141 | // * Комментарий - см. РегистрСведений.ИТМ_ИсторияФормированияОтчетов.Комментарий 142 | // * ИспользуемоеИмяФайла - Строка - 143 | // * КлючеваяОперация - Неопределено, СправочникСсылка.КлючевыеОперации - 144 | // * ДополнительныеСвойства - Неопределено - 145 | Функция ШаблонЗаписиИсторииФормированияОтчетов() Экспорт 146 | 147 | Результат = Новый Структура; 148 | Результат.Вставить("ПолноеИмя", ""); 149 | Результат.Вставить("НачалоФормирования", '0001 01 01'); 150 | Результат.Вставить("КлючВарианта", ""); 151 | Результат.Вставить("Пользователь", Неопределено); 152 | Результат.Вставить("НомерСеанса", 0); 153 | Результат.Вставить("НастройкиКД", Неопределено); 154 | Результат.Вставить("ПользовательскиеНастройкиКД", Неопределено); 155 | Результат.Вставить("СсылкаВарианта", Неопределено); 156 | Результат.Вставить("СсылкаОтчета", Неопределено); 157 | Результат.Вставить("ТекстОшибки", ""); 158 | Результат.Вставить("Успех", Ложь); 159 | Результат.Вставить("ОкончаниеФормирования", '0001 01 01'); 160 | Результат.Вставить("ДлительностьФормирования", '0001 01 01'); 161 | Результат.Вставить("Комментарий", ""); 162 | Результат.Вставить("ИспользуемоеИмяФайла", ""); 163 | Результат.Вставить("КлючеваяОперация", Неопределено); 164 | Результат.Вставить("ДополнительныеСвойства", Неопределено); 165 | 166 | Возврат Результат; 167 | 168 | КонецФункции 169 | 170 | // Описание общей формы отчета. 171 | // Описаны используемые свойства 172 | // 173 | // Параметры: 174 | // ФормаОтчета - см. ОбщаяФорма.ФормаОтчета 175 | // 176 | // Возвращаемое значение: 177 | // ФормаКлиентскогоПриложения - : 178 | // * КлючТекущегоВарианта - Строка 179 | // * ПостоянныеКоманды - Массив из Строка 180 | // * НастройкиОтчета - Структура -: 181 | // ** ПолноеИмя - Строка 182 | Функция ОписаниеФормыОтчета(ФормаОтчета) Экспорт 183 | 184 | Возврат ФормаОтчета; 185 | 186 | КонецФункции 187 | 188 | // Описание формы списка. 189 | // 190 | // Параметры: 191 | // Форма - см. ОписаниеФормыСпискаИстории 192 | // 193 | // Возвращаемое значение: 194 | // ФормаКлиентскогоПриложения - : 195 | // * Список - ДинамическийСписок 196 | Функция ОписаниеФормыСпискаИстории(Форма) Экспорт 197 | 198 | Возврат Форма; 199 | 200 | КонецФункции 201 | 202 | #КонецОбласти 203 | 204 | #Область ПрименениеНастроек 205 | 206 | // Применить все настройки завершение. 207 | // 208 | // Параметры: 209 | // ФормаОтчета - см. ОбщаяФорма.ФормаОтчета 210 | // КлючЗаписиРегистра - РегистрСведенийКлючЗаписи.ИТМ_ИсторияФормированияОтчетов 211 | // СодержимоеЗаписи - см. ИТМ_ИсторияФормированияОтчетовВызовСервера.СодержимоеЗаписи 212 | Процедура ПрименитьВсеНастройкиЗавершение(ФормаОтчета, КлючЗаписиРегистра, Знач СодержимоеЗаписи = Неопределено) Экспорт 213 | 214 | Если СодержимоеЗаписи = Неопределено Тогда 215 | СодержимоеЗаписи = ИТМ_ИсторияФормированияОтчетовВызовСервера.СодержимоеЗаписи(КлючЗаписиРегистра); 216 | КонецЕсли; 217 | 218 | Если СодержимоеЗаписи = Неопределено Тогда 219 | Возврат; 220 | КонецЕсли; 221 | 222 | СодержимоеЗаписи.Вставить("Переформировать", Ложь); 223 | 224 | ОписанияОшибок = Новый Массив; //Массив из Строка 225 | ОтчетСодержитМетод = Истина; 226 | 227 | Попытка 228 | //@skip-warning - ЕДТ не видит метод 229 | ФормаОтчета.ВсеНастройкиЗавершение(СодержимоеЗаписи, Новый Структура); 230 | Исключение 231 | ТекстСообщения = ОписаниеОшибки(); 232 | Если СтрНайти(ТекстСообщения, "Метод объекта не обнаружен (ВсеНастройкиЗавершение)") > 0 Тогда 233 | ОтчетСодержитМетод = Ложь; 234 | Иначе 235 | ОписанияОшибок.Добавить(ТекстСообщения); 236 | КонецЕсли; 237 | КонецПопытки; 238 | 239 | Если НЕ ОтчетСодержитМетод Тогда 240 | Попытка 241 | ПрименитьВсеНастройкиЗавершениеДляПростогоОтчета(ФормаОтчета, СодержимоеЗаписи); 242 | Исключение 243 | ОписанияОшибок.Добавить(ОписаниеОшибки()); 244 | КонецПопытки; 245 | КонецЕсли; 246 | 247 | Если ЗначениеЗаполнено(ОписанияОшибок) Тогда 248 | 249 | ТекстСообщения = СтрШаблон( 250 | "Не удалось применить настройки отчету по причине: 251 | |%1", СтрСоединить(ОписанияОшибок, Символы.ПС)); 252 | 253 | ИТМ_ИсторияФормированияОтчетовВызовСервера.ДобавитьЗаписьВЖурналРегистрации( 254 | СодержимоеЗаписи, "ПрименитьВсеНастройкиЗавершение", ТекстСообщения); 255 | 256 | КонецЕсли; 257 | 258 | КонецПроцедуры 259 | 260 | // Применить все настройки завершение для простого отчета. 261 | // 262 | // Параметры: 263 | // ФормаОтчета - ФормаКлиентскогоПриложения - Форма отчета 264 | // ПараметрыЗаполнения - см. ИТМ_ИсторияФормированияОтчетовКлиентСервер.ШаблонЗаписиИсторииФормированияОтчетов 265 | // ДополнительныеПараметры - Неопределено - Дополнительные параметры 266 | Процедура ПрименитьВсеНастройкиЗавершениеДляПростогоОтчета( 267 | ФормаОтчета, ПараметрыЗаполнения, ДополнительныеПараметры = Неопределено) Экспорт 268 | 269 | НастройкиКД = Неопределено; //НастройкиКомпоновкиДанных 270 | ФиксированныеНастройкиКД = Неопределено; //НастройкиКомпоновкиДанных 271 | ПользовательскиеНастройкиКД = Неопределено; //ПользовательскиеНастройкиКомпоновкиДанных 272 | 273 | Если ПараметрыЗаполнения.Свойство("ФиксированныеНастройкиКД", ФиксированныеНастройкиКД) 274 | И ФиксированныеНастройкиКД <> Неопределено Тогда 275 | ФормаОтчета.Отчет.КомпоновщикНастроек.ЗагрузитьФиксированныеНастройки(ФиксированныеНастройкиКД); 276 | КонецЕсли; 277 | 278 | Если ПараметрыЗаполнения.Свойство("НастройкиКД", НастройкиКД) И НастройкиКД <> Неопределено Тогда 279 | ФормаОтчета.Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД); 280 | КонецЕсли; 281 | 282 | Если ПараметрыЗаполнения.Свойство("ПользовательскиеНастройкиКД", ПользовательскиеНастройкиКД) 283 | И ПользовательскиеНастройкиКД <> Неопределено Тогда 284 | ФормаОтчета.Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ПользовательскиеНастройкиКД); 285 | КонецЕсли; 286 | 287 | ФормаОтчета.КлючТекущегоВарианта = ПараметрыЗаполнения.КлючВарианта; 288 | 289 | КонецПроцедуры 290 | 291 | // Описание системного типа ЗначениеПараметраКомпоновкиДанных 292 | // 293 | // Параметры: 294 | // Значение - ЗначениеПараметраКомпоновкиДанных 295 | // 296 | // Возвращаемое значение: 297 | // ЗначениеПараметраКомпоновкиДанных -: 298 | // * Значение - Произвольный 299 | Функция ЗначениеПараметраКомпоновкиДанных(Значение) Экспорт 300 | 301 | Возврат Значение; 302 | 303 | КонецФункции 304 | 305 | #КонецОбласти 306 | 307 | #Область Вспомогательные 308 | 309 | // Имя события загрузки записей из файла. 310 | // 311 | // Возвращаемое значение: 312 | // Строка 313 | Функция ИмяСобытияЗагрузкиЗаписейИзФайла() Экспорт 314 | 315 | Возврат "ЗагрузкаЗаписейИсторииФормированияОтчетов"; 316 | 317 | КонецФункции 318 | 319 | // Форма отчета имя команды история формирования отчета. 320 | // 321 | // Возвращаемое значение: 322 | // Строка 323 | Функция ФормаОтчета_ИмяКомандыИсторияФормированияОтчета() Экспорт 324 | 325 | Возврат "ИсторияФормированияОтчета"; 326 | 327 | КонецФункции 328 | 329 | // Возвращает значение в виде JSON-строки. 330 | // Преобразованы в JSON-строку (сериализованы) могут быть только те объекты, 331 | // для которых в описании указано, что они сериализуются. 332 | // 333 | // Параметры: 334 | // Значение - Произвольный - Значение, которое необходимо сериализовать в JSON-строку. 335 | // 336 | // Возвращаемое значение: 337 | // Строка - JSON-строка представления значения в сериализованном виде. 338 | // 339 | Функция ЗначениеВСтрокуJSON(Значение) Экспорт 340 | 341 | #Если ВебКлиент Тогда 342 | 343 | Возврат ИТМ_ИсторияФормированияОтчетовВызовСервера.ЗначениеВСтрокуJSON(Значение); 344 | 345 | #Иначе 346 | 347 | ЗаписьJSON = Новый ЗаписьJSON; 348 | ЗаписьJSON.УстановитьСтроку(); 349 | ЗаписатьJSON(ЗаписьJSON, Значение); 350 | 351 | Возврат ЗаписьJSON.Закрыть(); 352 | 353 | #КонецЕсли 354 | 355 | КонецФункции 356 | 357 | // Возвращает значение, полученное из JSON-строки. 358 | // Получены из JSON-строки могут быть только те объекты, 359 | // для которых в описании указано, что они сериализуются. 360 | // 361 | // Параметры: 362 | // СтрокаJSON - строка - представления значения в сериализованном виде. 363 | // ПрочитатьВСоответствие - булево 364 | // 365 | // Возвращаемое значение: 366 | // Произвольный - Значение, полученное из переданной JSON-строки. 367 | // 368 | Функция ЗначениеИзСтрокиJSON(СтрокаJSON, ПрочитатьВСоответствие = Ложь) Экспорт 369 | 370 | #Если ВебКлиент Тогда 371 | 372 | Возврат ИТМ_ИсторияФормированияОтчетовВызовСервера.ЗначениеИзСтрокиJSON(СтрокаJSON, ПрочитатьВСоответствие); 373 | 374 | #Иначе 375 | 376 | ЧтениеJSON = Новый ЧтениеJSON; 377 | ЧтениеJSON.УстановитьСтроку(СтрокаJSON); 378 | 379 | Возврат ПрочитатьJSON(ЧтениеJSON, ПрочитатьВСоответствие); 380 | 381 | #КонецЕсли 382 | 383 | КонецФункции 384 | 385 | // Возвращает значение в виде XML-строки. 386 | // Преобразованы в XML-строку (сериализованы) могут быть только те объекты, 387 | // для которых в описании указано, что они сериализуются. 388 | // 389 | // Параметры: 390 | // Значение - Произвольный - Значение, которое необходимо сериализовать в XML-строку. 391 | // 392 | // Возвращаемое значение: 393 | // Строка - XML-строка представления значения в сериализованном виде. 394 | // 395 | Функция ЗначениеВСтрокуXML(Значение) Экспорт 396 | 397 | #Если ВебКлиент Тогда 398 | 399 | Возврат ИТМ_ИсторияФормированияОтчетовВызовСервера.ЗначениеВСтрокуXML(Значение); 400 | 401 | #Иначе 402 | 403 | ЗаписьXML = Новый ЗаписьXML; 404 | ЗаписьXML.УстановитьСтроку(); 405 | СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение, НазначениеТипаXML.Явное); 406 | 407 | Возврат ЗаписьXML.Закрыть(); 408 | 409 | #КонецЕсли 410 | 411 | КонецФункции 412 | 413 | // Возвращает значение, полученное из XML-строки. 414 | // Получены из XML-строки могут быть только те объекты, 415 | // для которых в описании указано, что они сериализуются. 416 | // 417 | // Параметры: 418 | // СтрокаXML - строка - представления значения в сериализованном виде. 419 | // 420 | // Возвращаемое значение: 421 | // Произвольный - Значение, полученное из переданной XML-строки. 422 | // 423 | Функция ЗначениеИзСтрокиXML(СтрокаXML) Экспорт 424 | 425 | #Если ВебКлиент Тогда 426 | 427 | Возврат ИТМ_ИсторияФормированияОтчетовВызовСервера.ЗначениеИзСтрокиXML(СтрокаXML); 428 | 429 | #Иначе 430 | 431 | ЧтениеXML = Новый ЧтениеXML; 432 | ЧтениеXML.УстановитьСтроку(СтрокаXML); 433 | 434 | Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML); 435 | 436 | #КонецЕсли 437 | 438 | КонецФункции 439 | 440 | #КонецОбласти 441 | 442 | #КонецОбласти 443 | -------------------------------------------------------------------------------- /ИТМ_ИсторияФормированияОтчетов/src/InformationRegisters/ИТМ_НастройкиИсторииФормированияОтчетов/Forms/ФормаВыбораОтчета/Form.form: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | СписокКомпоновщикНастроекПользовательскиеНастройки 5 | 1 6 | true 7 | true 8 | 9 | true 10 | 11 | 12 | <key>ru</key> 13 | <value>Группа пользовательских настроек</value> 14 | 15 | false 16 | 17 | СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка 18 | 2 19 | true 20 | true 21 | 22 | true 23 | 24 | Label 25 | true 26 | true 27 | 28 | Left 29 | 30 | 31 | UsualGroup 32 | 33 | Vertical 34 | WeakSeparation 35 | true 36 | true 37 | Auto 38 | Auto 39 | 40 | 41 | 42 | Список 43 | 3 44 | true 45 | true 46 | 47 | true 48 | 49 | 50 | Список 51 | 52 | true 53 | None 54 | 55 | Наименование 56 | 16 57 | true 58 | true 59 | 60 | true 61 | 62 | 63 | Список.Description 64 | 65 | true 66 | 67 | НаименованиеРасширеннаяПодсказка 68 | 18 69 | true 70 | true 71 | 72 | true 73 | 74 | Label 75 | true 76 | true 77 | 78 | Left 79 | 80 | 81 | 82 | НаименованиеКонтекстноеМеню 83 | 17 84 | true 85 | true 86 | 87 | true 88 | 89 | true 90 | 91 | LabelField 92 | Enter 93 | true 94 | Left 95 | true 96 | 97 | true 98 | true 99 | 100 | 101 | 102 | Синоним 103 | 19 104 | true 105 | true 106 | 107 | true 108 | 109 | 110 | Список.Синоним 111 | 112 | 113 | СинонимРасширеннаяПодсказка 114 | 21 115 | true 116 | true 117 | 118 | true 119 | 120 | Label 121 | true 122 | true 123 | 124 | Left 125 | 126 | 127 | 128 | СинонимКонтекстноеМеню 129 | 20 130 | true 131 | true 132 | 133 | true 134 | 135 | true 136 | 137 | LabelField 138 | Enter 139 | true 140 | Left 141 | true 142 | 143 | true 144 | true 145 | 146 | 147 | 148 | ПолноеИмя 149 | 22 150 | true 151 | true 152 | 153 | true 154 | 155 | 156 | Список.ПолноеИмя 157 | 158 | 159 | ПолноеИмяРасширеннаяПодсказка 160 | 24 161 | true 162 | true 163 | 164 | true 165 | 166 | Label 167 | true 168 | true 169 | 170 | Left 171 | 172 | 173 | 174 | ПолноеИмяКонтекстноеМеню 175 | 23 176 | true 177 | true 178 | 179 | true 180 | 181 | true 182 | 183 | LabelField 184 | Enter 185 | true 186 | Left 187 | true 188 | 189 | true 190 | true 191 | 192 | 193 | 194 | Ссылка 195 | 25 196 | true 197 | true 198 | 199 | 200 | Список.Ref 201 | 202 | 203 | СсылкаРасширеннаяПодсказка 204 | 27 205 | true 206 | true 207 | 208 | true 209 | 210 | Label 211 | true 212 | true 213 | 214 | Left 215 | 216 | 217 | 218 | СсылкаКонтекстноеМеню 219 | 26 220 | true 221 | true 222 | 223 | true 224 | 225 | true 226 | 227 | InputField 228 | Enter 229 | true 230 | Left 231 | true 232 | 233 | true 234 | true 235 | true 236 | true 237 | true 238 | true 239 | 240 | 241 | None 242 | 243 | СписокКоманднаяПанель 244 | 5 245 | true 246 | true 247 | 248 | true 249 | 250 | Left 251 | 252 | 253 | true 254 | true 255 | 256 | true 257 | 258 | СписокСтрокаПоиска 259 | 7 260 | 261 | СписокСтрокаПоискаРасширеннаяПодсказка 262 | 9 263 | true 264 | true 265 | 266 | true 267 | 268 | Label 269 | true 270 | true 271 | 272 | Left 273 | 274 | 275 | 276 | СписокСтрокаПоискаКонтекстноеМеню 277 | 8 278 | true 279 | true 280 | 281 | true 282 | 283 | true 284 | 285 | СписокСтрокаПоиска 286 | 287 | true 288 | 289 | 290 | 291 | true 292 | true 293 | 294 | true 295 | 296 | СписокСостояниеПросмотра 297 | 10 298 | 299 | СписокСостояниеПросмотраРасширеннаяПодсказка 300 | 12 301 | true 302 | true 303 | 304 | true 305 | 306 | Label 307 | true 308 | true 309 | 310 | Left 311 | 312 | 313 | 314 | СписокСостояниеПросмотраКонтекстноеМеню 315 | 11 316 | true 317 | true 318 | 319 | true 320 | 321 | true 322 | 323 | ViewStatusAddition 324 | СписокСостояниеПросмотра 325 | 326 | true 327 | 328 | 329 | 330 | true 331 | true 332 | 333 | true 334 | 335 | СписокУправлениеПоиском 336 | 13 337 | 338 | СписокУправлениеПоискомРасширеннаяПодсказка 339 | 15 340 | true 341 | true 342 | 343 | true 344 | 345 | Label 346 | true 347 | true 348 | 349 | Left 350 | 351 | 352 | 353 | СписокУправлениеПоискомКонтекстноеМеню 354 | 14 355 | true 356 | true 357 | 358 | true 359 | 360 | true 361 | 362 | SearchControlAddition 363 | СписокУправлениеПоиском 364 | 365 | true 366 | 367 | 368 | 369 | СписокРасширеннаяПодсказка 370 | 6 371 | true 372 | true 373 | 374 | true 375 | 376 | Label 377 | true 378 | true 379 | 380 | Left 381 | 382 | 383 | 384 | СписокКонтекстноеМеню 385 | 4 386 | true 387 | true 388 | 389 | true 390 | 391 | true 392 | 393 | true 394 | true 395 | true 396 | true 397 | true 398 | true 399 | MultiRow 400 |
true
401 | 1 402 | 1 403 | AutoUse 404 | AutoUse 405 | true 406 | true 407 | true 408 | Auto 409 | Auto 410 | ExpandTopLevel 411 | true 412 | true 413 | true 414 | true 415 | AsFileRef 416 | 417 | Список.DefaultPicture 418 | 419 | 420 | 60 421 | 422 | 0001-01-01T00:00:00 423 | 0001-01-01T00:00:00 424 | 425 | 426 | true 427 | true 428 | СписокКомпоновщикНастроекПользовательскиеНастройки 429 | 430 |
431 | 432 | ФормаКоманднаяПанель 433 | -1 434 | true 435 | true 436 | 437 | true 438 | 439 | Left 440 | true 441 | 442 | 443 | OnCreateAtServer 444 | ПриСозданииНаСервере 445 | 446 | LockOwnerWindow 447 | true 448 | true 449 | true 450 | Vertical 451 | true 452 | true 453 | true 454 | true 455 | true 456 | 457 | Список 458 | 1 459 | 460 | DynamicList 461 | 462 | 463 | true 464 | 465 | 466 | true 467 | 468 | 469 | Список.Ref 470 | 471 |
true
472 | 473 | ВЫБРАТЬ 474 | * 475 | ИЗ 476 | Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных 477 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИТМ_НастройкиИсторииФормированияОтчетов КАК ИТМ_НастройкиИсторииФормированияОтчетов 478 | ПО ИдентификаторыОбъектовМетаданных.Ссылка = ИТМ_НастройкиИсторииФормированияОтчетов.Отчет 479 | ГДЕ 480 | ИдентификаторыОбъектовМетаданных.ПолноеИмя ПОДОБНО &ШаблонПоискаИмени 481 | И ИТМ_НастройкиИсторииФормированияОтчетов.Отчет ЕСТЬ NULL 482 | Catalog.ИдентификаторыОбъектовМетаданных 483 | true 484 | true 485 | true 486 | true 487 | true 488 | 489 |
490 | 491 | 492 | 493 | 494 | 495 |
496 | --------------------------------------------------------------------------------