mirror of
https://github.com/firstBitSportivnaya/PSSL.git
synced 2024-11-21 17:56:47 +02:00
Feature/predefined id unique check 92 (#118)
* Рефакторинг и доработка подсистемы предопределенных значений
This commit is contained in:
parent
28793f1281
commit
a3223f600f
@ -3,7 +3,21 @@
|
||||
## Описание подсистемы
|
||||
|
||||
По стандартам разработки поиск ссылочных объектов в программном коде по наименованию, коду, гуиду и т.д. не рекомендуется. Для возможности получения ссылок из программного кода предлагается использовать элементы плана видов характеристик. Чтобы избежать необходимости реструктуризации при добавлении новых элементов в ПВХ, формирование иерархии и элементов делается программно и обновляется в пользовательском режиме. Получение элементов стандартизируется через общий модуль с возможностью кэширования.
|
||||
При коментировании или удалении из кода предопределенных элементов и последующем перезаполнении, элемент будет помечен на удаление, включая все его подчиненные элементы.
|
||||
При коментировании или удалении из кода предопределенных элементов и последующем перезаполнении, элемент будет помечен на удаление, включая все его подчиненные элементы.
|
||||
|
||||
## Первоначальное заполнение
|
||||
|
||||
Для того чтобы автоматизировать процесс первоначального заполнения предопределенных элементов, необходимо модифицировать/добавить в расширение общий модуль **ПодсистемыКонфигурацииПереопределяемый**.
|
||||
В процедуре ``ПриДобавленииПодсистем`` прописать вызов процедуры библиотеки ``пбп_ОбновлениеИнформационнойБазыПБП.ПриДобавленииПодсистем``. Затем выполнить первый запуск - будет выполнен обработчик первоначального заполнения предопределенных элементов.
|
||||
|
||||
```BSL
|
||||
&После("ПриДобавленииПодсистем")
|
||||
Процедура пбп_ПриДобавленииПодсистем(МодулиПодсистем)
|
||||
|
||||
пбп_ОбновлениеИнформационнойБазыПБП.ПриДобавленииПодсистем(МодулиПодсистем);
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
## Добавление новых элементов
|
||||
|
||||
@ -14,7 +28,7 @@
|
||||
|
||||
Пример добавления нового элемента в модуле пбп_ПредопределенныеЗначенияПереопределяемый:
|
||||
|
||||
```1C (BSL)
|
||||
```BSL
|
||||
Функция ПредопределенныеЗначения() Экспорт
|
||||
|
||||
Результат = ТаблицаПредопределенных();
|
||||
@ -36,7 +50,7 @@
|
||||
|
||||
Пример добавления новой группы в модуле пбп_ПредопределенныеЗначенияПереопределяемый:
|
||||
|
||||
```1C (BSL)
|
||||
```BSL
|
||||
Функция ПредопределенныеЗначения() Экспорт
|
||||
|
||||
Результат = ТаблицаПредопределенных();
|
||||
@ -84,7 +98,7 @@
|
||||
|
||||
Пример получения множественного результата:
|
||||
|
||||
```1C (BSL)
|
||||
```BSL
|
||||
Функция ПолучитьДанныеАвторизации()
|
||||
|
||||
ДанныеАвторизации = Новый Структура("Логин, Пароль");
|
||||
@ -103,7 +117,7 @@
|
||||
|
||||
Пример получения единичного результата:
|
||||
|
||||
```1C (BSL)
|
||||
```BSL
|
||||
Функция ЗаписыватьДанныеСтандартнымСпособом(ПроверяемаяДата)
|
||||
|
||||
Результат = пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение("ДатаНачалаЗаписиВРегистры", Истина);
|
||||
|
@ -62,6 +62,20 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти // ОбработчикиСобытий
|
||||
|
@ -12,6 +12,9 @@
|
||||
</Button>
|
||||
</ChildItems>
|
||||
</AutoCommandBar>
|
||||
<Events>
|
||||
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
|
||||
<Title>
|
||||
|
@ -20,19 +20,23 @@
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
|
||||
Элементы.Список.Обновить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ЗаполнитьПредопределенныеНаСервере()
|
||||
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ИнтеграционныеПотоки);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПредопределенные(Команда)
|
||||
|
||||
ЗаполнитьПредопределенныеНаСервере();
|
||||
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);
|
||||
|
||||
Элементы.Список.Обновить();
|
||||
|
||||
|
@ -0,0 +1,29 @@
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
@ -12,6 +12,9 @@
|
||||
</Button>
|
||||
</ChildItems>
|
||||
</AutoCommandBar>
|
||||
<Events>
|
||||
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
|
||||
<Title>
|
||||
|
@ -20,19 +20,23 @@
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
|
||||
Элементы.Список.Обновить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ЗаполнитьПредопределенныеНаСервере()
|
||||
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ИнтегрируемыеСистемы);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПредопределенные(Команда)
|
||||
|
||||
ЗаполнитьПредопределенныеНаСервере();
|
||||
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);
|
||||
|
||||
Элементы.Список.Обновить();
|
||||
|
||||
|
@ -114,6 +114,20 @@
|
||||
ИмяОбъекта = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти // ОбработчикиСобытий
|
||||
|
@ -12,6 +12,9 @@
|
||||
</Button>
|
||||
</ChildItems>
|
||||
</AutoCommandBar>
|
||||
<Events>
|
||||
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
|
||||
<Title>
|
||||
|
@ -20,19 +20,23 @@
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
|
||||
Элементы.Список.Обновить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ЗаполнитьПредопределенныеНаСервере()
|
||||
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_НастройкиИнтеграции);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПредопределенные(Команда)
|
||||
|
||||
ЗаполнитьПредопределенныеНаСервере();
|
||||
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);
|
||||
|
||||
Элементы.Список.Обновить();
|
||||
|
||||
|
@ -0,0 +1,30 @@
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
@ -9,6 +9,9 @@
|
||||
</Button>
|
||||
</ChildItems>
|
||||
</AutoCommandBar>
|
||||
<Events>
|
||||
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
|
||||
<Title>
|
||||
|
@ -20,19 +20,23 @@
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
|
||||
Элементы.Список.Обновить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ЗаполнитьПредопределенныеНаСервере()
|
||||
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ТипСоответствияОбъектовИБ);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПредопределенные(Команда)
|
||||
|
||||
ЗаполнитьПредопределенныеНаСервере();
|
||||
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);
|
||||
|
||||
Элементы.Список.Обновить();
|
||||
|
||||
|
@ -1 +1,30 @@
|
||||
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
@ -18,6 +18,7 @@
|
||||
</ChildItems>
|
||||
</AutoCommandBar>
|
||||
<Events>
|
||||
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
|
||||
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
|
@ -8,27 +8,26 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
|
||||
Элементы.Список.Обновить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ЗаполнитьПредопределенныеНаСервере()
|
||||
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(
|
||||
ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПредопределенные(Команда)
|
||||
|
||||
ЗаполнитьПредопределенныеНаСервере();
|
||||
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);
|
||||
|
||||
Элементы.Список.Обновить();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<CommonForm uuid="166e97da-eea9-43e5-a47a-ee07fab3fd9c">
|
||||
<Properties>
|
||||
<Name>пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Разрешение конфликтов предопределенных элементов</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<FormType>Managed</FormType>
|
||||
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||||
<UsePurposes>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
|
||||
</UsePurposes>
|
||||
<UseStandardCommands>false</UseStandardCommands>
|
||||
<ExtendedPresentation/>
|
||||
<Explanation/>
|
||||
</Properties>
|
||||
</CommonForm>
|
||||
</MetaDataObject>
|
@ -0,0 +1,302 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
|
||||
<VerticalScroll>useIfNecessary</VerticalScroll>
|
||||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
|
||||
<ChildItems>
|
||||
<Button name="ФормаОбработатьЭлементы" id="24">
|
||||
<Type>CommandBarButton</Type>
|
||||
<DefaultButton>true</DefaultButton>
|
||||
<CommandName>Form.Command.ОбработатьЭлементы</CommandName>
|
||||
<ToolTipRepresentation>Button</ToolTipRepresentation>
|
||||
<ExtendedTooltip name="ФормаОбработатьЭлементыРасширеннаяПодсказка" id="25"/>
|
||||
</Button>
|
||||
</ChildItems>
|
||||
</AutoCommandBar>
|
||||
<Events>
|
||||
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
|
||||
<Event name="OnClose">ПриЗакрытии</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<LabelDecoration name="Информация" id="33">
|
||||
<TextColor>style:TableFooterTextColor</TextColor>
|
||||
<Title formatted="false">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Справочная информация</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Для элемента установлен флаг обновления: Элемент будет обновлен данными из программного кода, а также обновится хеш элемента в регистре.
|
||||
|
||||
Для элемента не установлен флаг обновления: Элемент не будет обновлен. В записи регистра будет установлен флаг "Ручное изменение", указывающий на то, что элемент был изменен вручную и не подлежит автоматическому обновлению.
|
||||
</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<ToolTipRepresentation>Button</ToolTipRepresentation>
|
||||
<ContextMenu name="ИнформацияКонтекстноеМеню" id="34"/>
|
||||
<ExtendedTooltip name="ИнформацияРасширеннаяПодсказка" id="35"/>
|
||||
</LabelDecoration>
|
||||
<Table name="ТаблицаКонфликтов" id="1">
|
||||
<Representation>List</Representation>
|
||||
<ChangeRowSet>false</ChangeRowSet>
|
||||
<ChangeRowOrder>false</ChangeRowOrder>
|
||||
<AutoInsertNewRow>true</AutoInsertNewRow>
|
||||
<EnableStartDrag>true</EnableStartDrag>
|
||||
<EnableDrag>true</EnableDrag>
|
||||
<DataPath>ТаблицаКонфликтов</DataPath>
|
||||
<RowFilter xsi:nil="true"/>
|
||||
<ContextMenu name="ТаблицаКонфликтовКонтекстноеМеню" id="2"/>
|
||||
<AutoCommandBar name="ТаблицаКонфликтовКоманднаяПанель" id="3">
|
||||
<Autofill>false</Autofill>
|
||||
<ChildItems>
|
||||
<Button name="ТаблицаКонфликтовОтметитьВсе" id="29">
|
||||
<Type>CommandBarButton</Type>
|
||||
<CommandName>Form.Command.ОтметитьВсе</CommandName>
|
||||
<Picture>
|
||||
<xr:Ref>StdPicture.CheckAll</xr:Ref>
|
||||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||||
</Picture>
|
||||
<ExtendedTooltip name="ТаблицаКонфликтовОтметитьВсеРасширеннаяПодсказка" id="30"/>
|
||||
</Button>
|
||||
<Button name="ТаблицаКонфликтовСнятьОтметку" id="31">
|
||||
<Type>CommandBarButton</Type>
|
||||
<CommandName>Form.Command.СнятьОтметку</CommandName>
|
||||
<Picture>
|
||||
<xr:Ref>StdPicture.UncheckAll</xr:Ref>
|
||||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||||
</Picture>
|
||||
<ExtendedTooltip name="ТаблицаКонфликтовСнятьОтметкуРасширеннаяПодсказка" id="32"/>
|
||||
</Button>
|
||||
</ChildItems>
|
||||
</AutoCommandBar>
|
||||
<ExtendedTooltip name="ТаблицаКонфликтовРасширеннаяПодсказка" id="4"/>
|
||||
<SearchStringAddition name="ТаблицаКонфликтовСтрокаПоиска" id="5">
|
||||
<AdditionSource>
|
||||
<Item>ТаблицаКонфликтов</Item>
|
||||
<Type>SearchStringRepresentation</Type>
|
||||
</AdditionSource>
|
||||
<ContextMenu name="ТаблицаКонфликтовСтрокаПоискаКонтекстноеМеню" id="6"/>
|
||||
<ExtendedTooltip name="ТаблицаКонфликтовСтрокаПоискаРасширеннаяПодсказка" id="7"/>
|
||||
</SearchStringAddition>
|
||||
<ViewStatusAddition name="ТаблицаКонфликтовСостояниеПросмотра" id="8">
|
||||
<AdditionSource>
|
||||
<Item>ТаблицаКонфликтов</Item>
|
||||
<Type>ViewStatusRepresentation</Type>
|
||||
</AdditionSource>
|
||||
<ContextMenu name="ТаблицаКонфликтовСостояниеПросмотраКонтекстноеМеню" id="9"/>
|
||||
<ExtendedTooltip name="ТаблицаКонфликтовСостояниеПросмотраРасширеннаяПодсказка" id="10"/>
|
||||
</ViewStatusAddition>
|
||||
<SearchControlAddition name="ТаблицаКонфликтовУправлениеПоиском" id="11">
|
||||
<AdditionSource>
|
||||
<Item>ТаблицаКонфликтов</Item>
|
||||
<Type>SearchControl</Type>
|
||||
</AdditionSource>
|
||||
<ContextMenu name="ТаблицаКонфликтовУправлениеПоискомКонтекстноеМеню" id="12"/>
|
||||
<ExtendedTooltip name="ТаблицаКонфликтовУправлениеПоискомРасширеннаяПодсказка" id="13"/>
|
||||
</SearchControlAddition>
|
||||
<ChildItems>
|
||||
<CheckBoxField name="ТаблицаКонфликтовЗаменитьЭлементомИзКода" id="26">
|
||||
<DataPath>ТаблицаКонфликтов.ЗаменитьЭлементомИзКода</DataPath>
|
||||
<TitleLocation>None</TitleLocation>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Обновить элемент данными из кода</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<HeaderPicture>
|
||||
<xr:Ref>StdPicture.Change</xr:Ref>
|
||||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||||
</HeaderPicture>
|
||||
<CheckBoxType>Auto</CheckBoxType>
|
||||
<ContextMenu name="ТаблицаКонфликтовЗаменитьЭлементомИзКодаКонтекстноеМеню" id="27"/>
|
||||
<ExtendedTooltip name="ТаблицаКонфликтовЗаменитьЭлементомИзКодаРасширеннаяПодсказка" id="28"/>
|
||||
</CheckBoxField>
|
||||
<ColumnGroup name="ГруппаЭлементВБазе" id="19">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Элемент в базе</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Группа элемент в базе</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Group>Horizontal</Group>
|
||||
<ShowInHeader>true</ShowInHeader>
|
||||
<ExtendedTooltip name="ГруппаЭлементВБазеРасширеннаяПодсказка" id="20"/>
|
||||
</ColumnGroup>
|
||||
<ColumnGroup name="ГруппаЭлементВКоде" id="17">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Элемент в коде</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Группа элемент в коде</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Group>Horizontal</Group>
|
||||
<ShowInHeader>true</ShowInHeader>
|
||||
<ExtendedTooltip name="ГруппаЭлементВКодеРасширеннаяПодсказка" id="18"/>
|
||||
</ColumnGroup>
|
||||
</ChildItems>
|
||||
</Table>
|
||||
</ChildItems>
|
||||
<Attributes>
|
||||
<Attribute name="ТаблицаКонфликтов" id="1">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Таблица конфликтов</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>v8:ValueTable</v8:Type>
|
||||
</Type>
|
||||
<Columns>
|
||||
<Column name="ЗаменитьЭлементомИзКода" id="1">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Заменить элементом из кода</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</Type>
|
||||
</Column>
|
||||
</Columns>
|
||||
</Attribute>
|
||||
<Attribute name="ОбработатьЭлементы" id="4">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Обработать элементы</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="АдресТаблицы" id="2">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Адрес таблицы</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="ИмяФормыВладельца" id="3">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Имя формы владельца</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="ПрефиксБаза" id="5">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Префикс база</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="ПрефиксКод" id="6">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Префикс код</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
<Commands>
|
||||
<Command name="ОбработатьЭлементы" id="1">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Обработать элементы</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Обработать элементы</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Action>ОбработатьЭлементы</Action>
|
||||
</Command>
|
||||
<Command name="ОтметитьВсе" id="2">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Отметить все</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Отметить все</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Action>ОтметитьВсе</Action>
|
||||
<CurrentRowUse>DontUse</CurrentRowUse>
|
||||
</Command>
|
||||
<Command name="СнятьОтметку" id="3">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Снять отметку</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Снять отметку</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Action>СнятьОтметку</Action>
|
||||
<CurrentRowUse>DontUse</CurrentRowUse>
|
||||
</Command>
|
||||
</Commands>
|
||||
</Form>
|
@ -0,0 +1,202 @@
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
ПрефиксБаза = "база_";
|
||||
ПрефиксКод = "код_";
|
||||
|
||||
Параметры.Свойство("ИмяФормыВладельца", ИмяФормыВладельца);
|
||||
|
||||
Если Параметры.Свойство("АдресТаблицы", АдресТаблицы)
|
||||
И ЗначениеЗаполнено(АдресТаблицы) Тогда
|
||||
ОбработатьКонфликтныеЭлементы(АдресТаблицы);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||||
|
||||
Если ЗавершениеРаботы Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбработатьЭлементы Тогда
|
||||
ОбработатьПредопределенныеЭлементы();
|
||||
Оповестить("ОбновитьСписокПредопределенных");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработатьЭлементы(Команда)
|
||||
|
||||
ОбработатьЭлементы = Истина;
|
||||
Закрыть();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОтметитьВсе(Команда)
|
||||
ЗаполнитьОтметки(Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СнятьОтметку(Команда)
|
||||
ЗаполнитьОтметки(Ложь);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбработатьКонфликтныеЭлементы(АдресТаблицы)
|
||||
|
||||
ИсходнаяТаблица = ПолучитьИзВременногоХранилища(АдресТаблицы);
|
||||
|
||||
Поля = СоздатьПоляТаблицыКонфликтов(ИсходнаяТаблица);
|
||||
ЗаполнитьТаблицуКонфликтов(ИсходнаяТаблица, Поля);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция СоздатьПоляТаблицыКонфликтов(Таблица)
|
||||
|
||||
Поля = Новый СписокЗначений;
|
||||
|
||||
ИсключаемыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.ИсключаемыеПоляДляРасчетаХешаЭлемент();
|
||||
|
||||
ДобавляемыеРеквизиты = Новый Структура;
|
||||
Для Каждого Колонка Из Таблица.Колонки Цикл
|
||||
Если ИсключаемыеПоля.Свойство(Колонка.Имя)
|
||||
Или СтрНачинаетсяС(Колонка.Имя, "Служеб_") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ДобавляемыеРеквизиты.Вставить(ПрефиксКод + Колонка.Имя, Колонка.ТипЗначения);
|
||||
ДобавляемыеРеквизиты.Вставить(ПрефиксБаза + Колонка.Имя, Колонка.ТипЗначения);
|
||||
Поля.Добавить(Колонка.Имя, Колонка.Имя);
|
||||
КонецЦикла;
|
||||
пбп_РаботаСФормами.СоздатьРеквизитыТаблицы(ЭтотОбъект, "ТаблицаКонфликтов", ДобавляемыеРеквизиты);
|
||||
|
||||
ШиринаКолонки = 5;
|
||||
Синонимы = Новый Структура;
|
||||
Для Каждого Реквизит Из ДобавляемыеРеквизиты Цикл
|
||||
Родитель = Элементы.ГруппаЭлементВКоде;
|
||||
Имя = СтрЗаменить(Реквизит.Ключ, ПрефиксКод, "");
|
||||
Если СтрНачинаетсяС(Реквизит.Ключ, ПрефиксБаза) Тогда
|
||||
Родитель = Элементы.ГруппаЭлементВБазе;
|
||||
Имя = СтрЗаменить(Имя, ПрефиксБаза, "");
|
||||
КонецЕсли;
|
||||
|
||||
Синоним = "";
|
||||
Если Не Синонимы.Свойство(Имя, Синоним) Тогда
|
||||
Синоним = пбп_СтроковыеФункцииКлиентСервер.СинонимСтроки(Имя);
|
||||
Синонимы.Вставить(Имя, Синоним);
|
||||
КонецЕсли;
|
||||
|
||||
Свойства = Новый Структура;
|
||||
Свойства.Вставить("Ширина", ШиринаКолонки);
|
||||
Свойства.Вставить("ТолькоПросмотр", Истина);
|
||||
пбп_РаботаСФормами.СоздатьПоле(ЭтотОбъект, Реквизит.Ключ, Родитель, Синоним, 1,
|
||||
"ТаблицаКонфликтов." + Реквизит.Ключ, Свойства);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Поля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьТаблицуКонфликтов(Таблица, Поля)
|
||||
|
||||
Если ПустаяСтрока(ИмяФормыВладельца) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МенеджерОбъекта = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ИмяФормыВладельца);
|
||||
|
||||
СписокПредопределенных = Таблица.ВыгрузитьКолонку("Служеб_ПредопределенныйЭлемент");
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| пбп_ПредопределенныеЗначения.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| %1 КАК пбп_ПредопределенныеЗначения
|
||||
|ГДЕ
|
||||
| пбп_ПредопределенныеЗначения.Ссылка В(&СписокПредопределенных)";
|
||||
|
||||
ПолноеИмя = Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта)).ПолноеИмя();
|
||||
Запрос.Текст = СтрШаблон(Запрос.Текст, ПолноеИмя);
|
||||
Запрос.УстановитьПараметр("СписокПредопределенных", СписокПредопределенных);
|
||||
|
||||
Запрос = пбп_СхемыЗапросов.ДобавитьПоляВыборкиВЗапрос(Запрос, Поля);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
ОбщиеПоля = СтрСоединить(Поля.ВыгрузитьЗначения(), ",");
|
||||
БазоваяСтруктура = Новый Структура(ОбщиеПоля);
|
||||
Для Каждого Строка Из Таблица Цикл
|
||||
нСтрока = ТаблицаКонфликтов.Добавить();
|
||||
|
||||
ЗаполнитьЗначенияСвойств(БазоваяСтруктура, Строка);
|
||||
Для Каждого КлючЗначение Из БазоваяСтруктура Цикл
|
||||
нСтрока[ПрефиксКод + КлючЗначение.Ключ] = КлючЗначение.Значение;
|
||||
КонецЦикла;
|
||||
|
||||
Выборка.НайтиСледующий(Строка.Служеб_ПредопределенныйЭлемент, "Ссылка");
|
||||
ЗаполнитьЗначенияСвойств(БазоваяСтруктура, Выборка);
|
||||
Для Каждого КлючЗначение Из БазоваяСтруктура Цикл
|
||||
нСтрока[ПрефиксБаза + КлючЗначение.Ключ] = КлючЗначение.Значение;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбработатьПредопределенныеЭлементы()
|
||||
|
||||
Если ПустаяСтрока(ИмяФормыВладельца) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторНастройки = "ИдентификаторНастройки";
|
||||
Таблица = ПолучитьИзВременногоХранилища(АдресТаблицы);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Таблица) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УдалитьИзВременногоХранилища(АдресТаблицы);
|
||||
Таблица.Индексы.Добавить(ИдентификаторНастройки);
|
||||
Для Каждого Строка Из ТаблицаКонфликтов Цикл
|
||||
Стр = Таблица.Найти(Строка[ПрефиксКод + ИдентификаторНастройки], ИдентификаторНастройки);
|
||||
Если Строка.ЗаменитьЭлементомИзКода Тогда
|
||||
Стр.Служеб_ОбновитьЭлемент = Истина;
|
||||
Иначе
|
||||
Стр.Служеб_УстановитьФлагРучноеИзменение = Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Менеджер = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ИмяФормыВладельца);
|
||||
ДопПараметры = пбп_ПредопределенныеЗначения.ДопПараметрыОбработкиПредопределенныхЭлементов(
|
||||
Таблица, Менеджер);
|
||||
пбп_ПредопределенныеЗначения.СоздатьОбновитьПредопределенныеЗначения(Таблица, ДопПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьОтметки(ЗначениеОтметки)
|
||||
Модифицированность = Истина;
|
||||
Для Каждого Строка Из ТаблицаКонфликтов Цикл
|
||||
Строка.ЗаменитьЭлементомИзКода = ЗначениеОтметки;
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -74,7 +74,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
|
||||
Описание.Версия = "1.0.2.7";
|
||||
Описание.Версия = "1.0.3.8";
|
||||
|
||||
// Требуется библиотека стандартных подсистем.
|
||||
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
|
||||
@ -85,7 +85,12 @@
|
||||
// Обработчики обновления информационной базы.
|
||||
|
||||
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
|
||||
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Процедура = "пбп_ОбновлениеИнформационнойБазыПБП.НачальноеЗаполнениеПредопределенныхЭлементов";
|
||||
Обработчик.НачальноеЗаполнение = Истина;
|
||||
Обработчик.РежимВыполнения = "Монопольно";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередОбновлениемИнформационнойБазы() Экспорт
|
||||
@ -116,3 +121,20 @@
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура НачальноеЗаполнениеПредопределенныхЭлементов() Экспорт
|
||||
|
||||
Типы = Метаданные.ОпределяемыеТипы.пбп_ПредопределенныеВсеСсылкиПереопределяемый.Тип.Типы();
|
||||
|
||||
Для Каждого Тип Из Типы Цикл
|
||||
ПолноеИмя = Метаданные.НайтиПоТипу(Тип).ПолноеИмя();
|
||||
Менеджер = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
|
||||
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Менеджер);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -932,6 +932,51 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Аналог метода БСП. Вычисляет переданное выражение, предварительно устанавливая безопасный режим выполнения кода
|
||||
// и безопасный режим разделения данных для всех разделителей, присутствующих в составе конфигурации.
|
||||
//
|
||||
// Параметры:
|
||||
// Выражение - Строка - выражение на встроенном языке 1С:Предприятия.
|
||||
// Параметры - Произвольный - контекст, который требуется для вычисления выражения.
|
||||
// В тексте выражения обращение к контексту должно происходить по имени "Параметры".
|
||||
// Например, выражение "Параметры.Значение1 = Параметры.Значение2" обращается к значениям
|
||||
// "Значение1" и "Значение2" переданные в Параметры, как свойства.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - результат вычисления выражения.
|
||||
//
|
||||
// Пример:
|
||||
//
|
||||
// // Пример 1
|
||||
// Параметры = Новый Структура;
|
||||
// Параметры.Вставить("Значение1", 1);
|
||||
// Параметры.Вставить("Значение2", 10);
|
||||
// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("Параметры.Значение1 = Параметры.Значение2", Параметры);
|
||||
//
|
||||
// // Пример 2
|
||||
// Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме("СтандартныеПодсистемыСервер.ВерсияБиблиотеки()");
|
||||
//
|
||||
Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
|
||||
|
||||
УстановитьБезопасныйРежим(Истина);
|
||||
|
||||
Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
||||
МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса");
|
||||
МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации();
|
||||
Иначе
|
||||
МассивРазделителей = Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяРазделителя Из МассивРазделителей Цикл
|
||||
|
||||
УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Вычислить(Выражение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Аналог метода БСП. Записывает конфиденциальные данные в безопасное хранилище.
|
||||
// Вызывающий код должен самостоятельно устанавливать привилегированный режим.
|
||||
//
|
||||
@ -2008,6 +2053,92 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Аналог метода БСП. Возвращает менеджер объекта по ссылке на объект.
|
||||
// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
|
||||
// См. также ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени.
|
||||
//
|
||||
// Параметры:
|
||||
// Ссылка - ЛюбаяСсылка - объект, менеджер которого требуется получить.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СправочникМенеджер, ДокументМенеджер, ОбработкаМенеджер, РегистрСведенийМенеджер - менеджер объекта.
|
||||
//
|
||||
// Пример:
|
||||
// МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоСсылке(СсылкаНаОрганизацию);
|
||||
// ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
|
||||
//
|
||||
Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт
|
||||
|
||||
ИмяОбъекта = Ссылка.Метаданные().Имя;
|
||||
ТипСсылки = ТипЗнч(Ссылка);
|
||||
|
||||
Если Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат Справочники[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат Документы[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат БизнесПроцессы[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат ПланыВидовХарактеристик[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат ПланыСчетов[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат ПланыВидовРасчета[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли Задачи.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат Задачи[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат ПланыОбмена[ИмяОбъекта];
|
||||
|
||||
ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
|
||||
Возврат Перечисления[ИмяОбъекта];
|
||||
Иначе
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область Данные
|
||||
|
||||
// Аналог метода БСП. Вычисляет контрольную сумму для произвольных данных по указанному алгоритму.
|
||||
//
|
||||
// Параметры:
|
||||
// Данные - Произвольный - любое сериализуемое значение.
|
||||
// Алгоритм - ХешФункция - алгоритм расчета контрольной суммы. По умолчанию, MD5.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - контрольная сумма строкой без пробелов (например 32 символа).
|
||||
//
|
||||
Функция КонтрольнаяСуммаСтрокой(Знач Данные, Знач Алгоритм = Неопределено) Экспорт
|
||||
|
||||
Если Алгоритм = Неопределено Тогда
|
||||
Алгоритм = ХешФункция.MD5;
|
||||
КонецЕсли;
|
||||
|
||||
ХешированиеДанных = Новый ХешированиеДанных(Алгоритм);
|
||||
Если ТипЗнч(Данные) <> Тип("Строка") И ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
|
||||
Данные = ЗначениеВСтрокуXML(Данные);
|
||||
КонецЕсли;
|
||||
ХешированиеДанных.Добавить(Данные);
|
||||
|
||||
Если ТипЗнч(ХешированиеДанных.ХешСумма) = Тип("ДвоичныеДанные") Тогда
|
||||
Результат = СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
|
||||
ИначеЕсли ТипЗнч(ХешированиеДанных.ХешСумма) = Тип("Число") Тогда
|
||||
Результат = Формат(ХешированиеДанных.ХешСумма, "ЧГ=");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ТекущееОкружение
|
||||
|
||||
// Аналог метода БСП. Возвращает Истина, если текущий сеанс выполняется на сервере, работающем под управлением ОС Windows.
|
||||
@ -2135,6 +2266,18 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Выполняет действия при записи предопределенного элемента.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - предопределенный элемент
|
||||
// из подсистемы предопределенных элементов
|
||||
//
|
||||
Процедура ОбработатьСуществующийПредопределенныйЭлемент(Объект) Экспорт
|
||||
|
||||
пбп_ПредопределенныеЗначения.ОбновитьХешЭлемента(Объект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти // ПрограммныйИнтерфейс
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -33,6 +33,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. пбп_ОбщегоНазначенияСервер.ВычислитьВБезопасномРежиме.
|
||||
//
|
||||
Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
|
||||
|
||||
Модуль = ПолучитьМодуль();
|
||||
Возврат Модуль.ВычислитьВБезопасномРежиме(Выражение, Параметры);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. пбп_ОбщегоНазначенияСервер.ЗаписатьДанныеВБезопасноеХранилище.
|
||||
Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт
|
||||
|
||||
@ -184,6 +193,27 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. пбп_ОбщегоНазначенияСервер.МенеджерОбъектаПоСсылке.
|
||||
//
|
||||
Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт
|
||||
|
||||
Модуль = ПолучитьМодуль();
|
||||
Возврат Модуль.МенеджерОбъектаПоСсылке(Ссылка);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область Данные
|
||||
|
||||
// См. пбп_ОбщегоНазначенияСервер.КонтрольнаяСуммаСтрокой.
|
||||
Функция КонтрольнаяСуммаСтрокой(Знач Данные, Знач Алгоритм = Неопределено) Экспорт
|
||||
|
||||
Модуль = ПолучитьМодуль();
|
||||
Возврат Модуль.КонтрольнаяСуммаСтрокой(Данные, Алгоритм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -23,105 +23,62 @@
|
||||
// Инициализирует предопределенные значения из таблицы.
|
||||
//
|
||||
// Параметры:
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Таблица с конфликтными элементами
|
||||
//
|
||||
Процедура ИнициализироватьПредопределенныеЗначения(МенеджерОбъекта) Экспорт
|
||||
Функция ИнициализироватьПредопределенныеЗначения(МенеджерОбъекта) Экспорт
|
||||
|
||||
ТипЗначения = ТипЗнч(МенеджерОбъекта);
|
||||
Если ТипЗначения = Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения") Тогда
|
||||
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначения();
|
||||
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_ИнтегрируемыеСистемы") Тогда
|
||||
ТЗПредопределенныхЗначений =
|
||||
пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияИнтегрируемыеСистемы();
|
||||
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_ИнтеграционныеПотоки") Тогда
|
||||
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый
|
||||
.ПредопределенныеЗначенияИнтеграционныеПотоки();
|
||||
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_НастройкиИнтеграции") Тогда
|
||||
ТЗПредопределенныхЗначений =
|
||||
пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияНастройкиИнтеграции();
|
||||
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_ТипСоответствияОбъектовИБ") Тогда
|
||||
ТЗПредопределенныхЗначений =
|
||||
пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияТипСоответствияОбъектовИБ();
|
||||
Иначе
|
||||
Возврат;
|
||||
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый
|
||||
.ТаблицаПредопределенныхЭлементов(МенеджерОбъекта);
|
||||
|
||||
Если ТЗПредопределенныхЗначений = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ОбработатьПредопределенныеЗначения(ТЗПредопределенныхЗначений, МенеджерОбъекта);
|
||||
ТаблицаКонфликтныхЭлементов = ОбработатьПредопределенныеЗначения(ТЗПредопределенныхЗначений, МенеджерОбъекта);
|
||||
|
||||
КонецПроцедуры
|
||||
Возврат ТаблицаКонфликтныхЭлементов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создание предопределенных значений на основании заполненной таблицы
|
||||
// Обрабатывает таблицу предопределенных элементов. Операции включают в себя: установка пометок удаления
|
||||
// на неиспользуемые элементы, отбор предопределенных значений, создание предопределенных элементов.
|
||||
//
|
||||
// Параметры:
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемыйТаблицаПредопределенных,
|
||||
// пбп_ТипСоответствияОбъектовИБПереопределяемый.ТаблицаПредопределенных
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
// ПолноеИмяОбъекта - Строка - Полное имя объекта метаданных.
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см.пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенных
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Таблица с конфликтными элементами
|
||||
//
|
||||
Процедура СоздатьОбновитьПредопределенныеЗначения(ТаблицаПредопределенных, МенеджерОбъекта, ПолноеИмяОбъекта = "") Экспорт
|
||||
Функция ОбработатьПредопределенныеЗначения(ТаблицаПредопределенных, МенеджерОбъекта) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(ТаблицаПредопределенных) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Параметры = ДопПараметрыОбработкиПредопределенныхЭлементов(ТаблицаПредопределенных, МенеджерОбъекта);
|
||||
|
||||
Если ПустаяСтрока(ПолноеИмяОбъекта) Тогда
|
||||
ПолноеИмяОбъекта = ПолноеИмяОбъектаПоУмолчанию();
|
||||
КонецЕсли;
|
||||
ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, Параметры.ПолноеИмя);
|
||||
|
||||
Группы = Новый Соответствие;
|
||||
КолонкаСуществует = ТаблицаПредопределенных.Колонки.Найти("ЭтоГруппа") <> Неопределено;
|
||||
ЗаполнитьРодителейЭлементов(ТаблицаПредопределенных, Параметры);
|
||||
ЗаполнитьКонтрольныеСуммыТаблицы(ТаблицаПредопределенных, Параметры);
|
||||
|
||||
Если КолонкаСуществует Тогда
|
||||
|
||||
// Сначала создаются группы, затем элементы
|
||||
ТаблицаПредопределенных.Сортировать("ЭтоГруппа УБЫВ, УровеньИерархии");
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| пбп_ПредопределенныеЗначения.Ссылка КАК Ссылка,
|
||||
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки КАК ИдентификаторНастройки
|
||||
|ИЗ
|
||||
| %1 КАК пбп_ПредопределенныеЗначения
|
||||
|ГДЕ
|
||||
| пбп_ПредопределенныеЗначения.ЭтоГруппа";
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПолноеИмяОбъекта);
|
||||
|
||||
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
Группы.Вставить(ВыборкаДетальныеЗаписи.ИдентификаторНастройки, ВыборкаДетальныеЗаписи.Ссылка);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
ТаблицаКонфликтныхЭлементов = УдалитьИзТаблицыСуществующиеЭлементы(ТаблицаПредопределенных, Параметры.ПолноеИмя);
|
||||
СоздатьОбновитьПредопределенныеЗначения(ТаблицаПредопределенных, Параметры);
|
||||
|
||||
Для Каждого СтрокаТаблицы Из ТаблицаПредопределенных Цикл
|
||||
Если СтрокаТаблицы.Служеб_ОбновитьРасположениеЭлемента Тогда
|
||||
ОбновитьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Группы);
|
||||
Иначе
|
||||
Если КолонкаСуществует И СтрокаТаблицы.ЭтоГруппа Тогда
|
||||
СоздатьПредопределеннуюГруппу(МенеджерОбъекта, СтрокаТаблицы, Группы);
|
||||
Иначе
|
||||
СоздатьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Группы, КолонкаСуществует);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат ТаблицаКонфликтныхЭлементов;
|
||||
|
||||
КонецПроцедуры
|
||||
КонецФункции
|
||||
|
||||
// Получает все предопределенные элементы объекта, помечает на удаление те, которые удалены из кода.
|
||||
// При установке пометки удаления для групп, также устанавливается для всех подчиенных элементов.
|
||||
//
|
||||
// Параметры:
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемыйТаблицаПредопределенных,
|
||||
// пбп_ТипСоответствияОбъектовИБПереопределяемый.ТаблицаПредопределенных.
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см.пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенных
|
||||
// ПолноеИмяОбъекта - Строка - Полное имя объекта метаданных.
|
||||
//
|
||||
Процедура ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, ПолноеИмяОбъекта = "") Экспорт
|
||||
|
||||
Если ПустаяСтрока(ПолноеИмяОбъекта) Тогда
|
||||
ПолноеИмяОбъекта = ПолноеИмяОбъектаПоУмолчанию();
|
||||
КонецЕсли;
|
||||
ПолноеИмяОбъекта = ИмяОбъектаМетаданных(ПолноеИмяОбъекта);
|
||||
|
||||
ТаблицаПредопределенных.Индексы.Добавить("ИдентификаторНастройки");
|
||||
|
||||
@ -156,57 +113,25 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Подготавливает параметры необходимые для обработки предопределенных элементов
|
||||
// После удаления уже существующих элементов, остаются только актуальные значения
|
||||
// для создания предопределенных элементов.
|
||||
//
|
||||
// Параметры:
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см.пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенных
|
||||
// ПолноеИмяОбъекта - Строка - Полное имя объекта метаданных.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Данные Менеджера объекта
|
||||
// * Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
// * ПолноеИмя - Строка - Полное имя объекта метаданных.
|
||||
// ТаблицаЗначений - Таблица с конфликтными элементами
|
||||
//
|
||||
Функция ПараметрыМенеджераОбъекта(МенеджерОбъекта) Экспорт
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("Менеджер", МенеджерОбъекта);
|
||||
Параметры.Вставить("ПолноеИмя", Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта)).ПолноеИмя());
|
||||
Функция УдалитьИзТаблицыСуществующиеЭлементы(ТаблицаПредопределенных, ПолноеИмяОбъекта = "") Экспорт
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обрабатывает таблицу предопределенных элементов. Операции включают в себя: установка пометок удаления
|
||||
// на неиспользуемые элементы, отбор предопределенных значений, создание предопределенных элементов.
|
||||
//
|
||||
// Параметры:
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемыйТаблицаПредопределенных,
|
||||
// пбп_ТипСоответствияОбъектовИБПереопределяемый.ТаблицаПредопределенных.
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
//
|
||||
Процедура ОбработатьПредопределенныеЗначения(ТаблицаПредопределенных, МенеджерОбъекта) Экспорт
|
||||
|
||||
Параметры = ПараметрыМенеджераОбъекта(МенеджерОбъекта);
|
||||
|
||||
ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, Параметры.ПолноеИмя);
|
||||
УдалитьИзТаблицыСуществующиеЭлементы(ТаблицаПредопределенных, Параметры.ПолноеИмя);
|
||||
СоздатьОбновитьПредопределенныеЗначения(ТаблицаПредопределенных, Параметры.Менеджер, Параметры.ПолноеИмя);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура УдалитьИзТаблицыСуществующиеЭлементы(ТаблицаПредопределенных, ПолноеИмяОбъекта = "") Экспорт
|
||||
ТаблицаКонфликтныхЭлементов = ТаблицаПредопределенных.СкопироватьКолонки();
|
||||
|
||||
Если Не ЗначениеЗаполнено(ТаблицаПредопределенных) Тогда
|
||||
Возврат;
|
||||
Возврат ТаблицаКонфликтныхЭлементов;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(ПолноеИмяОбъекта) Тогда
|
||||
ПолноеИмяОбъекта = ПолноеИмяОбъектаПоУмолчанию();
|
||||
КонецЕсли;
|
||||
ПолноеИмяОбъекта = ИмяОбъектаМетаданных(ПолноеИмяОбъекта);
|
||||
|
||||
ИдентификаторыНастроек = ТаблицаПредопределенных.ВыгрузитьКолонку("ИдентификаторНастройки");
|
||||
|
||||
@ -215,11 +140,14 @@
|
||||
"ВЫБРАТЬ
|
||||
| пбп_ПредопределенныеЗначения.Ссылка КАК Ссылка,
|
||||
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки КАК ИдентификаторНастройки,
|
||||
| ЕСТЬNULL(Родители.ИдентификаторНастройки, """") КАК ИдентификаторНастройкиРодитель
|
||||
| пбп_СостоянияПредопределенныхЭлементов.ХешСумма КАК ХешСумма,
|
||||
| ЕСТЬNULL(пбп_СостоянияПредопределенныхЭлементов.РучноеИзменение, ЛОЖЬ) КАК РучноеИзменение,
|
||||
| пбп_ПредопределенныеЗначения.ПометкаУдаления КАК ПометкаУдаления,
|
||||
| пбп_СостоянияПредопределенныхЭлементов.ХешСумма ЕСТЬ NULL КАК ХешОтсутствует
|
||||
|ИЗ
|
||||
| %1 КАК пбп_ПредопределенныеЗначения
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ %1 КАК Родители
|
||||
| ПО пбп_ПредопределенныеЗначения.Родитель = Родители.Ссылка
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.пбп_СостоянияПредопределенныхЭлементов КАК пбп_СостоянияПредопределенныхЭлементов
|
||||
| ПО пбп_ПредопределенныеЗначения.Ссылка = пбп_СостоянияПредопределенныхЭлементов.Объект
|
||||
|ГДЕ
|
||||
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки В(&СписокИдентификаторов)";
|
||||
|
||||
@ -233,11 +161,10 @@
|
||||
Для Каждого Строка Из ТаблицаПредопределенных Цикл
|
||||
ВыборкаДетальныеЗаписи.Сбросить();
|
||||
Если ВыборкаДетальныеЗаписи.НайтиСледующий(Строка.ИдентификаторНастройки, "ИдентификаторНастройки") Тогда
|
||||
Если ВыборкаДетальныеЗаписи.ИдентификаторНастройкиРодитель = Строка.Родитель Тогда
|
||||
Если ВыборкаДетальныеЗаписи.РучноеИзменение Или ВыборкаДетальныеЗаписи.ХешСумма = Строка.ХешСумма Тогда
|
||||
СтрокиДляУдаления.Добавить(Строка);
|
||||
Иначе
|
||||
Строка.Служеб_СсылкаНаПредопределенныйЭлемент = ВыборкаДетальныеЗаписи.Ссылка;
|
||||
Строка.Служеб_ОбновитьРасположениеЭлемента = Истина;
|
||||
ОбработатьСтроку(Строка, ВыборкаДетальныеЗаписи, ТаблицаКонфликтныхЭлементов, СтрокиДляУдаления);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
@ -246,19 +173,204 @@
|
||||
ТаблицаПредопределенных.Удалить(Строка);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТаблицаКонфликтныхЭлементов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создание предопределенных значений на основании заполненной таблицы
|
||||
//
|
||||
// Параметры:
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см.пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенных
|
||||
// ДополнительныеПараметры - Структура - см.пбп_ПредопределенныеЗначения.ДопПараметрыОбработкиПредопределенныхЭлементов
|
||||
//
|
||||
Процедура СоздатьОбновитьПредопределенныеЗначения(ТаблицаПредопределенных, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(ТаблицаПредопределенных) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмяОбъекта = ДополнительныеПараметры.ПолноеИмя;
|
||||
МенеджерОбъекта = ДополнительныеПараметры.Менеджер;
|
||||
|
||||
ПолноеИмяОбъекта = ИмяОбъектаМетаданных(ПолноеИмяОбъекта);
|
||||
|
||||
Группы = Новый Соответствие;
|
||||
КолонкаСуществует = ТаблицаПредопределенных.Колонки.Найти("ЭтоГруппа") <> Неопределено;
|
||||
|
||||
Если КолонкаСуществует Тогда
|
||||
|
||||
// Сначала создаются группы, затем элементы
|
||||
ТаблицаПредопределенных.Сортировать("ЭтоГруппа УБЫВ, УровеньИерархии");
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| пбп_ПредопределенныеЗначения.Ссылка КАК Ссылка,
|
||||
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки КАК ИдентификаторНастройки
|
||||
|ИЗ
|
||||
| %1 КАК пбп_ПредопределенныеЗначения
|
||||
|ГДЕ
|
||||
| пбп_ПредопределенныеЗначения.ЭтоГруппа";
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПолноеИмяОбъекта);
|
||||
|
||||
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
Группы.Вставить(ВыборкаДетальныеЗаписи.ИдентификаторНастройки, ВыборкаДетальныеЗаписи.Ссылка);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаТаблицы Из ТаблицаПредопределенных Цикл
|
||||
ЭтоГруппа = КолонкаСуществует И СтрокаТаблицы.ЭтоГруппа;
|
||||
КлючиХеша = ?(ЭтоГруппа, ДополнительныеПараметры.КлючиХешаГруппа, ДополнительныеПараметры.КлючиХешаЭлемент);
|
||||
|
||||
Если СтрокаТаблицы.Служеб_ОбновитьЭлемент Тогда
|
||||
ОбновитьЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Группы, КолонкаСуществует);
|
||||
ИначеЕсли СтрокаТаблицы.Служеб_УстановитьФлагРучноеИзменение Тогда
|
||||
УстановитьФлагРучноеИзменение(СтрокаТаблицы.Служеб_ПредопределенныйЭлемент);
|
||||
ИначеЕсли СтрокаТаблицы.Служеб_СоздатьЗаписьРегистра Тогда
|
||||
СоздатьЗаписьСостоянияПредопределенногоЭлемента(СтрокаТаблицы.Служеб_ПредопределенныйЭлемент, ЭтоГруппа, КлючиХеша);
|
||||
Иначе
|
||||
СоздатьЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Группы, КолонкаСуществует);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьПредопределеннуюГруппу(МенеджерОбъекта, СтрокаТаблицы, Группы)
|
||||
// Подготавливает параметры необходимые для обработки предопределенных элементов
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенных.
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Данные Менеджера объекта
|
||||
// * Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
// * ПолноеИмя - Строка - Полное имя объекта метаданных.
|
||||
//
|
||||
Функция ДопПараметрыОбработкиПредопределенныхЭлементов(Таблица, МенеджерОбъекта) Экспорт
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("Менеджер", МенеджерОбъекта);
|
||||
Параметры.Вставить("ПолноеИмя", Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта)).ПолноеИмя());
|
||||
|
||||
мКолонки = Новый Массив;
|
||||
Для Каждого Колонка Из Таблица.Колонки Цикл
|
||||
мКолонки.Добавить(Колонка.Имя);
|
||||
КонецЦикла;
|
||||
|
||||
Параметры.Вставить("КлючиХешаЭлемент", КлючиХешаПредопределенногоЭлемента(мКолонки, Ложь));
|
||||
Параметры.Вставить("КлючиХешаГруппа", КлючиХешаПредопределенногоЭлемента(мКолонки, Истина));
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет хеш предопределенных элементов
|
||||
//
|
||||
// Параметры:
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см.пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенных
|
||||
// ДополнительныеПараметры - Структура - см.пбп_ПредопределенныеЗначения.ДопПараметрыОбработкиПредопределенныхЭлементов
|
||||
//
|
||||
Процедура ЗаполнитьКонтрольныеСуммыТаблицы(ТаблицаПредопределенных, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(ТаблицаПредопределенных) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Строка Из ТаблицаПредопределенных Цикл
|
||||
КлючиХеша = ?(Строка.ЭтоГруппа, ДополнительныеПараметры.КлючиХешаГруппа, ДополнительныеПараметры.КлючиХешаЭлемент);
|
||||
ЗаполнитьЗначенияСвойств(КлючиХеша, Строка);
|
||||
Строка.ХешСумма = пбп_ОбщегоНазначенияСлужебный.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает ключи хеша на основании массива полей элемента
|
||||
//
|
||||
// Параметры:
|
||||
// Поля - Массив - Поля для формирования ключей хеша
|
||||
// ЭтоГруппа - Булево - От этого признака зависят исключаемые поля
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Ключи хеша
|
||||
//
|
||||
Функция КлючиХешаПредопределенногоЭлемента(Поля, ЭтоГруппа = Ложь) Экспорт
|
||||
|
||||
мКлючи = Новый Массив;
|
||||
|
||||
Если ЭтоГруппа Тогда
|
||||
ИсключаемыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.ИсключаемыеПоляДляРасчетаХешаГруппа();
|
||||
Иначе
|
||||
ИсключаемыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.ИсключаемыеПоляДляРасчетаХешаЭлемент();
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Поле Из Поля Цикл
|
||||
Если ИсключаемыеПоля.Свойство(Поле)
|
||||
Или СтрНачинаетсяС(Поле, "Служеб_") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
мКлючи.Добавить(Поле);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый Структура(СтрСоединить(мКлючи, ","));
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обновляет хеш элемента в регистре, устанавливая при этом ручное изменение.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - предопределенный элемент.
|
||||
//
|
||||
Процедура ОбновитьХешЭлемента(Объект) Экспорт
|
||||
|
||||
Флаг = пбп_ОбщегоНазначенияСлужебныйКлиентСервер
|
||||
.СвойствоСтруктуры(Объект.ДополнительныеСвойства, "РучноеИзменение", Истина);
|
||||
|
||||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(Объект.Ссылка, Объект.ЭтоГруппа, Флаг);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Создает запись регистра с заданными параметрами.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникСсылка, ПланВидовХарактеристикСсылка - Ссылка на предопределенный элемент.
|
||||
// ЭтоГруппа - Булево - - Признак того что элемент является группой.
|
||||
// КлючиХеша - Структура, Неопределено - Если ключи хеша не переданы, то они будут сформированы заново.
|
||||
//
|
||||
Процедура СоздатьЗаписьСостоянияПредопределенногоЭлемента(Объект, ЭтоГруппа, КлючиХеша = Неопределено) Экспорт
|
||||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.СоздатьЗаписьРегистра(Объект, ЭтоГруппа, КлючиХеша);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура СоздатьЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Родители, ЗаполнитьРодителя = Ложь)
|
||||
|
||||
Если СтрокаТаблицы.ЭтоГруппа Тогда
|
||||
СоздатьПредопределеннуюГруппу(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Родители);
|
||||
Иначе
|
||||
СоздатьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Родители, ЗаполнитьРодителя);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьПредопределеннуюГруппу(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Группы)
|
||||
|
||||
НоваяГруппа = МенеджерОбъекта.СоздатьГруппу();
|
||||
|
||||
ЗаполнитьЗначенияСвойств(НоваяГруппа, СтрокаТаблицы, "Наименование,ИдентификаторНастройки");
|
||||
Если ЗначениеЗаполнено(СтрокаТаблицы.Родитель) Тогда
|
||||
Родитель = Группы.Получить(СтрокаТаблицы.Родитель);
|
||||
ЗаполнитьЗначениеПоУмолчанию(МенеджерОбъекта, НоваяГруппа);
|
||||
|
||||
Если ЗначениеЗаполнено(СтрокаТаблицы.ИдентификаторРодитель) Тогда
|
||||
Родитель = Группы.Получить(СтрокаТаблицы.ИдентификаторРодитель);
|
||||
НоваяГруппа.Родитель = Родитель;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
НоваяГруппа.Записать();
|
||||
ЗаписатьЭлементИСвязанныеДанные(НоваяГруппа, КлючиХеша);
|
||||
Исключение
|
||||
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки());
|
||||
КонецПопытки;
|
||||
@ -267,47 +379,85 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Родители, ЗаполнитьРодителя = Ложь)
|
||||
Процедура СоздатьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Родители, ЗаполнитьРодителя = Ложь)
|
||||
|
||||
НовыйЭлемент = МенеджерОбъекта.СоздатьЭлемент();
|
||||
|
||||
ЗаполнитьЗначенияСвойств(НовыйЭлемент, СтрокаТаблицы);
|
||||
Если ЗаполнитьРодителя И ЗначениеЗаполнено(СтрокаТаблицы.Родитель) Тогда
|
||||
Родитель = Родители.Получить(СтрокаТаблицы.Родитель);
|
||||
ЗаполнитьЗначениеПоУмолчанию(МенеджерОбъекта, НовыйЭлемент);
|
||||
|
||||
Если ЗаполнитьРодителя И ЗначениеЗаполнено(СтрокаТаблицы.ИдентификаторРодитель) Тогда
|
||||
Родитель = Родители.Получить(СтрокаТаблицы.ИдентификаторРодитель);
|
||||
НовыйЭлемент.Родитель = Родитель;
|
||||
КонецЕсли;
|
||||
|
||||
// инициализация значения по умолчанию
|
||||
ПроверяемыйТип = ТипЗнч(МенеджерОбъекта);
|
||||
Если ПроверяемыйТип = Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения") Тогда
|
||||
НовыйЭлемент.Значение = СтрокаТаблицы.ТипЗначения.ПривестиЗначение();
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
НовыйЭлемент.Записать();
|
||||
ЗаписатьЭлементИСвязанныеДанные(НовыйЭлемент, КлючиХеша);
|
||||
Исключение
|
||||
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки());
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбновитьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Родители)
|
||||
Процедура ОбновитьЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Родители, ЗаполнитьРодителя = Ложь)
|
||||
|
||||
Если Не ЗначениеЗаполнено(СтрокаТаблицы.Служеб_СсылкаНаПредопределенныйЭлемент) Тогда
|
||||
Если Не ЗначениеЗаполнено(СтрокаТаблицы.Служеб_ПредопределенныйЭлемент) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Элемент = СтрокаТаблицы.Служеб_СсылкаНаПредопределенныйЭлемент.ПолучитьОбъект();
|
||||
Элемент.Родитель = Родители[СтрокаТаблицы.Родитель];
|
||||
Элемент = СтрокаТаблицы.Служеб_ПредопределенныйЭлемент.ПолучитьОбъект();
|
||||
Если Элемент.ПометкаУдаления Тогда
|
||||
Элемент.УстановитьПометкуУдаления(Ложь, Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
РодительОтличается = Ложь;
|
||||
Если ЗаполнитьРодителя Тогда
|
||||
Если Не ПустаяСтрока(СтрокаТаблицы.ИдентификаторРодитель) Или ЗначениеЗаполнено(Элемент.Родитель) Тогда
|
||||
НовыйРодитель = Родители[СтрокаТаблицы.ИдентификаторРодитель];
|
||||
РодительОтличается = Элемент.Родитель <> НовыйРодитель;
|
||||
Если РодительОтличается Тогда
|
||||
Элемент.Родитель = НовыйРодитель;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
СписокСвойств = "";
|
||||
ИсключаяСвойства = "";
|
||||
Если Элемент.ЭтоГруппа Тогда
|
||||
СписокСвойств = "Наименование,ИдентификаторНастройки";
|
||||
Иначе
|
||||
ИсключаяСвойства = "Родитель";
|
||||
КонецЕсли;
|
||||
ЗаполнитьЗначенияСвойств(Элемент, СтрокаТаблицы, СписокСвойств, ИсключаяСвойства);
|
||||
|
||||
ЗаполнитьЗначениеПоУмолчанию(МенеджерОбъекта, Элемент);
|
||||
|
||||
Попытка
|
||||
Элемент.Записать();
|
||||
СообщитьОбИзмененииРасположенияЭлемента(Элемент);
|
||||
ЗаписатьЭлементИСвязанныеДанные(Элемент, КлючиХеша, Истина);
|
||||
СообщитьОбИзмененииЭлемента(Элемент);
|
||||
Если РодительОтличается Тогда
|
||||
СообщитьОбИзмененииРасположенияЭлемента(Элемент);
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки());
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьЗначениеПоУмолчанию(МенеджерОбъекта, Элемент)
|
||||
|
||||
ПроверяемыйТип = ТипЗнч(МенеджерОбъекта);
|
||||
Если ПроверяемыйТип = Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения")
|
||||
И Не Элемент.ЭтоГруппа Тогда
|
||||
Элемент.Значение = Элемент.ТипЗначения.ПривестиЗначение();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьФлагРучноеИзменение(Элемент)
|
||||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьФлагРучногоИзменения(Элемент, Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПометитьНаУдалениеВсеВложения(ИерархическаяВыборка, ТаблицаАктуальныхЭлементов)
|
||||
|
||||
Пока ИерархическаяВыборка.Следующий() Цикл
|
||||
@ -338,6 +488,8 @@
|
||||
Возврат "ПланВидовХарактеристик.пбп_ПредопределенныеЗначения";
|
||||
КонецФункции
|
||||
|
||||
#Область СообщенияОСобытии
|
||||
|
||||
Процедура СообщитьОПомеченномНаУдалениеЭлементе(Элемент)
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Элемент ''%1'' помечен на удаление';
|
||||
@ -366,4 +518,83 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СообщитьОбИзмененииЭлемента(Элемент)
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Элемент ''%1'' успешно обновлен!';
|
||||
|en = 'Item ''%1'' was successfully updated!'");
|
||||
ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ТекстСообщения,
|
||||
Элемент.Ссылка);
|
||||
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Процедура ЗаполнитьРодителейЭлементов(Таблица, Параметры)
|
||||
|
||||
Идентификаторы = Таблица.ВыгрузитьКолонку("ИдентификаторРодитель");
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| пбп_ПредопределенныеЗначения.Ссылка КАК Ссылка,
|
||||
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки КАК ИдентификаторНастройки
|
||||
|ИЗ
|
||||
| %1 КАК пбп_ПредопределенныеЗначения
|
||||
|ГДЕ
|
||||
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки В(&ИдентификаторыРодитель)";
|
||||
|
||||
Запрос.Текст = СтрШаблон(Запрос.Текст, Параметры.ПолноеИмя);
|
||||
|
||||
Запрос.УстановитьПараметр("ИдентификаторыРодитель", Идентификаторы);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
Для Каждого Строка Из Таблица Цикл
|
||||
ВыборкаДетальныеЗаписи.Сбросить();
|
||||
Если ВыборкаДетальныеЗаписи.НайтиСледующий(Строка.ИдентификаторРодитель, "ИдентификаторНастройки") Тогда
|
||||
Строка.Родитель = ВыборкаДетальныеЗаписи.Ссылка;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаписатьЭлементИСвязанныеДанные(Элемент, КлючиХеша, Обновление = Ложь)
|
||||
|
||||
Элемент.ДополнительныеСвойства.Вставить("РучноеИзменение", Ложь);
|
||||
Элемент.Записать();
|
||||
|
||||
Если Обновление Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СоздатьЗаписьСостоянияПредопределенногоЭлемента(Элемент.Ссылка, Элемент.ЭтоГруппа, КлючиХеша);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИмяОбъектаМетаданных(ПолноеИмяОбъекта)
|
||||
Если ПустаяСтрока(ПолноеИмяОбъекта) Тогда
|
||||
Возврат ПолноеИмяОбъектаПоУмолчанию();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПолноеИмяОбъекта;
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьСтроку(Строка, Выборка, ТаблицаКонфликтныхЭлементов, СтрокиДляУдаления)
|
||||
Строка.Служеб_ПредопределенныйЭлемент = Выборка.Ссылка;
|
||||
|
||||
Если Выборка.ХешОтсутствует Тогда
|
||||
Строка.Служеб_СоздатьЗаписьРегистра = Истина;
|
||||
ИначеЕсли Выборка.ПометкаУдаления Тогда
|
||||
Строка.Служеб_ОбновитьЭлемент = Истина;
|
||||
Иначе
|
||||
СтрокиДляУдаления.Добавить(Строка);
|
||||
СтрокаКонфликт = ТаблицаКонфликтныхЭлементов.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаКонфликт, Строка);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<CommonModule uuid="3fbd8525-640c-4b8b-bbdd-a21eabd65ce4">
|
||||
<Properties>
|
||||
<Name>пбп_ПредопределенныеЗначенияВызовСервера</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Предопределенные значения вызов сервера</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>true</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@ -0,0 +1,43 @@
|
||||
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
|
||||
// включая доработку типовых конфигураций.
|
||||
//
|
||||
// Copyright First BIT company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
// URL: https://github.com/firstBitSportivnaya/PSSL/
|
||||
//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ИнициализироватьПредопределенныеЗначения(ИмяФормы) Экспорт
|
||||
|
||||
Менеджер = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоПолномуИмени(ИмяФормы);
|
||||
ТаблицаКонфликтныхЭлементов = пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Менеджер);
|
||||
|
||||
АдресТаблицы = "";
|
||||
ЕстьСтроки = Ложь;
|
||||
Если ЗначениеЗаполнено(ТаблицаКонфликтныхЭлементов) Тогда
|
||||
АдресТаблицы = ПоместитьВоВременноеХранилище(ТаблицаКонфликтныхЭлементов, Новый УникальныйИдентификатор);
|
||||
ЕстьСтроки = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатОбработки = Новый Структура;
|
||||
РезультатОбработки.Вставить("АдресТаблицы", АдресТаблицы);
|
||||
РезультатОбработки.Вставить("ЕстьСтроки", ЕстьСтроки);
|
||||
|
||||
Возврат Новый ФиксированнаяСтруктура(РезультатОбработки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
27
src/cf/CommonModules/пбп_ПредопределенныеЗначенияКлиент.xml
Normal file
27
src/cf/CommonModules/пбп_ПредопределенныеЗначенияКлиент.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<CommonModule uuid="c6e8f51e-b8c9-4b8b-9f6e-4d216d76bad3">
|
||||
<Properties>
|
||||
<Name>пбп_ПредопределенныеЗначенияКлиент</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Предопределенные значения клиент</v8:content>
|
||||
</v8:item>
|
||||
<v8:item>
|
||||
<v8:lang>en</v8:lang>
|
||||
<v8:content>Working with dialogues server</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>true</ClientManagedApplication>
|
||||
<Server>false</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@ -0,0 +1,49 @@
|
||||
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
|
||||
// включая доработку типовых конфигураций.
|
||||
//
|
||||
// Copyright First BIT company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
// URL: https://github.com/firstBitSportivnaya/PSSL/
|
||||
//
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Работа с диалогами (сервер): для серверных методов работы с диалогами.
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Создание предопределенных значений на основании заполненной таблицы
|
||||
//
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения - Форма из которой запущена обработка обновление предопределенных элементов
|
||||
//
|
||||
Процедура СоздатьОбновитьПредопределенныеЗначения(Форма) Экспорт
|
||||
|
||||
// Возвращаем адрес временного хранилища на таблицу и есть ли конфликты
|
||||
РезультатОбработки =
|
||||
пбп_ПредопределенныеЗначенияВызовСервера.ИнициализироватьПредопределенныеЗначения(Форма.ИмяФормы);
|
||||
|
||||
Если РезультатОбработки.ЕстьСтроки = Ложь Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("АдресТаблицы", РезультатОбработки.АдресТаблицы);
|
||||
Параметры.Вставить("ИмяФормыВладельца", Форма.ИмяФормы);
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов", Параметры, Форма);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -1,152 +1,169 @@
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Возвращает таблицу предопределенных элементов справочника
|
||||
// ПланыВидовХарактеристикСсылка.пбп_ПредопределенныеЗначения.
|
||||
// Инициализирует предопределенные значения из таблицы.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
|
||||
// ТаблицаЗначений - Таблица предопределенных элементов.
|
||||
//
|
||||
Функция ПредопределенныеЗначения() Экспорт
|
||||
Функция ТаблицаПредопределенныхЭлементов(Менеджер) Экспорт
|
||||
|
||||
Результат = ТаблицаПредопределенных();
|
||||
Колонки = КолонкиПредопределенныхЭлементов(Менеджер);
|
||||
|
||||
Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииСозданияТаблицПредопределенныхЭлементов()
|
||||
.Получить(ТипЗнч(Менеджер));
|
||||
|
||||
Если Не ЗначениеЗаполнено(Выражение) Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Таблица = Новый ТаблицаЗначений;
|
||||
СоздатьКолонкиТаблицыПредопределенныхЭлементов(Колонки, Таблица);
|
||||
|
||||
Параметры = Новый Массив;
|
||||
Параметры.Добавить(Таблица);
|
||||
|
||||
пбп_ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации(Выражение, Параметры);
|
||||
|
||||
Возврат Параметры[0];
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет таблицу предопределенных элементов справочника
|
||||
// ПланыВидовХарактеристикСсылка.пбп_ПредопределенныеЗначения.
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - ТаблицаЗначений - Таблица предопределенных элементов.
|
||||
//
|
||||
Процедура ПредопределенныеЗначения(Таблица) Экспорт
|
||||
|
||||
ОписаниеЧисло = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,0));
|
||||
|
||||
// Добавление
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Интеграции";
|
||||
НоваяНастройка.ИдентификаторНастройки = "Интеграции";
|
||||
НоваяНастройка.ЭтоГруппа = Истина;
|
||||
НоваяНастройка.УровеньИерархии = 0;
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Интеграции локал";
|
||||
НоваяНастройка.ИдентификаторНастройки = "Интеграции_локал";
|
||||
НоваяНастройка.ЭтоГруппа = Истина;
|
||||
НоваяНастройка.Родитель = "Интеграции";
|
||||
НоваяНастройка.ИдентификаторРодитель = "Интеграции";
|
||||
НоваяНастройка.УровеньИерархии = 1;
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Тестовая";
|
||||
НоваяНастройка.ИдентификаторНастройки = "Тестовая";
|
||||
НоваяНастройка.ЭтоГруппа = Истина;
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Количество дней хранения истории интеграции";
|
||||
НоваяНастройка.ИдентификаторНастройки = "КолДнейХраненияИсторииИнтеграции";
|
||||
НоваяНастройка.Пароль = Ложь;
|
||||
НоваяНастройка.СписокЗначений = Ложь;
|
||||
НоваяНастройка.ТипЗначения = ОписаниеЧисло;
|
||||
НоваяНастройка.Родитель = "Интеграции";
|
||||
НоваяНастройка.ИдентификаторРодитель = "Интеграции";
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Количество дней хранения ошибок истории интеграции";
|
||||
НоваяНастройка.ИдентификаторНастройки = "КолДнейХраненияОшибокИсторииИнтеграции";
|
||||
НоваяНастройка.Пароль = Ложь;
|
||||
НоваяНастройка.СписокЗначений = Ложь;
|
||||
НоваяНастройка.ТипЗначения = ОписаниеЧисло;
|
||||
НоваяНастройка.Родитель = "Интеграции";
|
||||
НоваяНастройка.ИдентификаторРодитель = "Интеграции";
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка.Наименование = "Тест_бул";
|
||||
НоваяНастройка.ИдентификаторНастройки = "Тест_бул";
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Тест булево";
|
||||
НоваяНастройка.ИдентификаторНастройки = "Тест_булево";
|
||||
НоваяНастройка.Пароль = Ложь;
|
||||
НоваяНастройка.СписокЗначений = Ложь;
|
||||
НоваяНастройка.ТипЗначения = Новый ОписаниеТипов("Булево");
|
||||
НоваяНастройка.Родитель = "Тестовая";
|
||||
НоваяНастройка.ИдентификаторРодитель = "Тестовая";
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка.Наименование = "Тест_список";
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Тест список";
|
||||
НоваяНастройка.ИдентификаторНастройки = "Тест_список";
|
||||
НоваяНастройка.Пароль = Ложь;
|
||||
НоваяНастройка.СписокЗначений = Истина;
|
||||
НоваяНастройка.ТипЗначения = Новый ОписаниеТипов("Строка");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_ИнтегрируемыеСистемы.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
|
||||
// Заполняет таблицу предопределенных элементов справочника СправочникСсылка.пбп_ИнтегрируемыеСистемы.
|
||||
//
|
||||
Функция ПредопределенныеЗначенияИнтегрируемыеСистемы() Экспорт
|
||||
|
||||
Результат = ТаблицаПредопределенныхИнтегрируемыеСистемы();
|
||||
// Параметры:
|
||||
// Таблица - ТаблицаЗначений - Таблица предопределенных элементов.
|
||||
//
|
||||
Процедура ПредопределенныеЗначенияИнтегрируемыеСистемы(Таблица) Экспорт
|
||||
|
||||
// Добавление
|
||||
НоваяСистема = Результат.Добавить();
|
||||
НоваяСистема = Таблица.Добавить();
|
||||
НоваяСистема.Наименование = "Система N";
|
||||
НоваяСистема.ИдентификаторНастройки = "СистемаN";
|
||||
|
||||
НоваяСистема = Результат.Добавить();
|
||||
НоваяСистема = Таблица.Добавить();
|
||||
НоваяСистема.Наименование = "Rabbit Mq";
|
||||
НоваяСистема.ИдентификаторНастройки = "RabbitMq";
|
||||
|
||||
НоваяСистема = Результат.Добавить();
|
||||
НоваяСистема = Таблица.Добавить();
|
||||
НоваяСистема.Наименование = "Kafka";
|
||||
НоваяСистема.ИдентификаторНастройки = "Kafka";
|
||||
|
||||
НоваяСистема = Результат.Добавить();
|
||||
НоваяСистема = Таблица.Добавить();
|
||||
НоваяСистема.Наименование = "Active directory";
|
||||
НоваяСистема.ИдентификаторНастройки = "ActiveDirectory";
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_МетодыИнтеграции.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
|
||||
// Заполняет таблицу предопределенных элементов справочника СправочникСсылка.пбп_МетодыИнтеграции.
|
||||
//
|
||||
Функция ПредопределенныеЗначенияИнтеграционныеПотоки() Экспорт
|
||||
|
||||
Результат = ТаблицаПредопределенныхИнтеграционныеПотоки();
|
||||
// Параметры:
|
||||
// Таблица - ТаблицаЗначений - Таблица предопределенных элементов.
|
||||
//
|
||||
Процедура ПредопределенныеЗначенияИнтеграционныеПотоки(Таблица) Экспорт
|
||||
|
||||
// Добавление
|
||||
НовыйМетод = Результат.Добавить();
|
||||
НовыйМетод = Таблица.Добавить();
|
||||
НовыйМетод.Наименование = "Интеграционный поток системы N";
|
||||
НовыйМетод.ИдентификаторНастройки = "ИнтеграционныйПотокСистемыN";
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_НастройкиИнтеграции.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
|
||||
// Заполняет таблицу предопределенных элементов справочника СправочникСсылка.пбп_НастройкиИнтеграции.
|
||||
//
|
||||
Функция ПредопределенныеЗначенияНастройкиИнтеграции() Экспорт
|
||||
|
||||
Результат = ТаблицаПредопределенныхНастройкиИнтеграции();
|
||||
// Параметры:
|
||||
// Таблица - ТаблицаЗначений - Таблица предопределенных элементов.
|
||||
//
|
||||
Процедура ПредопределенныеЗначенияНастройкиИнтеграции(Таблица) Экспорт
|
||||
|
||||
// Добавление
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Интеграция с системой N";
|
||||
НоваяНастройка.ИдентификаторНастройки = "ИнтеграцияССистемойN";
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Rabbit Mq";
|
||||
НоваяНастройка.ИдентификаторНастройки = "RabbitMq";
|
||||
НоваяНастройка.ИнтегрируемаяСистема = пбп_ИнтеграцииСлужебный.ИнтегрируемаяСистема("RabbitMq");
|
||||
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.RabbitMq;
|
||||
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Simple Kafka";
|
||||
НоваяНастройка.ИдентификаторНастройки = "SimpleKafka";
|
||||
НоваяНастройка.ИнтегрируемаяСистема = пбп_ИнтеграцииСлужебный.ИнтегрируемаяСистема("Kafka");
|
||||
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.Kafka;
|
||||
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;
|
||||
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Active directory";
|
||||
НоваяНастройка.ИдентификаторНастройки = "ActiveDirectory";
|
||||
НоваяНастройка.СтрокаПодключения = "Provider=""ADsDSOObject""";
|
||||
@ -156,114 +173,227 @@
|
||||
НоваяНастройка.ИмяОбъекта = "ADODB.Connection";
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_ТипСоответствияОбъектовИБ.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
|
||||
// Заполняет таблицу предопределенных элементов справочника СправочникСсылка.пбп_ТипСоответствияОбъектовИБ.
|
||||
//
|
||||
Функция ПредопределенныеЗначенияТипСоответствияОбъектовИБ() Экспорт
|
||||
|
||||
Результат = ТаблицаПредопределенныхТипСоответствияОбъектовИБ();
|
||||
// Параметры:
|
||||
// Таблица - ТаблицаЗначений - Таблица предопределенных элементов.
|
||||
//
|
||||
Процедура ПредопределенныеЗначенияТипСоответствияОбъектовИБ(Таблица) Экспорт
|
||||
|
||||
// Добавление
|
||||
НоваяНастройка = Результат.Добавить();
|
||||
НоваяНастройка = Таблица.Добавить();
|
||||
НоваяНастройка.Наименование = "Тест";
|
||||
НоваяНастройка.ИдентификаторНастройки = "Тест";
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Результат;
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает колонки таблицы предопределенных элементов.
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
//
|
||||
Функция КолонкиПредопределенныхЭлементов(Менеджер) Экспорт
|
||||
|
||||
Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияКолонокПредопределенныхЭлементов()
|
||||
.Получить(ТипЗнч(Менеджер));
|
||||
|
||||
Если Не ЗначениеЗаполнено(Выражение) Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Колонки = ОбщиеКолонки(Менеджер);
|
||||
|
||||
Параметры = Новый Массив;
|
||||
Параметры.Добавить(Менеджер);
|
||||
|
||||
ДопКолонки = пбп_ОбщегоНазначенияСлужебный.ВычислитьВБезопасномРежиме(Выражение);
|
||||
|
||||
пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру(Колонки, ДопКолонки);
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет общие колонки таблицы предопределенных значений.
|
||||
#Область СтруктурыКолонокТаблиц
|
||||
|
||||
// Возвращает колонки предопределенные значения
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - ТаблицаЗначений - Таблица для заполнения предопределенными.
|
||||
//
|
||||
Процедура ОбщиеКолонкиТаблицыПредопределенныхЗначений(Таблица) Экспорт
|
||||
Функция КолонкиПредопределенныеЗначения() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
|
||||
ОписаниеСтрока = Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150));
|
||||
ОписаниеБулево = Новый ОписаниеТипов("Булево");
|
||||
|
||||
Таблица.Колонки.Добавить("ИдентификаторНастройки", ОписаниеСтрока);
|
||||
Таблица.Колонки.Добавить("Наименование", ОписаниеСтрока);
|
||||
Таблица.Колонки.Добавить("ЭтоГруппа", ОписаниеБулево);
|
||||
Таблица.Колонки.Добавить("Родитель", ОписаниеСтрока);
|
||||
Таблица.Колонки.Добавить("УровеньИерархии", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(2,0)));
|
||||
// Служебные колонки
|
||||
Таблица.Колонки.Добавить("Служеб_ОбновитьРасположениеЭлемента", ОписаниеБулево);
|
||||
Таблица.Колонки.Добавить("Служеб_СсылкаНаПредопределенныйЭлемент", Неопределено);
|
||||
// Добавление
|
||||
Колонки.Вставить("Пароль", ОписаниеБулево);
|
||||
Колонки.Вставить("СписокЗначений", ОписаниеБулево);
|
||||
Колонки.Вставить("ТипЗначения", Новый ОписаниеТипов("ОписаниеТипов"));
|
||||
// КонецДобавления
|
||||
|
||||
КонецПроцедуры
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки интегрируемые системы
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
//
|
||||
Функция КолонкиИнтегрируемыеСистемы() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки интеграционные потоки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
//
|
||||
Функция КолонкиИнтеграционныеПотоки() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки настройки интеграции
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
//
|
||||
Функция КолонкиНастройкиИнтеграции() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
|
||||
// Добавление
|
||||
Колонки.Вставить("ИнтегрируемаяСистема" , Новый ОписаниеТипов("СправочникСсылка.пбп_ИнтегрируемыеСистемы"));
|
||||
Колонки.Вставить("ТипИнтеграции" , Новый ОписаниеТипов("СправочникСсылка.пбп_ТипыИнтеграций"));
|
||||
Колонки.Вставить("СтрокаПодключения" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(200));
|
||||
Колонки.Вставить("ТипАвторизации" , Новый ОписаниеТипов("ПеречислениеСсылка.пбп_ТипыАвторизации"));
|
||||
Колонки.Вставить("ИмяОбъекта" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(100));
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки тип соответствия объектов ИБ
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
//
|
||||
Функция КолонкиТипСоответствияОбъектовИБ() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Возвращает исключаемые поля для расчета хеша элемент
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Исключаемые поля
|
||||
//
|
||||
Функция ИсключаемыеПоляДляРасчетаХешаЭлемент() Экспорт
|
||||
|
||||
Поля = Новый Структура;
|
||||
Поля.Вставить("ХешСумма");
|
||||
Поля.Вставить("УровеньИерархии");
|
||||
Поля.Вставить("ИдентификаторРодитель");
|
||||
|
||||
Возврат Поля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает исключаемые поля для расчета хеша группа
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Исключаемые поля
|
||||
//
|
||||
Функция ИсключаемыеПоляДляРасчетаХешаГруппа() Экспорт
|
||||
|
||||
Поля = Новый Структура;
|
||||
Поля.Вставить("ХешСумма");
|
||||
Поля.Вставить("УровеньИерархии");
|
||||
Поля.Вставить("ИдентификаторРодитель");
|
||||
Поля.Вставить("Пароль");
|
||||
Поля.Вставить("СписокЗначений");
|
||||
|
||||
Возврат Поля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ТаблицаПредопределенных()
|
||||
Функция ОбщиеКолонки(Менеджер)
|
||||
|
||||
массив = Новый Массив;
|
||||
массив.Добавить(ТипЗнч(Менеджер.ПустаяСсылка()));
|
||||
ОписаниеТиповЭлемента = Новый ОписаниеТипов(массив);
|
||||
|
||||
Колонки = Новый Структура;
|
||||
|
||||
ОписаниеСтрока = Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(150));
|
||||
ОписаниеБулево = Новый ОписаниеТипов("Булево");
|
||||
|
||||
Результат = Новый ТаблицаЗначений;
|
||||
Колонки.Вставить("ИдентификаторНастройки", ОписаниеСтрока);
|
||||
Колонки.Вставить("Наименование", ОписаниеСтрока);
|
||||
Колонки.Вставить("ЭтоГруппа", ОписаниеБулево);
|
||||
Колонки.Вставить("Родитель", ОписаниеТиповЭлемента);
|
||||
|
||||
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
|
||||
Колонки.Вставить("УровеньИерархии", Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(2,0)));
|
||||
Колонки.Вставить("ИдентификаторРодитель", ОписаниеСтрока);
|
||||
Колонки.Вставить("ХешСумма", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(32)));
|
||||
|
||||
Результат.Колонки.Добавить("Пароль", ОписаниеБулево);
|
||||
Результат.Колонки.Добавить("СписокЗначений", ОписаниеБулево);
|
||||
Результат.Колонки.Добавить("ТипЗначения", Новый ОписаниеТипов("ОписаниеТипов"));
|
||||
Колонки.Вставить("Служеб_ОбновитьЭлемент", ОписаниеБулево);
|
||||
Колонки.Вставить("Служеб_УстановитьФлагРучноеИзменение", ОписаниеБулево);
|
||||
Колонки.Вставить("Служеб_ПредопределенныйЭлемент", ОписаниеТиповЭлемента);
|
||||
Колонки.Вставить("Служеб_СоздатьЗаписьРегистра", ОписаниеБулево);
|
||||
|
||||
Возврат Результат;
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТаблицаПредопределенныхИнтегрируемыеСистемы()
|
||||
Процедура СоздатьКолонкиТаблицыПредопределенныхЭлементов(СтруктураСКолонками, Таблица)
|
||||
|
||||
Результат = Новый ТаблицаЗначений;
|
||||
Для Каждого КлючЗначение Из СтруктураСКолонками Цикл
|
||||
Если Таблица.Колонки.Найти(КлючЗначение.Ключ) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Таблица.Колонки.Добавить(КлючЗначение.Ключ, КлючЗначение.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТаблицаПредопределенныхИнтеграционныеПотоки()
|
||||
|
||||
Результат = Новый ТаблицаЗначений;
|
||||
|
||||
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТаблицаПредопределенныхНастройкиИнтеграции()
|
||||
|
||||
Результат = Новый ТаблицаЗначений;
|
||||
|
||||
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
|
||||
|
||||
Результат.Колонки.Добавить("ИнтегрируемаяСистема" , Новый ОписаниеТипов("СправочникСсылка.пбп_ИнтегрируемыеСистемы"));
|
||||
Результат.Колонки.Добавить("ТипИнтеграции" , Новый ОписаниеТипов("СправочникСсылка.пбп_ТипыИнтеграций"));
|
||||
Результат.Колонки.Добавить("СтрокаПодключения" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(200));
|
||||
Результат.Колонки.Добавить("ТипАвторизации" , Новый ОписаниеТипов("ПеречислениеСсылка.пбп_ТипыАвторизации"));
|
||||
Результат.Колонки.Добавить("ИмяОбъекта" , пбп_ОбщегоНазначенияСервер.ОписаниеТипаСтрока(100));
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТаблицаПредопределенныхТипСоответствияОбъектовИБ()
|
||||
|
||||
Результат = Новый ТаблицаЗначений;
|
||||
|
||||
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
|
23
src/cf/CommonModules/пбп_ПредопределенныеЗначенияПовтИсп.xml
Normal file
23
src/cf/CommonModules/пбп_ПредопределенныеЗначенияПовтИсп.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<CommonModule uuid="6054e0d2-4fd6-4a4c-b946-01009f30e5ee">
|
||||
<Properties>
|
||||
<Name>пбп_ПредопределенныеЗначенияПовтИсп</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Предопределенные значения повт исп</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>true</ExternalConnection>
|
||||
<ClientOrdinaryApplication>true</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DuringSession</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@ -0,0 +1,93 @@
|
||||
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
|
||||
// включая доработку типовых конфигураций.
|
||||
//
|
||||
// Copyright First BIT company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
// URL: https://github.com/firstBitSportivnaya/PSSL/
|
||||
//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Возвращает соответствие типа с функцией для получения таблицы предопределенных элементов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение:
|
||||
// * Ключ - ПланВидовХарактеристикМенеджер, СправочникМенеджер
|
||||
// * Значение - Строка
|
||||
//
|
||||
Функция ФункцииСозданияТаблицПредопределенныхЭлементов() Экспорт
|
||||
|
||||
Соответствие = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
Соответствие.Вставить(Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначения");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ИнтегрируемыеСистемы"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияИнтегрируемыеСистемы");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ИнтеграционныеПотоки"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияИнтеграционныеПотоки");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_НастройкиИнтеграции"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияНастройкиИнтеграции");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ТипСоответствияОбъектовИБ"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияТипСоответствияОбъектовИБ");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Соответствие;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает соответствие типа с функцией для получения колонок таблицы предопределенных элементов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение:
|
||||
// * Ключ - ПланВидовХарактеристикМенеджер, СправочникМенеджер
|
||||
// * Значение - Строка
|
||||
//
|
||||
Функция ФункцииПолученияКолонокПредопределенныхЭлементов() Экспорт
|
||||
|
||||
Соответствие = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
Соответствие.Вставить(Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиПредопределенныеЗначения");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ИнтегрируемыеСистемы"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиИнтегрируемыеСистемы");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ИнтеграционныеПотоки"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиИнтеграционныеПотоки");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_НастройкиИнтеграции"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиНастройкиИнтеграции");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ТипСоответствияОбъектовИБ"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиТипСоответствияОбъектовИБ");
|
||||
// КонецДобавления
|
||||
|
||||
ОбработатьСоответствиеФункцийКолонок(Соответствие);
|
||||
|
||||
Возврат Соответствие;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ОбработатьСоответствиеФункцийКолонок(Соответствие)
|
||||
|
||||
Для Каждого КлючЗначение Из Соответствие Цикл
|
||||
Соответствие[КлючЗначение.Ключ] = КлючЗначение.Значение + "()";
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -263,8 +263,58 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти // ПрограммныйИнтерфейс
|
||||
// Превращает строку camelCase в синоним
|
||||
//
|
||||
// Параметры:
|
||||
// ИсходнаяСтрока - Строка - Строка типа ИдентификаторНастройки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Синоним
|
||||
//
|
||||
Функция СинонимСтроки(ИсходнаяСтрока) Экспорт
|
||||
|
||||
Результат = пбп_СтроковыеФункцииСлужебныйКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИсходнаяСтрока);
|
||||
Если Результат.Количество() > 1 Тогда
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
ДлинаСтроки = СтрДлина(ИсходнаяСтрока) + 1;
|
||||
Старт = 1;
|
||||
Конец = 0;
|
||||
Части = Новый Массив;
|
||||
Для Конец = 2 По ДлинаСтроки Цикл
|
||||
КодСимвола = КодСимвола(Сред(ИсходнаяСтрока, Конец, 1));
|
||||
Если СимволВерхнегоРегистра(КодСимвола) Или Конец = ДлинаСтроки Тогда
|
||||
КолСимволов = Конец - Старт;
|
||||
Части.Добавить(Сред(ИсходнаяСтрока, Старт, ?(КолСимволов = 0, ДлинаСтроки - Старт, КолСимволов)));
|
||||
Старт = Конец;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Синоним = НРег(СтрСоединить(Части, " "));
|
||||
Синоним = ВРег(Лев(Синоним, 1)) + Сред(Синоним,2);
|
||||
|
||||
Возврат Синоним;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти // СлужебныеПроцедурыИФункции
|
||||
Функция СимволВерхнегоРегистра(КодСимвола)
|
||||
|
||||
минКирилица = 1040;
|
||||
максКирилица = 1070;
|
||||
минЛатиница = 65;
|
||||
максЛатиница = 90;
|
||||
|
||||
Если (КодСимвола >= минКирилица И КодСимвола <= максКирилица)
|
||||
Или (КодСимвола >= минЛатиница И КодСимвола <= максЛатиница) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -57,7 +57,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
|
||||
</DefaultRoles>
|
||||
<Vendor>Первый БИТ</Vendor>
|
||||
<Version>1.0.2.7</Version>
|
||||
<Version>1.0.3.8</Version>
|
||||
<UpdateCatalogAddress/>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
|
||||
@ -260,11 +260,13 @@
|
||||
<Role>пбп_РедактированиеПланаВидовХарактеристикПредопределенныеЗначения</Role>
|
||||
<Role>пбп_РедактированиеПользовательскихФункций</Role>
|
||||
<Role>пбп_РедактированиеРегистраСведенийСоответствияОбъектовИБ</Role>
|
||||
<Role>пбп_РедактированиеСостоянийПредопределенныхЭлементов</Role>
|
||||
<Role>пбп_РедактированиеТиповСоответствияОбъектовИБ</Role>
|
||||
<Role>пбп_ЧтениеКонстантыИспользоватьПользовательскиеФункции</Role>
|
||||
<Role>пбп_ЧтениеНастроекОтборовОбъектов</Role>
|
||||
<Role>пбп_ЧтениеПланаВидовХарактеристикПредопределенныеЗначения</Role>
|
||||
<Role>пбп_ЧтениеРегистраСведенийСоответствияОбъектовИБ</Role>
|
||||
<Role>пбп_ЧтениеСостоянийПредопределенныхЭлементов</Role>
|
||||
<Role>пбп_ЧтениеТиповСоответствияОбъектовИБ</Role>
|
||||
<Role>пбп_ПросмотрИсторииИнтеграции</Role>
|
||||
<Role>ПолныеПрава</Role>
|
||||
@ -306,7 +308,10 @@
|
||||
<CommonModule>пбп_ПользователиКлиентСервер</CommonModule>
|
||||
<CommonModule>пбп_ПользователиСлужебный</CommonModule>
|
||||
<CommonModule>пбп_ПредопределенныеЗначения</CommonModule>
|
||||
<CommonModule>пбп_ПредопределенныеЗначенияВызовСервера</CommonModule>
|
||||
<CommonModule>пбп_ПредопределенныеЗначенияКлиент</CommonModule>
|
||||
<CommonModule>пбп_ПредопределенныеЗначенияПереопределяемый</CommonModule>
|
||||
<CommonModule>пбп_ПредопределенныеЗначенияПовтИсп</CommonModule>
|
||||
<CommonModule>пбп_РаботаСДиалогамиКлиент</CommonModule>
|
||||
<CommonModule>пбп_РаботаСДиалогамиСервер</CommonModule>
|
||||
<CommonModule>пбп_РаботаСКоллекциямиКлиентСервер</CommonModule>
|
||||
@ -343,8 +348,10 @@
|
||||
<DefinedType>пбп_Пользователи</DefinedType>
|
||||
<DefinedType>пбп_ТипыОбъектовСоответствийИБ</DefinedType>
|
||||
<DefinedType>пбп_УчетныеЗаписиЭлектроннойПочты</DefinedType>
|
||||
<DefinedType>пбп_ПредопределенныеВсеСсылкиПереопределяемый</DefinedType>
|
||||
<Constant>пбп_ИспользоватьПользовательскиеФункции</Constant>
|
||||
<CommonForm>пбп_ФормаВыбораПоля</CommonForm>
|
||||
<CommonForm>пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов</CommonForm>
|
||||
<Catalog>пбп_ИнтеграционныеПотоки</Catalog>
|
||||
<Catalog>пбп_ИнтегрируемыеСистемы</Catalog>
|
||||
<Catalog>пбп_ИсторияИнтеграции</Catalog>
|
||||
@ -362,7 +369,8 @@
|
||||
<Enum>пбп_ТипыАвторизации</Enum>
|
||||
<Enum>пбп_ФорматыИнтеграций</Enum>
|
||||
<InformationRegister>пбп_СоответствияОбъектовИБ</InformationRegister>
|
||||
<InformationRegister>пбп_СостоянияПредопределенныхЭлементов</InformationRegister>
|
||||
<ChartOfCharacteristicTypes>пбп_ПредопределенныеЗначения</ChartOfCharacteristicTypes>
|
||||
</ChildObjects>
|
||||
</Configuration>
|
||||
</MetaDataObject>
|
||||
</MetaDataObject>
|
||||
|
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<DefinedType uuid="07b32f1c-1f29-4f24-b80e-d46a632a69eb">
|
||||
<InternalInfo>
|
||||
<xr:GeneratedType name="DefinedType.пбп_ПредопределенныеВсеСсылкиПереопределяемый" category="DefinedType">
|
||||
<xr:TypeId>d2f123f9-0596-4050-bfda-f4a2168d11cb</xr:TypeId>
|
||||
<xr:ValueId>6c3a68be-33c5-43c4-b2d7-af577a6cc81d</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<Name>пбп_ПредопределенныеВсеСсылкиПереопределяемый</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Ссылки на все объекты с предопределенными элементами</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:Type>cfg:CatalogRef.пбп_НастройкиИнтеграции</v8:Type>
|
||||
<v8:Type>cfg:CatalogRef.пбп_ТипСоответствияОбъектовИБ</v8:Type>
|
||||
<v8:Type>cfg:CatalogRef.пбп_ИнтегрируемыеСистемы</v8:Type>
|
||||
<v8:Type>cfg:ChartOfCharacteristicTypesRef.пбп_ПредопределенныеЗначения</v8:Type>
|
||||
<v8:Type>cfg:CatalogRef.пбп_ИнтеграционныеПотоки</v8:Type>
|
||||
</Type>
|
||||
</Properties>
|
||||
</DefinedType>
|
||||
</MetaDataObject>
|
@ -0,0 +1,198 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<InformationRegister uuid="36dd52bc-2eb7-423a-bd64-659eb2958ca4">
|
||||
<InternalInfo>
|
||||
<xr:GeneratedType name="InformationRegisterRecord.пбп_СостоянияПредопределенныхЭлементов" category="Record">
|
||||
<xr:TypeId>87e4b2aa-c7c3-423d-8526-7a930c8e6236</xr:TypeId>
|
||||
<xr:ValueId>2b2ddb36-6d49-4502-8462-d4df0bf54617</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="InformationRegisterManager.пбп_СостоянияПредопределенныхЭлементов" category="Manager">
|
||||
<xr:TypeId>9976aae0-db4e-4d30-ac29-ee3442971415</xr:TypeId>
|
||||
<xr:ValueId>49fcecb9-b3b5-4825-b372-9ed7d303ad34</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="InformationRegisterSelection.пбп_СостоянияПредопределенныхЭлементов" category="Selection">
|
||||
<xr:TypeId>b5e0545f-6bbf-4c4d-8950-84cad50f3a94</xr:TypeId>
|
||||
<xr:ValueId>a90d8d30-a853-4000-b3c1-26a79fd2cf03</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="InformationRegisterList.пбп_СостоянияПредопределенныхЭлементов" category="List">
|
||||
<xr:TypeId>2b66ac27-c6b3-40fa-bb05-86b0ee788e33</xr:TypeId>
|
||||
<xr:ValueId>fd092390-5e4e-4a32-87a6-519d261a7f9b</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="InformationRegisterRecordSet.пбп_СостоянияПредопределенныхЭлементов" category="RecordSet">
|
||||
<xr:TypeId>198d833e-02cc-41c9-93f1-99ad4627c9cf</xr:TypeId>
|
||||
<xr:ValueId>44a41502-ba04-4276-826e-5d2759d88c62</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="InformationRegisterRecordKey.пбп_СостоянияПредопределенныхЭлементов" category="RecordKey">
|
||||
<xr:TypeId>8e26a08c-2f5b-4eb1-ac9e-324cdae4d186</xr:TypeId>
|
||||
<xr:ValueId>ca4050ea-1fe5-48e8-9356-6180e6033dc8</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="InformationRegisterRecordManager.пбп_СостоянияПредопределенныхЭлементов" category="RecordManager">
|
||||
<xr:TypeId>83b857ea-c5f2-4d10-893c-5b7b6631c9cd</xr:TypeId>
|
||||
<xr:ValueId>c025c68e-c8da-4803-8f8a-86ad8e18030c</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<Name>пбп_СостоянияПредопределенныхЭлементов</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Состояния предопределенных элементов</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<UseStandardCommands>true</UseStandardCommands>
|
||||
<EditType>InDialog</EditType>
|
||||
<DefaultRecordForm/>
|
||||
<DefaultListForm/>
|
||||
<AuxiliaryRecordForm/>
|
||||
<AuxiliaryListForm/>
|
||||
<InformationRegisterPeriodicity>Nonperiodical</InformationRegisterPeriodicity>
|
||||
<WriteMode>Independent</WriteMode>
|
||||
<MainFilterOnPeriod>false</MainFilterOnPeriod>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<DataLockControlMode>Managed</DataLockControlMode>
|
||||
<FullTextSearch>DontUse</FullTextSearch>
|
||||
<EnableTotalsSliceFirst>false</EnableTotalsSliceFirst>
|
||||
<EnableTotalsSliceLast>false</EnableTotalsSliceLast>
|
||||
<RecordPresentation>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Состояние преопределенного элемента</v8:content>
|
||||
</v8:item>
|
||||
</RecordPresentation>
|
||||
<ExtendedRecordPresentation/>
|
||||
<ListPresentation/>
|
||||
<ExtendedListPresentation/>
|
||||
<Explanation/>
|
||||
<DataHistory>DontUse</DataHistory>
|
||||
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
|
||||
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Resource uuid="46110608-a270-4baf-90d0-c2f18e5b18e7">
|
||||
<Properties>
|
||||
<Name>ХешСумма</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Хеш сумма</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>32</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
<EditFormat/>
|
||||
<ToolTip/>
|
||||
<MarkNegatives>false</MarkNegatives>
|
||||
<Mask/>
|
||||
<MultiLine>false</MultiLine>
|
||||
<ExtendedEdit>false</ExtendedEdit>
|
||||
<MinValue xsi:nil="true"/>
|
||||
<MaxValue xsi:nil="true"/>
|
||||
<FillFromFillingValue>false</FillFromFillingValue>
|
||||
<FillValue xsi:type="xs:string"/>
|
||||
<FillChecking>ShowError</FillChecking>
|
||||
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||
<ChoiceParameterLinks/>
|
||||
<ChoiceParameters/>
|
||||
<QuickChoice>Auto</QuickChoice>
|
||||
<CreateOnInput>Auto</CreateOnInput>
|
||||
<ChoiceForm/>
|
||||
<LinkByType/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
<Indexing>DontIndex</Indexing>
|
||||
<FullTextSearch>Use</FullTextSearch>
|
||||
<DataHistory>Use</DataHistory>
|
||||
</Properties>
|
||||
</Resource>
|
||||
<Resource uuid="8a764f84-cde4-4073-942c-e21ae4331de6">
|
||||
<Properties>
|
||||
<Name>РучноеИзменение</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Ручное изменение</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
<EditFormat/>
|
||||
<ToolTip/>
|
||||
<MarkNegatives>false</MarkNegatives>
|
||||
<Mask/>
|
||||
<MultiLine>false</MultiLine>
|
||||
<ExtendedEdit>false</ExtendedEdit>
|
||||
<MinValue xsi:nil="true"/>
|
||||
<MaxValue xsi:nil="true"/>
|
||||
<FillFromFillingValue>false</FillFromFillingValue>
|
||||
<FillValue xsi:nil="true"/>
|
||||
<FillChecking>DontCheck</FillChecking>
|
||||
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||
<ChoiceParameterLinks/>
|
||||
<ChoiceParameters/>
|
||||
<QuickChoice>Auto</QuickChoice>
|
||||
<CreateOnInput>Auto</CreateOnInput>
|
||||
<ChoiceForm/>
|
||||
<LinkByType/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
<Indexing>DontIndex</Indexing>
|
||||
<FullTextSearch>Use</FullTextSearch>
|
||||
<DataHistory>Use</DataHistory>
|
||||
</Properties>
|
||||
</Resource>
|
||||
<Dimension uuid="5b60de34-97e9-4c6c-a698-bccd2e7e5f80">
|
||||
<Properties>
|
||||
<Name>Объект</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Объект</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:TypeSet>cfg:DefinedType.пбп_ПредопределенныеВсеСсылкиПереопределяемый</v8:TypeSet>
|
||||
</Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
<EditFormat/>
|
||||
<ToolTip/>
|
||||
<MarkNegatives>false</MarkNegatives>
|
||||
<Mask/>
|
||||
<MultiLine>false</MultiLine>
|
||||
<ExtendedEdit>false</ExtendedEdit>
|
||||
<MinValue xsi:nil="true"/>
|
||||
<MaxValue xsi:nil="true"/>
|
||||
<FillFromFillingValue>true</FillFromFillingValue>
|
||||
<FillValue xsi:nil="true"/>
|
||||
<FillChecking>DontCheck</FillChecking>
|
||||
<ChoiceFoldersAndItems>FoldersAndItems</ChoiceFoldersAndItems>
|
||||
<ChoiceParameterLinks/>
|
||||
<ChoiceParameters/>
|
||||
<QuickChoice>Auto</QuickChoice>
|
||||
<CreateOnInput>Auto</CreateOnInput>
|
||||
<ChoiceForm/>
|
||||
<LinkByType/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
<Master>true</Master>
|
||||
<MainFilter>true</MainFilter>
|
||||
<DenyIncompleteValues>true</DenyIncompleteValues>
|
||||
<Indexing>DontIndex</Indexing>
|
||||
<FullTextSearch>Use</FullTextSearch>
|
||||
<DataHistory>Use</DataHistory>
|
||||
</Properties>
|
||||
</Dimension>
|
||||
</ChildObjects>
|
||||
</InformationRegister>
|
||||
</MetaDataObject>
|
@ -0,0 +1,131 @@
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Создает запись регистра с заданными параметрами.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникСсылка, ПланВидовХарактеристикСсылка - Ссылка на предопределенный элемент.
|
||||
// ЭтоГруппа - Булево - Признак того что элемент является группой.
|
||||
// КлючиХеша - Структура, Неопределено - Если ключи хеша не переданы, то они будут сформированы заново.
|
||||
//
|
||||
Процедура СоздатьЗаписьРегистра(Объект, ЭтоГруппа = Ложь, КлючиХеша = Неопределено) Экспорт
|
||||
|
||||
Если КлючиХеша = Неопределено Тогда
|
||||
КлючиХеша = КлючиХешаОбъект(Объект, ЭтоГруппа);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(КлючиХеша) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(КлючиХеша, Объект);
|
||||
|
||||
Набор = РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.СоздатьНаборЗаписей();
|
||||
Набор.Отбор.Объект.Установить(Объект);
|
||||
|
||||
Запись = Набор.Добавить();
|
||||
Запись.Объект = Объект;
|
||||
Запись.ХешСумма = пбп_ОбщегоНазначенияСлужебный.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
|
||||
|
||||
Набор.Записать();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обновляет хеш элемента в регистре, устанавливая при этом ручное изменение.
|
||||
// Если хеш не был изменен по ключевым реквизитам, обновления не произойдет.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникСсылка, ПланВидовХарактеристикСсылка - Ссылка на предопределенный элемент
|
||||
// ЭтоГруппа - Булево - Признак того что элемент является группой
|
||||
// Флаг - Булево - Признак ручного изменения элемента.
|
||||
//
|
||||
Процедура ОбновитьХешЭлемента(Объект, ЭтоГруппа = Ложь, Флаг = Ложь) Экспорт
|
||||
|
||||
КлючиХеша = КлючиХешаОбъект(Объект, ЭтоГруппа);
|
||||
|
||||
Если Не ЗначениеЗаполнено(КлючиХеша) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(КлючиХеша, Объект);
|
||||
НовыйХешЭлемента = пбп_ОбщегоНазначенияСлужебный.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
|
||||
|
||||
Набор = СоздатьНаборЗаписей();
|
||||
Набор.Отбор.Объект.Установить(Объект);
|
||||
Набор.Прочитать();
|
||||
|
||||
Если Не ЗначениеЗаполнено(Набор) Тогда
|
||||
СообщитьОбОтсутствииЗаписи(Объект);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Запись = Набор[0];
|
||||
Если НовыйХешЭлемента = Запись.ХешСумма Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Запись.ХешСумма = НовыйХешЭлемента;
|
||||
Запись.РучноеИзменение = Флаг;
|
||||
Набор.Записать();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обновляет флаг ручного изменения элемента
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникСсылка, ПланВидовХарактеристикСсылка - Ссылка на предопределенный элемент
|
||||
// Флаг - Булево - Устанавливается если были изменены ключевые поля пользователем.
|
||||
//
|
||||
Процедура ОбновитьФлагРучногоИзменения(Объект, Флаг) Экспорт
|
||||
|
||||
Набор = СоздатьНаборЗаписей();
|
||||
Набор.Отбор.Объект.Установить(Объект);
|
||||
Набор.Прочитать();
|
||||
|
||||
Если Не ЗначениеЗаполнено(Набор) Тогда
|
||||
СообщитьОбОтсутствииЗаписи(Объект);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Набор[0].РучноеИзменение = Флаг;
|
||||
Набор.Записать();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура СообщитьОбОтсутствииЗаписи(Элемент)
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'При обновлении не найдена запись состояния по объекту ''%1'' не найдена!';
|
||||
|en = 'No status record found during update for object ''%1'' not found!'");
|
||||
ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ТекстСообщения,
|
||||
Элемент.Ссылка);
|
||||
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КлючиХешаОбъект(Объект, ЭтоГруппа)
|
||||
|
||||
МенеджерОбъекта = пбп_ОбщегоНазначенияСлужебный.МенеджерОбъектаПоСсылке(Объект);
|
||||
КлючевыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиПредопределенныхЭлементов(МенеджерОбъекта);
|
||||
Если Не ЗначениеЗаполнено(КлючевыеПоля) Тогда
|
||||
Возврат Новый Структура;
|
||||
КонецЕсли;
|
||||
|
||||
мПоля = Новый Массив;
|
||||
Для Каждого КлючЗначение Из КлючевыеПоля Цикл
|
||||
мПоля.Добавить(КлючЗначение.Ключ);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(мПоля, ЭтоГруппа);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<Role uuid="b9628b68-f165-4c1c-8d64-9e4b64e3609c">
|
||||
<Properties>
|
||||
<Name>пбп_РедактированиеСостоянийПредопределенныхЭлементов</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Редактирование состояний предопределенных элементов</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</Role>
|
||||
</MetaDataObject>
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Rights" version="2.16">
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>InformationRegister.пбп_СостоянияПредопределенныхЭлементов</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Update</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Edit</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<Role uuid="0cc5fef1-a0c7-4876-a781-f32b11e7fbff">
|
||||
<Properties>
|
||||
<Name>пбп_ЧтениеСостоянийПредопределенныхЭлементов</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Чтение состояний предопределенных элементов</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</Role>
|
||||
</MetaDataObject>
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Rights" version="2.16">
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>InformationRegister.пбп_СостоянияПредопределенныхЭлементов</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
@ -27,6 +27,8 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ПредопределенныеЗначенияПереопределяемый</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ОбщегоНазначенияПовтИсп</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ОбщегоНазначенияСервер</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CommonForm.пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.пбп_СостоянияПредопределенныхЭлементов</xr:Item>
|
||||
</Content>
|
||||
</Properties>
|
||||
<ChildObjects/>
|
||||
|
Loading…
Reference in New Issue
Block a user