Skip to content

Commit

Permalink
Documentation on objects and modules (#52)
Browse files Browse the repository at this point in the history
Добавлена документация по подсистемам:
Предопределенные значения
Соответствия объектов ИБ
Программная модификация форм
  • Loading branch information
denisushakov authored Apr 19, 2024
1 parent b730bf2 commit 4e6c5a9
Show file tree
Hide file tree
Showing 5 changed files with 309 additions and 3 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

Реализованные на данный момент подсистемы:

1. Предопределенные значения
2. Соответствия объектов ИБ
3. Программная модификация форм
1. [Предопределенные значения](docs/ПредопределенныеЗначения.md)
2. [Соответствия объектов ИБ](docs/СоответствиеОбъектовИнформационнойБазы.md)
3. [Программная модификация форм](docs/РаботаСФормами.md)
4. Подписки на события
5. Управление интеграциями
6. Пользовательские функции
Expand Down
71 changes: 71 additions & 0 deletions docs/ПереопределениеМетодовБСП.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Подисистема аналог библиотеки стандартных подсистем, для переопределения методов БСП

## 1. Использование общих модулей для переадресации методов
Для переадресации методов используются общие модули-аналоги в названии которых содержится "Служебный", пример: "__ОбщегоНазначенияСлужебный". В случае отсутствия библиотеки стандартных подсистем(БСП), используются аналоги модулей и методов БСП.

Пример вызова серверной процедуры:

```1C (BSL)
&НаСервере
Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог)
__ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекСохранить(
КлючОбъекта(),
"__ПользовательскиеФункции_КаталогИсходногоКода",
Каталог);
КонецПроцедуры
```

```1C (BSL)
Процедура ОчиститьИсториюИнтеграции() Экспорт
Попытка
// Попытка удаления элементов справочника
Исключение
ИмяСобытия = НСтр("ru = 'Очистка истории интеграции'");
ТекстОшибки = СтрШаблон("Не удалось удалить запись истории интеграции %1", ВыборкаДетальныеЗаписи.Ссылка);
__ЖурналРегистрацииСлужебный.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки);
КонецПопытки;
КонецПроцедуры
```

## 2. Добавление новых методов-аналогов БСП
### 2.1 Поиск или создание внутренних модулей, аналогичных модулям БСП
Найти внутренний модуль, с аналогичным названием и свойствами в БСП, если модуль отсутствует необходимо добавить новый, в имени должно содержатся "Служебный" (согласно общей концепции переопределения методов БСП).

Пример: "__ОбщегоНазначенияСлужебный", "__ЖурналРегистрацииСлужебный".

Методы располагаются в области "ПереадресацияМетодов", в описание метода указать см. __ИмяМодуля.ИмяМетода.

```1C (BSL)
#Область ПереадресацияМетодов
// См. __ОбщегоНазначенияСервер.ВыполнитьМетодКонфигурации.
Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
Модуль = ПолучитьМодуль();
Модуль.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры);
КонецПроцедуры
#КонецОбласти
```

Если модуль-аналог новый добавить функцию в области "СлужебныеПроцедурыИФункции", где __ИмяМодуля для серверных модулей "__ОбщегоНазначенияПовтИсп.", для клиентских "__ОбщегоНазначенияКлиент"

```1C (BSL)
Функция ПолучитьМодуль()
Возврат __ИмяМодуля.ОбщийМодуль(ИмяМодуляБСП, ИмяМодуляАналогаБСП);
КонецФункции
```
### 2.2 Создание методов в модуле-аналоге
Пример: "__ОбщегоНазначения". Методы располагаются в области "МетодыАналогиБСП", описание метода начинать с "Аналог метода БСП."

```1C (BSL)
#Область МетодыАналогиБСП
// Аналог метода БСП. Описание
//
Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
// ...
КонецПроцедуры
#КонецОбласти
```
54 changes: 54 additions & 0 deletions docs/ПредопределенныеЗначения.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Подсистема предопределенных значений

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

```1C (BSL)
Функция ПредопределенныеЗначения() Экспорт
Результат = ТаблицаПредопределенных();
// Добавление
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Пароль доступа на ИТС";
НоваяНастройка.ИдентификаторНастройки = "ПарольДоступаНаИТС";
НоваяНастройка.Пароль = Истина;
НоваяНастройка.СписокЗначений = Ложь;
НоваяНастройка.ТипЗначения = Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150));
// КонецДобавления
Возврат Результат;
КонецФункции
```

Пример получения множественного результата, второй параметр указывает если Истина, то результат оборачивается в соответствие, где Ключ - Имя предопределенного элемента, Значение - значение предопределенного элемента

```1C (BSL)
Функция ПолучитьДанныеАвторизации()
ДанныеАвторизации = Новый Структура("Логин, Пароль");
Результат = __ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения("Логин_ИТС, Пароль_ИТС", Истина, Истина);
Для Каждого Пара Из Результат Цикл
Сообщить("Ключ: " Пара.Ключ);
Сообщить("Значение: "+ Пара.Значение);
ДанныеАвторизации[Пара.Ключ] = Пара.Значение;
КонецЦикла;
Возврат ДанныеАвторизации;
КонецФункции
```

Пример получения единичного результата

```1C (BSL)
Функция ЗаписыватьДанныеСтандартнымСпособом(ПроверяемаяДата)
Результат = __ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения("ДатаНачалаЗаписиВРегистры", Истина, Истина);
Возврат ПроверяемаяДата = Результат;
КонецФункции
```

Loading

0 comments on commit 4e6c5a9

Please sign in to comment.