1
0
mirror of https://github.com/firstBitSportivnaya/PSSL.git synced 2024-11-21 17:56:47 +02:00

Added functions for setting a mark for deletion and code refactoring (#91)

Доработана подсистема предопределенных значений для автоматической пометки на удаление не существующих в коде элементов и перемещение существующих элементов при смене иерархии
This commit is contained in:
Denis Ushakov 2024-09-03 11:52:10 +03:00 committed by GitHub
parent 7805fb0f48
commit e3ef441972
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 567 additions and 419 deletions

View File

@ -5,7 +5,10 @@
"skipSupport": "withSupport",
"ordinaryAppSupport": false,
"parameters": {
"OrdinaryAppSupport": false
"OrdinaryAppSupport": false,
"Typo": {
"userWordsToIgnore": "пбп"
}
}
}
}

View File

@ -1,30 +1,16 @@
# Подсистема "предопределенные значения"
Для обращения к ссылкам из кода используем предопределенные значения, добавляем их в план видов характеристик (ПВХ) "пбп_ПредопределенныеЗначения"
## Описание подсистемы
Для удобной работы с ПВХ у нас есть следующие функции:
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение(Имя, ИспользоватьКэш)** - если это единичное значение, возвращается сразу оно, если установлен флаг "Список значений" то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имя - Строка
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- ПроизвольныйТип - Значение переменной ПВХ.
- Массив - Массив значений переменной ПВХ.
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей, ИспользоватьКэш)** - если "ВРазрезеКлючей" то возвращает соответствие нескольких элементов ПВХ, если ВРазрезеКлючей = ложь, то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имена - Строка - Имена переменных ПВХ, перечисленные через запятую.
- ВРазрезеКлючей - Булево
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- Соответствие - Соответствие имен и значений переменных ПВХ.
- Ключ - Строка - имя значения
- Значение - ПроизвольныйТип
- Массив - ПроизвольныйТип
По стандартам разработки поиск ссылочных объектов в программном коде по наименованию, коду, гуиду и т.д. не рекомендуется. Для возможности получения ссылок из программного кода предлагается использовать элементы плана видов характеристик. Чтобы избежать необходимости реструктуризации при добавлении новых элементов в ПВХ, формирование иерархии и элементов делается программно и обновляется в пользовательском режиме. Получение элементов стандартизируется через общий модуль с возможностью кэширования.
При коментировании или удалении из кода предопределенных элементов и последующем перезаполнении, элемент будет помечен на удаление, включая все его подчиненные элементы.
## Добавление новых элементов
В модуле **пбп_ПредопределенныеЗначенияПереопределяемый** значения добавляются через метод **Добавить()** коллекции **Результат**, которая представляет собой таблицу предопределённых значений. Каждая новая запись в этой таблице может быть настроена как группа путём установки свойства ЭтоГруппа в значение Истина.
**ИдентификаторНастройки**: Уникальный идентификатор группы, который используется для внутренних ссылок и связей между группами.
**Родитель**: Идентификатор настройки родительской группы, указывается для элементов и групп являющихся подгруппами.
**УровеньИерархии**: Целочисленное значение, определяющее уровень группы в иерархической структуре. Этот параметр используется для обеспечения правильного порядка создания групп, где сначала должны быть созданы группы верхнего уровня, а затем вложенные.
- **ИдентификаторНастройки**: Уникальный идентификатор группы, который используется для внутренних ссылок и связей между группами.
- **Родитель**: Идентификатор настройки родительской группы, указывается для элементов и групп являющихся подгруппами.
- **УровеньИерархии**: Целочисленное значение, определяющее уровень группы в иерархической структуре. Этот параметр используется для обеспечения правильного порядка создания групп, где сначала должны быть созданы группы верхнего уровня, а затем вложенные.
Пример добавления нового элемента в модуле пбп_ПредопределенныеЗначенияПереопределяемый:
@ -75,6 +61,27 @@
КонецФункции
```
## Получение значения элементов
Для удобной работы с ПВХ у нас есть следующие функции:
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение(Имя, ИспользоватьКэш)** - если это единичное значение, возвращается сразу оно, если установлен флаг "Список значений" то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имя - Строка
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- ПроизвольныйТип - Значение переменной ПВХ.
- Массив - Массив значений переменной ПВХ.
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей, ИспользоватьКэш)** - если "ВРазрезеКлючей" то возвращает соответствие нескольких элементов ПВХ, если ВРазрезеКлючей = ложь, то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имена - Строка - Имена переменных ПВХ, перечисленные через запятую.
- ВРазрезеКлючей - Булево
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- Соответствие - Соответствие имен и значений переменных ПВХ.
- Ключ - Строка - имя значения
- Значение - ПроизвольныйТип
- Массив - ПроизвольныйТип
Пример получения множественного результата:
```1C (BSL)

View File

@ -1,41 +1 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
//
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт
ТЗПредопределенныхЗначений = пбп_ИнтеграцииПереопределяемый.ПредопределенныеЗначенияИнтегрируемыеСистемы();
ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_ИнтегрируемыеСистемы");
пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_ИнтегрируемыеСистемы);
КонецПроцедуры
#КонецОбласти
#КонецЕсли


View File

@ -26,9 +26,7 @@
&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
Справочники.пбп_ИнтегрируемыеСистемы.ЗаполнитьПредопределенныеСоответствия();
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ИнтегрируемыеСистемы);
КонецПроцедуры
&НаКлиенте

View File

@ -22,20 +22,6 @@
#Область ПрограммныйИнтерфейс
Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт
ТЗПредопределенныхЗначений = пбп_ИнтеграцииПереопределяемый.ПредопределенныеЗначенияМетодыИнтеграции();
ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_МетодыИнтеграции");
пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_МетодыИнтеграции);
КонецПроцедуры
// Получает структуру параметров метода интеграции со значениями по умолчанию
//
// Параметры:

View File

@ -26,9 +26,7 @@
&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
Справочники.пбп_МетодыИнтеграции.ЗаполнитьПредопределенныеСоответствия();
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_МетодыИнтеграции);
КонецПроцедуры
&НаКлиенте

View File

@ -1,41 +1 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
//
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт
ТЗПредопределенныхЗначений = пбп_ИнтеграцииПереопределяемый.ПредопределенныеЗначенияНастройкиИнтеграции();
ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_НастройкиИнтеграции");
пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_НастройкиИнтеграции);
КонецПроцедуры
#КонецОбласти
#КонецЕсли


View File

@ -26,9 +26,7 @@
&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
Справочники.пбп_НастройкиИнтеграции.ЗаполнитьПредопределенныеСоответствия();
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_НастройкиИнтеграции);
КонецПроцедуры
&НаКлиенте

View File

@ -49,20 +49,6 @@
КонецФункции
Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт
ТЗПредопределенныхЗначений = пбп_ТипСоответствияОбъектовИБПереопределяемый.ПредопределенныеЗначения();
ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_ТипСоответствияОбъектовИБ");
пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_ТипСоответствияОбъектовИБ);
КонецПроцедуры
#КонецОбласти
#КонецЕсли

View File

@ -26,9 +26,7 @@
&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
Справочники.пбп_ТипСоответствияОбъектовИБ.ЗаполнитьПредопределенныеСоответствия();
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ТипСоответствияОбъектовИБ);
КонецПроцедуры
&НаКлиенте

View File

@ -14,7 +14,8 @@
&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения();
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(
ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения);
КонецПроцедуры
&НаКлиенте

View File

@ -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="10964c81-8622-47e4-8243-0dc1fc8068de">
<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>false</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -1,103 +0,0 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
//
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Функция ПредопределенныеЗначенияИнтегрируемыеСистемы() Экспорт
Результат = ТаблицаПредопределенныхИнтегрируемыеСистемы();
// Добавление
НоваяСистема = Результат.Добавить();
НоваяСистема.Наименование = "Система N";
НоваяСистема.ИдентификаторНастройки = "СистемаN";
// КонецДобавления
Возврат Результат;
КонецФункции
Функция ПредопределенныеЗначенияМетодыИнтеграции() Экспорт
Результат = ТаблицаПредопределенныхМетодыИнтеграции();
// Добавление
НовыйМетод = Результат.Добавить();
НовыйМетод.Наименование = "Метод интеграции системы N";
НовыйМетод.ИдентификаторНастройки = "МетодИнтеграцииСистемыN";
// КонецДобавления
Возврат Результат;
КонецФункции
Функция ПредопределенныеЗначенияНастройкиИнтеграции() Экспорт
Результат = ТаблицаПредопределенныхНастройкиИнтеграции();
// Добавление
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Интеграция с системой N";
НоваяНастройка.ИдентификаторНастройки = "ИнтеграцияССистемойN";
// КонецДобавления
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ТаблицаПредопределенныхИнтегрируемыеСистемы()
Результат = Новый ТаблицаЗначений;
пбп_ПредопределенныеЗначенияПереопределяемый.ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
Функция ТаблицаПредопределенныхМетодыИнтеграции()
Результат = Новый ТаблицаЗначений;
пбп_ПредопределенныеЗначенияПереопределяемый.ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
Функция ТаблицаПредопределенныхНастройкиИнтеграции()
Результат = Новый ТаблицаЗначений;
пбп_ПредопределенныеЗначенияПереопределяемый.ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -74,7 +74,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
Описание.Версия = "1.0.1.2";
Описание.Версия = "1.0.1.3";
// Требуется библиотека стандартных подсистем.
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");

View File

@ -27,31 +27,31 @@
// Возвращает значение предопределенного элемента ПВХ по имени.
//
// Параметры:
// Имя - Строка - Имя переменной ПВХ.
// Идентификатор - Строка - Идентификатор переменной ПВХ.
//
// Возвращаемое значение:
// - ПроизвольныйТип - Значение переменной ПВХ.
// - Массив - Массив значений переменной ПВХ.
//
Функция ПолучитьПредопределенноеЗначение(Имя) Экспорт
Функция ПолучитьПредопределенноеЗначение(Идентификатор) Экспорт
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначение(Имя);
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначение(Идентификатор);
КонецФункции
// Возвращает соответствие предопределенных элементов ПВХ по имени.
// Возвращает соответствие предопределенных элементов ПВХ по идентификаторам.
//
// Параметры:
// Имя - Строка - Имена переменных ПВХ, перечисленные через запятую.
// Идентификаторы - Строка - Идентификаторы переменных ПВХ, перечисленные через запятую.
// ВРазрезеКлючей - Булево - Признак получения данных в виде соответствия, где Ключ - Имя переменной.
//
// Возвращаемое значение:
// - Соответствие - Соответствие имен и значений переменных ПВХ.
// - Соответствие - Соответствие идентификаторов и значений переменных ПВХ.
// - Массив - Массив значений переменных ПВХ.
//
Функция ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей = Ложь) Экспорт
Функция ПолучитьПредопределенныеЗначения(Идентификаторы, ВРазрезеКлючей = Ложь) Экспорт
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначения(Имена, ВРазрезеКлючей);
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначения(Идентификаторы, ВРазрезеКлючей);
КонецФункции

View File

@ -54,22 +54,22 @@
Конецфункции
// Возвращает значение предопределенного элемента ПВХ по имени.
// Возвращает значение предопределенного элемента ПВХ по идентификатору.
//
// Параметры:
// Имя - Строка - Имя переменной ПВХ.
// Идентификатор - Строка - Идентификатор переменной ПВХ.
// ИспользоватьКэш - Булево - Признак получения данных из кэша.
//
// Возвращаемое значение:
// - ПроизвольныйТип - Значение переменной ПВХ.
// - Массив - Массив значений переменной ПВХ.
//
Функция ПолучитьПредопределенноеЗначение(Имя, ИспользоватьКэш = Ложь) Экспорт
Функция ПолучитьПредопределенноеЗначение(Идентификатор, ИспользоватьКэш = Ложь) Экспорт
Если ИспользоватьКэш Тогда
Возврат пбп_ОбщегоНазначенияПовтИсп.ПолучитьПредопределенноеЗначение(Имя);
Возврат пбп_ОбщегоНазначенияПовтИсп.ПолучитьПредопределенноеЗначение(Идентификатор);
Иначе
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначение(Имя);
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначение(Идентификатор);
КонецЕсли;
КонецФункции
@ -77,20 +77,20 @@
// Возвращает соответствие предопределенных элементов ПВХ по имени.
//
// Параметры:
// Имя - Строка - Имена переменных ПВХ, перечисленные через запятую.
// ВРазрезеКлючей - Булево - Признак получения данных в виде соответствия, где Ключ - Имя переменной.
// Идентификаторы - Строка - Идентификаторы переменных ПВХ, перечисленные через запятую.
// ВРазрезеКлючей - Булево - Признак получения данных в виде соответствия, где Ключ - Идентификатор переменной.
// ИспользоватьКэш - Булево - Признак получения данных из кэша.
//
// Возвращаемое значение:
// - Соответствие - Соответствие имен и значений переменных ПВХ.
// - Соответствие - Соответствие идентификаторов и значений переменных ПВХ.
// - Массив - Массив значений переменных ПВХ.
//
Функция ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей = Ложь, ИспользоватьКэш = Ложь) Экспорт
Функция ПолучитьПредопределенныеЗначения(Идентификаторы, ВРазрезеКлючей = Ложь, ИспользоватьКэш = Ложь) Экспорт
Если ИспользоватьКэш Тогда
Возврат пбп_ОбщегоНазначенияПовтИсп.ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей);
Возврат пбп_ОбщегоНазначенияПовтИсп.ПолучитьПредопределенныеЗначения(Идентификаторы, ВРазрезеКлючей);
Иначе
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначения(Имена, ВРазрезеКлючей);
Возврат ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения.ПолучитьЗначения(Идентификаторы, ВРазрезеКлючей);
КонецЕсли;
КонецФункции
@ -1815,6 +1815,124 @@
#КонецОбласти
// Аналог метода БСП. Возвращает менеджер объекта по полному имени объекта метаданных.
// Ограничение: не обрабатываются точки маршрутов бизнес-процессов.
//
// Параметры:
// ПолноеИмя - Строка - полное имя объекта метаданных. Пример: "Справочник.Организации".
//
// Возвращаемое значение:
// СправочникМенеджер, ДокументМенеджер, ОбработкаМенеджер, РегистрСведенийМенеджер - менеджер объекта.
//
// Пример:
// МенеджерСправочника = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Справочник.Организации");
// ПустаяСсылка = МенеджерСправочника.ПустаяСсылка();
//
Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) Экспорт
Перем КлассОМ, ИмяОМ, Менеджер;
ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
Если ЧастиИмени.Количество() >= 2 Тогда
КлассОМ = ЧастиИмени[0];
ИмяОМ = ЧастиИмени[1];
Иначе
Менеджер = Неопределено;
КонецЕсли;
Если ВРег(КлассОМ) = "ПЛАНОБМЕНА" Тогда
Менеджер = ПланыОбмена;
ИначеЕсли ВРег(КлассОМ) = "СПРАВОЧНИК" Тогда
Менеджер = Справочники;
ИначеЕсли ВРег(КлассОМ) = "ДОКУМЕНТ" Тогда
Менеджер = Документы;
ИначеЕсли ВРег(КлассОМ) = "ЖУРНАЛДОКУМЕНТОВ" Тогда
Менеджер = ЖурналыДокументов;
ИначеЕсли ВРег(КлассОМ) = "ПЕРЕЧИСЛЕНИЕ" Тогда
Менеджер = Перечисления;
ИначеЕсли ВРег(КлассОМ) = "ОТЧЕТ" Тогда
Менеджер = Отчеты;
ИначеЕсли ВРег(КлассОМ) = "ОБРАБОТКА" Тогда
Менеджер = Обработки;
ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда
Менеджер = ПланыВидовХарактеристик;
ИначеЕсли ВРег(КлассОМ) = "ПЛАНСЧЕТОВ" Тогда
Менеджер = ПланыСчетов;
ИначеЕсли ВРег(КлассОМ) = "ПЛАНВИДОВРАСЧЕТА" Тогда
Менеджер = ПланыВидовРасчета;
ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРСВЕДЕНИЙ" Тогда
Менеджер = РегистрыСведений;
ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРНАКОПЛЕНИЯ" Тогда
Менеджер = РегистрыНакопления;
ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРБУХГАЛТЕРИИ" Тогда
Менеджер = РегистрыБухгалтерии;
ИначеЕсли ВРег(КлассОМ) = "РЕГИСТРРАСЧЕТА" Тогда
Если ЧастиИмени.Количество() = 2 Тогда
Менеджер = РегистрыРасчета;
ИначеЕсли ЧастиИмени.Количество() = 4 Тогда
КлассПодчиненногоОМ = ЧастиИмени[2];
ИмяПодчиненногоОМ = ЧастиИмени[3];
Если ВРег(КлассПодчиненногоОМ) = "ПЕРЕРАСЧЕТ" Тогда
Менеджер = РегистрыРасчета[ИмяОМ].Перерасчеты;
ИмяОм = ИмяПодчиненногоОМ;
Иначе
Менеджер = Неопределено;
КонецЕсли;
Иначе
Менеджер = Неопределено;
КонецЕсли;
ИначеЕсли ВРег(КлассОМ) = "БИЗНЕСПРОЦЕСС" Тогда
Менеджер = БизнесПроцессы;
ИначеЕсли ВРег(КлассОМ) = "ЗАДАЧА" Тогда
Менеджер = Задачи;
ИначеЕсли ВРег(КлассОМ) = "КОНСТАНТА" Тогда
Менеджер = Константы;
ИначеЕсли ВРег(КлассОМ) = "ПОСЛЕДОВАТЕЛЬНОСТЬ" Тогда
Менеджер = Последовательности;
Иначе
Менеджер = Неопределено;
КонецЕсли;
Если Менеджер = Неопределено Тогда
ПроверитьОбъектМетаданныхСуществует(ПолноеИмя);
ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Объект метаданных ""%1"" не имеет менеджера объекта.';
|en = 'Metadata object %1 has no object manager.'"), ПолноеИмя);
КонецЕсли;
Попытка
Возврат Менеджер[ИмяОМ];
Исключение
ПроверитьОбъектМетаданныхСуществует(ПолноеИмя);
ВызватьИсключение;
КонецПопытки;
КонецФункции
#КонецОбласти
#Область ПользовательскиеФункции
@ -2383,6 +2501,25 @@
#КонецОбласти
#Область Метаданные
// Аналог метода БСП.
//
// Параметры:
// ПолноеИмя - Строка - Полное имя объекта метаданных.
//
Процедура ПроверитьОбъектМетаданныхСуществует(ПолноеИмя)
Если ОбъектМетаданныхПоПолномуИмени(ПолноеИмя) = Неопределено Тогда
ВызватьИсключение пбп_СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Неизвестный тип объекта метаданных ""%1"".';
|en = 'Unknown metadata object type: ""%1"".'"), ПолноеИмя);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ПользовательскиеФункции

View File

@ -148,6 +148,14 @@
#КонецОбласти
// См. пбп_ОбщегоНазначенияСервер.МенеджерОбъектаПоПолномуИмени.
Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) Экспорт
Модуль = ПолучитьМодуль();
Возврат Модуль.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -20,38 +20,60 @@
#Область ПрограммныйИнтерфейс
Процедура ИнициализироватьПредопределенныеЗначения() Экспорт
// Инициализирует предопределенные значения из таблицы.
//
// Параметры:
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
//
Процедура ИнициализироватьПредопределенныеЗначения(МенеджерОбъекта) Экспорт
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначения();
ТипЗначения = ТипЗнч(МенеджерОбъекта);
Если ТипЗначения = Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения") Тогда
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначения();
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_ИнтегрируемыеСистемы") Тогда
ТЗПредопределенныхЗначений =
пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияИнтегрируемыеСистемы();
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_МетодыИнтеграции") Тогда
ТЗПредопределенныхЗначений = пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияМетодыИнтеграции();
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_НастройкиИнтеграции") Тогда
ТЗПредопределенныхЗначений =
пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияНастройкиИнтеграции();
ИначеЕсли ТипЗначения = Тип("СправочникМенеджер.пбп_ТипСоответствияОбъектовИБ") Тогда
ТЗПредопределенныхЗначений =
пбп_ПредопределенныеЗначенияПереопределяемый.ПредопределенныеЗначенияТипСоответствияОбъектовИБ();
Иначе
Возврат;
КонецЕсли;
ТЗПредопределенныхЗначенийКСозданию = ПредопределенныеЗначенияКСозданию(ТЗПредопределенныхЗначений);
СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения);
ОбработатьПредопределенныеЗначения(ТЗПредопределенныхЗначений, МенеджерОбъекта);
КонецПроцедуры
// Создание предопределенных значений на основании заполненной таблицы
//
// Параметры:
// Таблица - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемыйТаблицаПредопределенных,
// ТаблицаПредопределенных - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемыйТаблицаПредопределенных,
// пбп_ТипСоответствияОбъектовИБПереопределяемый.ТаблицаПредопределенных
// МенеджерОбъекта - СправочникМенеджер, ДокументМенеджер, ОбработкаМенеджер, РегистрСведенийМенеджер - менеджер объекта.
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
// ПолноеИмяОбъекта - Строка - Полное имя объекта метаданных.
//
Процедура СоздатьПредопределенныеЗначения(Таблица, МенеджерОбъекта) Экспорт
Процедура СоздатьОбновитьПредопределенныеЗначения(ТаблицаПредопределенных, МенеджерОбъекта, ПолноеИмяОбъекта = "") Экспорт
Если Не ЗначениеЗаполнено(Таблица) Тогда
Если Не ЗначениеЗаполнено(ТаблицаПредопределенных) Тогда
Возврат;
КонецЕсли;
Если ПустаяСтрока(ПолноеИмяОбъекта) Тогда
ПолноеИмяОбъекта = ПолноеИмяОбъектаПоУмолчанию();
КонецЕсли;
Группы = Новый Соответствие;
КолонкаСуществует = Таблица.Колонки.Найти("ЭтоГруппа") <> Неопределено;
КолонкаСуществует = ТаблицаПредопределенных.Колонки.Найти("ЭтоГруппа") <> Неопределено;
Если КолонкаСуществует Тогда
// Сначала создаются группы, затем элементы
Таблица.Сортировать("ЭтоГруппа УБЫВ, УровеньИерархии");
ТаблицаПредопределенных.Сортировать("ЭтоГруппа УБЫВ, УровеньИерархии");
ТекстЗапроса =
"ВЫБРАТЬ
@ -62,10 +84,8 @@
|ГДЕ
| пбп_ПредопределенныеЗначения.ЭтоГруппа";
ПолноеИмяОМ = Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта)).ПолноеИмя();
Запрос = Новый Запрос;
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПолноеИмяОМ);
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПолноеИмяОбъекта);
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
@ -74,56 +94,150 @@
КонецЦикла;
КонецЕсли;
Для Каждого СтрокаТаблицы Из Таблица Цикл
Если КолонкаСуществует И СтрокаТаблицы.ЭтоГруппа Тогда
СоздатьПредопределеннуюГруппу(МенеджерОбъекта, СтрокаТаблицы, Группы);
Для Каждого СтрокаТаблицы Из ТаблицаПредопределенных Цикл
Если СтрокаТаблицы.Служеб_ОбновитьРасположениеЭлемента Тогда
ОбновитьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Группы);
Иначе
СоздатьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Группы, КолонкаСуществует);
Если КолонкаСуществует И СтрокаТаблицы.ЭтоГруппа Тогда
СоздатьПредопределеннуюГруппу(МенеджерОбъекта, СтрокаТаблицы, Группы);
Иначе
СоздатьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Группы, КолонкаСуществует);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
// Получает все предопределенные элементы объекта, помечает на удаление те, которые удалены из кода.
// При установке пометки удаления для групп, также устанавливается для всех подчиенных элементов.
//
// Параметры:
// ТаблицаПредопределенных - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемыйТаблицаПредопределенных,
// пбп_ТипСоответствияОбъектовИБПереопределяемый.ТаблицаПредопределенных.
// ПолноеИмяОбъекта - Строка - Полное имя объекта метаданных.
//
Процедура ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, ПолноеИмяОбъекта = "") Экспорт
Если ПустаяСтрока(ПолноеИмяОбъекта) Тогда
ПолноеИмяОбъекта = ПолноеИмяОбъектаПоУмолчанию();
КонецЕсли;
ТаблицаПредопределенных.Индексы.Добавить("ИдентификаторНастройки");
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
| пбп_ПредопределенныеЗначения.Ссылка КАК Ссылка,
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки КАК ИдентификаторНастройки
|ИЗ
| %1 КАК пбп_ПредопределенныеЗначения
|ГДЕ
| НЕ пбп_ПредопределенныеЗначения.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|ИТОГИ ПО
| Ссылка ИЕРАРХИЯ";
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПолноеИмяОбъекта);
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ПометитьНаУдалениеВсеВложения(Выборка, ТаблицаПредопределенных);
КонецПроцедуры
// Подготавливает параметры необходимые для обработки предопределенных элементов
//
// Параметры:
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
//
// Возвращаемое значение:
// Структура - Данные Менеджера объекта
// * Менеджер - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
// * ПолноеИмя - Строка - Полное имя объекта метаданных.
//
Функция ПараметрыМенеджераОбъекта(МенеджерОбъекта) Экспорт
Параметры = Новый Структура;
Параметры.Вставить("Менеджер", МенеджерОбъекта);
Параметры.Вставить("ПолноеИмя", Метаданные.НайтиПоТипу(ТипЗнч(МенеджерОбъекта)).ПолноеИмя());
Возврат Параметры;
КонецФункции
// Обрабатывает таблицу предопределенных элементов. Операции включают в себя: установка пометок удаления
// на неиспользуемые элементы, отбор предопределенных значений, создание предопределенных элементов.
//
// Параметры:
// ТаблицаПредопределенных - ТаблицаЗначений - см. пбп_ПредопределенныеЗначенияПереопределяемыйТаблицаПредопределенных,
// пбп_ТипСоответствияОбъектовИБПереопределяемый.ТаблицаПредопределенных.
// МенеджерОбъекта - СправочникМенеджер, ПланВидовХарактеристикМенеджер - менеджер объекта.
//
Процедура ОбработатьПредопределенныеЗначения(ТаблицаПредопределенных, МенеджерОбъекта) Экспорт
Параметры = ПараметрыМенеджераОбъекта(МенеджерОбъекта);
ОбработатьНеиспользуемыеЭлементы(ТаблицаПредопределенных, Параметры.ПолноеИмя);
УдалитьИзТаблицыСуществующиеЭлементы(ТаблицаПредопределенных, Параметры.ПолноеИмя);
СоздатьОбновитьПредопределенныеЗначения(ТаблицаПредопределенных, Параметры.Менеджер, Параметры.ПолноеИмя);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ПредопределенныеЗначенияКСозданию(ТЗПредопределенныхЗначений, ПутьПоиска = "ПланВидовХарактеристик.пбп_ПредопределенныеЗначения") Экспорт
ИдентификаторыНастроек = ТЗПредопределенныхЗначений.ВыгрузитьКолонку("ИдентификаторНастройки");
Процедура УдалитьИзТаблицыСуществующиеЭлементы(ТаблицаПредопределенных, ПолноеИмяОбъекта = "") Экспорт
Если Не ЗначениеЗаполнено(ТаблицаПредопределенных) Тогда
Возврат;
КонецЕсли;
Если ПустаяСтрока(ПолноеИмяОбъекта) Тогда
ПолноеИмяОбъекта = ПолноеИмяОбъектаПоУмолчанию();
КонецЕсли;
ИдентификаторыНастроек = ТаблицаПредопределенных.ВыгрузитьКолонку("ИдентификаторНастройки");
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки КАК ИдентификаторНастройки
| пбп_ПредопределенныеЗначения.Ссылка КАК Ссылка,
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки КАК ИдентификаторНастройки,
| ЕСТЬNULL(Родители.ИдентификаторНастройки, """") КАК ИдентификаторНастройкиРодитель
|ИЗ
| %1 КАК пбп_ПредопределенныеЗначения
| ЛЕВОЕ СОЕДИНЕНИЕ %1 КАК Родители
| ПО пбп_ПредопределенныеЗначения.Родитель = Родители.Ссылка
|ГДЕ
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки В (&СписокИдентификаторов)";
| пбп_ПредопределенныеЗначения.ИдентификаторНастройки В(&СписокИдентификаторов)";
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПутьПоиска);
Запрос.Текст = СтрШаблон(ТекстЗапроса, ПолноеИмяОбъекта);
Запрос.УстановитьПараметр("СписокИдентификаторов", ИдентификаторыНастроек);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
СтрокиДляУдаления = Новый Массив;
Для Каждого Строка Из ТЗПредопределенныхЗначений Цикл
Для Каждого Строка Из ТаблицаПредопределенных Цикл
ВыборкаДетальныеЗаписи.Сбросить();
Если ВыборкаДетальныеЗаписи.НайтиСледующий(Строка.ИдентификаторНастройки, "ИдентификаторНастройки") Тогда
СтрокиДляУдаления.Добавить(Строка);
Если ВыборкаДетальныеЗаписи.ИдентификаторНастройкиРодитель = Строка.Родитель Тогда
СтрокиДляУдаления.Добавить(Строка);
Иначе
Строка.Служеб_СсылкаНаПредопределенныйЭлемент = ВыборкаДетальныеЗаписи.Ссылка;
Строка.Служеб_ОбновитьРасположениеЭлемента = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из СтрокиДляУдаления Цикл
ТЗПредопределенныхЗначений.Удалить(Строка);
ТаблицаПредопределенных.Удалить(Строка);
КонецЦикла;
Возврат ТЗПредопределенныхЗначений;
КонецФункции
КонецПроцедуры
Процедура СоздатьПредопределеннуюГруппу(МенеджерОбъекта, СтрокаТаблицы, Группы)
@ -146,8 +260,6 @@
Процедура СоздатьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Родители, ЗаполнитьРодителя = Ложь)
ПроверяемыйТип = ТипЗнч(МенеджерОбъекта);
НовыйЭлемент = МенеджерОбъекта.СоздатьЭлемент();
ЗаполнитьЗначенияСвойств(НовыйЭлемент, СтрокаТаблицы);
Если ЗаполнитьРодителя И ЗначениеЗаполнено(СтрокаТаблицы.Родитель) Тогда
@ -156,6 +268,7 @@
КонецЕсли;
// инициализация значения по умолчанию
ПроверяемыйТип = ТипЗнч(МенеджерОбъекта);
Если ПроверяемыйТип = Тип("ПланВидовХарактеристикМенеджер.пбп_ПредопределенныеЗначения") Тогда
НовыйЭлемент.Значение = СтрокаТаблицы.ТипЗначения.ПривестиЗначение();
КонецЕсли;
@ -168,4 +281,80 @@
КонецПроцедуры
Процедура ОбновитьПредопределенныйЭлемент(МенеджерОбъекта, СтрокаТаблицы, Родители)
Если Не ЗначениеЗаполнено(СтрокаТаблицы.Служеб_СсылкаНаПредопределенныйЭлемент) Тогда
Возврат;
КонецЕсли;
Элемент = СтрокаТаблицы.Служеб_СсылкаНаПредопределенныйЭлемент.ПолучитьОбъект();
Элемент.Родитель = Родители[СтрокаТаблицы.Родитель];
Попытка
Элемент.Записать();
СообщитьОбИзмененииРасположенияЭлемента(Элемент);
Исключение
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Процедура ПометитьНаУдалениеВсеВложения(ИерархическаяВыборка, ТаблицаАктуальныхЭлементов)
Пока ИерархическаяВыборка.Следующий() Цикл
Строка = ТаблицаАктуальныхЭлементов.Найти(ИерархическаяВыборка.ИдентификаторНастройки, "ИдентификаторНастройки");
Если Строка = Неопределено Тогда
Элемент = ИерархическаяВыборка.Ссылка.ПолучитьОбъект();
Элемент.УстановитьПометкуУдаления(Истина, Истина);
СообщитьОПомеченномНаУдалениеЭлементе(Элемент);
Продолжить;
КонецЕсли;
СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
Если ИерархическаяВыборка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
ДочерняяВыборка = ИерархическаяВыборка.Выбрать(СпособВыборки, ИерархическаяВыборка.Группировка());
Иначе
ДочерняяВыборка = ИерархическаяВыборка.Выбрать(СпособВыборки);
КонецЕсли;
ПометитьНаУдалениеВсеВложения(ДочерняяВыборка, ТаблицаАктуальныхЭлементов);
КонецЦикла;
КонецПроцедуры
Функция ПолноеИмяОбъектаПоУмолчанию()
Возврат "ПланВидовХарактеристик.пбп_ПредопределенныеЗначения";
КонецФункции
Процедура СообщитьОПомеченномНаУдалениеЭлементе(Элемент)
ТекстСообщения = НСтр("ru = 'Элемент ''%1'' помечен на удаление';
|en = 'The item ''%1'' is marked for deletion'");
Если ЗначениеЗаполнено(Элемент.Родитель) Тогда
ТекстСообщения = ТекстСообщения + НСтр("ru = ', включая все его подчиненные элементы.';
|en = ', including all its subordinate items.'");
КонецЕсли;
ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Элемент.Ссылка);
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
КонецПроцедуры
Процедура СообщитьОбИзмененииРасположенияЭлемента(Элемент)
ТекстСообщения = НСтр("ru = 'Расположение элемента ''%1'' изменено. Текущее положение: ''%2''';
|en = 'The location of element ''%1'' has changed. Current position: ''%2'''");
Родитель = ?(ЗначениеЗаполнено(Элемент.Родитель), Элемент.Родитель, НСтр("ru = '''<корень>'''; en = '''<root>'''"));
ТекстСообщения = пбп_СтроковыеФункцииСлужебныйКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстСообщения,
Элемент.Ссылка,
Родитель);
пбп_ОбщегоНазначенияСлужебный.СообщитьПользователю(ТекстСообщения, Элемент);
КонецПроцедуры
#КонецОбласти

View File

@ -1,6 +1,12 @@

#Область ПрограммныйИнтерфейс
// Возвращает таблицу предопределенных элементов справочника
// ПланыВидовХарактеристикСсылка.пбп_ПредопределенныеЗначения.
//
// Возвращаемое значение:
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
//
Функция ПредопределенныеЗначения() Экспорт
Результат = ТаблицаПредопределенных();
@ -62,15 +68,100 @@
КонецФункции
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_ИнтегрируемыеСистемы.
//
// Возвращаемое значение:
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
//
Функция ПредопределенныеЗначенияИнтегрируемыеСистемы() Экспорт
Результат = ТаблицаПредопределенныхИнтегрируемыеСистемы();
// Добавление
НоваяСистема = Результат.Добавить();
НоваяСистема.Наименование = "Система N";
НоваяСистема.ИдентификаторНастройки = "СистемаN";
// КонецДобавления
Возврат Результат;
КонецФункции
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_МетодыИнтеграции.
//
// Возвращаемое значение:
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
//
Функция ПредопределенныеЗначенияМетодыИнтеграции() Экспорт
Результат = ТаблицаПредопределенныхМетодыИнтеграции();
// Добавление
НовыйМетод = Результат.Добавить();
НовыйМетод.Наименование = "Метод интеграции системы N";
НовыйМетод.ИдентификаторНастройки = "МетодИнтеграцииСистемыN";
// КонецДобавления
Возврат Результат;
КонецФункции
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_НастройкиИнтеграции.
//
// Возвращаемое значение:
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
//
Функция ПредопределенныеЗначенияНастройкиИнтеграции() Экспорт
Результат = ТаблицаПредопределенныхНастройкиИнтеграции();
// Добавление
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Интеграция с системой N";
НоваяНастройка.ИдентификаторНастройки = "ИнтеграцияССистемойN";
// КонецДобавления
Возврат Результат;
КонецФункции
// Возвращает таблицу предопределенных элементов справочника СправочникСсылка.пбп_ТипСоответствияОбъектовИБ.
//
// Возвращаемое значение:
// ТаблицаЗначений - Таблица заполненная предопределенными элементами.
//
Функция ПредопределенныеЗначенияТипСоответствияОбъектовИБ() Экспорт
Результат = ТаблицаПредопределенныхТипСоответствияОбъектовИБ();
// Добавление
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Тест";
НоваяНастройка.ИдентификаторНастройки = "Тест";
// КонецДобавления
Возврат Результат;
КонецФункции
// Добавляет общие колонки таблицы предопределенных значений.
//
// Параметры:
// Таблица - ТаблицаЗначений - Таблица для заполнения предопределенными.
//
Процедура ОбщиеКолонкиТаблицыПредопределенныхЗначений(Таблица) Экспорт
ОписаниеСтрока = Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150));
ОписаниеБулево = Новый ОписаниеТипов("Булево");
Таблица.Колонки.Добавить("ИдентификаторНастройки", ОписаниеСтрока);
Таблица.Колонки.Добавить("Наименование", ОписаниеСтрока);
Таблица.Колонки.Добавить("ЭтоГруппа", Новый ОписаниеТипов("Булево"));
Таблица.Колонки.Добавить("ЭтоГруппа", ОписаниеБулево);
Таблица.Колонки.Добавить("Родитель", ОписаниеСтрока);
Таблица.Колонки.Добавить("УровеньИерархии", Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(2,0)));
// Служебные колонки
Таблица.Колонки.Добавить("Служеб_ОбновитьРасположениеЭлемента", ОписаниеБулево);
Таблица.Колонки.Добавить("Служеб_СсылкаНаПредопределенныйЭлемент", Неопределено);
КонецПроцедуры
@ -80,10 +171,10 @@
Функция ТаблицаПредопределенных()
Результат = Новый ТаблицаЗначений;
ОписаниеБулево = Новый ОписаниеТипов("Булево");
Результат = Новый ТаблицаЗначений;
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Результат.Колонки.Добавить("Пароль", ОписаниеБулево);
@ -94,4 +185,44 @@
КонецФункции
Функция ТаблицаПредопределенныхИнтегрируемыеСистемы()
Результат = Новый ТаблицаЗначений;
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
Функция ТаблицаПредопределенныхМетодыИнтеграции()
Результат = Новый ТаблицаЗначений;
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
Функция ТаблицаПредопределенныхНастройкиИнтеграции()
Результат = Новый ТаблицаЗначений;
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
Функция ТаблицаПредопределенныхТипСоответствияОбъектовИБ()
Результат = Новый ТаблицаЗначений;
ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
#КонецОбласти

View File

@ -1,27 +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="f49cf4ad-0522-4614-b522-500afecfbe5a">
<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>IB object compliance type Overridden</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -1,55 +0,0 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
//
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Функция ПредопределенныеЗначения() Экспорт
Результат = ТаблицаПредопределенных();
// Добавление
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Тест";
НоваяНастройка.ИдентификаторНастройки = "Тест";
// КонецДобавления
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ТаблицаПредопределенных()
Результат = Новый ТаблицаЗначений;
пбп_ПредопределенныеЗначенияПереопределяемый.ОбщиеКолонкиТаблицыПредопределенныхЗначений(Результат);
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -57,7 +57,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
</DefaultRoles>
<Vendor>Первый БИТ</Vendor>
<Version>1.0.1.2</Version>
<Version>1.0.1.3</Version>
<UpdateCatalogAddress/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
@ -271,7 +271,6 @@
<CommonModule>пбп_ЖурналРегистрацииСлужебный</CommonModule>
<CommonModule>пбп_ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера</CommonModule>
<CommonModule>пбп_ЗагрузкаФайлаЧерезТабличныйДокументКлиент</CommonModule>
<CommonModule>пбп_ИнтеграцииПереопределяемый</CommonModule>
<CommonModule>пбп_ИнтеграцииСервер</CommonModule>
<CommonModule>пбп_КоннекторHTTP</CommonModule>
<CommonModule>пбп_МетодыРегламентныхЗаданийСервер</CommonModule>
@ -313,7 +312,6 @@
<CommonModule>пбп_СтроковыеФункцииКлиентСервер</CommonModule>
<CommonModule>пбп_СтроковыеФункцииСлужебныйКлиентСервер</CommonModule>
<CommonModule>пбп_СхемыЗапросов</CommonModule>
<CommonModule>пбп_ТипСоответствияОбъектовИБПереопределяемый</CommonModule>
<EventSubscription>пбп_ДокументыОбработкаЗаполнения</EventSubscription>
<EventSubscription>пбп_ДокументыОбработкаПроведения</EventSubscription>
<EventSubscription>пбп_ДокументыОбработкаПроверкиЗаполнения</EventSubscription>

View File

@ -26,7 +26,6 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.пбп_РедактированиеРегистраСведенийСоответствияОбъектовИБ</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Role.пбп_ЧтениеРегистраСведенийСоответствияОбъектовИБ</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DefinedType.пбп_ТипыОбъектовСоответствийИБ</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ТипСоответствияОбъектовИБПереопределяемый</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.пбп_ТипСоответствияОбъектовИБ</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ПредопределенныеЗначения</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Role.пбп_ЧтениеТиповСоответствияОбъектовИБ</xr:Item>

View File

@ -38,7 +38,6 @@
<xr:Item xsi:type="xr:MDObjectRef">CommonTemplate.пбп_XMLEditor</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_КоннекторHTTP</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.пбп_ТипыJSON</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ИнтеграцииПереопределяемый</xr:Item>
</Content>
</Properties>
<ChildObjects/>