mirror of
https://github.com/firstBitSportivnaya/PSSL.git
synced 2025-08-10 22:21:34 +02:00
add func for create items interactively (#271)
* Add functions for hash calculation and add func for create items interactively * Update ПредопределенныеЗначения.md
This commit is contained in:
@@ -5,6 +5,84 @@
|
||||
По стандартам разработки поиск ссылочных объектов в программном коде по наименованию, коду, гуиду и т.д. не рекомендуется. Для возможности получения ссылок из программного кода предлагается использовать элементы плана видов характеристик. Чтобы избежать необходимости реструктуризации при добавлении новых элементов в ПВХ, формирование иерархии и элементов делается программно и обновляется в пользовательском режиме. Получение элементов стандартизируется через общий модуль с возможностью кэширования.
|
||||
При коментировании или удалении из кода предопределенных элементов и последующем перезаполнении, элемент будет помечен на удаление, включая все его подчиненные элементы.
|
||||
|
||||
## Настройка
|
||||
|
||||
> [!NOTE]
|
||||
> Чтобы подключить объект к подсистеме и обеспечить корректную работу с предопределёнными значениями, выполните следующие шаги:
|
||||
|
||||
1. Добавить ссылки на объекты-владельцы (Справочники, ПланыВидовХарактеристик и т.д.) в состав определяемого типа `пбп_ПредопределенныеВсеСсылкиПереопределяемый`.
|
||||
2. В подключаемом объекте добавить реквизиты:
|
||||
- **ИдентификаторНастройки** - тип `Строка`
|
||||
- **ЭтоПредопределенный**[^1] - тип `Булево`
|
||||
[^1]: Реквизит добавляется в случае, если необходимо создавать предопределенные элементы в пользовательском режиме.
|
||||
3. В модуле объекта в обработчике `ПередЗаписью` добавить вызов функции `пбп_ПредопределенныеЗначения.ПередЗаписью`.
|
||||
|
||||
Пример:
|
||||
```bsl
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПередЗаписью(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
КонецПроцедуры
|
||||
```
|
||||
4. В модуле объекта в обработчике `ПриЗаписи` добавить вызов функции `пбп_ПредопределенныеЗначения.ПриЗаписи`.
|
||||
|
||||
Пример:
|
||||
```bsl
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПриЗаписи(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
КонецПроцедуры
|
||||
```
|
||||
5. Подключить кнопку заполнения в форме списке.
|
||||
5.1. *Будет добавлено в следующем релизе*. См. подробнее в [#272](https://github.com/firstBitSportivnaya/PSSL/issues/272)
|
||||
6. В модуле `пбп_ПредопределенныеЗначенияПереопределяемый` добавить процедуру заполнения предопределенных значений `Процедура ПредопределенныеЗначения<ИмяОбъекта>(Таблица) Экспорт`
|
||||
6.1 Указать имя процедуры в модуле `пбп_ПредопределенныеЗначенияПовтИсп.ФункцииСозданияТаблицПредопределенныхЭлементов`
|
||||
|
||||
Пример:
|
||||
```bsl
|
||||
Процедура ПредопределенныеЗначенияИнтегрируемыеСистемы(Таблица) Экспорт
|
||||
// Добавление
|
||||
НоваяСистема = Таблица.Добавить();
|
||||
НоваяСистема.Наименование = "Система N";
|
||||
НоваяСистема.ИдентификаторНастройки = "СистемаN";
|
||||
// КонецДобавления
|
||||
КонецПроцедуры
|
||||
```
|
||||
7. В модуле `пбп_ПредопределенныеЗначенияПереопределяемый` добавить функцию получения структуры колонок `Функция Колонки<ИмяОбъекта>() Экспорт`
|
||||
7.1 Указать имя процедуры в модуле `пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияКолонокПредопределенныхЭлементов`
|
||||
|
||||
Пример:
|
||||
```bsl
|
||||
Функция КолонкиИнтеграционныеПотоки() Экспорт
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Добавить("НаправлениеПотока");
|
||||
Колонки.Добавить("КлючРегламентногоЗадания");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
КонецФункции
|
||||
```
|
||||
8. При необходимости расширения ключей хеширования в модуле `пбп_ПредопределенныеЗначенияПереопределяемый` добавить функцию получения структуры колонок `Функция ДобавляемыеПоляДляРасчетаХеша<ИмяОбъекта>() Экспорт`
|
||||
8.1 Указать имя процедуры в модуле `пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияДобавляемыхПолейДляРасчетаХеша`
|
||||
|
||||
Пример:
|
||||
```bsl
|
||||
Функция ДобавляемыеПоляДляРасчетаХешаИнтеграционныеПотоки() Экспорт
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Добавить("НаправлениеПотока");
|
||||
Колонки.Добавить("КлючРегламентногоЗадания");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
КонецФункции
|
||||
```
|
||||
|
||||
## Первоначальное заполнение
|
||||
|
||||
Для того чтобы автоматизировать процесс первоначального заполнения предопределенных элементов, необходимо модифицировать/добавить в расширение общий модуль **ПодсистемыКонфигурацииПереопределяемый**.
|
||||
|
@@ -64,7 +64,9 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПередЗаписью(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -74,7 +76,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПриЗаписи(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
Если ПометкаУдаления И Не ПустаяСтрока(КлючРегламентногоЗадания) Тогда
|
||||
УдалитьРегламентноеЗаданиеПоКлючу(Ложь);
|
||||
|
@@ -28,7 +28,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПередЗаписью(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -38,7 +40,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПриЗаписи(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@@ -64,7 +64,9 @@
|
||||
ЗаполнитьРеквизитыНаОснованииЭлементаНаследования(ЭлементНаследования);
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПередЗаписью(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
Если Не ЭтоНовый() И пбп_ИнтеграцииСлужебный.ПроверитьЭтоИнтеграцияСВнешнимИсточникомДанных(ТипИнтеграции) Тогда
|
||||
Запрос = Новый Запрос;
|
||||
@@ -99,7 +101,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПриЗаписи(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@@ -28,7 +28,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПередЗаписью(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -38,7 +40,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПриЗаписи(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@@ -28,7 +28,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПередЗаписью(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -38,7 +40,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент(ЭтотОбъект);
|
||||
// пбп_ПредопределенныеЗначения
|
||||
пбп_ПредопределенныеЗначения.ПриЗаписи(ЭтотОбъект, Отказ);
|
||||
// Конец пбп_ПредопределенныеЗначения
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@@ -92,17 +92,13 @@
|
||||
|
||||
Поля = Новый СписокЗначений;
|
||||
|
||||
ДопПараметры = ПолучитьДополнительныеПараметрыОбработкиЭлементов(Таблица);
|
||||
МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяФормыВладельца);
|
||||
|
||||
ИсключаемыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.ИсключаемыеПоляДляРасчетаХешаЭлемент();
|
||||
Ключи = пбп_ПредопределенныеЗначения.КлючиХеша(МенеджерОбъекта);
|
||||
|
||||
ДобавляемыеРеквизиты = Новый Структура;
|
||||
Для Каждого Колонка Из Таблица.Колонки Цикл
|
||||
Если ИсключаемыеПоля.Свойство(Колонка.Имя) Или СтрНачинаетсяС(Колонка.Имя, "Служебный_") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ДопПараметры.Иерархический И (Колонка.Имя = "ЭтоГруппа" Или Колонка.Имя = "Родитель") Тогда
|
||||
Если Не Ключи.КлючиХешаЭлемент.Свойство(Колонка.Имя) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
|
@@ -74,7 +74,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
|
||||
Описание.Версия = "1.0.8.2";
|
||||
Описание.Версия = "1.0.9.0";
|
||||
|
||||
// Требуется библиотека стандартных подсистем.
|
||||
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
|
||||
|
@@ -890,22 +890,6 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Выполняет действия при записи предопределенного элемента.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - предопределенный элемент
|
||||
// из подсистемы предопределенных элементов
|
||||
//
|
||||
Процедура ОбработатьСуществующийПредопределенныйЭлемент(Объект) Экспорт
|
||||
|
||||
Если пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(Объект.ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
пбп_ПредопределенныеЗначения.ОбновитьХешПредопределенногоЭлемента(Объект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область УсловныеВызовы
|
||||
|
||||
// Возвращает ссылку на общий модуль или модуль менеджера по имени.
|
||||
|
@@ -368,6 +368,40 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Аналог метода БСП. Возвращает разность массивов. Разностью двух массивов является массив, содержащий
|
||||
// все элементы первого массива, не существующие во втором массиве.
|
||||
//
|
||||
// Параметры:
|
||||
// Массив - Массив - массив элементов, из которого необходимо выполнить вычитание;
|
||||
// МассивВычитания - Массив - массив элементов, который будет вычитаться.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - разностью двух массивов.
|
||||
//
|
||||
// Пример:
|
||||
// //А = [1, 3, 5, 7];
|
||||
// //В = [3, 7, 9];
|
||||
// Результат = ОбщегоНазначенияКлиентСервер.РазностьМассивов(А, В);
|
||||
// //Результат = [1, 5];
|
||||
//
|
||||
Функция РазностьМассивов(Знач Массив, Знач МассивВычитания) Экспорт
|
||||
|
||||
Результат = ПереадресацияМодуляОбщегоНазначенияКлиентСервер();
|
||||
Если Результат.МодульСуществует Тогда
|
||||
Возврат Результат.Модуль.РазностьМассивов(Массив, МассивВычитания);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Новый Массив;
|
||||
Для Каждого Элемент Из Массив Цикл
|
||||
Если МассивВычитания.Найти(Элемент) = Неопределено Тогда
|
||||
Результат.Добавить(Элемент);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СтроковыеФункцииКлиентСервер
|
||||
|
@@ -44,37 +44,48 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает ключи хеша на основании массива полей элемента
|
||||
// Возвращает ключи хеша на основании менеджера объекта.
|
||||
//
|
||||
// Параметры:
|
||||
// Поля - Массив - Поля для формирования ключей хеша
|
||||
// ЭтоГруппа - Булево - От этого признака зависят исключаемые поля
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - Менеджер обрабатываемого объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Ключи хеша
|
||||
// * КлючиХешаЭлемент - Структура - Структура ключей хеша для элемента.
|
||||
// * КлючиХешаГруппа - Структура - Структура ключей хеша для группы.
|
||||
//
|
||||
Функция КлючиХешаПредопределенногоЭлемента(Поля, ЭтоГруппа = Ложь) Экспорт
|
||||
Функция КлючиХеша(МенеджерОбъекта) Экспорт
|
||||
|
||||
Если ТипЗнч(Поля) <> Тип("Массив") Или Не ЗначениеЗаполнено(Поля) Тогда
|
||||
Возврат Новый Структура;
|
||||
КонецЕсли;
|
||||
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта));
|
||||
|
||||
мКлючи = Новый Массив;
|
||||
Поля = пбп_ПредопределенныеЗначенияПереопределяемый.ДобавляемыеСтандартныеПоля();
|
||||
УдаляемыеСтандартныеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.УдаляемыеСтандартныеПоля();
|
||||
|
||||
Если ЭтоГруппа Тогда
|
||||
ИсключаемыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.ИсключаемыеПоляДляРасчетаХешаГруппа();
|
||||
Иначе
|
||||
ИсключаемыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.ИсключаемыеПоляДляРасчетаХешаЭлемент();
|
||||
КонецЕсли;
|
||||
Поля = пбп_ПереадресацияКлиентСервер.РазностьМассивов(Поля, УдаляемыеСтандартныеПоля);
|
||||
|
||||
ДобавляемыеПоля = пбп_ПредопределенныеЗначенияСлужебный.ДобавляемыеПоляОбъектаДляРасчетаХеша(МенеджерОбъекта);
|
||||
пбп_ПереадресацияКлиентСервер.ДополнитьМассив(Поля, ДобавляемыеПоля);
|
||||
|
||||
Ключи = Новый Структура("КлючиХешаЭлемент, КлючиХешаГруппа", Новый Структура, Новый Структура);
|
||||
Для Каждого Поле Из Поля Цикл
|
||||
Если ИсключаемыеПоля.Свойство(Поле) Или СтрНачинаетсяС(Поле, "Служебный_") Тогда
|
||||
Реквизит = ОбъектМетаданных.Реквизиты.Найти(Поле);
|
||||
ЕстьСтандартныйРеквизит = пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(
|
||||
ОбъектМетаданных.СтандартныеРеквизиты,
|
||||
Поле);
|
||||
|
||||
Если Реквизит = Неопределено И Не ЕстьСтандартныйРеквизит Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
мКлючи.Добавить(Поле);
|
||||
|
||||
Ключи.КлючиХешаЭлемент.Вставить(Поле);
|
||||
|
||||
Если ЕстьСтандартныйРеквизит
|
||||
Или Реквизит.Использование <> Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента Тогда
|
||||
Ключи.КлючиХешаГруппа.Вставить(Поле);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый Структура(СтрСоединить(мКлючи, ","));
|
||||
Возврат Ключи;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -155,4 +166,69 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Выполняет действия при записи предопределенного элемента.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - предопределенный элемент
|
||||
// из подсистемы предопределенных элементов
|
||||
//
|
||||
Процедура ОбработатьСуществующийПредопределенныйЭлемент(Объект) Экспорт
|
||||
|
||||
Если пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(Объект.ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяРеквизита = пбп_ПредопределенныеЗначенияСлужебный.ИмяПоляПредопределенности();
|
||||
Если пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита)
|
||||
И Не Объект.ЭтоПредопределенный Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьХешПредопределенногоЭлемента(Объект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается из одноименного обработчика ПередЗаписью.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - редопределенный элемент
|
||||
// из подсистемы предопределенных элементов.
|
||||
// Отказ - Булево - Признак отказа от записи.
|
||||
//
|
||||
Процедура ПередЗаписью(Объект, Отказ) Экспорт
|
||||
|
||||
Объект.ДополнительныеСвойства.Вставить("ЭтоНовый", Объект.ЭтоНовый());
|
||||
|
||||
УстановитьФлагПредопределенногоЭлемента(Объект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается из одноименного обработчика ПриЗаписи.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - редопределенный элемент
|
||||
// из подсистемы предопределенных элементов.
|
||||
// Отказ - Булево - Признак отказа от записи.ы
|
||||
//
|
||||
Процедура ПриЗаписи(Объект, Отказ) Экспорт
|
||||
|
||||
ОбработатьСуществующийПредопределенныйЭлемент(Объект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура УстановитьФлагПредопределенногоЭлемента(Объект)
|
||||
|
||||
ИмяРеквизита = пбп_ПредопределенныеЗначенияСлужебный.ИмяПоляПредопределенности();
|
||||
Если Не пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Объект.ЭтоПредопределенный = ЗначениеЗаполнено(Объект.ИдентификаторНастройки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -187,20 +187,18 @@
|
||||
#Область СтруктурыКолонокТаблиц
|
||||
|
||||
// Возвращает колонки предопределенные значения
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
// Массив - Список имен полей
|
||||
//
|
||||
Функция КолонкиПредопределенныеЗначения() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
|
||||
ОписаниеБулево = Новый ОписаниеТипов("Булево");
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Вставить("Пароль", ОписаниеБулево);
|
||||
Колонки.Вставить("СписокЗначений", ОписаниеБулево);
|
||||
Колонки.Вставить("ТипЗначения", Новый ОписаниеТипов("ОписаниеТипов"));
|
||||
Колонки.Добавить("Пароль");
|
||||
Колонки.Добавить("СписокЗначений");
|
||||
Колонки.Добавить("ТипЗначения");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
@@ -208,13 +206,13 @@
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки интегрируемые системы
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
// Массив - Список имен полей
|
||||
//
|
||||
Функция КолонкиИнтегрируемыеСистемы() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
|
||||
@@ -225,19 +223,17 @@
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки интеграционные потоки
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
// Массив - Список имен полей
|
||||
//
|
||||
Функция КолонкиИнтеграционныеПотоки() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Вставить("НаправлениеПотока" , Новый ОписаниеТипов(
|
||||
"ПеречислениеСсылка.пбп_НаправленияИнтеграционныхПотоков"));
|
||||
|
||||
Колонки.Вставить("КлючРегламентногоЗадания" , пбп_Переадресация.ОписаниеТипаСтрока(150));
|
||||
Колонки.Добавить("НаправлениеПотока");
|
||||
Колонки.Добавить("КлючРегламентногоЗадания");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
@@ -245,23 +241,20 @@
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки настройки интеграции
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
// Массив - Список имен полей
|
||||
//
|
||||
Функция КолонкиНастройкиИнтеграции() Экспорт
|
||||
|
||||
ДлинаСтрокиПодключения = 200;
|
||||
ДлинаИмениОбъекта = 100;
|
||||
|
||||
Колонки = Новый Структура;
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Вставить("ИнтегрируемаяСистема" , Новый ОписаниеТипов("СправочникСсылка.пбп_ИнтегрируемыеСистемы"));
|
||||
Колонки.Вставить("ТипИнтеграции" , Новый ОписаниеТипов("СправочникСсылка.пбп_ТипыИнтеграций"));
|
||||
Колонки.Вставить("СтрокаПодключения" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаСтрокиПодключения));
|
||||
Колонки.Вставить("ТипАвторизации" , Новый ОписаниеТипов("ПеречислениеСсылка.пбп_ТипыАвторизации"));
|
||||
Колонки.Вставить("ИмяОбъекта" , пбп_Переадресация.ОписаниеТипаСтрока(ДлинаИмениОбъекта));
|
||||
Колонки.Добавить("ИнтегрируемаяСистема");
|
||||
Колонки.Добавить("ТипИнтеграции");
|
||||
Колонки.Добавить("СтрокаПодключения");
|
||||
Колонки.Добавить("ТипАвторизации");
|
||||
Колонки.Добавить("ИмяОбъекта");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
@@ -269,16 +262,16 @@
|
||||
КонецФункции
|
||||
|
||||
// Возвращает колонки тип соответствия объектов ИБ
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Где ключ имя колонки, значение описание типов колонки
|
||||
// Массив - Список имен полей
|
||||
//
|
||||
Функция КолонкиТипСоответствияОбъектовИБ() Экспорт
|
||||
|
||||
Колонки = Новый Структура;
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Вставить("Кэшируется", пбп_РаботаСФормами.ОписаниеТипаБулево());
|
||||
Колонки.Добавить("Кэшируется");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
@@ -287,37 +280,130 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ИсключаемыеПоляДляРасчетаХеша
|
||||
#Область ДобавляемыеПоляДляРасчетаХеша
|
||||
|
||||
// Возвращает исключаемые поля для расчета хеша элемент
|
||||
// Возвращает поля для расчета хеша
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Исключаемые поля
|
||||
// Массив - Массив имен полей для расчета хеша
|
||||
//
|
||||
Функция ИсключаемыеПоляДляРасчетаХешаЭлемент() Экспорт
|
||||
Функция ДобавляемыеПоляДляРасчетаХешаПредопределенныеЗначения() Экспорт
|
||||
|
||||
Поля = Новый Структура;
|
||||
Поля.Вставить("ХешСумма");
|
||||
Поля.Вставить("УровеньИерархии");
|
||||
Поля.Вставить("ИдентификаторРодитель");
|
||||
Колонки = Новый Массив;
|
||||
|
||||
ДополнитьИсключаемыеПоляДляРасчетХешаНастройкиИнтеграции(Поля);
|
||||
// Добавление
|
||||
Колонки.Добавить("Пароль");
|
||||
Колонки.Добавить("СписокЗначений");
|
||||
Колонки.Добавить("ТипЗначения");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает поля для расчета хеша
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Массив имен полей для расчета хеша
|
||||
//
|
||||
Функция ДобавляемыеПоляДляРасчетаХешаИнтегрируемыеСистемы() Экспорт
|
||||
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает поля для расчета хеша
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Массив имен полей для расчета хеша
|
||||
//
|
||||
Функция ДобавляемыеПоляДляРасчетаХешаИнтеграционныеПотоки() Экспорт
|
||||
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Добавить("НаправлениеПотока");
|
||||
Колонки.Добавить("КлючРегламентногоЗадания");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает поля для расчета хеша
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Массив имен полей для расчета хеша
|
||||
//
|
||||
Функция ДобавляемыеПоляДляРасчетаХешаНастройкиИнтеграции() Экспорт
|
||||
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает поля для расчета хеша
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Массив имен полей для расчета хеша
|
||||
//
|
||||
Функция ДобавляемыеПоляДляРасчетаХешаТипСоответствияОбъектовИБ() Экспорт
|
||||
|
||||
Колонки = Новый Массив;
|
||||
|
||||
// Добавление
|
||||
Колонки.Добавить("Кэшируется");
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Колонки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СтандартныеПоля
|
||||
|
||||
// Возвращает список стандартных полей, добавляемых к таблице предопределенных значений
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Массив имен стандартных полей
|
||||
//
|
||||
Функция ДобавляемыеСтандартныеПоля() Экспорт
|
||||
|
||||
Поля = Новый Массив;
|
||||
|
||||
Поля.Добавить("Наименование");
|
||||
Поля.Добавить("ИдентификаторНастройки");
|
||||
Поля.Добавить("ЭтоГруппа");
|
||||
Поля.Добавить("Родитель");
|
||||
|
||||
Поля.Добавить(пбп_ПредопределенныеЗначенияСлужебный.ИмяПоляПредопределенности());
|
||||
|
||||
Возврат Поля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает исключаемые поля для расчета хеша группа
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Исключаемые поля
|
||||
// Возвращает список стандартных полей, удаляемых из таблицы предопределенных значений
|
||||
//
|
||||
Функция ИсключаемыеПоляДляРасчетаХешаГруппа() Экспорт
|
||||
// Возвращаемое значение:
|
||||
// Массив - Массив имен стандартных полей
|
||||
//
|
||||
Функция УдаляемыеСтандартныеПоля() Экспорт
|
||||
|
||||
Поля = Новый Структура;
|
||||
Поля.Вставить("ХешСумма");
|
||||
Поля.Вставить("УровеньИерархии");
|
||||
Поля.Вставить("ИдентификаторРодитель");
|
||||
Поля = Новый Массив;
|
||||
|
||||
Поля.Добавить(пбп_ПредопределенныеЗначенияСлужебный.ИмяПоляПредопределенности());
|
||||
|
||||
Возврат Поля;
|
||||
|
||||
@@ -329,7 +415,15 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ОбщиеКолонки(Менеджер) Экспорт
|
||||
// Возвращает общие колонки с описанием типов для таблицы предопределенных значений
|
||||
//
|
||||
// Параметры:
|
||||
// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта метаданных.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - где ключ - имя колонки, значение - описание типов колонки
|
||||
//
|
||||
Функция ОбщиеКолонкиСОписаниемТипов(Менеджер) Экспорт
|
||||
|
||||
массив = Новый Массив;
|
||||
массив.Добавить(ТипЗнч(Менеджер.ПустаяСсылка()));
|
||||
@@ -340,15 +434,10 @@
|
||||
ОписаниеСтрока = Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(150));
|
||||
ОписаниеБулево = Новый ОписаниеТипов("Булево");
|
||||
|
||||
Колонки.Вставить("ИдентификаторНастройки", ОписаниеСтрока);
|
||||
Колонки.Вставить("Наименование", ОписаниеСтрока);
|
||||
Колонки.Вставить("ЭтоГруппа", ОписаниеБулево);
|
||||
Колонки.Вставить("Родитель", ОписаниеТиповЭлемента);
|
||||
|
||||
Колонки.Вставить("УровеньИерархии", Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(2,0)));
|
||||
Колонки.Вставить("ИдентификаторРодитель", ОписаниеСтрока);
|
||||
Колонки.Вставить("ХешСумма", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(32)));
|
||||
|
||||
Колонки.Вставить("Служебный_ХешСумма", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(32)));
|
||||
Колонки.Вставить("Служебный_ОбновитьЭлемент", ОписаниеБулево);
|
||||
Колонки.Вставить("Служебный_УстановитьФлагРучноеИзменение", ОписаниеБулево);
|
||||
Колонки.Вставить("Служебный_ПредопределенныйЭлемент", ОписаниеТиповЭлемента);
|
||||
@@ -360,15 +449,4 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДополнитьИсключаемыеПоляДляРасчетХешаНастройкиИнтеграции(Поля)
|
||||
|
||||
Поля.Вставить("Порт");
|
||||
Поля.Вставить("ВнешняяКомпонента");
|
||||
Поля.Вставить("УчетнаяЗапись");
|
||||
Поля.Вставить("ТипАвторизации");
|
||||
Поля.Вставить("ИмяОбъекта");
|
||||
Поля.Вставить("ИмяФайлаВнешнейКомпоненты");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
@@ -72,7 +72,37 @@
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиТипСоответствияОбъектовИБ");
|
||||
// КонецДобавления
|
||||
|
||||
ОбработатьСоответствиеФункцийКолонок(Соответствие);
|
||||
ОбработатьСоответствиеФункций(Соответствие);
|
||||
|
||||
Возврат Соответствие;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает соответствие типа с функцией для получения полей расчета хеша.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение:
|
||||
// * Ключ - ПланВидовХарактеристикМенеджер, СправочникМенеджер
|
||||
// * Значение - Строка
|
||||
//
|
||||
Функция ФункцииПолученияДобавляемыхПолейДляРасчетаХеша() Экспорт
|
||||
|
||||
Соответствие = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
Соответствие.Вставить(Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ДобавляемыеПоляДляРасчетаХешаПредопределенныеЗначения");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ИнтегрируемыеСистемы"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ДобавляемыеПоляДляРасчетаХешаИнтегрируемыеСистемы");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ИнтеграционныеПотоки"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ДобавляемыеПоляДляРасчетаХешаИнтеграционныеПотоки");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_НастройкиИнтеграции"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ДобавляемыеПоляДляРасчетаХешаНастройкиИнтеграции");
|
||||
Соответствие.Вставить(Тип("СправочникМенеджер.пбп_ТипСоответствияОбъектовИБ"),
|
||||
"пбп_ПредопределенныеЗначенияПереопределяемый.ДобавляемыеПоляДляРасчетаХешаТипСоответствияОбъектовИБ");
|
||||
// КонецДобавления
|
||||
|
||||
ОбработатьСоответствиеФункций(Соответствие);
|
||||
|
||||
Возврат Соответствие;
|
||||
|
||||
@@ -82,7 +112,7 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ОбработатьСоответствиеФункцийКолонок(Соответствие)
|
||||
Процедура ОбработатьСоответствиеФункций(Соответствие)
|
||||
|
||||
Для Каждого КлючЗначение Из Соответствие Цикл
|
||||
Соответствие[КлючЗначение.Ключ] = КлючЗначение.Значение + "()";
|
||||
|
@@ -34,7 +34,7 @@
|
||||
|
||||
Параметры = ДопПараметрыОбработкиПредопределенныхЭлементов(ТаблицаПредопределенных, МенеджерОбъекта);
|
||||
|
||||
ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, Параметры.ПолноеИмя);
|
||||
ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, Параметры);
|
||||
|
||||
ЗаполнитьРодителейЭлементов(ТаблицаПредопределенных, Параметры);
|
||||
ЗаполнитьКонтрольныеСуммыТаблицы(ТаблицаПредопределенных, Параметры);
|
||||
@@ -53,13 +53,13 @@
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Данные Менеджера объекта
|
||||
// * Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
// * ПолноеИмя - Строка - Полное имя объекта метаданных.
|
||||
// * Иерархический - Булево - Свойство объекта метаданных.
|
||||
// * ИерархияГруппИЭлементов - Булево - Свойство объекта метаданных.
|
||||
// * КлючиХешаЭлемент - Структура - Ключевые реквизиты для формирования хеша элемента.
|
||||
// * КлючиХешаГруппа - Структура - Ключевые реквизиты для формирования хеша группы.
|
||||
// Структура - Данные Менеджера объекта:
|
||||
// * Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
|
||||
// * ПолноеИмя - Строка - Полное имя объекта метаданных.
|
||||
// * Иерархический - Булево - Свойство объекта метаданных.
|
||||
// * ИерархияГруппИЭлементов - Булево - Свойство объекта метаданных.
|
||||
// * КлючиХешаЭлемент - Структура - Ключевые реквизиты для формирования хеша элемента.
|
||||
// * КлючиХешаГруппа - Структура - Ключевые реквизиты для формирования хеша группы.
|
||||
//
|
||||
Функция ДопПараметрыОбработкиПредопределенныхЭлементов(Таблица, МенеджерОбъекта) Экспорт
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
Параметры.Вставить("ИерархияГруппИЭлементов", Ложь);
|
||||
Параметры.Вставить("КлючиХешаЭлемент", Новый Структура);
|
||||
Параметры.Вставить("КлючиХешаГруппа", Новый Структура);
|
||||
Параметры.Вставить("ОбъектМетаданных", Неопределено);
|
||||
|
||||
Если Не пбп_ПредопределенныеЗначенияСлужебный.МенеджерВходитВПодсистемуПредопределенных(МенеджерОбъекта) Тогда
|
||||
Возврат Параметры;
|
||||
@@ -77,30 +78,22 @@
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта));
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("Менеджер", МенеджерОбъекта);
|
||||
Параметры.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
|
||||
Параметры.Вставить("Иерархический", ОбъектМетаданных.Иерархический);
|
||||
Параметры.ОбъектМетаданных = ОбъектМетаданных;
|
||||
|
||||
Параметры.Менеджер = МенеджерОбъекта;
|
||||
Параметры.ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
Параметры.Иерархический = ОбъектМетаданных.Иерархический;
|
||||
|
||||
ИерархияГруппИЭлементов = ОбъектМетаданных.Иерархический;
|
||||
Если Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
|
||||
ИерархияГруппИЭлементов =
|
||||
ОбъектМетаданных.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов;
|
||||
КонецЕсли;
|
||||
Параметры.Вставить("ИерархияГруппИЭлементов", ИерархияГруппИЭлементов);
|
||||
Параметры.ИерархияГруппИЭлементов = ИерархияГруппИЭлементов;
|
||||
|
||||
мКолонки = Новый Массив;
|
||||
Для Каждого Колонка Из Таблица.Колонки Цикл
|
||||
мКолонки.Добавить(Колонка.Имя);
|
||||
КонецЦикла;
|
||||
|
||||
Параметры.Вставить("КлючиХешаЭлемент",
|
||||
пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(мКолонки, Ложь));
|
||||
|
||||
мКолонки = ПолучитьПоляГруппы(МенеджерОбъекта, мКолонки);
|
||||
|
||||
Параметры.Вставить("КлючиХешаГруппа",
|
||||
пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(мКолонки, Истина));
|
||||
КлючиХеша = пбп_ПредопределенныеЗначения.КлючиХеша(МенеджерОбъекта);
|
||||
Параметры.КлючиХешаЭлемент = КлючиХеша.КлючиХешаЭлемент;
|
||||
Параметры.КлючиХешаГруппа = КлючиХеша.КлючиХешаГруппа;
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
@@ -113,9 +106,9 @@
|
||||
// ТаблицаПредопределенных - ТаблицаЗначений - см.пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенных
|
||||
// ПолноеИмяОбъекта - Строка - Полное имя объекта метаданных.
|
||||
//
|
||||
Процедура ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, ПолноеИмяОбъекта = "") Экспорт
|
||||
Процедура ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ПолноеИмяОбъекта = ИмяОбъектаМетаданных(ПолноеИмяОбъекта);
|
||||
ПолноеИмяОбъекта = ИмяОбъектаМетаданных(ДополнительныеПараметры.ПолноеИмя);
|
||||
|
||||
ТаблицаПредопределенных.Индексы.Добавить("ИдентификаторНастройки");
|
||||
|
||||
@@ -136,9 +129,10 @@
|
||||
|
||||
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПолноеИмяОбъекта);
|
||||
|
||||
Если пбп_ОбщегоНазначенияПовтИсп.ПолучитьЗначениеКонстанты("пбп_ИспользоватьПользовательскиеФункции") Тогда
|
||||
Запрос.Текст = пбп_СхемыЗапросов.ДобавитьОтборВЗапрос(Запрос.Текст,
|
||||
"пбп_ПредопределенныеЗначения.ИдентификаторНастройки <> """"");
|
||||
ИмяРеквизитаПред = ИмяПоляПредопределенности();
|
||||
Реквизиты = ДополнительныеПараметры.ОбъектМетаданных.Реквизиты;
|
||||
Если пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Реквизиты, ИмяРеквизитаПред) Тогда
|
||||
Запрос = пбп_СхемыЗапросов.ДобавитьОтборВЗапрос(Запрос, "пбп_ПредопределенныеЗначения." + ИмяРеквизитаПред);
|
||||
КонецЕсли;
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
|
||||
@@ -204,7 +198,7 @@
|
||||
Для Каждого Строка Из ТаблицаПредопределенных Цикл
|
||||
КлючиХеша = ?(Строка.ЭтоГруппа, ДополнительныеПараметры.КлючиХешаГруппа, ДополнительныеПараметры.КлючиХешаЭлемент);
|
||||
ЗаполнитьЗначенияСвойств(КлючиХеша, Строка);
|
||||
Строка.ХешСумма = пбп_Переадресация.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
|
||||
Строка.Служебный_ХешСумма = пбп_Переадресация.КонтрольнаяСуммаСтрокой(КлючиХеша, ХешФункция.MD5);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -262,7 +256,7 @@
|
||||
Для Каждого Строка Из ТаблицаПредопределенных Цикл
|
||||
ВыборкаДетальныеЗаписи.Сбросить();
|
||||
Если ВыборкаДетальныеЗаписи.НайтиСледующий(Строка.ИдентификаторНастройки, "ИдентификаторНастройки") Тогда
|
||||
Если ВыборкаДетальныеЗаписи.РучноеИзменение Или ВыборкаДетальныеЗаписи.ХешСумма = Строка.ХешСумма
|
||||
Если ВыборкаДетальныеЗаписи.РучноеИзменение Или ВыборкаДетальныеЗаписи.ХешСумма = Строка.Служебный_ХешСумма
|
||||
И Не ВыборкаДетальныеЗаписи.ПометкаУдаления Тогда
|
||||
СтрокиДляУдаления.Добавить(Строка);
|
||||
Иначе
|
||||
@@ -335,32 +329,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Формирует массив полей группы объекта метаданных
|
||||
//
|
||||
// Параметры:
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта
|
||||
// Поля - Массив - Поля предопределенного элемента.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Строка
|
||||
//
|
||||
Функция ПолучитьПоляГруппы(МенеджерОбъекта, Поля) Экспорт
|
||||
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта));
|
||||
|
||||
мПоляГруппы = Новый Массив;
|
||||
|
||||
Для Каждого Поле Из Поля Цикл
|
||||
Реквизит = ОбъектМетаданных.Реквизиты.Найти(Поле);
|
||||
Если Реквизит = Неопределено
|
||||
Или Реквизит.Использование <> Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента Тогда
|
||||
мПоляГруппы.Добавить(Поле);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат мПоляГруппы
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область РаботаСТаблицейПредопределенных
|
||||
|
||||
// Инициализирует предопределенные значения из таблицы.
|
||||
@@ -428,20 +396,118 @@
|
||||
//
|
||||
Функция КолонкиПредопределенныхЭлементов(Менеджер) Экспорт
|
||||
|
||||
Колонки = пбп_ПредопределенныеЗначенияПереопределяемый.ОбщиеКолонки(Менеджер);
|
||||
КолонкиСОписанием = пбп_ПредопределенныеЗначенияПереопределяемый.ОбщиеКолонкиСОписаниемТипов(Менеджер);
|
||||
|
||||
Колонки = пбп_ПредопределенныеЗначенияПереопределяемый.ДобавляемыеСтандартныеПоля();
|
||||
|
||||
КолонкиОбъекта = ПоляОбъекта(Менеджер);
|
||||
|
||||
пбп_ПереадресацияКлиентСервер.ДополнитьМассив(Колонки, КолонкиОбъекта, Истина);
|
||||
|
||||
КолонкиОбъектаСОписанием = КолонкиСОписаниемТипов(Менеджер, Колонки);
|
||||
|
||||
пбп_ПереадресацияКлиентСервер.ДополнитьСтруктуру(КолонкиСОписанием, КолонкиОбъектаСОписанием);
|
||||
|
||||
Возврат КолонкиСОписанием;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает поля объекта из подсистемы предопределенных.
|
||||
//
|
||||
// Параметры:
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - Менеджер объекта
|
||||
// из подсистемы предопределенных.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Список полей объекта.
|
||||
//
|
||||
Функция ПоляОбъекта(МенеджерОбъекта) Экспорт
|
||||
|
||||
Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияКолонокПредопределенныхЭлементов()
|
||||
.Получить(ТипЗнч(Менеджер));
|
||||
.Получить(ТипЗнч(МенеджерОбъекта));
|
||||
|
||||
Если Не ЗначениеЗаполнено(Выражение) Тогда
|
||||
Возврат Колонки;
|
||||
Возврат Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
ДопКолонки = пбп_Переадресация.ВычислитьВБезопасномРежиме(Выражение);
|
||||
Возврат пбп_Переадресация.ВычислитьВБезопасномРежиме(Выражение);
|
||||
|
||||
пбп_ПереадресацияКлиентСервер.ДополнитьСтруктуру(Колонки, ДопКолонки);
|
||||
КонецФункции
|
||||
|
||||
// Возвращает массив полей, которые необходимо дополнительно учитывать при расчёте хеша объекта.
|
||||
//
|
||||
// Параметры:
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - Менеджер объекта
|
||||
// из подсистемы предопределенных.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Массив строк с именами полей, участвующих в расчёте хеша.
|
||||
// Если для типа объекта выражение не задано, возвращается пустой массив.
|
||||
//
|
||||
Функция ДобавляемыеПоляОбъектаДляРасчетаХеша(МенеджерОбъекта) Экспорт
|
||||
|
||||
Возврат Колонки;
|
||||
Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияДобавляемыхПолейДляРасчетаХеша()
|
||||
.Получить(ТипЗнч(МенеджерОбъекта));
|
||||
|
||||
Если Не ЗначениеЗаполнено(Выражение) Тогда
|
||||
Возврат Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат пбп_Переадресация.ВычислитьВБезопасномРежиме(Выражение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает структуру, содержащую соответствие между именами колонок и их описанием типов.
|
||||
//
|
||||
// Параметры:
|
||||
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - Менеджер объекта
|
||||
// из подсистемы предопределенных.
|
||||
// Колонки - Массив - Список колонок
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Структура, содержащая пары: <ИмяКолонки> - <ОписаниеТипов>.
|
||||
// Если тип колонки определить не удалось, она не включается в результат.
|
||||
//
|
||||
Функция КолонкиСОписаниемТипов(МенеджерОбъекта, Колонки) Экспорт
|
||||
|
||||
ТипОбъекта = ТипЗнч(МенеджерОбъекта.ПустаяСсылка());
|
||||
массив = Новый Массив;
|
||||
массив.Добавить(ТипОбъекта);
|
||||
ОписаниеТиповЭлемента = Новый ОписаниеТипов(массив);
|
||||
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипОбъекта);
|
||||
РеквизитыОбъекта = МетаданныеОбъекта.Реквизиты;
|
||||
СтандартныеРеквизиты = МетаданныеОбъекта.СтандартныеРеквизиты;
|
||||
|
||||
КолонкиСТипами = Новый Структура;
|
||||
КолонкаГруппа = "ЭтоГруппа";
|
||||
КолонкаРодитель = "Родитель";
|
||||
|
||||
Для Каждого Колонка Из Колонки Цикл
|
||||
Если Колонка = КолонкаГруппа Тогда
|
||||
КолонкиСТипами.Вставить(Колонка, Новый ОписаниеТипов("Булево"));
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Колонка = КолонкаРодитель Тогда
|
||||
КолонкиСТипами.Вставить(Колонка, ОписаниеТиповЭлемента);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Реквизит = РеквизитыОбъекта.Найти(Колонка);
|
||||
Если Реквизит <> Неопределено Тогда
|
||||
КолонкиСТипами.Вставить(Колонка, Реквизит.Тип);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТипКолонки = ПолучитьТипКолонки(Колонка, РеквизитыОбъекта, СтандартныеРеквизиты);
|
||||
|
||||
Если ТипКолонки <> Неопределено Тогда
|
||||
КолонкиСТипами.Вставить(Колонка, ТипКолонки);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат КолонкиСТипами;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -464,6 +530,10 @@
|
||||
Возврат "пбп_ПредопределенныеЗначения.ЗаполнениеПредопределенныхЭлементов";
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяПоляПредопределенности() Экспорт
|
||||
Возврат "ЭтоПредопределенный";
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -598,13 +668,10 @@
|
||||
|
||||
ИсключаяСвойства = "Родитель";
|
||||
|
||||
Если ЗаполнитьТипЗначенияПВХ(ИсключаяСвойства, НовыйЭлемент, СтрокаТаблицы) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(НовыйЭлемент, СтрокаТаблицы, , ИсключаяСвойства);
|
||||
|
||||
ЗаполнитьЗначениеПВХПоУмолчанию(МенеджерОбъекта, НовыйЭлемент, СтрокаТаблицы.Служебный_ИерархияГруппИЭлементов);
|
||||
Если ЗаполнитьТипЗначенияПВХ(ИсключаяСвойства, НовыйЭлемент, СтрокаТаблицы) Тогда
|
||||
ЗаполнитьЗначениеПВХПоУмолчанию(МенеджерОбъекта, НовыйЭлемент, СтрокаТаблицы.Служебный_ИерархияГруппИЭлементов);
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрокаТаблицы.Служебный_Иерархический И ЗначениеЗаполнено(СтрокаТаблицы.ИдентификаторРодитель) Тогда
|
||||
Родитель = ?(ЗначениеЗаполнено(СтрокаТаблицы.Родитель),
|
||||
@@ -648,13 +715,10 @@
|
||||
|
||||
Свойства = ЗаполняемыеИсключаемыеСвойства(СтрокаТаблицы.Служебный_ИерархияГруппИЭлементов, Элемент.ЭтоГруппа);
|
||||
|
||||
Если ЗаполнитьТипЗначенияПВХ(Свойства.ИсключаяСвойства, Элемент, СтрокаТаблицы) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(Элемент, СтрокаТаблицы, Свойства.СписокСвойств, Свойства.ИсключаяСвойства);
|
||||
|
||||
ЗаполнитьЗначениеПВХПоУмолчанию(МенеджерОбъекта, Элемент, СтрокаТаблицы.Служебный_ИерархияГруппИЭлементов);
|
||||
Если ЗаполнитьТипЗначенияПВХ(Свойства.ИсключаяСвойства, Элемент, СтрокаТаблицы) Тогда
|
||||
ЗаполнитьЗначениеПВХПоУмолчанию(МенеджерОбъекта, Элемент, СтрокаТаблицы.Служебный_ИерархияГруппИЭлементов);
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ЗаписатьЭлементИСвязанныеДанные(Элемент, КлючиХеша, Истина);
|
||||
@@ -684,15 +748,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЗаполнитьТипЗначенияПВХ(ИсключаяСвойства, НовыйЭлемент, СтрокаТаблицы)
|
||||
Функция ЗаполнитьТипЗначенияПВХ(ИсключаяСвойства, Элемент, СтрокаТаблицы)
|
||||
|
||||
Если Не пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ТипЗначения") Тогда
|
||||
Возврат Ложь;
|
||||
Если Не пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТаблицы, "ТипЗначения")
|
||||
Или СтрокаТаблицы.ЭтоГруппа Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ПроверяемыйТип = ТипЗнч(СтрокаТаблицы.ТипЗначения.ПривестиЗначение());
|
||||
|
||||
Если Не НовыйЭлемент.ТипЗначения.СодержитТип(ПроверяемыйТип) Тогда
|
||||
Если Не Элемент.ТипЗначения.СодержитТип(ПроверяемыйТип) Тогда
|
||||
ШаблонОшибки = НСтр("ru = 'Добавьте тип ''%1'' создаваемого элемента ''%2'' в план видов характеристик ''%3''';");
|
||||
ТекстОшибки = СтрШаблон(ШаблонОшибки,
|
||||
пбп_Переадресация.СтроковоеПредставлениеТипа(ПроверяемыйТип),
|
||||
@@ -701,13 +766,13 @@
|
||||
|
||||
пбп_Переадресация.СообщитьПользователю(ТекстОшибки);
|
||||
|
||||
Возврат Истина;
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ИсключаяСвойства = ИсключаяСвойства + "," + "ТипЗначения";
|
||||
НовыйЭлемент.ТипЗначения = СтрокаТаблицы.ТипЗначения;
|
||||
Элемент.ТипЗначения = СтрокаТаблицы.ТипЗначения;
|
||||
|
||||
Возврат Ложь;
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -741,6 +806,21 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТипКолонки(ИмяКолонки, Реквизиты, СтандартныеРеквизиты)
|
||||
|
||||
Реквизит = Реквизиты.Найти(ИмяКолонки);
|
||||
Если Реквизит <> Неопределено Тогда
|
||||
Возврат Реквизит.Тип;
|
||||
КонецЕсли;
|
||||
|
||||
Если пбп_ПереадресацияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтандартныеРеквизиты, ИмяКолонки) Тогда
|
||||
Возврат СтандартныеРеквизиты[ИмяКолонки].Тип;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область РаботаСТаблицейПредопределенных
|
||||
|
||||
Процедура СоздатьКолонкиТаблицыПредопределенныхЭлементов(СтруктураСКолонками, Таблица)
|
||||
|
@@ -57,7 +57,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
|
||||
</DefaultRoles>
|
||||
<Vendor>Первый БИТ</Vendor>
|
||||
<Version>1.0.8.2</Version>
|
||||
<Version>1.0.9.0</Version>
|
||||
<UpdateCatalogAddress/>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
|
||||
|
@@ -131,21 +131,14 @@
|
||||
Функция КлючиХешаОбъект(Объект, ЭтоГруппа)
|
||||
|
||||
МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоСсылке(Объект);
|
||||
КлючевыеПоля = пбп_ПредопределенныеЗначенияСлужебный.КолонкиПредопределенныхЭлементов(МенеджерОбъекта);
|
||||
Если Не ЗначениеЗаполнено(КлючевыеПоля) Тогда
|
||||
Возврат Новый Структура;
|
||||
КонецЕсли;
|
||||
|
||||
мПоля = Новый Массив;
|
||||
Для Каждого КлючЗначение Из КлючевыеПоля Цикл
|
||||
мПоля.Добавить(КлючЗначение.Ключ);
|
||||
КонецЦикла;
|
||||
КлючиХеша = пбп_ПредопределенныеЗначения.КлючиХеша(МенеджерОбъекта);
|
||||
|
||||
Если ЭтоГруппа Тогда
|
||||
мПоля = пбп_ПредопределенныеЗначенияСлужебный.ПолучитьПоляГруппы(МенеджерОбъекта, мПоля);
|
||||
Возврат КлючиХеша.КлючиХешаГруппа;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(мПоля, ЭтоГруппа);
|
||||
Возврат КлючиХеша.КлючиХешаЭлемент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@@ -1,23 +0,0 @@
|
||||
<?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="72ba480f-6821-47a5-bc00-b831bdee3765">
|
||||
<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>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -1,80 +0,0 @@
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
.ДобавитьТестовыйНабор("Ключи хеша предопределенного элемента")
|
||||
.ДобавитьТест("Тест_КлючиХеша_ФормированиеКлючейЭлемент")
|
||||
.ДобавитьТест("Тест_КлючиХеша_ФормированиеКлючейГруппа")
|
||||
.ДобавитьТест("Тест_КлючиХеша_ПустойМассив")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_КлючиХеша_ФормированиеКлючейЭлемент() Экспорт
|
||||
|
||||
Поля = Новый Массив;
|
||||
Поля.Добавить("Поле1");
|
||||
Поля.Добавить("Поле2");
|
||||
Поля.Добавить("Служебный_Поле3");
|
||||
Поля.Добавить("Поле4");
|
||||
|
||||
ИсключаемыеПоля = Новый Структура;
|
||||
ИсключаемыеПоля.Вставить("Поле2", Истина);
|
||||
|
||||
Мокито.Обучение(пбп_ПредопределенныеЗначенияПереопределяемый)
|
||||
.Когда("ИсключаемыеПоляДляРасчетаХешаЭлемент")
|
||||
.Вернуть(ИсключаемыеПоля)
|
||||
.Прогон();
|
||||
|
||||
Ожидаемое = Новый Структура("Поле1,Поле4");
|
||||
|
||||
Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля, Ложь);
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат).Равно(Ожидаемое);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_КлючиХеша_ФормированиеКлючейГруппа() Экспорт
|
||||
|
||||
Поля = Новый Массив;
|
||||
Поля.Добавить("Поле1");
|
||||
Поля.Добавить("Поле2");
|
||||
|
||||
ИсключаемыеПоля = Новый Структура;
|
||||
ИсключаемыеПоля.Вставить("Поле1", Истина);
|
||||
|
||||
Мокито.Обучение(пбп_ПредопределенныеЗначенияПереопределяемый)
|
||||
.Когда("ИсключаемыеПоляДляРасчетаХешаГруппа")
|
||||
.Вернуть(ИсключаемыеПоля)
|
||||
.Прогон()
|
||||
;
|
||||
|
||||
Ожидаемое = Новый Структура("Поле2");
|
||||
|
||||
Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля, Истина);
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат).Равно(Ожидаемое);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_КлючиХеша_ПустойМассив() Экспорт
|
||||
|
||||
Поля = Новый Массив;
|
||||
|
||||
ИсключаемыеПоля = Новый Структура;
|
||||
|
||||
Мокито.Обучение(пбп_ПредопределенныеЗначенияПереопределяемый)
|
||||
.Когда("ИсключаемыеПоляДляРасчетаХешаЭлемент")
|
||||
.Вернуть(ИсключаемыеПоля)
|
||||
.Прогон();
|
||||
|
||||
Ожидаемое = Новый Структура;
|
||||
|
||||
Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля);
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат).Равно(Ожидаемое);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@@ -1,18 +0,0 @@
|
||||
<?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="b2bc88d0-efe0-47e2-8da8-8d45fe0261d4">
|
||||
<InternalInfo/>
|
||||
<Properties>
|
||||
<ObjectBelonging>Adopted</ObjectBelonging>
|
||||
<Name>пбп_ПредопределенныеЗначенияПереопределяемый</Name>
|
||||
<Comment/>
|
||||
<ExtendedConfigurationObject>851dcd44-ce5b-4677-a1cc-a1879f022eec</ExtendedConfigurationObject>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>true</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -1,47 +0,0 @@
|
||||
|
||||
&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
|
||||
Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
|
||||
|
||||
ПараметрыМетода = Новый Массив;
|
||||
|
||||
Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент", ПараметрыМетода);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&Вместо("ИсключаемыеПоляДляРасчетаХешаГруппа")
|
||||
Функция Мок_ИсключаемыеПоляДляРасчетаХешаГруппа()
|
||||
|
||||
ПараметрыМетода = Новый Массив;
|
||||
|
||||
Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаГруппа", ПараметрыМетода);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Выполняет перехват вызова метода
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяМетода - Строка - Имя перехватываемого метода
|
||||
// Параметры - Массив - Параметры метода
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Результат вызова
|
||||
//
|
||||
Функция ВыполнитьПерехватМетода(ИмяМетода, ПараметрыМетода)
|
||||
|
||||
ПрерватьВыполнение = Ложь;
|
||||
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
|
||||
ИмяМетода,
|
||||
ПараметрыМетода,
|
||||
ПрерватьВыполнение);
|
||||
|
||||
Если НЕ ПрерватьВыполнение Тогда
|
||||
Возврат ПродолжитьВызов();
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@@ -161,9 +161,7 @@
|
||||
<CommonModule>ЮТЧитательСлужебныйВызовСервера</CommonModule>
|
||||
<CommonModule>ОМ_ОбщегоНазаначенияСервер</CommonModule>
|
||||
<CommonModule>ОМ_КоннекторHTTP</CommonModule>
|
||||
<CommonModule>ОМ_ПредопределенныеЗначения</CommonModule>
|
||||
<CommonModule>ОМ_ПредопределенныеЗначенияСлужебный</CommonModule>
|
||||
<CommonModule>пбп_ПредопределенныеЗначенияПереопределяемый</CommonModule>
|
||||
<CommonModule>ОМ_ПредопределенныеЗначенияВызовСервера</CommonModule>
|
||||
<CommonModule>пбп_ПредопределенныеЗначения</CommonModule>
|
||||
<CommonModule>ОМ_ПостроительСпецификацииOpenAPI</CommonModule>
|
||||
|
Reference in New Issue
Block a user