From 581e23a92ede0d4049809403ae1ce7fda59f1445 Mon Sep 17 00:00:00 2001
From: Denis Ushakov <59319861+denisushakov@users.noreply.github.com>
Date: Fri, 20 Dec 2024 18:45:32 +0300
Subject: [PATCH] improved funcs and refacted (#167)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Рефакторинг модулей подсистемы предопределенных значений
---
.../Ext/Module.bsl" | 2 +-
.../Ext/Module.bsl" | 2 +-
.../Ext/Module.bsl" | 23 +++-
.../Ext/Module.bsl" | 10 ++
.../Ext/Module.bsl" | 3 -
.../Ext/Module.bsl" | 111 +++--------------
.../Ext/Module.bsl" | 112 ++++++++++++++++--
src/cf/Configuration.xml | 2 +-
.../Ext/ManagerModule.bsl" | 2 +-
.../Ext/Module.bsl" | 2 +-
10 files changed, 156 insertions(+), 113 deletions(-)
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl"
index dcce0f3c..ec3b5874 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213\320\237\320\221\320\237/Ext/Module.bsl"
@@ -74,7 +74,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
- Описание.Версия = "1.0.4.15";
+ Описание.Версия = "1.0.4.16";
// Требуется библиотека стандартных подсистем.
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
index 7645ea1b..700a6154 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
@@ -882,7 +882,7 @@
//
Процедура ОбработатьСуществующийПредопределенныйЭлемент(Объект) Экспорт
- пбп_ПредопределенныеЗначения.ОбновитьХешЭлемента(Объект);
+ пбп_ПредопределенныеЗначения.ОбновитьХешПредопределенногоЭлемента(Объект);
КонецПроцедуры
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl"
index c5e46310..e5f1684c 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Module.bsl"
@@ -34,7 +34,7 @@
Возврат Новый ТаблицаЗначений;
КонецЕсли;
- ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый
+ ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияСлужебный
.ТаблицаПредопределенныхЭлементов(МенеджерОбъекта);
ТаблицаКонфликтныхЭлементов = пбп_ПредопределенныеЗначенияСлужебный
@@ -55,6 +55,10 @@
//
Функция КлючиХешаПредопределенногоЭлемента(Поля, ЭтоГруппа = Ложь) Экспорт
+ Если ТипЗнч(Поля) <> Тип("Массив") Или Не ЗначениеЗаполнено(Поля) Тогда
+ Возврат Новый Структура;
+ КонецЕсли;
+
мКлючи = Новый Массив;
Если ЭтоГруппа Тогда
@@ -64,8 +68,7 @@
КонецЕсли;
Для Каждого Поле Из Поля Цикл
- Если ИсключаемыеПоля.Свойство(Поле)
- Или СтрНачинаетсяС(Поле, "Служебный_") Тогда
+ Если ИсключаемыеПоля.Свойство(Поле) Или СтрНачинаетсяС(Поле, "Служебный_") Тогда
Продолжить;
КонецЕсли;
мКлючи.Добавить(Поле);
@@ -75,12 +78,12 @@
КонецФункции
-// Обновляет хеш элемента в регистре, устанавливая при этом ручное изменение.
+// Обновляет хеш предопределенного элемента в регистре, устанавливая при этом ручное изменение.
//
// Параметры:
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - предопределенный элемент.
//
-Процедура ОбновитьХешЭлемента(Объект) Экспорт
+Процедура ОбновитьХешПредопределенногоЭлемента(Объект) Экспорт
Флаг = пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(Объект.ДополнительныеСвойства, "РучноеИзменение", Истина);
@@ -99,6 +102,16 @@
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.СоздатьЗаписьРегистра(Объект, ЭтоГруппа, КлючиХеша);
КонецПроцедуры
+// Обновляет флаг ручного изменения элемента
+//
+// Параметры:
+// Элемент - СправочникСсылка, ПланВидовХарактеристикСсылка - Ссылка на предопределенный элемент
+// Флаг - Булево - Устанавливается если были изменены ключевые поля пользователем.
+//
+Процедура УстановитьФлагРучноеИзменение(Элемент, Флаг = Ложь) Экспорт
+ РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьФлагРучногоИзменения(Элемент, Флаг);
+КонецПроцедуры
+
// Заполнение предопределенных элементов, с возможностью серверного оповещения
// о существующих конфликтах при создании элементов.
//
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
index 607f4e6a..1db463d0 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Ext/Module.bsl"
@@ -20,6 +20,16 @@
#Область СлужебныйПрограммныйИнтерфейс
+// Инициализирует предопределенные значения из таблицы.
+//
+// Параметры:
+// ИмяФормы - Строка - Имя формы из которой выполняется инициализация.
+//
+// Возвращаемое значение:
+// ФиксированнаяСтруктура - Таблица с конфликтными элементами
+// * АдресТаблицы - Строка - Адрес временного хранилища.
+// * ЕстьСтроки - Булево - Истина если есть строки в таблице конфликтов.
+//
Функция ИнициализироватьПредопределенныеЗначения(ИмяФормы) Экспорт
Менеджер = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяФормы);
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
index a5f65c14..4d6c9524 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
@@ -18,9 +18,6 @@
// URL: https://github.com/firstBitSportivnaya/PSSL/
//
-////////////////////////////////////////////////////////////////////////////////
-// Работа с диалогами (сервер): для серверных методов работы с диалогами.
-
#Область ПрограммныйИнтерфейс
// Создание предопределенных значений на основании заполненной таблицы
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
index e3d93c9e..9bdb1948 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
@@ -1,59 +1,24 @@
-
-#Область ПрограммныйИнтерфейс
-
-// Инициализирует предопределенные значения из таблицы.
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
+// включая доработку типовых конфигураций.
//
-// Параметры:
-// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
-//
-// Возвращаемое значение:
-// ТаблицаЗначений - Таблица предопределенных элементов.
+// Copyright First BIT company
//
-Функция ТаблицаПредопределенныхЭлементов(Менеджер) Экспорт
-
- Колонки = КолонкиПредопределенныхЭлементов(Менеджер);
-
- Таблица = Новый ТаблицаЗначений;
-
- СоздатьКолонкиТаблицыПредопределенныхЭлементов(Колонки, Таблица);
-
- Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииСозданияТаблицПредопределенныхЭлементов()
- .Получить(ТипЗнч(Менеджер));
-
- Если Не ЗначениеЗаполнено(Выражение) Тогда
- Возврат Таблица;
- КонецЕсли;
-
- Параметры = Новый Массив;
- Параметры.Добавить(Таблица);
-
- пбп_Переадресация.ВыполнитьМетодКонфигурации(Выражение, Параметры);
-
- Возврат Параметры[0];
-
-КонецФункции
-
-// Инициализирует таблицу значений для конфликтных элементов.
+// 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/
+//
+
+#Область ПрограммныйИнтерфейс
#Область ЗаполнениеДанных
@@ -218,34 +183,6 @@
#КонецОбласти
-// Возвращает колонки таблицы предопределенных элементов.
-//
-// Параметры:
-// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
-//
-// Возвращаемое значение:
-// Структура - Где ключ имя колонки, значение описание типов колонки
-// Неопределено - если обработчика заполнения колонок не существует.
-//
-Функция КолонкиПредопределенныхЭлементов(Менеджер) Экспорт
-
- Колонки = ОбщиеКолонки(Менеджер);
-
- Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияКолонокПредопределенныхЭлементов()
- .Получить(ТипЗнч(Менеджер));
-
- Если Не ЗначениеЗаполнено(Выражение) Тогда
- Возврат Колонки;
- КонецЕсли;
-
- ДопКолонки = пбп_Переадресация.ВычислитьВБезопасномРежиме(Выражение);
-
- пбп_ПереадресацияКлиентСервер.ДополнитьСтруктуру(Колонки, ДопКолонки);
-
- Возврат Колонки;
-
-КонецФункции
-
#Область СтруктурыКолонокТаблиц
// Возвращает колонки предопределенные значения
@@ -389,7 +326,7 @@
#Область СлужебныеПроцедурыИФункции
-Функция ОбщиеКолонки(Менеджер)
+Функция ОбщиеКолонки(Менеджер) Экспорт
массив = Новый Массив;
массив.Добавить(ТипЗнч(Менеджер.ПустаяСсылка()));
@@ -420,16 +357,4 @@
КонецФункции
-Процедура СоздатьКолонкиТаблицыПредопределенныхЭлементов(СтруктураСКолонками, Таблица)
-
- Для Каждого КлючЗначение Из СтруктураСКолонками Цикл
- Если Таблица.Колонки.Найти(КлючЗначение.Ключ) <> Неопределено Тогда
- Продолжить;
- КонецЕсли;
-
- Таблица.Колонки.Добавить(КлючЗначение.Ключ, КлючЗначение.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
#КонецОбласти
diff --git "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
index 9aa4898b..fc8eb767 100644
--- "a/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ "b/src/cf/CommonModules/\320\277\320\261\320\277_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
@@ -216,8 +216,8 @@
//
Функция УдалитьИзТаблицыСуществующиеЭлементы(ТаблицаПредопределенных, ДополнительныеПараметры) Экспорт
- ТаблицаКонфликтныхЭлементов = пбп_ПредопределенныеЗначенияПереопределяемый
- .ТаблицаКонфликтныхЭлементов(ДополнительныеПараметры.Менеджер, ТаблицаПредопределенных.СкопироватьКолонки());
+ ТаблицаКонфликтныхЭлементов = ТаблицаКонфликтныхЭлементов(
+ ДополнительныеПараметры.Менеджер, ТаблицаПредопределенных.СкопироватьКолонки());
Если Не ЗначениеЗаполнено(ТаблицаПредопределенных) Тогда
Возврат ТаблицаКонфликтныхЭлементов;
@@ -301,7 +301,7 @@
Если СтрокаТаблицы.Служебный_ОбновитьЭлемент Тогда
ОбновитьЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Родители);
ИначеЕсли СтрокаТаблицы.Служебный_УстановитьФлагРучноеИзменение Тогда
- УстановитьФлагРучноеИзменение(СтрокаТаблицы.Служебный_ПредопределенныйЭлемент);
+ пбп_ПредопределенныеЗначения.УстановитьФлагРучноеИзменение(СтрокаТаблицы.Служебный_ПредопределенныйЭлемент, Истина);
ИначеЕсли СтрокаТаблицы.Служебный_СоздатьЗаписьРегистра Тогда
пбп_ПредопределенныеЗначения.СоздатьЗаписьСостоянияПредопределенногоЭлемента(
СтрокаТаблицы.Служебный_ПредопределенныйЭлемент, ЭтоГруппа, КлючиХеша);
@@ -329,6 +329,92 @@
КонецФункции
+#Область РаботаСТаблицейПредопределенных
+
+// Инициализирует предопределенные значения из таблицы.
+//
+// Параметры:
+// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
+//
+// Возвращаемое значение:
+// ТаблицаЗначений - Таблица предопределенных элементов.
+//
+Функция ТаблицаПредопределенныхЭлементов(Менеджер) Экспорт
+
+ Колонки = КолонкиПредопределенныхЭлементов(Менеджер);
+
+ Таблица = Новый ТаблицаЗначений;
+
+ СоздатьКолонкиТаблицыПредопределенныхЭлементов(Колонки, Таблица);
+
+ Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииСозданияТаблицПредопределенныхЭлементов()
+ .Получить(ТипЗнч(Менеджер));
+
+ Если Не ЗначениеЗаполнено(Выражение) Тогда
+ Возврат Таблица;
+ КонецЕсли;
+
+ Параметры = Новый Массив;
+ Параметры.Добавить(Таблица);
+
+ пбп_Переадресация.ВыполнитьМетодКонфигурации(Выражение, Параметры);
+
+ Возврат Параметры[0];
+
+КонецФункции
+
+// Инициализирует таблицу значений для конфликтных элементов.
+//
+// Параметры:
+// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
+// ИсходнаяТаблица - ТаблицаЗначений - Пустая таблица каркас,
+// см. пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенныхЭлементов
+//
+// Возвращаемое значение:
+// ТаблицаЗначений - Таблица конфликтных элементов.
+//
+Функция ТаблицаКонфликтныхЭлементов(Менеджер, ИсходнаяТаблица = Неопределено) Экспорт
+
+ Если ИсходнаяТаблица = Неопределено Тогда
+ ИсходнаяТаблица = ТаблицаПредопределенныхЭлементов(Менеджер);
+ КонецЕсли;
+
+ ИсходнаяТаблица.Колонки.Добавить("Служебный_ДублированиеИдентификаторов", Новый ОписаниеТипов("Булево"));
+
+ Возврат ИсходнаяТаблица;
+
+КонецФункции
+
+// Возвращает колонки таблицы предопределенных элементов.
+//
+// Параметры:
+// Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
+//
+// Возвращаемое значение:
+// Структура - Где ключ имя колонки, значение описание типов колонки
+// Неопределено - если обработчика заполнения колонок не существует.
+//
+Функция КолонкиПредопределенныхЭлементов(Менеджер) Экспорт
+
+ Колонки = пбп_ПредопределенныеЗначенияПереопределяемый.ОбщиеКолонки(Менеджер);
+
+ Выражение = пбп_ПредопределенныеЗначенияПовтИсп.ФункцииПолученияКолонокПредопределенныхЭлементов()
+ .Получить(ТипЗнч(Менеджер));
+
+ Если Не ЗначениеЗаполнено(Выражение) Тогда
+ Возврат Колонки;
+ КонецЕсли;
+
+ ДопКолонки = пбп_Переадресация.ВычислитьВБезопасномРежиме(Выражение);
+
+ пбп_ПереадресацияКлиентСервер.ДополнитьСтруктуру(Колонки, ДопКолонки);
+
+ Возврат Колонки;
+
+КонецФункции
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -533,10 +619,6 @@
КонецПроцедуры
-Процедура УстановитьФлагРучноеИзменение(Элемент)
- РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьФлагРучногоИзменения(Элемент, Истина);
-КонецПроцедуры
-
Процедура ЗаписатьЭлементИСвязанныеДанные(Элемент, КлючиХеша, Обновление = Ложь)
Элемент.ДополнительныеСвойства.Вставить("РучноеИзменение", Ложь);
@@ -567,6 +649,22 @@
КонецФункции
+#Область РаботаСТаблицейПредопределенных
+
+Процедура СоздатьКолонкиТаблицыПредопределенныхЭлементов(СтруктураСКолонками, Таблица)
+
+ Для Каждого КлючЗначение Из СтруктураСКолонками Цикл
+ Если Таблица.Колонки.Найти(КлючЗначение.Ключ) <> Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Таблица.Колонки.Добавить(КлючЗначение.Ключ, КлючЗначение.Значение);
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область СообщенияОСобытии
Процедура СообщитьОПомеченномНаУдалениеЭлементе(Элемент)
diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml
index 5423bdfd..c5cc1ce8 100644
--- a/src/cf/Configuration.xml
+++ b/src/cf/Configuration.xml
@@ -57,7 +57,7 @@
Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок
Первый БИТ
- 1.0.4.15
+ 1.0.4.16
false
false
diff --git "a/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl" "b/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl"
index ac3c80ac..84092c59 100644
--- "a/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl"
+++ "b/src/cf/InformationRegisters/\320\277\320\261\320\277_\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\321\205\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ManagerModule.bsl"
@@ -112,7 +112,7 @@
Функция КлючиХешаОбъект(Объект, ЭтоГруппа)
МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоСсылке(Объект);
- КлючевыеПоля = пбп_ПредопределенныеЗначенияПереопределяемый.КолонкиПредопределенныхЭлементов(МенеджерОбъекта);
+ КлючевыеПоля = пбп_ПредопределенныеЗначенияСлужебный.КолонкиПредопределенныхЭлементов(МенеджерОбъекта);
Если Не ЗначениеЗаполнено(КлючевыеПоля) Тогда
Возврат Новый Структура;
КонецЕсли;
diff --git "a/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
index 76bffc2c..f6941388 100644
--- "a/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
+++ "b/src/cfe/YAXUnit/CommonModules/\320\236\320\234_\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl"
@@ -25,7 +25,7 @@
МенеджерОбъекта = пбп_Переадресация
.МенеджерОбъектаПоПолномуИмени("ПланВидовХарактеристик.пбп_ПредопределенныеЗначения");
- Таблица = пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенныхЭлементов(МенеджерОбъекта);
+ Таблица = пбп_ПредопределенныеЗначенияСлужебный.ТаблицаПредопределенныхЭлементов(МенеджерОбъекта);
ПроверкаРезультатовОбработкиПредопределенных(МенеджерОбъекта, Таблица);