Skip to content

Commit

Permalink
Added functions for setting a mark for deletion and code refactoring (#…
Browse files Browse the repository at this point in the history
…91)

Доработана подсистема предопределенных значений для автоматической пометки на удаление не существующих в коде элементов и перемещение существующих элементов при смене иерархии
  • Loading branch information
denisushakov authored Sep 3, 2024
1 parent 7805fb0 commit e3ef441
Show file tree
Hide file tree
Showing 24 changed files with 567 additions and 419 deletions.
5 changes: 4 additions & 1 deletion .bsl-language-server.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
"skipSupport": "withSupport",
"ordinaryAppSupport": false,
"parameters": {
"OrdinaryAppSupport": false
"OrdinaryAppSupport": false,
"Typo": {
"userWordsToIgnore": "пбп"
}
}
}
}
51 changes: 29 additions & 22 deletions docs/ПредопределенныеЗначения.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,16 @@
# Подсистема "предопределенные значения"

Для обращения к ссылкам из кода используем предопределенные значения, добавляем их в план видов характеристик (ПВХ) "пбп_ПредопределенныеЗначения"
## Описание подсистемы

Для удобной работы с ПВХ у нас есть следующие функции:
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение(Имя, ИспользоватьКэш)** - если это единичное значение, возвращается сразу оно, если установлен флаг "Список значений" то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имя - Строка
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- ПроизвольныйТип - Значение переменной ПВХ.
- Массив - Массив значений переменной ПВХ.
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей, ИспользоватьКэш)** - если "ВРазрезеКлючей" то возвращает соответствие нескольких элементов ПВХ, если ВРазрезеКлючей = ложь, то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имена - Строка - Имена переменных ПВХ, перечисленные через запятую.
- ВРазрезеКлючей - Булево
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- Соответствие - Соответствие имен и значений переменных ПВХ.
- Ключ - Строка - имя значения
- Значение - ПроизвольныйТип
- Массив - ПроизвольныйТип
По стандартам разработки поиск ссылочных объектов в программном коде по наименованию, коду, гуиду и т.д. не рекомендуется. Для возможности получения ссылок из программного кода предлагается использовать элементы плана видов характеристик. Чтобы избежать необходимости реструктуризации при добавлении новых элементов в ПВХ, формирование иерархии и элементов делается программно и обновляется в пользовательском режиме. Получение элементов стандартизируется через общий модуль с возможностью кэширования.
При коментировании или удалении из кода предопределенных элементов и последующем перезаполнении, элемент будет помечен на удаление, включая все его подчиненные элементы.

## Добавление новых элементов

В модуле **пбп_ПредопределенныеЗначенияПереопределяемый** значения добавляются через метод **Добавить()** коллекции **Результат**, которая представляет собой таблицу предопределённых значений. Каждая новая запись в этой таблице может быть настроена как группа путём установки свойства ЭтоГруппа в значение Истина.
**ИдентификаторНастройки**: Уникальный идентификатор группы, который используется для внутренних ссылок и связей между группами.
**Родитель**: Идентификатор настройки родительской группы, указывается для элементов и групп являющихся подгруппами.
**УровеньИерархии**: Целочисленное значение, определяющее уровень группы в иерархической структуре. Этот параметр используется для обеспечения правильного порядка создания групп, где сначала должны быть созданы группы верхнего уровня, а затем вложенные.
- **ИдентификаторНастройки**: Уникальный идентификатор группы, который используется для внутренних ссылок и связей между группами.
- **Родитель**: Идентификатор настройки родительской группы, указывается для элементов и групп являющихся подгруппами.
- **УровеньИерархии**: Целочисленное значение, определяющее уровень группы в иерархической структуре. Этот параметр используется для обеспечения правильного порядка создания групп, где сначала должны быть созданы группы верхнего уровня, а затем вложенные.

Пример добавления нового элемента в модуле пбп_ПредопределенныеЗначенияПереопределяемый:

Expand Down Expand Up @@ -75,6 +61,27 @@
КонецФункции
```

## Получение значения элементов

Для удобной работы с ПВХ у нас есть следующие функции:
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение(Имя, ИспользоватьКэш)** - если это единичное значение, возвращается сразу оно, если установлен флаг "Список значений" то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имя - Строка
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- ПроизвольныйТип - Значение переменной ПВХ.
- Массив - Массив значений переменной ПВХ.
- **пбп_ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей, ИспользоватьКэш)** - если "ВРазрезеКлючей" то возвращает соответствие нескольких элементов ПВХ, если ВРазрезеКлючей = ложь, то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина.
- Параметры:
- Имена - Строка - Имена переменных ПВХ, перечисленные через запятую.
- ВРазрезеКлючей - Булево
- ИспользоватьКэш - Булево
- Возвращаемое значение:
- Соответствие - Соответствие имен и значений переменных ПВХ.
- Ключ - Строка - имя значения
- Значение - ПроизвольныйТип
- Массив - ПроизвольныйТип

Пример получения множественного результата:

```1C (BSL)
Expand Down
Original file line number Diff line number Diff line change
@@ -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/
//

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт

ТЗПредопределенныхЗначений = пбп_ИнтеграцииПереопределяемый.ПредопределенныеЗначенияИнтегрируемыеСистемы();

ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_ИнтегрируемыеСистемы");

пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_ИнтегрируемыеСистемы);

КонецПроцедуры

#КонецОбласти

#КонецЕсли

Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()

Справочники.пбп_ИнтегрируемыеСистемы.ЗаполнитьПредопределенныеСоответствия();

пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ИнтегрируемыеСистемы);
КонецПроцедуры

&НаКлиенте
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,6 @@

#Область ПрограммныйИнтерфейс

Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт

ТЗПредопределенныхЗначений = пбп_ИнтеграцииПереопределяемый.ПредопределенныеЗначенияМетодыИнтеграции();

ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_МетодыИнтеграции");

пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_МетодыИнтеграции);

КонецПроцедуры

// Получает структуру параметров метода интеграции со значениями по умолчанию
//
// Параметры:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()

Справочники.пбп_МетодыИнтеграции.ЗаполнитьПредопределенныеСоответствия();

пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_МетодыИнтеграции);
КонецПроцедуры

&НаКлиенте
Expand Down
Original file line number Diff line number Diff line change
@@ -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/
//

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт

ТЗПредопределенныхЗначений = пбп_ИнтеграцииПереопределяемый.ПредопределенныеЗначенияНастройкиИнтеграции();

ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_НастройкиИнтеграции");

пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_НастройкиИнтеграции);

КонецПроцедуры

#КонецОбласти

#КонецЕсли

Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()

Справочники.пбп_НастройкиИнтеграции.ЗаполнитьПредопределенныеСоответствия();

пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_НастройкиИнтеграции);
КонецПроцедуры

&НаКлиенте
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,20 +49,6 @@

КонецФункции

Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт

ТЗПредопределенныхЗначений = пбп_ТипСоответствияОбъектовИБПереопределяемый.ПредопределенныеЗначения();

ТЗПредопределенныхЗначенийКСозданию = пбп_ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
ТЗПредопределенныхЗначений,
"Справочник.пбп_ТипСоответствияОбъектовИБ");

пбп_ПредопределенныеЗначения.СоздатьПредопределенныеЗначения(
ТЗПредопределенныхЗначенийКСозданию,
Справочники.пбп_ТипСоответствияОбъектовИБ);

КонецПроцедуры

#КонецОбласти

#КонецЕсли
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()

Справочники.пбп_ТипСоответствияОбъектовИБ.ЗаполнитьПредопределенныеСоответствия();

пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ТипСоответствияОбъектовИБ);
КонецПроцедуры

&НаКлиенте
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@

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

&НаКлиенте
Expand Down
Loading

0 comments on commit e3ef441

Please sign in to comment.