├── src ├── Catalogs │ ├── ДемоНоменклатура │ │ ├── ManagerModule.bsl │ │ └── ДемоНоменклатура.mdo │ ├── ОбъектыМетаданныхПО │ │ ├── ObjectModule.bsl │ │ ├── ОбъектыМетаданныхПО.mdo │ │ └── ManagerModule.bsl │ ├── СвойстваОбъектовМетаданныхПО │ │ ├── ObjectModule.bsl │ │ └── СвойстваОбъектовМетаданныхПО.mdo │ └── ДемоПоставщики │ │ └── ДемоПоставщики.mdo ├── ChartsOfCharacteristicTypes │ └── ПоказателиОбъектов │ │ ├── ManagerModule.bsl │ │ ├── Forms │ │ ├── ФормаСписка │ │ │ └── Attributes │ │ │ │ └── Список │ │ │ │ └── ExtInfo │ │ │ │ └── ListSettings.dcss │ │ └── ФормаЭлемента │ │ │ └── Module.bsl │ │ └── ObjectModule.bsl ├── Subsystems │ ├── Демо │ │ ├── CommandInterface.cmi │ │ └── Демо.mdo │ └── ПоказателиОбъектов │ │ ├── CommandInterface.cmi │ │ └── ПоказателиОбъектов.mdo ├── Roles │ ├── ДемоПолныеПрава │ │ ├── ДемоПолныеПрава.mdo │ │ └── Rights.rights │ ├── ДемоАдминистраторСистемы │ │ ├── ДемоАдминистраторСистемы.mdo │ │ └── Rights.rights │ ├── ДемоЗапускТонкогоКлиента │ │ ├── ДемоЗапускТонкогоКлиента.mdo │ │ └── Rights.rights │ ├── ДемоЗапускТолстогоКлиента │ │ ├── ДемоЗапускТолстогоКлиента.mdo │ │ └── Rights.rights │ ├── ЧтениеПоказателейОбъектов │ │ ├── ЧтениеПоказателейОбъектов.mdo │ │ └── Rights.rights │ ├── ДобавлениеИзменениеПоказателейОбъектов │ │ ├── ДобавлениеИзменениеПоказателейОбъектов.mdo │ │ └── Rights.rights │ ├── ДемоДобавлениеИзменениеСправочниковДокументов │ │ ├── ДемоДобавлениеИзменениеСправочниковДокументов.mdo │ │ └── Rights.rights │ └── ДемоИнтерактивноеОткрытиеВнешнихОтчетовИОбработок │ │ ├── ДемоИнтерактивноеОткрытиеВнешнихОтчетовИОбработок.mdo │ │ └── Rights.rights ├── CommonModules │ ├── ПоказателиОбъектовСлужебный │ │ ├── Module.bsl │ │ └── ПоказателиОбъектовСлужебный.mdo │ ├── ПоказателиОбъектов │ │ └── ПоказателиОбъектов.mdo │ ├── ПоказателиОбъектовСобытия │ │ └── ПоказателиОбъектовСобытия.mdo │ ├── ПоказателиОбъектовПовтИсп │ │ ├── ПоказателиОбъектовПовтИсп.mdo │ │ └── Module.bsl │ └── ПоказателиОбъектовПереопределяемый │ │ ├── ПоказателиОбъектовПереопределяемый.mdo │ │ └── Module.bsl ├── DataProcessors │ └── ПанельАдминистрированияПО │ │ ├── Forms │ │ └── Форма │ │ │ ├── Module.bsl │ │ │ └── Form.form │ │ └── ПанельАдминистрированияПО.mdo ├── ScheduledJobs │ ├── РегламентныйРасчетПоказателя │ │ ├── РегламентныйРасчетПоказателя.mdo │ │ └── Schedule.schedule │ └── ОтложенныйРассчетПоказателей │ │ ├── ОтложенныйРассчетПоказателей.mdo │ │ └── Schedule.schedule ├── EventSubscriptions │ ├── ПоказателиОбъектовПередЗаписьюОбъекта │ │ └── ПоказателиОбъектовПередЗаписьюОбъекта.mdo │ ├── ПоказателиОбъектовПередЗаписьюДокумента │ │ └── ПоказателиОбъектовПередЗаписьюДокумента.mdo │ ├── ПоказателиОбъектовПриЗаписиОбъекта │ │ └── ПоказателиОбъектовПриЗаписиОбъекта.mdo │ ├── ПоказателиОбъектовПередЗаписьюНабораЗаписей │ │ └── ПоказателиОбъектовПередЗаписьюНабораЗаписей.mdo │ └── ПоказателиОбъектовПриЗаписиНабораЗаписей │ │ └── ПоказателиОбъектовПриЗаписиНабораЗаписей.mdo ├── Configuration │ ├── ClientApplicationInterface.cai │ └── Configuration.mdo ├── Documents │ ├── ДемоПриходнаяНакладная │ │ ├── ObjectModule.bsl │ │ └── ДемоПриходнаяНакладная.mdo │ └── ДемоРасходнаяНакладная │ │ ├── ObjectModule.bsl │ │ └── ДемоРасходнаяНакладная.mdo ├── Enums │ ├── СпособыРасчетаПоказателейОбъектов │ │ └── СпособыРасчетаПоказателейОбъектов.mdo │ └── ПериодичностьПоказателяОбъекта │ │ └── ПериодичностьПоказателяОбъекта.mdo ├── AccumulationRegisters │ └── ДемоОстаткиТоваров │ │ └── ДемоОстаткиТоваров.mdo └── InformationRegisters │ ├── ПорцияОтложенногоРасчетаПоказателейОбъектов │ └── ПорцияОтложенногоРасчетаПоказателейОбъектов.mdo │ ├── ДемоШтрихкодыНоменклатуры │ └── ДемоШтрихкодыНоменклатуры.mdo │ ├── ОчередьОтложенногоРасчетаПоказателейОбъектов │ └── ОчередьОтложенногоРасчетаПоказателейОбъектов.mdo │ ├── ЗначенияПоказателейОбъектов │ └── ЗначенияПоказателейОбъектов.mdo │ └── ЗначенияПериодическихПоказателейОбъектов │ └── ЗначенияПериодическихПоказателейОбъектов.mdo ├── DT-INF └── PROJECT.PMF ├── .settings └── org.eclipse.core.resources.prefs ├── features ├── step_definitions │ ├── ПоказателиОбъктов.epf │ ├── ПоказательЕстьОстатки.epf │ └── ПоказательЕстьШтрихкод.epf ├── ПоказательСОтложеннымРасчетом.feature ├── ПоказателиОбъектовСоСпособомРасчетаЗапрос.feature ├── ПоказателиОбъектовСоСпособомРасчетаВыполнитьКод.feature ├── ПоказательЕстьШтрихкод.feature └── ПоказательЕстьОстатки.feature ├── .project ├── README.md └── LICENSE /src/Catalogs/ДемоНоменклатура/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Catalogs/ОбъектыМетаданныхПО/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Catalogs/СвойстваОбъектовМетаданныхПО/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/ChartsOfCharacteristicTypes/ПоказателиОбъектов/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /DT-INF/PROJECT.PMF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Runtime-Version: 8.3.16 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /src/Subsystems/Демо/CommandInterface.cmi: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /features/step_definitions/ПоказателиОбъктов.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pila86/object-indicators/HEAD/features/step_definitions/ПоказателиОбъктов.epf -------------------------------------------------------------------------------- /features/step_definitions/ПоказательЕстьОстатки.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pila86/object-indicators/HEAD/features/step_definitions/ПоказательЕстьОстатки.epf -------------------------------------------------------------------------------- /features/step_definitions/ПоказательЕстьШтрихкод.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pila86/object-indicators/HEAD/features/step_definitions/ПоказательЕстьШтрихкод.epf -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/CommonModules/ПоказателиОбъектовСлужебный/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область СлужебныйПрограммныйИнтерфейс 2 | 3 | Процедура ОбновитьСлужебныеСправочники() Экспорт 4 | 5 | Справочники.ОбъектыМетаданныхПО.ОбновитьДанныеСправочника(); 6 | Справочники.СвойстваОбъектовМетаданныхПО.ОбновитьДанныеСправочника(); 7 | 8 | ОбновитьПовторноИспользуемыеЗначения(); 9 | 10 | КонецПроцедуры 11 | 12 | #КонецОбласти -------------------------------------------------------------------------------- /src/Roles/ДобавлениеИзменениеПоказателейОбъектов/ДобавлениеИзменениеПоказателейОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ДобавлениеИзменениеПоказателейОбъектов 4 | 5 | ru 6 | Добавление изменение показателей объектов 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/CommonModules/ПоказателиОбъектов/ПоказателиОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектов 4 | 5 | ru 6 | Показатели объектов 7 | 8 | true 9 | true 10 | 11 | -------------------------------------------------------------------------------- /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/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 | DuringSession 10 | 11 | -------------------------------------------------------------------------------- /src/CommonModules/ПоказателиОбъектовСлужебный/ПоказателиОбъектовСлужебный.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектовСлужебный 4 | 5 | ru 6 | Показатели объектов служебный 7 | 8 | true 9 | true 10 | 11 | -------------------------------------------------------------------------------- /src/DataProcessors/ПанельАдминистрированияПО/Forms/Форма/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область ОбработчикиКомандФормы 2 | 3 | &НаКлиенте 4 | Процедура ОбновитьСлужебныеДанные(Команда) 5 | ОбновитьСлужебныеДанныеНаСервере(); 6 | КонецПроцедуры 7 | 8 | #КонецОбласти 9 | 10 | #Область СлужебныеПроцедурыИФункции 11 | 12 | &НаСервереБезКонтекста 13 | Процедура ОбновитьСлужебныеДанныеНаСервере() 14 | 15 | ПоказателиОбъектовСлужебный.ОбновитьСлужебныеСправочники(); 16 | 17 | КонецПроцедуры 18 | 19 | #КонецОбласти -------------------------------------------------------------------------------- /src/CommonModules/ПоказателиОбъектовПереопределяемый/ПоказателиОбъектовПереопределяемый.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектовПереопределяемый 4 | 5 | ru 6 | Показатели объектов переопределяемый 7 | 8 | true 9 | true 10 | 11 | -------------------------------------------------------------------------------- /.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.V8ConfigurationNature 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Roles/ДемоЗапускТолстогоКлиента/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Configuration.ПоказателиОбъектов 8 | 9 | ThickClient 10 | true 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/Roles/ДемоЗапускТонкогоКлиента/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Configuration.ПоказателиОбъектов 8 | 9 | ThinClient 10 | true 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/ScheduledJobs/РегламентныйРасчетПоказателя/РегламентныйРасчетПоказателя.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | РегламентныйРасчетПоказателя 4 | 5 | ru 6 | Регламентный расчет показателя 7 | 8 | CommonModule.ПоказателиОбъектов.РегламентныйРасчетПоказателя 9 | 3 10 | 25 11 | 12 | -------------------------------------------------------------------------------- /src/Subsystems/ПоказателиОбъектов/CommandInterface.cmi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NavigationPanelOrdinary 6 | ChartOfCharacteristicTypes.ПоказателиОбъектов.StandardCommand.OpenList 7 | InformationRegister.ЗначенияПоказателейОбъектов.StandardCommand.OpenList 8 | InformationRegister.ЗначенияПериодическихПоказателейОбъектов.StandardCommand.OpenList 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/ScheduledJobs/ОтложенныйРассчетПоказателей/ОтложенныйРассчетПоказателей.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ОтложенныйРассчетПоказателей 4 | 5 | ru 6 | Отложенный рассчет показателей 7 | 8 | CommonModule.ПоказателиОбъектов.ВыполнитьОтложенныйРасчет 9 | true 10 | 3 11 | 25 12 | 13 | -------------------------------------------------------------------------------- /src/EventSubscriptions/ПоказателиОбъектовПередЗаписьюОбъекта/ПоказателиОбъектовПередЗаписьюОбъекта.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектовПередЗаписьюОбъекта 4 | 5 | ru 6 | Показатели объектов перед записью объекта 7 | 8 | 9 | CatalogObject 10 | 11 | BeforeWrite 12 | CommonModule.ПоказателиОбъектовСобытия.ПередЗаписьюОбъекта 13 | 14 | -------------------------------------------------------------------------------- /src/EventSubscriptions/ПоказателиОбъектовПередЗаписьюДокумента/ПоказателиОбъектовПередЗаписьюДокумента.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектовПередЗаписьюДокумента 4 | 5 | ru 6 | Показатели объектов перед записью документа 7 | 8 | 9 | DocumentObject 10 | 11 | BeforeWrite 12 | CommonModule.ПоказателиОбъектовСобытия.ПередЗаписьюДокумента 13 | 14 | -------------------------------------------------------------------------------- /src/EventSubscriptions/ПоказателиОбъектовПриЗаписиОбъекта/ПоказателиОбъектовПриЗаписиОбъекта.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектовПриЗаписиОбъекта 4 | 5 | ru 6 | Показатели объектов при записи объекта 7 | 8 | 9 | CatalogObject 10 | DocumentObject 11 | 12 | OnWrite 13 | CommonModule.ПоказателиОбъектовСобытия.ПриЗаписиОбъекта 14 | 15 | -------------------------------------------------------------------------------- /src/Roles/ДемоИнтерактивноеОткрытиеВнешнихОтчетовИОбработок/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Configuration.ПоказателиОбъектов 8 | 9 | InteractiveOpenExtDataProcessors 10 | true 11 | 12 | 13 | InteractiveOpenExtReports 14 | true 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/EventSubscriptions/ПоказателиОбъектовПередЗаписьюНабораЗаписей/ПоказателиОбъектовПередЗаписьюНабораЗаписей.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектовПередЗаписьюНабораЗаписей 4 | 5 | ru 6 | Показатели объектов перед записью набора записей 7 | 8 | 9 | InformationRegisterRecordSet 10 | AccumulationRegisterRecordSet 11 | 12 | BeforeWrite 13 | CommonModule.ПоказателиОбъектовСобытия.ПередЗаписьюНабораЗаписей 14 | 15 | -------------------------------------------------------------------------------- /src/Configuration/ClientApplicationInterface.cai: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/EventSubscriptions/ПоказателиОбъектовПриЗаписиНабораЗаписей/ПоказателиОбъектовПриЗаписиНабораЗаписей.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектовПриЗаписиНабораЗаписей 4 | 5 | ru 6 | Показатели объектов при записи набора записей 7 | 8 | 9 | InformationRegisterRecordSet 10 | AccountingRegisterRecordSet 11 | AccumulationRegisterRecordSet 12 | 13 | OnWrite 14 | CommonModule.ПоказателиОбъектовСобытия.ПриЗаписиНабораЗаписей 15 | 16 | -------------------------------------------------------------------------------- /src/Documents/ДемоПриходнаяНакладная/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | #Область ОбработчикиСобытий 2 | 3 | Процедура ОбработкаПроведения(Отказ, РежимПроведения) 4 | 5 | Запрос = Новый Запрос(); 6 | Запрос.УстановитьПараметр("Ссылка", Ссылка); 7 | 8 | Запрос.Текст = 9 | "ВЫБРАТЬ 10 | | ДемоПриходнаяНакладнаяТовары.Ссылка.Дата КАК Период, 11 | | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения, 12 | | ДемоПриходнаяНакладнаяТовары.Товар, 13 | | ДемоПриходнаяНакладнаяТовары.Количество 14 | |ИЗ 15 | | Документ.ДемоПриходнаяНакладная.Товары КАК ДемоПриходнаяНакладнаяТовары 16 | |ГДЕ 17 | | ДемоПриходнаяНакладнаяТовары.Ссылка = &Ссылка"; 18 | 19 | Движения.ДемоОстаткиТоваров.Записывать = Истина; 20 | Движения.ДемоОстаткиТоваров.Загрузить(Запрос.Выполнить().Выгрузить()); 21 | 22 | КонецПроцедуры 23 | 24 | #КонецОбласти -------------------------------------------------------------------------------- /src/Documents/ДемоРасходнаяНакладная/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | #Область ОбработчикиСобытий 2 | 3 | Процедура ОбработкаПроведения(Отказ, РежимПроведения) 4 | 5 | Запрос = Новый Запрос(); 6 | Запрос.УстановитьПараметр("Ссылка", Ссылка); 7 | 8 | Запрос.Текст = 9 | "ВЫБРАТЬ 10 | | ДемоРасходнаяНакладнаяТовары.Ссылка.Дата КАК Период, 11 | | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения, 12 | | ДемоРасходнаяНакладнаяТовары.Товар, 13 | | ДемоРасходнаяНакладнаяТовары.Количество 14 | |ИЗ 15 | | Документ.ДемоРасходнаяНакладная.Товары КАК ДемоРасходнаяНакладнаяТовары 16 | |ГДЕ 17 | | ДемоРасходнаяНакладнаяТовары.Ссылка = &Ссылка"; 18 | 19 | Движения.ДемоОстаткиТоваров.Записывать = Истина; 20 | Движения.ДемоОстаткиТоваров.Загрузить(Запрос.Выполнить().Выгрузить()); 21 | 22 | КонецПроцедуры 23 | 24 | #КонецОбласти -------------------------------------------------------------------------------- /src/ScheduledJobs/РегламентныйРасчетПоказателя/Schedule.schedule: -------------------------------------------------------------------------------- 1 | 2 | 3 | Mon 4 | Tue 5 | Wed 6 | Thu 7 | Fri 8 | Sat 9 | Sun 10 | Jan 11 | Feb 12 | Mar 13 | Apr 14 | May 15 | Jun 16 | Jul 17 | Aug 18 | Sep 19 | Oct 20 | Nov 21 | Dec 22 | 23 | -------------------------------------------------------------------------------- /src/ScheduledJobs/ОтложенныйРассчетПоказателей/Schedule.schedule: -------------------------------------------------------------------------------- 1 | 2 | 3 | Mon 4 | Tue 5 | Wed 6 | Thu 7 | Fri 8 | Sat 9 | Sun 10 | Jan 11 | Feb 12 | Mar 13 | Apr 14 | May 15 | Jun 16 | Jul 17 | Aug 18 | Sep 19 | Oct 20 | Nov 21 | Dec 22 | 23 | -------------------------------------------------------------------------------- /src/DataProcessors/ПанельАдминистрированияПО/ПанельАдминистрированияПО.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ПанельАдминистрированияПО 8 | 9 | ru 10 | Панель администрирования ПО 11 | 12 | true 13 | DataProcessor.ПанельАдминистрированияПО.Form.Форма 14 | 15 | Форма 16 | 17 | ru 18 | Форма 19 | 20 | PersonalComputer 21 | MobileDevice 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/CommonModules/ПоказателиОбъектовПереопределяемый/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область ПрограммныйИнтерфейс 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 | #КонецОбласти -------------------------------------------------------------------------------- /src/Subsystems/Демо/Демо.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | Демо 4 | 5 | ru 6 | Демо 7 | 8 | true 9 | true 10 | Catalog.ДемоНоменклатура 11 | Catalog.ДемоПоставщики 12 | Document.ДемоПриходнаяНакладная 13 | Document.ДемоРасходнаяНакладная 14 | InformationRegister.ДемоШтрихкодыНоменклатуры 15 | AccumulationRegister.ДемоОстаткиТоваров 16 | Role.ДемоПолныеПрава 17 | Role.ДемоАдминистраторСистемы 18 | Role.ДемоИнтерактивноеОткрытиеВнешнихОтчетовИОбработок 19 | Role.ДемоДобавлениеИзменениеСправочниковДокументов 20 | Role.ДемоЗапускТонкогоКлиента 21 | Role.ДемоЗапускТолстогоКлиента 22 | 23 | -------------------------------------------------------------------------------- /src/ChartsOfCharacteristicTypes/ПоказателиОбъектов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Normal 5 | a258899e-6c3a-47ee-b120-b48295d26dbd 6 | 7 | 8 | Normal 9 | 0e9ef5f7-8d1f-42ca-b063-4d67302ec2e1 10 | 11 | 12 | Normal 13 | ebf998ba-97cf-4fde-8db5-c17cbca1bee3 14 | 15 | Normal 16 | 299af1d1-307a-41f5-a74e-50c0747968db 17 | 18 | -------------------------------------------------------------------------------- /src/Enums/СпособыРасчетаПоказателейОбъектов/СпособыРасчетаПоказателейОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | СпособыРасчетаПоказателейОбъектов 9 | 10 | ru 11 | Способы расчета показателей объектов 12 | 13 | true 14 | BothWays 15 | 16 | ВыполнитьКод 17 | 18 | ru 19 | Выполнить код 20 | 21 | 22 | 23 | Запрос 24 | 25 | ru 26 | Запрос 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/Enums/ПериодичностьПоказателяОбъекта/ПериодичностьПоказателяОбъекта.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ПериодичностьПоказателяОбъекта 9 | 10 | ru 11 | Периодичность показателя объекта 12 | 13 | true 14 | BothWays 15 | 16 | Непериодический 17 | 18 | ru 19 | Непериодический 20 | 21 | 22 | 23 | Год 24 | 25 | ru 26 | Год 27 | 28 | 29 | 30 | Квартал 31 | 32 | ru 33 | Квартал 34 | 35 | 36 | 37 | Месяц 38 | 39 | ru 40 | Месяц 41 | 42 | 43 | 44 | День 45 | 46 | ru 47 | День 48 | 49 | 50 | 51 | Секунда 52 | 53 | ru 54 | Секунда 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/Subsystems/ПоказателиОбъектов/ПоказателиОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектов 4 | 5 | ru 6 | Показатели объектов 7 | 8 | true 9 | true 10 | CommonModule.ПоказателиОбъектовПереопределяемый 11 | CommonModule.ПоказателиОбъектов 12 | CommonModule.ПоказателиОбъектовПовтИсп 13 | CommonModule.ПоказателиОбъектовСлужебный 14 | CommonModule.ПоказателиОбъектовСобытия 15 | EventSubscription.ПоказателиОбъектовПриЗаписиОбъекта 16 | EventSubscription.ПоказателиОбъектовПриЗаписиНабораЗаписей 17 | EventSubscription.ПоказателиОбъектовПередЗаписьюОбъекта 18 | EventSubscription.ПоказателиОбъектовПередЗаписьюДокумента 19 | EventSubscription.ПоказателиОбъектовПередЗаписьюНабораЗаписей 20 | ScheduledJob.ОтложенныйРассчетПоказателей 21 | ScheduledJob.РегламентныйРасчетПоказателя 22 | Catalog.ОбъектыМетаданныхПО 23 | Catalog.СвойстваОбъектовМетаданныхПО 24 | Enum.СпособыРасчетаПоказателейОбъектов 25 | Enum.ПериодичностьПоказателяОбъекта 26 | DataProcessor.ПанельАдминистрированияПО 27 | ChartOfCharacteristicTypes.ПоказателиОбъектов 28 | InformationRegister.ЗначенияПоказателейОбъектов 29 | InformationRegister.ЗначенияПериодическихПоказателейОбъектов 30 | InformationRegister.ОчередьОтложенногоРасчетаПоказателейОбъектов 31 | InformationRegister.ПорцияОтложенногоРасчетаПоказателейОбъектов 32 | Role.ДобавлениеИзменениеПоказателейОбъектов 33 | Role.ЧтениеПоказателейОбъектов 34 | 35 | -------------------------------------------------------------------------------- /src/AccumulationRegisters/ДемоОстаткиТоваров/ДемоОстаткиТоваров.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ДемоОстаткиТоваров 12 | 13 | ru 14 | Демо остатки товаров 15 | 16 | true 17 | Managed 18 | true 19 | 20 | Количество 21 | 22 | ru 23 | Количество 24 | 25 | 26 | Number 27 | 28 | 10 29 | 30 | 31 | 32 | 33 | Use 34 | 35 | 36 | Товар 37 | 38 | ru 39 | Товар 40 | 41 | 42 | CatalogRef.ДемоНоменклатура 43 | 44 | 45 | 46 | Use 47 | true 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/Roles/ДемоАдминистраторСистемы/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Configuration.ПоказателиОбъектов 8 | 9 | SaveUserData 10 | true 11 | 12 | 13 | ThinClient 14 | true 15 | 16 | 17 | WebClient 18 | true 19 | 20 | 21 | MainWindowModeEmbeddedWorkplace 22 | true 23 | 24 | 25 | MainWindowModeKiosk 26 | true 27 | 28 | 29 | MainWindowModeNormal 30 | true 31 | 32 | 33 | MainWindowModeFullscreenWorkplace 34 | true 35 | 36 | 37 | MainWindowModeWorkplace 38 | true 39 | 40 | 41 | Automation 42 | true 43 | 44 | 45 | UpdateDataBaseConfiguration 46 | true 47 | 48 | 49 | ConfigurationExtensionsAdministration 50 | true 51 | 52 | 53 | DataAdministration 54 | true 55 | 56 | 57 | CollaborationSystemInfoBaseRegistration 58 | true 59 | 60 | 61 | ActiveUsers 62 | true 63 | 64 | 65 | ExternalConnection 66 | true 67 | 68 | 69 | MobileClient 70 | true 71 | 72 | 73 | ExclusiveMode 74 | true 75 | 76 | 77 | ThickClient 78 | true 79 | 80 | 81 | Output 82 | true 83 | 84 | 85 | AllFunctionsMode 86 | true 87 | 88 | 89 | EventLog 90 | true 91 | 92 | 93 | Administration 94 | true 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Подсистема "ПоказателиОбъектов" 2 | Если вашим пользователям нужно вывести в динамический список разные показатели, которые нельзя напрямую получить из таблиц ссылочных объектов, и вы не хотите изменять структуру справочников или документов - тогда эта подсистема для вас. С помощью нее вы сможете в пользовательском режиме создать свой показатель, который будет рассчитываться по формуле или с помощью запроса. Этот показатель вы сможете вывести в динамический список, как любую другую характеристику объекта. Также можно будет настроить отбор или условное оформление с использованием созданного показателя. 3 | ## Внедрение подсистемы 4 | 1. Запустите сравнение/объединение со скачанным [cf-файлом](https://github.com/pila86/object-indicators/releases/latest). 5 | 2. В открывшемся окне нажмите Действия - Отметить по подсистемам файла и выберите подсистему "Показатели объектов". Нажмите Выполнить. 6 | 3. Откройте общий модуль ПоказателиОбъектовПереопределяемый и внесите изменения в методы ОпределитьОбъектыСПоказателями и ОпределитьТриггерыРасчетаПоказателей. См. комментарии в модуле. 7 | ![image](https://user-images.githubusercontent.com/20997791/110167050-3e983c80-7e06-11eb-8c25-27db7844885e.png) 8 | 4. Создайте дополнительные характеристики для объектов метаданных, являющихся владельцами показателей. 9 | ![image](https://user-images.githubusercontent.com/20997791/110166534-92eeec80-7e05-11eb-9b84-f0507b83dc1e.png) 10 | 5. Обновите конфигурацию базы данных и зайдите в базу в пользовательском режиме. 11 | 6. Откройте обработку ПанельАдминистрированияПО и нажмите кнопку ОбновитьСлужебныеДанные. 12 | ## Создание показателя 13 | 1. Откройте план видов характеристик ПоказателиОбъектов. 14 | 2. Создайте новый показатель. Например показатель "Есть штрихкод" для справочника номенклатура. 15 | 3. Заполните наименование, владельца и тип в шапке формы показателя. 16 | 4. На вкладке Расчет заполните текст запроса или выполняемый код. 17 | ![image](https://user-images.githubusercontent.com/20997791/110167794-4c9a8d00-7e07-11eb-8ecf-86578942f7d7.png) 18 | 5. На вкладке "Запуск расчета" укажите, когда требуется запускать расчет показателя. 19 | ![image](https://user-images.githubusercontent.com/20997791/110167920-84093980-7e07-11eb-9a1c-108080d53375.png) 20 | 6. Откройти форму списка владельца показателя и нажмите изменить форму. Добавьте нужный показатель на форму. 21 | ![image](https://user-images.githubusercontent.com/20997791/110168178-dba7a500-7e07-11eb-94ee-964df0adee29.png) 22 | ![image](https://user-images.githubusercontent.com/20997791/110168203-e3ffe000-7e07-11eb-9a4e-a83c3f427646.png) 23 | ![image](https://user-images.githubusercontent.com/20997791/110168246-f37f2900-7e07-11eb-9739-94b79a372b25.png) 24 | 7. Настройте при необходимости отбор и условное оформление динамического списка. 25 | -------------------------------------------------------------------------------- /src/InformationRegisters/ПорцияОтложенногоРасчетаПоказателейОбъектов/ПорцияОтложенногоРасчетаПоказателейОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ПорцияОтложенногоРасчетаПоказателейОбъектов 13 | 14 | ru 15 | Порция отложенного расчета показателей объектов 16 | 17 | Managed 18 | 19 | Показатель 20 | 21 | ru 22 | Показатель 23 | 24 | 25 | ChartOfCharacteristicTypesRef.ПоказателиОбъектов 26 | 27 | 28 | 29 | Use 30 | Use 31 | 32 | true 33 | 34 | 35 | Объект 36 | 37 | ru 38 | Объект 39 | 40 | 41 | String 42 | DocumentRef 43 | CatalogRef 44 | 45 | 10 46 | 47 | 48 | 49 | 50 | Use 51 | Use 52 | 53 | 54 | 55 | true 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/InformationRegisters/ДемоШтрихкодыНоменклатуры/ДемоШтрихкодыНоменклатуры.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ДемоШтрихкодыНоменклатуры 13 | 14 | ru 15 | Демо штрихкоды номенклатуры 16 | 17 | true 18 | Managed 19 | 20 | Штрихкод 21 | 22 | ru 23 | Штрихкод 24 | 25 | 26 | String 27 | 28 | 13 29 | 30 | 31 | 32 | 33 | ShowError 34 | Use 35 | Use 36 | 37 | 38 | 39 | 40 | 41 | Номенклатура 42 | 43 | ru 44 | Номенклатура 45 | 46 | 47 | CatalogRef.ДемоНоменклатура 48 | 49 | 50 | 51 | ShowError 52 | true 53 | Use 54 | Use 55 | true 56 | 57 | true 58 | true 59 | 60 | 61 | -------------------------------------------------------------------------------- /src/DataProcessors/ПанельАдминистрированияПО/Forms/Форма/Form.form: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ФормаОбновитьСлужебныеДанные 5 | 1 6 | true 7 | true 8 | 9 | true 10 | 11 | 12 | ФормаОбновитьСлужебныеДанныеРасширеннаяПодсказка 13 | 2 14 | true 15 | true 16 | 17 | true 18 | 19 | Label 20 | true 21 | true 22 | 23 | Left 24 | 25 | 26 | UsualButton 27 | Form.Command.ОбновитьСлужебныеДанные 28 | Auto 29 | true 30 | true 31 | UserCmds 32 | Auto 33 | 34 | 35 | ФормаКоманднаяПанель 36 | -1 37 | true 38 | true 39 | 40 | true 41 | 42 | Left 43 | true 44 | 45 | true 46 | true 47 | Vertical 48 | true 49 | true 50 | true 51 | true 52 | true 53 | 54 | Объект 55 | 1 56 | 57 | DataProcessorObject.ПанельАдминистрированияПО 58 | 59 | 60 | true 61 | 62 | 63 | true 64 | 65 |
true
66 |
67 | 68 | ОбновитьСлужебныеДанные 69 | 70 | <key>ru</key> 71 | <value>Обновить служебные данные</value> 72 | 73 | 1 74 | 75 | true 76 | 77 | 78 | 79 | ОбновитьСлужебныеДанные 80 | 81 | 82 | Auto 83 | 84 | 85 | 86 | 87 | 88 | 89 |
90 | -------------------------------------------------------------------------------- /src/Catalogs/ДемоНоменклатура/ДемоНоменклатура.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ДемоНоменклатура 11 | 12 | ru 13 | Демо номенклатура 14 | 15 | true 16 | Catalog.ДемоНоменклатура.StandardAttribute.Code 17 | Catalog.ДемоНоменклатура.StandardAttribute.Description 18 | DontUse 19 | Use 20 | Managed 21 | Use 22 | 2 23 | true 24 | 9 25 | 25 26 | String 27 | Variable 28 | true 29 | true 30 | AsDescription 31 | InDialog 32 | BothWays 33 | 34 | Артикул 35 | 36 | ru 37 | Артикул 38 | 39 | 40 | String 41 | 42 | 10 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | Use 51 | Use 52 | 53 | 54 | Комментарий 55 | 56 | ru 57 | Комментарий 58 | 59 | 60 | String 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | Use 69 | Use 70 | 71 | 72 | -------------------------------------------------------------------------------- /src/InformationRegisters/ОчередьОтложенногоРасчетаПоказателейОбъектов/ОчередьОтложенногоРасчетаПоказателейОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ОчередьОтложенногоРасчетаПоказателейОбъектов 13 | 14 | ru 15 | Очередь отложенного расчета показателей объектов 16 | 17 | Managed 18 | 19 | ДатаРегистрации 20 | 21 | ru 22 | Дата регистрации 23 | 24 | 25 | Date 26 | 27 | 28 | 29 | 30 | Use 31 | Use 32 | 33 | Index 34 | 35 | 36 | Показатель 37 | 38 | ru 39 | Показатель 40 | 41 | 42 | ChartOfCharacteristicTypesRef.ПоказателиОбъектов 43 | 44 | 45 | 46 | Use 47 | Use 48 | 49 | true 50 | 51 | 52 | Объект 53 | 54 | ru 55 | Объект 56 | 57 | 58 | String 59 | DocumentRef 60 | CatalogRef 61 | 62 | 10 63 | 64 | 65 | 66 | 67 | Use 68 | Use 69 | 70 | 71 | 72 | true 73 | 74 | 75 | -------------------------------------------------------------------------------- /src/InformationRegisters/ЗначенияПоказателейОбъектов/ЗначенияПоказателейОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ЗначенияПоказателейОбъектов 13 | 14 | ru 15 | Значения показателей объектов 16 | 17 | true 18 | Managed 19 | 20 | ЗначениеПоказателя 21 | 22 | ru 23 | Значение показателя 24 | 25 | 26 | Characteristic.ПоказателиОбъектов 27 | 28 | 29 | 30 | 31 | InformationRegister.ЗначенияПоказателейОбъектов.Dimension.Показатель 32 | 33 | Use 34 | Use 35 | 36 | 37 | 38 | Объект 39 | 40 | ru 41 | Объект 42 | 43 | 44 | DocumentRef 45 | CatalogRef 46 | 47 | 48 | 49 | true 50 | Use 51 | Use 52 | 53 | true 54 | true 55 | 56 | 57 | Показатель 58 | 59 | ru 60 | Показатель 61 | 62 | 63 | ChartOfCharacteristicTypesRef.ПоказателиОбъектов 64 | 65 | 66 | 67 | true 68 | Use 69 | Use 70 | 71 | true 72 | true 73 | 74 | 75 | -------------------------------------------------------------------------------- /src/InformationRegisters/ЗначенияПериодическихПоказателейОбъектов/ЗначенияПериодическихПоказателейОбъектов.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ЗначенияПериодическихПоказателейОбъектов 13 | 14 | ru 15 | Значения периодических показателей объектов 16 | 17 | true 18 | Second 19 | Managed 20 | 21 | ЗначениеПоказателя 22 | 23 | ru 24 | Значение показателя 25 | 26 | 27 | Characteristic.ПоказателиОбъектов 28 | 29 | 30 | 31 | 32 | InformationRegister.ЗначенияПериодическихПоказателейОбъектов.Dimension.Показатель 33 | 34 | Use 35 | Use 36 | 37 | 38 | 39 | Объект 40 | 41 | ru 42 | Объект 43 | 44 | 45 | AnyRef 46 | 47 | 48 | 49 | true 50 | Use 51 | Use 52 | 53 | true 54 | true 55 | 56 | 57 | Показатель 58 | 59 | ru 60 | Показатель 61 | 62 | 63 | ChartOfCharacteristicTypesRef.ПоказателиОбъектов 64 | 65 | 66 | 67 | Use 68 | Use 69 | 70 | true 71 | 72 | 73 | -------------------------------------------------------------------------------- /src/CommonModules/ПоказателиОбъектовПовтИсп/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область СлужебныйПрограммныйИнтерфейс 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 | | ЕСТЬNULL(ПоказателиОбъектовТриггеры.Ключ.Наименование, """") КАК Ключ, 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 | "ВЫБРАТЬ ПЕРВЫЕ 1 97 | | ОбъектыМетаданныхПО.Ссылка 98 | |ИЗ 99 | | Справочник.ОбъектыМетаданныхПО КАК ОбъектыМетаданныхПО 100 | |ГДЕ 101 | | ОбъектыМетаданныхПО.ПолноеИмя = &ПолноеИмя"; 102 | 103 | Выборка = Запрос.Выполнить().Выбрать(); 104 | Если (Выборка.Следующий()) Тогда 105 | Возврат Выборка.Ссылка; 106 | КонецЕсли; 107 | 108 | Возврат Неопределено; 109 | 110 | КонецФункции 111 | 112 | #КонецОбласти -------------------------------------------------------------------------------- /src/Catalogs/ДемоПоставщики/ДемоПоставщики.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ДемоПоставщики 11 | 12 | ru 13 | Демо поставщики 14 | 15 | true 16 | Catalog.ДемоПоставщики.StandardAttribute.Code 17 | Catalog.ДемоПоставщики.StandardAttribute.Description 18 | DontUse 19 | 20 | ChartOfCharacteristicTypes.ПоказателиОбъектов.TabularSection.Владельцы 21 | ChartOfCharacteristicTypes.ПоказателиОбъектов.TabularSection.Владельцы.StandardAttribute.Ref 22 | ChartOfCharacteristicTypes.ПоказателиОбъектов.TabularSection.Владельцы.Attribute.ВладелецПолноеИмя 23 | 24 | Справочник.Поставщики 25 | 26 | InformationRegister.ЗначенияПоказателейОбъектов 27 | InformationRegister.ЗначенияПоказателейОбъектов.Dimension.Объект 28 | InformationRegister.ЗначенияПоказателейОбъектов.Dimension.Показатель 29 | InformationRegister.ЗначенияПоказателейОбъектов.Resource.ЗначениеПоказателя 30 | 31 | Use 32 | Managed 33 | Use 34 | 2 35 | true 36 | 9 37 | 25 38 | String 39 | Variable 40 | true 41 | true 42 | AsDescription 43 | InDialog 44 | BothWays 45 | 46 | 47 | 48 | 49 | 50 | Товары 51 | 52 | ru 53 | Товары 54 | 55 | 56 | Номенклатура 57 | 58 | ru 59 | Номенклатура 60 | 61 | 62 | CatalogRef.ДемоНоменклатура 63 | 64 | 65 | 66 | Use 67 | Use 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /src/Documents/ДемоПриходнаяНакладная/ДемоПриходнаяНакладная.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ДемоПриходнаяНакладная 11 | 12 | ru 13 | Демо приходная накладная 14 | 15 | true 16 | Document.ДемоПриходнаяНакладная.StandardAttribute.Number 17 | DontUse 18 | Use 19 | Managed 20 | Use 21 | String 22 | 11 23 | Variable 24 | Year 25 | true 26 | true 27 | Deny 28 | AccumulationRegister.ДемоОстаткиТоваров 29 | true 30 | true 31 | 32 | Комментарий 33 | 34 | ru 35 | Комментарий 36 | 37 | 38 | String 39 | 40 | 41 | Use 42 | Use 43 | 44 | 45 | 46 | 47 | 48 | 49 | Товары 50 | 51 | ru 52 | Товары 53 | 54 | 55 | Товар 56 | 57 | ru 58 | Товар 59 | 60 | 61 | CatalogRef.ДемоНоменклатура 62 | 63 | 64 | 65 | Use 66 | Use 67 | 68 | 69 | Количество 70 | 71 | ru 72 | Количество 73 | 74 | 75 | Number 76 | 77 | 10 78 | 79 | 80 | 81 | 82 | Use 83 | Use 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /src/Documents/ДемоРасходнаяНакладная/ДемоРасходнаяНакладная.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ДемоРасходнаяНакладная 11 | 12 | ru 13 | Демо расходная накладная 14 | 15 | true 16 | Document.ДемоРасходнаяНакладная.StandardAttribute.Number 17 | DontUse 18 | Use 19 | Managed 20 | Use 21 | String 22 | 11 23 | Variable 24 | Year 25 | true 26 | true 27 | Deny 28 | AccumulationRegister.ДемоОстаткиТоваров 29 | true 30 | true 31 | 32 | Комментарий 33 | 34 | ru 35 | Комментарий 36 | 37 | 38 | String 39 | 40 | 41 | Use 42 | Use 43 | 44 | 45 | 46 | 47 | 48 | 49 | Товары 50 | 51 | ru 52 | Товары 53 | 54 | 55 | Товар 56 | 57 | ru 58 | Товар 59 | 60 | 61 | CatalogRef.ДемоНоменклатура 62 | 63 | 64 | 65 | Use 66 | Use 67 | 68 | 69 | Количество 70 | 71 | ru 72 | Количество 73 | 74 | 75 | Number 76 | 77 | 10 78 | 79 | 80 | 81 | 82 | Use 83 | Use 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /features/ПоказательСОтложеннымРасчетом.feature: -------------------------------------------------------------------------------- 1 | #language: ru 2 | 3 | @tree 4 | 5 | Функциональность: Показатель с отложенным расчетом 6 | 7 | Я хочу убедиться в работспособности показателей с отложенным расчетом 8 | 9 | Контекст: 10 | Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий 11 | 12 | Сценарий: Тестирование показателя с отложенным расчетом 13 | Дано Я создаю показатель "Тест Отложенный расчет" 14 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 15 | И Я нажимаю на кнопку с именем 'ФормаСоздать' 16 | Тогда открылось окно 'Показатели объектов (создание)' 17 | И в поле 'Наименование' я ввожу текст "Тест Отложенный расчет" 18 | И я нажимаю кнопку выбора у поля с именем "Владелец" 19 | Тогда открылось окно 'Объекты метаданных ПО' 20 | И в таблице "Список" я перехожу к строке: 21 | | 'Представление' | 22 | | 'Справочники' | 23 | И в таблице "Список" я выбираю текущую строку 24 | И в таблице "Список" я перехожу к строке: 25 | | 'Представление' | 26 | | 'Демо номенклатура (Справочник)' | 27 | И в таблице "Список" я выбираю текущую строку 28 | И я меняю значение переключателя 'Способ расчета' на 'Запрос' 29 | И я перехожу к закладке "Страница запрос" 30 | И в поле 'ТекстЗапроса' я ввожу текст 31 | |'ВЫБРАТЬ' | 32 | |' ВТ_Объекты.Объект КАК Объект,' | 33 | |' 123 КАК ЗначениеПоказателя' | 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 | И я жду закрытия окна 'Показатели объектов (создание) *' в течение 2 секунд 63 | 64 | И я создаю номенклатуру с наименованием "Тест Товар" 65 | Когда В командном интерфейсе я выбираю 'Демо' 'Демо номенклатура' 66 | Тогда открылось окно 'Демо номенклатура' 67 | И я нажимаю на кнопку с именем 'ФормаСоздать' 68 | Тогда открылось окно 'Демо номенклатура (создание)' 69 | И в поле 'Наименование' я ввожу текст 'Тест Товар' 70 | И я нажимаю на кнопку 'Записать' 71 | И Пауза 30 72 | И в текущем окне я нажимаю кнопку командного интерфейса 'Значения показателей объектов' 73 | И Я устанавливаю фильтр на список 74 | | Показатель | Равно | 'Тест Отложенный расчет' | 75 | И таблица "Список" стала равной: 76 | | 'Объект' | 'Показатель' | 'Значение показателя' | 77 | | 'Тест Товар' | 'Тест Отложенный расчет' | 123 | 78 | И я закрываю текущее окно 79 | И я закрываю текущее окно 80 | 81 | И Я удаляю показатель 82 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 83 | И в таблице "Список" я перехожу к строке: 84 | | 'Наименование' | 85 | | 'Тест Отложенный расчет' | 86 | И в таблице "Список" я выбираю текущую строку 87 | Тогда открылось окно 'Тест Отложенный расчет (Показатели объектов)' 88 | И в поле 'Наименование' я ввожу текст 'Удалить Тест Отложенный расчет' 89 | И я перехожу к следующему реквизиту 90 | И я нажимаю на кнопку 'Пометить на удаление / Снять пометку' 91 | Тогда открылось окно '1С:Предприятие' 92 | И я нажимаю на кнопку 'Да' 93 | И Я закрываю текущее окно 94 | И Я удаляю показатель с кодом "УдалитьТестОтложенныйРасчет" 95 | И Я закрываю текущее окно 96 | 97 | И я удаляю номенклатуру с наименованием "Тест Товар" -------------------------------------------------------------------------------- /features/ПоказателиОбъектовСоСпособомРасчетаЗапрос.feature: -------------------------------------------------------------------------------- 1 | 2 | #language: ru 3 | 4 | @tree 5 | 6 | Функциональность: Показатели объектов со способом расчета "Запрос" 7 | 8 | Я хочу иметь возможность создавать показатели со способом расчета "Запрос" 9 | 10 | Контекст: 11 | Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий 12 | 13 | Сценарий: Расчет показателя с типом расчета "Запрос" 14 | Дано Я проверяю отсутствие показателя с кодом "ТестЗапрос" 15 | И Я создаю показатель "Тест Запрос" 16 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 17 | И Я нажимаю на кнопку с именем 'ФормаСоздать' 18 | Тогда открылось окно 'Показатели объектов (создание)' 19 | И в поле 'Наименование' я ввожу текст "Тест Запрос" 20 | И я нажимаю кнопку выбора у поля с именем "Владелец" 21 | Тогда открылось окно 'Объекты метаданных ПО' 22 | И в таблице "Список" я перехожу к строке: 23 | | 'Представление' | 24 | | 'Справочники' | 25 | И в таблице "Список" я выбираю текущую строку 26 | И в таблице "Список" я перехожу к строке: 27 | | 'Представление' | 28 | | 'Демо поставщики (Справочник)' | 29 | И в таблице "Список" я выбираю текущую строку 30 | И я меняю значение переключателя 'Способ расчета' на 'Запрос' 31 | И я перехожу к закладке "Страница запрос" 32 | И в поле 'ТекстЗапроса' я ввожу текст 33 | |'ВЫБРАТЬ'| 34 | |' ВТ_Объекты.Объект КАК Объект,'| 35 | |' 123 КАК ЗначениеПоказателя'| 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 | И я жду закрытия окна 'Показатели объектов (создание) *' в течение 2 секунд 63 | 64 | И Я выполняю запись первого попавшегося поставщика 65 | И Я открываю основную форму списка справочника "ДемоПоставщики" 66 | Тогда открылось окно "Демо поставщики" 67 | Если в таблице "Список" количество строк "меньше или равно" 0 Тогда 68 | Тогда Я нажимаю на кнопку с именем 'ФормаСоздать' 69 | Тогда открылось окно 'Демо поставщики (создание)' 70 | И в поле 'Наименование' я ввожу текст 'Тестовый поставщик' 71 | И Я нажимаю на кнопку "Записать и закрыть" 72 | И в таблице "Список" я перехожу к первой строке 73 | И в таблице "Список" я выбираю текущую строку 74 | И я жду открытия окна отличного от "Демо поставщики" в течение 2 секунд 75 | И Я нажимаю на кнопку "Записать" 76 | И В текущем окне я нажимаю кнопку командного интерфейса 'Значения показателей объектов' 77 | И Я устанавливаю фильтр на список 78 | | Показатель| Равно| Тест Запрос | 79 | И в таблице "Список" 1 строк, у которых колонка "Значение показателя" "Равно" "123" 80 | И Я закрываю текущее окно 81 | 82 | И Я удаляю показатель 83 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 84 | И в таблице "Список" я перехожу к строке: 85 | | 'Наименование' | 86 | | 'Тест Запрос' | 87 | И в таблице "Список" я выбираю текущую строку 88 | Тогда открылось окно 'Тест Запрос (Показатели объектов)' 89 | И в поле 'Наименование' я ввожу текст 'УдалитьТест Запрос' 90 | И я перехожу к следующему реквизиту 91 | И я нажимаю на кнопку 'Пометить на удаление / Снять пометку' 92 | Тогда открылось окно '1С:Предприятие' 93 | И я нажимаю на кнопку 'Да' 94 | И Я закрываю текущее окно 95 | И Я удаляю показатель с кодом "УдалитьТестЗапрос" 96 | И Я закрываю текущее окно 97 | -------------------------------------------------------------------------------- /features/ПоказателиОбъектовСоСпособомРасчетаВыполнитьКод.feature: -------------------------------------------------------------------------------- 1 | 2 | #language: ru 3 | 4 | @tree 5 | 6 | Функциональность: Показатели объектов со способом расчета "Выполнить код" 7 | 8 | Я хочу иметь возможность создавать показатели со способом расчета "Выполнить код" 9 | 10 | Контекст: 11 | Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий 12 | 13 | Сценарий: Расчет показателя с типом расчета "Выполнить код" 14 | Дано Я проверяю отсутствие показателя с кодом "ТестВыполнитьКод" 15 | И Я создаю показатель "Тест Выполнить код" 16 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 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 | И я жду закрытия окна 'Показатели объектов (создание) *' в течение 2 секунд 61 | 62 | И Я выполняю запись первого попавшегося поставщика 63 | И Я открываю основную форму списка справочника "ДемоПоставщики" 64 | Тогда открылось окно "Демо поставщики" 65 | Если в таблице "Список" количество строк "меньше или равно" 0 Тогда 66 | Тогда Я нажимаю на кнопку с именем 'ФормаСоздать' 67 | Тогда открылось окно 'Демо поставщики (создание)' 68 | И в поле 'Наименование' я ввожу текст 'Тестовый поставщик' 69 | И Я нажимаю на кнопку "Записать и закрыть" 70 | И в таблице "Список" я перехожу к первой строке 71 | И в таблице "Список" я выбираю текущую строку 72 | И я жду открытия окна отличного от "Демо поставщики" в течение 2 секунд 73 | И Я нажимаю на кнопку "Записать" 74 | И В текущем окне я нажимаю кнопку командного интерфейса 'Значения показателей объектов' 75 | И Я устанавливаю фильтр на список 76 | | Показатель| Равно| Тест Выполнить код | 77 | И в таблице "Список" 1 строк, у которых колонка "Значение показателя" "Равно" "тест" 78 | И Я закрываю текущее окно 79 | 80 | И Я удаляю показатель 81 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 82 | И в таблице "Список" я перехожу к строке: 83 | | 'Наименование' | 84 | | 'Тест Выполнить код' | 85 | И в таблице "Список" я выбираю текущую строку 86 | Тогда открылось окно 'Тест Выполнить код (Показатели объектов)' 87 | И в поле 'Наименование' я ввожу текст 'УдалитьТест Выполнить код' 88 | И я перехожу к следующему реквизиту 89 | И я нажимаю на кнопку 'Пометить на удаление / Снять пометку' 90 | Тогда открылось окно '1С:Предприятие' 91 | И я нажимаю на кнопку 'Да' 92 | И Я закрываю текущее окно 93 | И Я удаляю показатель с кодом "УдалитьТестВыполнитьКод" 94 | И Я закрываю текущее окно 95 | -------------------------------------------------------------------------------- /src/Configuration/Configuration.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | ПоказателиОбъектов 4 | 5 | ru 6 | Показатели объектов 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 8.3.16 15 | ManagedApplication 16 | PersonalComputer 17 | Russian 18 | Role.ДемоПолныеПрава 19 | Role.ДемоАдминистраторСистемы 20 | Role.ДемоИнтерактивноеОткрытиеВнешнихОтчетовИОбработок 21 | Пильников Николай 22 | 1.0.0.1 23 | 24 | AllowOSBackup 25 | true 26 | 27 | Language.Русский 28 | Managed 29 | NotAutoFree 30 | DontUse 31 | UseWithWarnings 32 | 8.3.16 33 | 34 | Русский 35 | 36 | ru 37 | Русский 38 | 39 | ru 40 | 41 | Subsystem.Демо 42 | Subsystem.ПоказателиОбъектов 43 | Role.ДемоАдминистраторСистемы 44 | Role.ДемоДобавлениеИзменениеСправочниковДокументов 45 | Role.ДемоЗапускТолстогоКлиента 46 | Role.ДемоЗапускТонкогоКлиента 47 | Role.ДемоИнтерактивноеОткрытиеВнешнихОтчетовИОбработок 48 | Role.ДемоПолныеПрава 49 | Role.ДобавлениеИзменениеПоказателейОбъектов 50 | Role.ЧтениеПоказателейОбъектов 51 | CommonModule.ПоказателиОбъектов 52 | CommonModule.ПоказателиОбъектовПереопределяемый 53 | CommonModule.ПоказателиОбъектовПовтИсп 54 | CommonModule.ПоказателиОбъектовСлужебный 55 | CommonModule.ПоказателиОбъектовСобытия 56 | EventSubscription.ПоказателиОбъектовПриЗаписиОбъекта 57 | EventSubscription.ПоказателиОбъектовПриЗаписиНабораЗаписей 58 | EventSubscription.ПоказателиОбъектовПередЗаписьюОбъекта 59 | EventSubscription.ПоказателиОбъектовПередЗаписьюДокумента 60 | EventSubscription.ПоказателиОбъектовПередЗаписьюНабораЗаписей 61 | ScheduledJob.ОтложенныйРассчетПоказателей 62 | ScheduledJob.РегламентныйРасчетПоказателя 63 | Catalog.ДемоНоменклатура 64 | Catalog.ДемоПоставщики 65 | Catalog.ОбъектыМетаданныхПО 66 | Catalog.СвойстваОбъектовМетаданныхПО 67 | Document.ДемоПриходнаяНакладная 68 | Document.ДемоРасходнаяНакладная 69 | Enum.ПериодичностьПоказателяОбъекта 70 | Enum.СпособыРасчетаПоказателейОбъектов 71 | DataProcessor.ПанельАдминистрированияПО 72 | InformationRegister.ДемоШтрихкодыНоменклатуры 73 | InformationRegister.ЗначенияПериодическихПоказателейОбъектов 74 | InformationRegister.ЗначенияПоказателейОбъектов 75 | InformationRegister.ОчередьОтложенногоРасчетаПоказателейОбъектов 76 | InformationRegister.ПорцияОтложенногоРасчетаПоказателейОбъектов 77 | AccumulationRegister.ДемоОстаткиТоваров 78 | ChartOfCharacteristicTypes.ПоказателиОбъектов 79 | 80 | -------------------------------------------------------------------------------- /src/Roles/ДемоПолныеПрава/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | true 5 | false 6 | 7 | Configuration.ПоказателиОбъектов 8 | 9 | Administration 10 | false 11 | 12 | 13 | DataAdministration 14 | false 15 | 16 | 17 | UpdateDataBaseConfiguration 18 | false 19 | 20 | 21 | MobileClient 22 | false 23 | 24 | 25 | ThickClient 26 | false 27 | 28 | 29 | ExternalConnection 30 | false 31 | 32 | 33 | Automation 34 | false 35 | 36 | 37 | AllFunctionsMode 38 | false 39 | 40 | 41 | CollaborationSystemInfoBaseRegistration 42 | false 43 | 44 | 45 | ConfigurationExtensionsAdministration 46 | false 47 | 48 | 49 | InteractiveOpenExtDataProcessors 50 | false 51 | 52 | 53 | InteractiveOpenExtReports 54 | false 55 | 56 | 57 | 58 | Catalog.ДемоНоменклатура 59 | 60 | InteractiveDelete 61 | false 62 | 63 | 64 | InteractiveDeletePredefinedData 65 | false 66 | 67 | 68 | InteractiveSetDeletionMarkPredefinedData 69 | false 70 | 71 | 72 | InteractiveClearDeletionMarkPredefinedData 73 | false 74 | 75 | 76 | InteractiveDeleteMarkedPredefinedData 77 | false 78 | 79 | 80 | 81 | Catalog.ДемоПоставщики 82 | 83 | InteractiveDelete 84 | false 85 | 86 | 87 | InteractiveDeletePredefinedData 88 | false 89 | 90 | 91 | InteractiveSetDeletionMarkPredefinedData 92 | false 93 | 94 | 95 | InteractiveClearDeletionMarkPredefinedData 96 | false 97 | 98 | 99 | InteractiveDeleteMarkedPredefinedData 100 | false 101 | 102 | 103 | 104 | Catalog.ОбъектыМетаданныхПО 105 | 106 | InteractiveDelete 107 | false 108 | 109 | 110 | InteractiveDeletePredefinedData 111 | false 112 | 113 | 114 | InteractiveSetDeletionMarkPredefinedData 115 | false 116 | 117 | 118 | InteractiveClearDeletionMarkPredefinedData 119 | false 120 | 121 | 122 | InteractiveDeleteMarkedPredefinedData 123 | false 124 | 125 | 126 | 127 | Catalog.СвойстваОбъектовМетаданныхПО 128 | 129 | InteractiveDelete 130 | false 131 | 132 | 133 | InteractiveDeletePredefinedData 134 | false 135 | 136 | 137 | InteractiveSetDeletionMarkPredefinedData 138 | false 139 | 140 | 141 | InteractiveClearDeletionMarkPredefinedData 142 | false 143 | 144 | 145 | InteractiveDeleteMarkedPredefinedData 146 | false 147 | 148 | 149 | 150 | Document.ДемоРасходнаяНакладная 151 | 152 | InteractiveDelete 153 | false 154 | 155 | 156 | 157 | Document.ДемоПриходнаяНакладная 158 | 159 | InteractiveDelete 160 | false 161 | 162 | 163 | 164 | ChartOfCharacteristicTypes.ПоказателиОбъектов 165 | 166 | InteractiveDelete 167 | false 168 | 169 | 170 | InteractiveDeletePredefinedData 171 | false 172 | 173 | 174 | InteractiveSetDeletionMarkPredefinedData 175 | false 176 | 177 | 178 | InteractiveClearDeletionMarkPredefinedData 179 | false 180 | 181 | 182 | InteractiveDeleteMarkedPredefinedData 183 | false 184 | 185 | 186 | 187 | -------------------------------------------------------------------------------- /src/ChartsOfCharacteristicTypes/ПоказателиОбъектов/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | #Область ОбраработчикиСобытий 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 | НовоеЗадание.Наименование = СтрШаблон(НСтр("ru = 'Расчет показателя ""%1"".'"), Наименование); 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 | //@skip-warning 185 | Структура = Новый Структура(Код); 186 | Исключение 187 | Отказ = Истина; 188 | Сообщение = Новый СообщениеПользователю(); 189 | Сообщение.Текст = НСтр("ru = 'Некорректный идентификатор показателя'"); 190 | Сообщение.Поле = "Код"; 191 | Сообщение.УстановитьДанные(ЭтотОбъект); 192 | Сообщение.Сообщить(); 193 | КонецПопытки; 194 | 195 | КонецПроцедуры 196 | 197 | #КонецОбласти -------------------------------------------------------------------------------- /features/ПоказательЕстьШтрихкод.feature: -------------------------------------------------------------------------------- 1 | #language: ru 2 | 3 | @tree 4 | 5 | Функциональность: Показатель "Есть штрихкод" 6 | 7 | Я хочу создать показатель, который указывал бы на наличие штрихкода у номенлатуры (РС ДемоШтрихкодыНоменклатуры) 8 | 9 | Контекст: 10 | Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий 11 | 12 | Сценарий: Тестирование показателя "Тест Есть штрихкод" 13 | Дано Я проверяю отсутствие показателя с кодом "ТестЕстьШтрихкод" 14 | И Я создаю показатель "Тест Есть штрихкод" 15 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 16 | И Я нажимаю на кнопку с именем 'ФормаСоздать' 17 | Тогда открылось окно 'Показатели объектов (создание)' 18 | И в поле 'Наименование' я ввожу текст "Тест Есть штрихкод" 19 | И я нажимаю кнопку выбора у поля с именем "Владелец" 20 | Тогда открылось окно 'Объекты метаданных ПО' 21 | И в таблице "Список" я перехожу к строке: 22 | | 'Представление' | 23 | | 'Справочники' | 24 | И в таблице "Список" я выбираю текущую строку 25 | И в таблице "Список" я перехожу к строке: 26 | | 'Представление' | 27 | | 'Демо номенклатура (Справочник)' | 28 | И в таблице "Список" я выбираю текущую строку 29 | И я меняю значение переключателя 'Способ расчета' на 'Запрос' 30 | И я перехожу к закладке "Страница запрос" 31 | И в поле 'ТекстЗапроса' я ввожу текст 32 | |'ВЫБРАТЬ'| 33 | |' ВТ_Объекты.Объект КАК Объект,'| 34 | |' МАКСИМУМ(ВЫБОР'| 35 | |' КОГДА Штрихкоды.Номенклатура ЕСТЬ NULL'| 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 | И я жду закрытия окна 'Показатели объектов (создание) *' в течение 2 секунд 95 | 96 | И Я создаю набор тестовой номенклатуры 97 | И Я задаю таблицу строк "НаборНоменклатуры" 98 | | 'Наименование' | 'Штрихкод' | 'ЕстьШтрихкод'| 99 | | 'Тест Товар 01' | '1111111' | 'Да' | 100 | | 'Тест Товар 02' | '' | 'Нет' | 101 | | 'Тест Товар 03' | '1111111' | 'Да' | 102 | | 'Тест Товар 04' | '' | 'Нет' | 103 | | 'Тест Товар 05' | '1111111' | 'Да' | 104 | | 'Тест Товар 06' | '' | 'Нет' | 105 | | 'Тест Товар 07' | '1111111' | 'Да' | 106 | | 'Тест Товар 08' | '' | 'Нет' | 107 | | 'Тест Товар 09' | '1111111' | 'Да' | 108 | | 'Тест Товар 10' | '' | 'Нет' | 109 | И для каждого значения "СтрокаТаблицы" из таблицы в памяти "НаборНоменклатуры" 110 | И Я открываю основную форму справочника "ДемоНоменклатура" 111 | Тогда Открылось окно "Демо Номенклатура (Создание)" 112 | И в поле с именем "Наименование" я ввожу текст "$Наименование$" 113 | И я нажимаю на кнопку "Записать" 114 | Тогда открылось окно 'Тест Товар * (Демо номенклатура)' 115 | Если 'Не ПустаяСтрока($Штрихкод$)' Тогда 116 | Тогда я добавляю штрихкод номенклатуры 117 | И В текущем окне я нажимаю кнопку командного интерфейса 'Демо штрихкоды номенклатуры' 118 | И я нажимаю на кнопку с именем 'ФормаСоздать' 119 | Тогда открылось окно 'Демо штрихкоды номенклатуры (создание)' 120 | И в поле 'Штрихкод' я ввожу текст '$Штрихкод$' 121 | И я нажимаю на кнопку 'Записать и закрыть' 122 | И я жду закрытия окна 'Демо штрихкоды номенклатуры (создание) *' в течение 2 секунд 123 | Тогда открылось окно 'Тест Товар * (Демо номенклатура)' 124 | 125 | И В текущем окне я нажимаю кнопку командного интерфейса 'Значения показателей объектов' 126 | И Я устанавливаю фильтр на список 127 | | Показатель| Равно| Тест Есть штрихкод | 128 | 129 | И таблица "Список" стала равной: 130 | | 'Объект' | 'Показатель' | 'Значение показателя' | 131 | | $Наименование$ | 'Тест Есть штрихкод' | '$ЕстьШтрихкод$' | 132 | 133 | И Я закрываю окно 'Тест Товар * (Демо номенклатура)' 134 | 135 | И Я удаляю показатель 136 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 137 | И в таблице "Список" я перехожу к строке: 138 | | 'Наименование' | 139 | | 'Тест Есть штрихкод' | 140 | И в таблице "Список" я выбираю текущую строку 141 | Тогда открылось окно 'Тест Есть штрихкод (Показатели объектов)' 142 | И в поле 'Наименование' я ввожу текст 'УдалитьТест Запрос' 143 | И я перехожу к следующему реквизиту 144 | И я нажимаю на кнопку 'Пометить на удаление / Снять пометку' 145 | Тогда открылось окно '1С:Предприятие' 146 | И я нажимаю на кнопку 'Да' 147 | И Я закрываю текущее окно 148 | И Я удаляю показатель с кодом "УдалитьТестЗапрос" 149 | И Я закрываю текущее окно 150 | 151 | И Я удаляю созданную номенклатуру 152 | И для каждого значения "СтрокаТаблицы" из таблицы в памяти "НаборНоменклатуры" 153 | И я удаляю номенклатуру с наименованием "$Наименование$" -------------------------------------------------------------------------------- /src/Catalogs/СвойстваОбъектовМетаданныхПО/СвойстваОбъектовМетаданныхПО.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | СвойстваОбъектовМетаданныхПО 11 | 12 | ru 13 | Свойства объектов метаданных ПО 14 | 15 | Catalog.СвойстваОбъектовМетаданныхПО.StandardAttribute.Description 16 | DontUse 17 | 18 | Use 19 | PredefinedDataName 20 | 21 | Use 22 | 23 | 24 | 25 | 26 | Use 27 | Predefined 28 | 29 | Use 30 | 31 | 32 | 33 | 34 | Use 35 | Ref 36 | 37 | Use 38 | 39 | 40 | 41 | 42 | Use 43 | DeletionMark 44 | 45 | Use 46 | 47 | 48 | 49 | 50 | Use 51 | IsFolder 52 | 53 | Use 54 | 55 | 56 | 57 | 58 | Use 59 | Owner 60 | true 61 | 62 | ShowError 63 | Use 64 | 65 | 66 | 67 | 68 | Use 69 | Parent 70 | true 71 | 72 | Use 73 | 74 | 75 | 76 | 77 | Use 78 | Description 79 | 80 | ru 81 | Имя 82 | 83 | 84 | ShowError 85 | Use 86 | 87 | 88 | 89 | 90 | Use 91 | Code 92 | 93 | Use 94 | 95 | 96 | 97 | Use 98 | Managed 99 | Use 100 | true 101 | true 102 | 2 103 | true 104 | Catalog.ОбъектыМетаданныхПО 105 | 100 106 | String 107 | Variable 108 | AsDescription 109 | InDialog 110 | BothWays 111 | 112 | Синоним 113 | 114 | ru 115 | Синоним 116 | 117 | 118 | String 119 | 120 | 50 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | Use 129 | ForFolderAndItem 130 | Use 131 | 132 | 133 | ПолноеИмя 134 | 135 | ru 136 | Полное имя 137 | 138 | 139 | String 140 | 141 | 255 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | Use 150 | ForFolderAndItem 151 | Use 152 | 153 | 154 | 155 | 156 | 157 | 158 | Типы 159 | 160 | ru 161 | Типы 162 | 163 | 164 | Тип 165 | 166 | ru 167 | Тип 168 | 169 | 170 | CatalogRef.ОбъектыМетаданныхПО 171 | 172 | 173 | 174 | Use 175 | Use 176 | 177 | 178 | 179 | -------------------------------------------------------------------------------- /src/Catalogs/ОбъектыМетаданныхПО/ОбъектыМетаданныхПО.mdo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ОбъектыМетаданныхПО 11 | 12 | ru 13 | Объекты метаданных ПО 14 | 15 | Catalog.ОбъектыМетаданныхПО.StandardAttribute.Description 16 | DontUse 17 | 18 | Use 19 | PredefinedDataName 20 | 21 | Use 22 | 23 | 24 | 25 | 26 | Use 27 | Predefined 28 | 29 | Use 30 | 31 | 32 | 33 | 34 | Use 35 | Ref 36 | 37 | Use 38 | 39 | 40 | 41 | 42 | Use 43 | DeletionMark 44 | 45 | Use 46 | 47 | 48 | 49 | 50 | Use 51 | IsFolder 52 | 53 | Use 54 | 55 | 56 | 57 | 58 | Use 59 | Owner 60 | true 61 | 62 | ShowError 63 | Use 64 | 65 | 66 | 67 | 68 | Use 69 | Parent 70 | true 71 | 72 | Use 73 | 74 | 75 | 76 | 77 | Use 78 | Description 79 | 80 | ru 81 | Представление 82 | 83 | 84 | ShowError 85 | Use 86 | 87 | 88 | 89 | 90 | Use 91 | Code 92 | 93 | Use 94 | 95 | 96 | 97 | Use 98 | Managed 99 | Use 100 | true 101 | true 102 | 2 103 | true 104 | 100 105 | String 106 | Variable 107 | AsDescription 108 | InDialog 109 | BothWays 110 | 111 | Имя 112 | 113 | ru 114 | Имя 115 | 116 | 117 | String 118 | 119 | 255 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | Use 128 | ForFolderAndItem 129 | Use 130 | 131 | 132 | Синоним 133 | 134 | ru 135 | Синоним 136 | 137 | 138 | String 139 | 140 | 255 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | Use 149 | ForFolderAndItem 150 | Use 151 | 152 | 153 | ПолноеИмя 154 | 155 | ru 156 | Полное имя 157 | 158 | 159 | String 160 | 161 | 430 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | Use 170 | ForFolderAndItem 171 | Use 172 | 173 | 174 | МожетИметьПоказатели 175 | 176 | ru 177 | Может иметь показатели 178 | 179 | 180 | Boolean 181 | 182 | 183 | 184 | 185 | Use 186 | Use 187 | 188 | 189 | ЯвляетсяТриггером 190 | 191 | ru 192 | Является триггером 193 | 194 | 195 | Boolean 196 | 197 | 198 | 199 | 200 | Use 201 | Use 202 | 203 | 204 | -------------------------------------------------------------------------------- /src/Roles/ЧтениеПоказателейОбъектов/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Catalog.СвойстваОбъектовМетаданныхПО 8 | 9 | Insert 10 | true 11 | 12 | 13 | Read 14 | true 15 | 16 | 17 | Update 18 | true 19 | 20 | 21 | View 22 | true 23 | 24 | 25 | Edit 26 | true 27 | 28 | 29 | InputByString 30 | true 31 | 32 | 33 | InteractiveInsert 34 | true 35 | 36 | 37 | InteractiveSetDeletionMark 38 | true 39 | 40 | 41 | InteractiveClearDeletionMark 42 | true 43 | 44 | 45 | InteractiveDeleteMarked 46 | true 47 | 48 | 49 | ReadDataHistory 50 | true 51 | 52 | 53 | ViewDataHistory 54 | true 55 | 56 | 57 | ReadDataHistoryOfMissingData 58 | true 59 | 60 | 61 | UpdateDataHistory 62 | true 63 | 64 | 65 | UpdateDataHistoryOfMissingData 66 | true 67 | 68 | 69 | UpdateDataHistorySettings 70 | true 71 | 72 | 73 | UpdateDataHistoryVersionComment 74 | true 75 | 76 | 77 | EditDataHistoryVersionComment 78 | true 79 | 80 | 81 | SwitchToDataHistoryVersion 82 | true 83 | 84 | 85 | 86 | Catalog.ОбъектыМетаданныхПО 87 | 88 | Insert 89 | true 90 | 91 | 92 | Read 93 | true 94 | 95 | 96 | Update 97 | true 98 | 99 | 100 | View 101 | true 102 | 103 | 104 | Edit 105 | true 106 | 107 | 108 | InputByString 109 | true 110 | 111 | 112 | InteractiveInsert 113 | true 114 | 115 | 116 | InteractiveSetDeletionMark 117 | true 118 | 119 | 120 | InteractiveClearDeletionMark 121 | true 122 | 123 | 124 | InteractiveDeleteMarked 125 | true 126 | 127 | 128 | ReadDataHistory 129 | true 130 | 131 | 132 | ViewDataHistory 133 | true 134 | 135 | 136 | ReadDataHistoryOfMissingData 137 | true 138 | 139 | 140 | UpdateDataHistory 141 | true 142 | 143 | 144 | UpdateDataHistoryOfMissingData 145 | true 146 | 147 | 148 | UpdateDataHistorySettings 149 | true 150 | 151 | 152 | UpdateDataHistoryVersionComment 153 | true 154 | 155 | 156 | EditDataHistoryVersionComment 157 | true 158 | 159 | 160 | SwitchToDataHistoryVersion 161 | true 162 | 163 | 164 | 165 | DataProcessor.ПанельАдминистрированияПО 166 | 167 | View 168 | true 169 | 170 | 171 | Use 172 | true 173 | 174 | 175 | 176 | InformationRegister.ОчередьОтложенногоРасчетаПоказателейОбъектов 177 | 178 | Read 179 | true 180 | 181 | 182 | Update 183 | true 184 | 185 | 186 | View 187 | true 188 | 189 | 190 | Edit 191 | true 192 | 193 | 194 | TotalsControl 195 | true 196 | 197 | 198 | ReadDataHistory 199 | true 200 | 201 | 202 | ViewDataHistory 203 | true 204 | 205 | 206 | ReadDataHistoryOfMissingData 207 | true 208 | 209 | 210 | UpdateDataHistory 211 | true 212 | 213 | 214 | UpdateDataHistoryOfMissingData 215 | true 216 | 217 | 218 | UpdateDataHistorySettings 219 | true 220 | 221 | 222 | UpdateDataHistoryVersionComment 223 | true 224 | 225 | 226 | EditDataHistoryVersionComment 227 | true 228 | 229 | 230 | SwitchToDataHistoryVersion 231 | true 232 | 233 | 234 | 235 | InformationRegister.ПорцияОтложенногоРасчетаПоказателейОбъектов 236 | 237 | Read 238 | true 239 | 240 | 241 | Update 242 | true 243 | 244 | 245 | View 246 | true 247 | 248 | 249 | Edit 250 | true 251 | 252 | 253 | TotalsControl 254 | true 255 | 256 | 257 | ReadDataHistory 258 | true 259 | 260 | 261 | ViewDataHistory 262 | true 263 | 264 | 265 | ReadDataHistoryOfMissingData 266 | true 267 | 268 | 269 | UpdateDataHistory 270 | true 271 | 272 | 273 | UpdateDataHistoryOfMissingData 274 | true 275 | 276 | 277 | UpdateDataHistorySettings 278 | true 279 | 280 | 281 | UpdateDataHistoryVersionComment 282 | true 283 | 284 | 285 | EditDataHistoryVersionComment 286 | true 287 | 288 | 289 | SwitchToDataHistoryVersion 290 | true 291 | 292 | 293 | 294 | Subsystem.ПоказателиОбъектов 295 | 296 | View 297 | true 298 | 299 | 300 | 301 | ChartOfCharacteristicTypes.ПоказателиОбъектов 302 | 303 | Read 304 | true 305 | 306 | 307 | View 308 | true 309 | 310 | 311 | InputByString 312 | true 313 | 314 | 315 | 316 | InformationRegister.ЗначенияПериодическихПоказателейОбъектов 317 | 318 | Read 319 | true 320 | 321 | 322 | View 323 | true 324 | 325 | 326 | 327 | InformationRegister.ЗначенияПоказателейОбъектов 328 | 329 | Read 330 | true 331 | 332 | 333 | View 334 | true 335 | 336 | 337 | 338 | -------------------------------------------------------------------------------- /features/ПоказательЕстьОстатки.feature: -------------------------------------------------------------------------------- 1 | #language: ru 2 | 3 | @tree 4 | 5 | Функциональность: Показатель "Есть остатки" 6 | 7 | Я хочу создать показатель, который указывал бы на наличие остаков по номенклатуре (РН ДемоОстаткиТоваров) 8 | 9 | Контекст: 10 | Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий 11 | И я задаю таблицу строк "ИсходныеДанные" 12 | | 'Товар' | 'Приход' | 'Расход' | 'Остаток' | 'ЕстьОстаток' | 13 | | 'Тест Товар 01' | 10 | 20 | -10 | 'Нет' | 14 | | 'Тест Товар 02' | 100 | 100 | 0 | 'Нет' | 15 | | 'Тест Товар 03' | 10 | 4 | 6 | 'Да' | 16 | | 'Тест Товар 04' | 20 | 0 | 20 | 'Да' | 17 | | 'Тест Товар 05' | 0 | 0 | 0 | 'Нет' | 18 | | 'Тест Товар 06' | 0 | 20 | -20 | 'Нет' | 19 | | 'Тест Товар 07' | 10 | 0 | 10 | 'Да' | 20 | | 'Тест Товар 08' | 10 | 0 | 10 | 'Да' | 21 | | 'Тест Товар 09' | 10 | 0 | 10 | 'Да' | 22 | | 'Тест Товар 10' | 10 | 0 | 10 | 'Да' | 23 | 24 | Сценарий: Тестирование показателя "Тест Есть остатки" 25 | Дано Я создаю показатель "Тест Есть остатки" 26 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 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 | |' ОстаткиТоваровОстатки.КоличествоОстаток > 0 '| 57 | |'; '| 58 | |' '| 59 | |'//////////////////////////////////////////////////////// '| 60 | |'ВЫБРАТЬ '| 61 | |' ВТ_Объекты.Объект КАК Объект, '| 62 | |' НЕ ВТ_Остатки.Товар ЕСТЬ NULL КАК ЗначениеПоказателя '| 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 | И я жду закрытия окна 'Показатели объектов (создание) *' в течение 2 секунд 94 | 95 | И я создаю коллекцию номенклатуры 96 | И для каждого значения "СтрокаТаблицы" из таблицы в памяти "ИсходныеДанные" 97 | И Я создаю позицию номенклатуры 98 | Когда я открываю основную форму справочника "ДемоНоменклатура" 99 | Тогда Открылось окно "Демо номенклатура (Создание)" 100 | И в поле "Наименование" я ввожу текст "$Товар$" 101 | И я нажимаю на кнопку "Записать и закрыть" 102 | И я жду закрытия окна "Демо номенклатура (Создание)" в течение 2 секунд 103 | И я закрываю текущее окно 104 | 105 | И я создаю приходную накладную 106 | Когда я открываю основную форму документа "ДемоПриходнаяНакладная" 107 | Тогда Открылось окно "Демо приходная накладная (Создание)" 108 | И в поле "Комментарий" я ввожу текст "Автотест" 109 | И для каждого значения "СтрокаТаблицы" из таблицы в памяти "ИсходныеДанные" 110 | И в таблице "Товары" я нажимаю на кнопку "Добавить" 111 | И в таблице "Товары" я нажимаю кнопку выбора у реквизита "Товар" 112 | Тогда открылось окно "Демо номенклатура" 113 | И в таблице "Список" я перехожу к строке 114 | | 'Наименование' | 115 | | '$Товар$' | 116 | И я нажимаю на кнопку "Выбрать" 117 | И я жду закрытия окна "Демо номенклатура" в течение 1 секунд 118 | Тогда Открылось окно "Демо приходная накладная (Создание)*" 119 | И в таблице "Товары" в поле "Количество" я ввожу текст "$Приход$" 120 | И я нажимаю на кнопку "Провести и закрыть" 121 | И я жду закрытия окна "Демо приходная накладная (Создание)*" в течение 2 секунд 122 | 123 | И я создаю расходную накладную 124 | Когда я открываю основную форму документа "ДемоРасходнаяНакладная" 125 | Тогда Открылось окно "Демо расходная накладная (Создание)" 126 | И в поле "Комментарий" я ввожу текст "Автотест" 127 | И для каждого значения "СтрокаТаблицы" из таблицы в памяти "ИсходныеДанные" 128 | И в таблице "Товары" я нажимаю на кнопку "Добавить" 129 | И в таблице "Товары" я нажимаю кнопку выбора у реквизита "Товар" 130 | Тогда открылось окно "Демо номенклатура" 131 | И в таблице "Список" я перехожу к строке 132 | | 'Наименование' | 133 | | '$Товар$' | 134 | И я нажимаю на кнопку "Выбрать" 135 | И я жду закрытия окна "Демо номенклатура" в течение 1 секунд 136 | Тогда Открылось окно "Демо расходная накладная (Создание)*" 137 | И в таблице "Товары" в поле "Количество" я ввожу текст "$Расход$" 138 | И я нажимаю на кнопку "Провести и закрыть" 139 | И я жду закрытия окна "Демо расходная накладная (Создание)*" в течение 2 секунд 140 | 141 | И я проверяю значения показателя для коллекции номенклатуры 142 | И я открываю основную форму списка справочника "ДемоНоменклатура" 143 | И для каждого значения "СтрокаТаблицы" из таблицы в памяти "ИсходныеДанные" 144 | Тогда открылось окно "Демо номенклатура" 145 | И в таблице "Список" я перехожу к строке 146 | |'Наименование'| 147 | |'$Товар$'| 148 | И в таблице "Список" я выбираю текущую строку 149 | И в текущем окне я нажимаю кнопку командного интерфейса 'Значения показателей объектов' 150 | И Я устанавливаю фильтр на список 151 | | Показатель | Равно | Тест Есть остатки | 152 | 153 | И таблица "Список" стала равной: 154 | | 'Объект' | 'Показатель' | 'Значение показателя' | 155 | | $Товар$ | 'Тест Есть остатки' | '$ЕстьОстаток$' | 156 | И я закрываю текущее окно 157 | И я закрываю текущее окно 158 | 159 | И Я удаляю показатель 160 | И Я открываю навигационную ссылку "e1cib/list/ПланВидовХарактеристик.ПоказателиОбъектов" 161 | И в таблице "Список" я перехожу к строке: 162 | | 'Наименование' | 163 | | 'Тест Есть остатки' | 164 | И в таблице "Список" я выбираю текущую строку 165 | Тогда открылось окно 'Тест Есть остатки (Показатели объектов)' 166 | И в поле 'Наименование' я ввожу текст 'Удалить Тест Есть остатки' 167 | И я перехожу к следующему реквизиту 168 | И я нажимаю на кнопку 'Пометить на удаление / Снять пометку' 169 | Тогда открылось окно '1С:Предприятие' 170 | И я нажимаю на кнопку 'Да' 171 | И Я закрываю текущее окно 172 | И Я удаляю показатель с кодом "УдалитьТестЕстьОстатки" 173 | И Я закрываю текущее окно 174 | 175 | И я удаляю документы 176 | И я удаляю расходные накладные 177 | Когда я открываю основную форму списка документа "ДемоРасходнаяНакладная" 178 | Тогда открылось окно "Демо расходная накладная" 179 | И в таблице "Список" я активизирую поле "Дата" 180 | И я нажимаю на кнопку с именем 'ФормаУстановитьИнтервал' 181 | Тогда открылось окно 'Выберите период' 182 | И я нажимаю на гиперссылку "SwitchText" 183 | И я перехожу к закладке "Group standard period" 184 | И я нажимаю на кнопку 'День' 185 | И в таблице "PeriodVariantTable" я перехожу к строке: 186 | | 'Значение' | 187 | | 'Сегодня' | 188 | И я нажимаю на кнопку 'Выбрать' 189 | Тогда открылось окно "Демо расходная накладная" 190 | И для каждой строки таблицы "Список" я выполняю в обратном порядке 191 | Если в таблице "Список" поле "Комментарий" имеет значение "Автотест" тогда 192 | Тогда я удаляю текущую расходную накладную 193 | И я закрываю текущее окно 194 | 195 | И я удаляю приходные накладные 196 | Когда я открываю основную форму списка документа "ДемоПриходнаяНакладная" 197 | Тогда открылось окно "Демо приходная накладная" 198 | И в таблице "Список" я активизирую поле "Дата" 199 | И я нажимаю на кнопку с именем 'ФормаУстановитьИнтервал' 200 | Тогда открылось окно 'Выберите период' 201 | И я нажимаю на гиперссылку "SwitchText" 202 | И я перехожу к закладке "Group standard period" 203 | И я нажимаю на кнопку 'День' 204 | И в таблице "PeriodVariantTable" я перехожу к строке: 205 | | 'Значение' | 206 | | 'Сегодня' | 207 | И я нажимаю на кнопку 'Выбрать' 208 | Тогда открылось окно "Демо приходная накладная" 209 | И для каждой строки таблицы "Список" я выполняю в обратном порядке 210 | Если в таблице "Список" поле "Комментарий" имеет значение "Автотест" тогда 211 | Тогда я удаляю текущую приходную накладную 212 | И я закрываю текущее окно 213 | 214 | И я удаляю коллекцию номенклатуры 215 | И для каждого значения "СтрокаТаблицы" из таблицы в памяти "ИсходныеДанные" 216 | И я удаляю номенклатуру с наименованием "$Товар$" -------------------------------------------------------------------------------- /src/ChartsOfCharacteristicTypes/ПоказателиОбъектов/Forms/ФормаЭлемента/Module.bsl: -------------------------------------------------------------------------------- 1 | #Область ОбработчикиСобытийФормы 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 | ПодключитьОбработчикОжидания("ТекстЗапросаПриИзменении_Продолжение", 0.1, Истина); 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 | ВызватьИсключение НСтр("ru = 'Неожиданный способ расчета.'"); 230 | 231 | КонецЕсли; 232 | 233 | // СтраницаЗапускРасчета 234 | Элементы.Триггеры.Видимость = Объект.ЗапускатьРасчетПоТриггерам; 235 | 236 | КонецПроцедуры 237 | 238 | &НаСервере 239 | Процедура ПрочитатьВладельца() 240 | 241 | ИспользоватьНесколькоВладельцев = Объект.Владельцы.Количество() > 1; 242 | 243 | Если Объект.Владельцы.Количество() = 1 Тогда 244 | Владелец = Объект.Владельцы[0].Владелец; 245 | КонецЕсли; 246 | 247 | КонецПроцедуры 248 | 249 | &НаКлиентеНаСервереБезКонтекста 250 | Функция СформироватьИдентификатор(Наименование) 251 | 252 | Слова = СтрРазделить(Наименование, " ", Ложь); 253 | ПодготовленныеСлова = Новый Массив; 254 | 255 | Для Каждого Слово Из Слова Цикл 256 | ПодготовленныеСлова.Добавить(ВРег(Лев(Слово, 1)) + Сред(Слово, 2)); 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 | Если (Объект.Параметры.НайтиСтроки(ОтборСтрок).Количество() = 0) Тогда 282 | 283 | НоваяСтрока = Объект.Параметры.Добавить(); 284 | НоваяСтрока.ИмяПараметра = ИмяПараметра; 285 | 286 | КонецЕсли; 287 | 288 | КонецЦикла; 289 | 290 | // Удаляем неиспользуемые параметры 291 | Индекс = Объект.Параметры.Количество() - 1; 292 | Пока Индекс >= 0 Цикл 293 | 294 | СтрокаТЧ = Объект.Параметры[Индекс]; 295 | Если (Не ЗначениеЗаполнено(СтрокаТЧ.ЗначениеПараметра)) 296 | И (Не ПараметрыЗапроса.Свойство(СтрокаТЧ.ИмяПараметра)) Тогда 297 | 298 | Объект.Параметры.Удалить(Индекс); 299 | 300 | КонецЕсли; 301 | 302 | Индекс = Индекс - 1; 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 | Объект.Владельцы.Очистить(); 372 | 373 | НоваяСтрока = Объект.Владельцы.Добавить(); 374 | НоваяСтрока.Владелец = Владелец; 375 | 376 | КонецПроцедуры 377 | 378 | &НаКлиентеНаСервереБезКонтекста 379 | Функция СпособРасчетаВыполнитьКод() 380 | Возврат ПредопределенноеЗначение("Перечисление.СпособыРасчетаПоказателейОбъектов.ВыполнитьКод"); 381 | КонецФункции 382 | 383 | &НаКлиентеНаСервереБезКонтекста 384 | Функция СпособРасчетаЗапрос() 385 | Возврат ПредопределенноеЗначение("Перечисление.СпособыРасчетаПоказателейОбъектов.Запрос"); 386 | КонецФункции 387 | 388 | #КонецОбласти -------------------------------------------------------------------------------- /src/Roles/ДемоДобавлениеИзменениеСправочниковДокументов/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Catalog.ДемоНоменклатура 8 | 9 | Insert 10 | true 11 | 12 | 13 | Read 14 | true 15 | 16 | 17 | Update 18 | true 19 | 20 | 21 | View 22 | true 23 | 24 | 25 | Edit 26 | true 27 | 28 | 29 | InputByString 30 | true 31 | 32 | 33 | InteractiveInsert 34 | true 35 | 36 | 37 | InteractiveSetDeletionMark 38 | true 39 | 40 | 41 | InteractiveClearDeletionMark 42 | true 43 | 44 | 45 | InteractiveDeleteMarked 46 | true 47 | 48 | 49 | ReadDataHistory 50 | true 51 | 52 | 53 | ViewDataHistory 54 | true 55 | 56 | 57 | ReadDataHistoryOfMissingData 58 | true 59 | 60 | 61 | UpdateDataHistory 62 | true 63 | 64 | 65 | UpdateDataHistoryOfMissingData 66 | true 67 | 68 | 69 | UpdateDataHistorySettings 70 | true 71 | 72 | 73 | UpdateDataHistoryVersionComment 74 | true 75 | 76 | 77 | EditDataHistoryVersionComment 78 | true 79 | 80 | 81 | SwitchToDataHistoryVersion 82 | true 83 | 84 | 85 | 86 | Document.ДемоПриходнаяНакладная 87 | 88 | Insert 89 | true 90 | 91 | 92 | Read 93 | true 94 | 95 | 96 | Update 97 | true 98 | 99 | 100 | View 101 | true 102 | 103 | 104 | Edit 105 | true 106 | 107 | 108 | InputByString 109 | true 110 | 111 | 112 | Posting 113 | true 114 | 115 | 116 | UndoPosting 117 | true 118 | 119 | 120 | InteractiveSetDeletionMark 121 | true 122 | 123 | 124 | InteractiveClearDeletionMark 125 | true 126 | 127 | 128 | InteractiveDeleteMarked 129 | true 130 | 131 | 132 | InteractivePosting 133 | true 134 | 135 | 136 | InteractivePostingRegular 137 | true 138 | 139 | 140 | InteractiveUndoPosting 141 | true 142 | 143 | 144 | InteractiveChangeOfPosted 145 | true 146 | 147 | 148 | ReadDataHistory 149 | true 150 | 151 | 152 | ViewDataHistory 153 | true 154 | 155 | 156 | ReadDataHistoryOfMissingData 157 | true 158 | 159 | 160 | UpdateDataHistory 161 | true 162 | 163 | 164 | UpdateDataHistoryOfMissingData 165 | true 166 | 167 | 168 | UpdateDataHistorySettings 169 | true 170 | 171 | 172 | UpdateDataHistoryVersionComment 173 | true 174 | 175 | 176 | EditDataHistoryVersionComment 177 | true 178 | 179 | 180 | SwitchToDataHistoryVersion 181 | true 182 | 183 | 184 | InteractiveInsert 185 | true 186 | 187 | 188 | 189 | Catalog.ДемоПоставщики 190 | 191 | Insert 192 | true 193 | 194 | 195 | Read 196 | true 197 | 198 | 199 | Update 200 | true 201 | 202 | 203 | View 204 | true 205 | 206 | 207 | Edit 208 | true 209 | 210 | 211 | InputByString 212 | true 213 | 214 | 215 | InteractiveInsert 216 | true 217 | 218 | 219 | InteractiveSetDeletionMark 220 | true 221 | 222 | 223 | InteractiveClearDeletionMark 224 | true 225 | 226 | 227 | InteractiveDeleteMarked 228 | true 229 | 230 | 231 | ReadDataHistory 232 | true 233 | 234 | 235 | ViewDataHistory 236 | true 237 | 238 | 239 | ReadDataHistoryOfMissingData 240 | true 241 | 242 | 243 | UpdateDataHistory 244 | true 245 | 246 | 247 | UpdateDataHistoryOfMissingData 248 | true 249 | 250 | 251 | UpdateDataHistorySettings 252 | true 253 | 254 | 255 | UpdateDataHistoryVersionComment 256 | true 257 | 258 | 259 | EditDataHistoryVersionComment 260 | true 261 | 262 | 263 | SwitchToDataHistoryVersion 264 | true 265 | 266 | 267 | 268 | Document.ДемоРасходнаяНакладная 269 | 270 | Insert 271 | true 272 | 273 | 274 | Read 275 | true 276 | 277 | 278 | Update 279 | true 280 | 281 | 282 | View 283 | true 284 | 285 | 286 | Edit 287 | true 288 | 289 | 290 | InputByString 291 | true 292 | 293 | 294 | Posting 295 | true 296 | 297 | 298 | UndoPosting 299 | true 300 | 301 | 302 | InteractiveInsert 303 | true 304 | 305 | 306 | InteractiveSetDeletionMark 307 | true 308 | 309 | 310 | InteractiveClearDeletionMark 311 | true 312 | 313 | 314 | InteractiveDeleteMarked 315 | true 316 | 317 | 318 | InteractivePosting 319 | true 320 | 321 | 322 | InteractivePostingRegular 323 | true 324 | 325 | 326 | InteractiveUndoPosting 327 | true 328 | 329 | 330 | InteractiveChangeOfPosted 331 | true 332 | 333 | 334 | ReadDataHistory 335 | true 336 | 337 | 338 | ViewDataHistory 339 | true 340 | 341 | 342 | ReadDataHistoryOfMissingData 343 | true 344 | 345 | 346 | UpdateDataHistory 347 | true 348 | 349 | 350 | UpdateDataHistoryOfMissingData 351 | true 352 | 353 | 354 | UpdateDataHistorySettings 355 | true 356 | 357 | 358 | UpdateDataHistoryVersionComment 359 | true 360 | 361 | 362 | EditDataHistoryVersionComment 363 | true 364 | 365 | 366 | SwitchToDataHistoryVersion 367 | true 368 | 369 | 370 | 371 | InformationRegister.ДемоШтрихкодыНоменклатуры 372 | 373 | Read 374 | true 375 | 376 | 377 | Update 378 | true 379 | 380 | 381 | View 382 | true 383 | 384 | 385 | Edit 386 | true 387 | 388 | 389 | TotalsControl 390 | true 391 | 392 | 393 | ReadDataHistory 394 | true 395 | 396 | 397 | ViewDataHistory 398 | true 399 | 400 | 401 | ReadDataHistoryOfMissingData 402 | true 403 | 404 | 405 | UpdateDataHistory 406 | true 407 | 408 | 409 | UpdateDataHistoryOfMissingData 410 | true 411 | 412 | 413 | UpdateDataHistorySettings 414 | true 415 | 416 | 417 | UpdateDataHistoryVersionComment 418 | true 419 | 420 | 421 | EditDataHistoryVersionComment 422 | true 423 | 424 | 425 | SwitchToDataHistoryVersion 426 | true 427 | 428 | 429 | 430 | AccumulationRegister.ДемоОстаткиТоваров 431 | 432 | Read 433 | true 434 | 435 | 436 | Update 437 | true 438 | 439 | 440 | View 441 | true 442 | 443 | 444 | Edit 445 | true 446 | 447 | 448 | TotalsControl 449 | true 450 | 451 | 452 | 453 | Subsystem.Демо 454 | 455 | View 456 | true 457 | 458 | 459 | 460 | -------------------------------------------------------------------------------- /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 [yyyy] [name of copyright owner] 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/Roles/ДобавлениеИзменениеПоказателейОбъектов/Rights.rights: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | true 5 | false 6 | 7 | Subsystem.ПоказателиОбъектов 8 | 9 | View 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 | Edit 29 | true 30 | 31 | 32 | TotalsControl 33 | true 34 | 35 | 36 | ReadDataHistory 37 | true 38 | 39 | 40 | ViewDataHistory 41 | true 42 | 43 | 44 | ReadDataHistoryOfMissingData 45 | true 46 | 47 | 48 | UpdateDataHistory 49 | true 50 | 51 | 52 | UpdateDataHistoryOfMissingData 53 | true 54 | 55 | 56 | UpdateDataHistorySettings 57 | true 58 | 59 | 60 | UpdateDataHistoryVersionComment 61 | true 62 | 63 | 64 | EditDataHistoryVersionComment 65 | true 66 | 67 | 68 | SwitchToDataHistoryVersion 69 | true 70 | 71 | 72 | 73 | InformationRegister.ЗначенияПериодическихПоказателейОбъектов 74 | 75 | Read 76 | true 77 | 78 | 79 | Update 80 | true 81 | 82 | 83 | View 84 | true 85 | 86 | 87 | Edit 88 | true 89 | 90 | 91 | TotalsControl 92 | true 93 | 94 | 95 | ReadDataHistory 96 | true 97 | 98 | 99 | ViewDataHistory 100 | true 101 | 102 | 103 | ReadDataHistoryOfMissingData 104 | true 105 | 106 | 107 | UpdateDataHistory 108 | true 109 | 110 | 111 | UpdateDataHistoryOfMissingData 112 | true 113 | 114 | 115 | UpdateDataHistorySettings 116 | true 117 | 118 | 119 | UpdateDataHistoryVersionComment 120 | true 121 | 122 | 123 | EditDataHistoryVersionComment 124 | true 125 | 126 | 127 | SwitchToDataHistoryVersion 128 | true 129 | 130 | 131 | 132 | Catalog.СвойстваОбъектовМетаданныхПО 133 | 134 | Insert 135 | true 136 | 137 | 138 | Read 139 | true 140 | 141 | 142 | Update 143 | true 144 | 145 | 146 | View 147 | true 148 | 149 | 150 | Edit 151 | true 152 | 153 | 154 | InputByString 155 | true 156 | 157 | 158 | InteractiveInsert 159 | true 160 | 161 | 162 | InteractiveSetDeletionMark 163 | true 164 | 165 | 166 | InteractiveClearDeletionMark 167 | true 168 | 169 | 170 | InteractiveDeleteMarked 171 | true 172 | 173 | 174 | ReadDataHistory 175 | true 176 | 177 | 178 | ViewDataHistory 179 | true 180 | 181 | 182 | ReadDataHistoryOfMissingData 183 | true 184 | 185 | 186 | UpdateDataHistory 187 | true 188 | 189 | 190 | UpdateDataHistoryOfMissingData 191 | true 192 | 193 | 194 | UpdateDataHistorySettings 195 | true 196 | 197 | 198 | UpdateDataHistoryVersionComment 199 | true 200 | 201 | 202 | EditDataHistoryVersionComment 203 | true 204 | 205 | 206 | SwitchToDataHistoryVersion 207 | true 208 | 209 | 210 | 211 | Catalog.ОбъектыМетаданныхПО 212 | 213 | Insert 214 | true 215 | 216 | 217 | Read 218 | true 219 | 220 | 221 | Update 222 | true 223 | 224 | 225 | View 226 | true 227 | 228 | 229 | Edit 230 | true 231 | 232 | 233 | InputByString 234 | true 235 | 236 | 237 | InteractiveInsert 238 | true 239 | 240 | 241 | InteractiveSetDeletionMark 242 | true 243 | 244 | 245 | InteractiveClearDeletionMark 246 | true 247 | 248 | 249 | InteractiveDeleteMarked 250 | true 251 | 252 | 253 | ReadDataHistory 254 | true 255 | 256 | 257 | ViewDataHistory 258 | true 259 | 260 | 261 | ReadDataHistoryOfMissingData 262 | true 263 | 264 | 265 | UpdateDataHistory 266 | true 267 | 268 | 269 | UpdateDataHistoryOfMissingData 270 | true 271 | 272 | 273 | UpdateDataHistorySettings 274 | true 275 | 276 | 277 | UpdateDataHistoryVersionComment 278 | true 279 | 280 | 281 | EditDataHistoryVersionComment 282 | true 283 | 284 | 285 | SwitchToDataHistoryVersion 286 | true 287 | 288 | 289 | 290 | DataProcessor.ПанельАдминистрированияПО 291 | 292 | View 293 | true 294 | 295 | 296 | Use 297 | true 298 | 299 | 300 | 301 | InformationRegister.ОчередьОтложенногоРасчетаПоказателейОбъектов 302 | 303 | Read 304 | true 305 | 306 | 307 | Update 308 | true 309 | 310 | 311 | View 312 | true 313 | 314 | 315 | Edit 316 | true 317 | 318 | 319 | TotalsControl 320 | true 321 | 322 | 323 | ReadDataHistory 324 | true 325 | 326 | 327 | ViewDataHistory 328 | true 329 | 330 | 331 | ReadDataHistoryOfMissingData 332 | true 333 | 334 | 335 | UpdateDataHistory 336 | true 337 | 338 | 339 | UpdateDataHistoryOfMissingData 340 | true 341 | 342 | 343 | UpdateDataHistorySettings 344 | true 345 | 346 | 347 | UpdateDataHistoryVersionComment 348 | true 349 | 350 | 351 | EditDataHistoryVersionComment 352 | true 353 | 354 | 355 | SwitchToDataHistoryVersion 356 | true 357 | 358 | 359 | 360 | ChartOfCharacteristicTypes.ПоказателиОбъектов 361 | 362 | Insert 363 | true 364 | 365 | 366 | Read 367 | true 368 | 369 | 370 | Update 371 | true 372 | 373 | 374 | View 375 | true 376 | 377 | 378 | Edit 379 | true 380 | 381 | 382 | InputByString 383 | true 384 | 385 | 386 | InteractiveInsert 387 | true 388 | 389 | 390 | InteractiveSetDeletionMark 391 | true 392 | 393 | 394 | InteractiveClearDeletionMark 395 | true 396 | 397 | 398 | InteractiveDeleteMarked 399 | true 400 | 401 | 402 | ReadDataHistory 403 | true 404 | 405 | 406 | ViewDataHistory 407 | true 408 | 409 | 410 | ReadDataHistoryOfMissingData 411 | true 412 | 413 | 414 | UpdateDataHistory 415 | true 416 | 417 | 418 | UpdateDataHistoryOfMissingData 419 | true 420 | 421 | 422 | UpdateDataHistorySettings 423 | true 424 | 425 | 426 | UpdateDataHistoryVersionComment 427 | true 428 | 429 | 430 | EditDataHistoryVersionComment 431 | true 432 | 433 | 434 | SwitchToDataHistoryVersion 435 | true 436 | 437 | 438 | 439 | InformationRegister.ПорцияОтложенногоРасчетаПоказателейОбъектов 440 | 441 | Read 442 | true 443 | 444 | 445 | Update 446 | true 447 | 448 | 449 | View 450 | true 451 | 452 | 453 | Edit 454 | true 455 | 456 | 457 | TotalsControl 458 | true 459 | 460 | 461 | ReadDataHistory 462 | true 463 | 464 | 465 | ViewDataHistory 466 | true 467 | 468 | 469 | ReadDataHistoryOfMissingData 470 | true 471 | 472 | 473 | UpdateDataHistory 474 | true 475 | 476 | 477 | UpdateDataHistoryOfMissingData 478 | true 479 | 480 | 481 | UpdateDataHistorySettings 482 | true 483 | 484 | 485 | UpdateDataHistoryVersionComment 486 | true 487 | 488 | 489 | EditDataHistoryVersionComment 490 | true 491 | 492 | 493 | SwitchToDataHistoryVersion 494 | true 495 | 496 | 497 | 498 | -------------------------------------------------------------------------------- /src/Catalogs/ОбъектыМетаданныхПО/ManagerModule.bsl: -------------------------------------------------------------------------------- 1 | #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда 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 | ОписаниеТиповСтрока_150 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)); 30 | ОписаниеТиповСтрока_255 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(255)); 31 | ОписаниеТиповСтрока_430 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(430)); 32 | ОписаниеТиповБулево = Новый ОписаниеТипов("Булево"); 33 | 34 | КоллекцияМетаданных = Новый ТаблицаЗначений; 35 | 36 | КоллекцияМетаданных.Колонки.Добавить("УникальныйИдентификатор", ОписаниеТиповУникальныйИдентификатор); 37 | КоллекцияМетаданных.Колонки.Добавить("Имя", ОписаниеТиповСтрока_255); 38 | КоллекцияМетаданных.Колонки.Добавить("Синоним", ОписаниеТиповСтрока_255); 39 | КоллекцияМетаданных.Колонки.Добавить("ПолноеИмя", ОписаниеТиповСтрока_430); 40 | КоллекцияМетаданных.Колонки.Добавить("Представление", ОписаниеТиповСтрока_150); 41 | КоллекцияМетаданных.Колонки.Добавить("Родитель", ОписаниеТиповУникальныйИдентификатор); 42 | КоллекцияМетаданных.Колонки.Добавить("ЭтоГруппа", ОписаниеТиповБулево); 43 | КоллекцияМетаданных.Колонки.Добавить("МожетИметьПоказатели", ОписаниеТиповБулево); 44 | КоллекцияМетаданных.Колонки.Добавить("ЯвляетсяТриггером", ОписаниеТиповБулево); 45 | 46 | Возврат КоллекцияМетаданных; 47 | 48 | КонецФункции 49 | 50 | Процедура ЗаполнитьПредопределенныеОбъектыМетаданных(КоллекцияМетаданных) 51 | 52 | // Добавляем типы метаданных 53 | 54 | // Справочники 55 | НоваяСтрока = КоллекцияМетаданных.Добавить(); 56 | НоваяСтрока.УникальныйИдентификатор = Новый УникальныйИдентификатор("3b3d562b-2c5b-4ebe-9687-6c91118eba0b"); 57 | НоваяСтрока.Имя = "Справочники"; 58 | НоваяСтрока.ПолноеИмя = "Справочник"; 59 | НоваяСтрока.Синоним = "Справочники"; 60 | НоваяСтрока.Представление = "Справочники"; 61 | НоваяСтрока.ЭтоГруппа = Истина; 62 | 63 | // Документы 64 | НоваяСтрока = КоллекцияМетаданных.Добавить(); 65 | НоваяСтрока.УникальныйИдентификатор = Новый УникальныйИдентификатор("57ca0fd8-4e12-4477-b8d8-d1105522c3bd"); 66 | НоваяСтрока.Имя = "Документы"; 67 | НоваяСтрока.ПолноеИмя = "Документ"; 68 | НоваяСтрока.Синоним = "Документы"; 69 | НоваяСтрока.Представление = "Документы"; 70 | НоваяСтрока.ЭтоГруппа = Истина; 71 | 72 | // Регистры сведений 73 | НоваяСтрока = КоллекцияМетаданных.Добавить(); 74 | НоваяСтрока.УникальныйИдентификатор = Новый УникальныйИдентификатор("18dccdb0-8b40-420d-8b3b-d28cd659f168"); 75 | НоваяСтрока.Имя = "РегистрыСведений"; 76 | НоваяСтрока.ПолноеИмя = "РегистрСведений"; 77 | НоваяСтрока.Синоним = "Регистры сведений"; 78 | НоваяСтрока.Представление = "Регистры сведений"; 79 | НоваяСтрока.ЭтоГруппа = Истина; 80 | 81 | // Регистры накопления 82 | НоваяСтрока = КоллекцияМетаданных.Добавить(); 83 | НоваяСтрока.УникальныйИдентификатор = Новый УникальныйИдентификатор("a0ee5599-2ca0-489e-a0ef-a51a2b2d37dc"); 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 | ТипМетаданных = Слова[0]; 119 | 120 | Если ТипМетаданных = "РегистрСведений" Тогда 121 | ТипМетаданныхПредставление = "Регистр сведений"; 122 | ИначеЕсли ТипМетаданных = "РегистрНакопления" Тогда 123 | ТипМетаданныхПредставление = "Регистр накопления"; 124 | ИначеЕсли ТипМетаданных = "РегистрБухгалтерии" Тогда 125 | ТипМетаданныхПредставление = "Регистр бухгалтерии"; 126 | ИначеЕсли ТипМетаданных = "РегистрРасчета" Тогда 127 | ТипМетаданныхПредставление = "Регистр расчета"; 128 | ИначеЕсли ТипМетаданных = "ПланВидовХарактеристик" Тогда 129 | ТипМетаданныхПредставление = "План видов характеристик"; 130 | Иначе 131 | ТипМетаданныхПредставление = ТипМетаданных; 132 | КонецЕсли; 133 | 134 | ПоискСтрок = КоллекцияМетаданных.НайтиСтроки(Новый Структура("ПолноеИмя", ПолноеИмя)); 135 | 136 | Если (ПоискСтрок.Количество() = 0) Тогда 137 | 138 | СтрокаКоллекции = КоллекцияМетаданных.Добавить(); 139 | СтрокаКоллекции.Имя = ОбъектМетаданных.Имя; 140 | СтрокаКоллекции.ПолноеИмя = ПолноеИмя; 141 | СтрокаКоллекции.Синоним = ОбъектМетаданных.Синоним; 142 | СтрокаКоллекции.Представление = СтрШаблон("%1 (%2)", ОбъектМетаданных.Синоним, ТипМетаданныхПредставление); 143 | 144 | ПоискРодителя = КоллекцияМетаданных.НайтиСтроки(Новый Структура("ПолноеИмя", ТипМетаданных)); 145 | Если ПоискРодителя.Количество() > 0 Тогда 146 | СтрокаКоллекции.Родитель = ПоискРодителя[0].УникальныйИдентификатор; 147 | КонецЕсли; 148 | 149 | Иначе 150 | 151 | СтрокаКоллекции = ПоискСтрок[0]; 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 | | ОбъектыМетаданныхПО.Ссылка ЕСТЬ NULL 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 | | КоллекцияМетаданных.Ссылка ЕСТЬ NULL 277 | | И 278 | | НЕ ОбъектыМетаданныхПО.ПометкаУдаления"; 279 | 280 | РезультатыЗапроса = Запрос.ВыполнитьПакет(); 281 | 282 | ВыборкаСоздать = РезультатыЗапроса[1].Выбрать(); 283 | ВыборкаОбновить = РезультатыЗапроса[2].Выбрать(); 284 | ВыборкаПометитьНаУдаление = РезультатыЗапроса[3].Выбрать(); 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 | 333 | КонецЦикла; 334 | 335 | ЗафиксироватьТранзакцию(); 336 | 337 | КонецПроцедуры 338 | 339 | #КонецОбласти 340 | 341 | #КонецЕсли --------------------------------------------------------------------------------