Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added new and updated existing documentation #58

Merged
merged 21 commits into from
May 6, 2024
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@

1. [Предопределенные значения](docs/ПредопределенныеЗначения.md)
2. [Соответствия объектов ИБ](docs/СоответствиеОбъектовИнформационнойБазы.md)
3. [Программная модификация форм](docs/РаботаСФормами.md)
4. Подписки на события
3. [Программная модификация форм](docs/МодификацияФорм.md)
4. [Подписки на события](docs/ПодпискиНаСобытия.md)
5. Управление интеграциями
6. Пользовательские функции
6. [Пользовательские функции](docs/ПользовательскиеФункции.md)
7. [Загрузка файла через табличный документ](docs/ЗагрузкаФайлаЧерезТабличныйДокумент.md)
8. [Переопределения методов БСП](docs/ПереопределениеМетодовБСП.md)

## Заимствованные разработки

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
# Общий модуль __РаботаСФормами - Модуль динамического формирования интерфейса
# Подсистема "модификация форм"

Предназначена для динамического формирования интерфейса. Также использовать в случае изменения типовых форма.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct grammatical agreement in the sentence.

- Также использовать в случае изменения типовых форма.
+ Также использовать в случае изменения типовых форм.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Предназначена для динамического формирования интерфейса. Также использовать в случае изменения типовых форма.
Предназначена для динамического формирования интерфейса. Также использовать в случае изменения типовых форм.

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

Демо-пример использования методов общего модуля

Expand Down
54 changes: 54 additions & 0 deletions docs/ПодпискиНаСобытия.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Подсистема "подписки на события"

Подписки на события применяются для реализации дополнительной постобработки или проверок, которые активируются после определённых событий в типовых объектах или модулях менеджера.
В случае отстутствия типовой подписки, используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль.

Порядок действий при работе с подсистемой:
- Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **ДокументОбработкаПроведения**, **СправочникПриЗаписи** и так далее.
Недопускается смешение типов объектов и событий в одной подписке. Если подписки не существует, нужно её добавить, а так же общий модуль с аналогичным названием (напр. **__ДокументыОбработкаЗаполнения** - и подписка, и общий модуль).
Добавить их в подсистему **__ПодпискиНаСобытия**.
- Если создана новая подписка и модуль, то в модуле создается обработчик для подписки и выбрать его в подписке. У каждого события свой набор параметров.

```1C (BSL)
Процедура ДокументыОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
// Опустить обработку, если есть отказ или идёт загрузка обмена данными
Если Отказ Или Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

// Получение имени метода для исполнения
ИмяМетода = юр_ОбщегоНазначенияПовтИсп.ДокументыОбработкаПроведения().Получить(ТипЗнч(Источник));

// Выполнение метода, если он определён
Если ЗначениеЗаполнено(ИмяМетода) Тогда
// Попытка выполнения метода с необходимыми параметрами
Попытка
ПараметрыМетода = Новый Массив;
ПараметрыМетода.Добавить(Источник);
ПараметрыМетода.Добавить(Отказ);
ПараметрыМетода.Добавить(РежимПроведения);
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
Исключение
// В случае ошибки вывод информации о ней
ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
КонецПопытки;
КонецЕсли;
КонецПроцедуры
```

- В общем модуле **__ОбщегоНазначенияПовтИсп** найти функцию с названием объекта и события и добавить в соответствие тип объекта и вызываемую процедуру. Если функции для данного набора нет, создать её.

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

Возврат Соответствие;
КонецФункции
```

- В модуле объекта и события добавить экспортную процедуру с такими же параметрами как у основной и добавить необходимую логику.
62 changes: 62 additions & 0 deletions docs/ПользовательскиеФункции.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Подсистема "пользовательские функции"

## Общие сведения
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure headings are surrounded by blank lines for better readability.

+ 
## Общие сведения
+ 

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
## Общие сведения
## Общие сведения

Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove trailing spaces to adhere to coding standards.

- Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций.  
+ Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций.
Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций.

Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove trailing space to adhere to coding standards.

- Форма списка справочника  содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария.
+ Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария.
Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария.

В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит.

## Создание функции
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure headings are surrounded by blank lines for better readability.

+ 
## Создание функции
+ 

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
## Создание функции
## Создание функции

Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove trailing space to adhere to coding standards.

- Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.   
+ Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.
Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.

Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат".

## Параметры функции
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure headings are surrounded by blank lines for better readability.

+ 
## Параметры функции
+ 

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
## Параметры функции
## Параметры функции

В пользовательских функциях значения параметров используются для проведения проверок.
При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным.
Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей.
Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура).
Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров.
![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87)

## Переменные функции
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure headings are surrounded by blank lines for better readability.

+ 
## Переменные функции
+ 

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
## Переменные функции
## Переменные функции

Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove trailing space to adhere to coding standards.

- Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода. 
+ Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода.
Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода.


Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove trailing space to adhere to coding standards.

-  
+

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change

## Работа с функциями
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure headings are surrounded by blank lines for better readability.

+ 
## Работа с функциями
+ 

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
## Работа с функциями
## Работа с функциями

В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D".

В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода.

Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом.

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

**Пример создания пользовательской функции:**

```1C (BSL)
Функция УдалитьНедопустимыеСимволы(ИсходнаяСтрока) // Формируется на основании наименования элемента справочника и параметров

НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»";
Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, НедопустимыеСимволы, Истина));

Возврат Результат; // Установлен автоматически, отдельно прописывать не нужно

КонецФункции // Установлен автоматически, отдельно прописывать не нужно
```

**Пример вызова пользовательской функции:**

```1C (BSL)
Функция ПолучитьВалиднуюСтроку(СсылкаНаПользовательскуюФункцию, Имя)

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

Возврат Результат;

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