-
Notifications
You must be signed in to change notification settings - Fork 7
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
Changes from all commits
46c5a7f
50e5122
e7fe2c8
55c71d6
eea0d9f
9e98169
d06b269
70e5809
9a9f1e7
81a3bed
7f8e516
ea2ca49
7643cb0
989f65d
c759451
a0cf3a9
889c2a6
a4e0376
80c2d2b
a9f5630
2643cfe
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Подсистема "подписки на события" | ||
|
||
Подписки на события применяются для реализации дополнительной постобработки или проверок, которые активируются после определённых событий в типовых объектах или модулях менеджера. | ||
В случае отстутствия типовой подписки, используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль. | ||
|
||
Порядок действий при работе с подсистемой: | ||
- Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **ДокументОбработкаПроведения**, **СправочникПриЗаписи** и так далее. | ||
Недопускается смешение типов объектов и событий в одной подписке. Если подписки не существует, нужно её добавить, а так же общий модуль с аналогичным названием (напр. **__ДокументыОбработкаЗаполнения** - и подписка, и общий модуль). | ||
Добавить их в подсистему **__ПодпискиНаСобытия**. | ||
- Если создана новая подписка и модуль, то в модуле создается обработчик для подписки и выбрать его в подписке. У каждого события свой набор параметров. | ||
|
||
```1C (BSL) | ||
Процедура ДокументыОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт | ||
// Опустить обработку, если есть отказ или идёт загрузка обмена данными | ||
Если Отказ Или Источник.ОбменДанными.Загрузка Тогда | ||
Возврат; | ||
КонецЕсли; | ||
|
||
// Получение имени метода для исполнения | ||
ИмяМетода = юр_ОбщегоНазначенияПовтИсп.ДокументыОбработкаПроведения().Получить(ТипЗнч(Источник)); | ||
|
||
// Выполнение метода, если он определён | ||
Если ЗначениеЗаполнено(ИмяМетода) Тогда | ||
// Попытка выполнения метода с необходимыми параметрами | ||
Попытка | ||
ПараметрыМетода = Новый Массив; | ||
ПараметрыМетода.Добавить(Источник); | ||
ПараметрыМетода.Добавить(Отказ); | ||
ПараметрыМетода.Добавить(РежимПроведения); | ||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); | ||
Исключение | ||
// В случае ошибки вывод информации о ней | ||
ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); | ||
КонецПопытки; | ||
КонецЕсли; | ||
КонецПроцедуры | ||
``` | ||
|
||
- В общем модуле **__ОбщегоНазначенияПовтИсп** найти функцию с названием объекта и события и добавить в соответствие тип объекта и вызываемую процедуру. Если функции для данного набора нет, создать её. | ||
|
||
```1C (BSL) | ||
Функция ДокументыОбработкаПроведения() Экспорт | ||
Соответствие = Новый Соответствие; | ||
// Добавление соответствий между типами объектов и методами | ||
Соответствие.Вставить(Тип("ДокументОбъект.СписаниеБезналичныхДенежныхСредств"), | ||
"юр_ДокументыОбработкаПроведения.СписаниеБезналичныхДенежныхСредств"); | ||
Соответствие.Вставить(Тип("ДокументОбъект.ПоступлениеБезналичныхДенежныхСредств"), | ||
"юр_ДокументыОбработкаПроведения.ПоступлениеБезналичныхДенежныхСредств"); | ||
|
||
Возврат Соответствие; | ||
КонецФункции | ||
``` | ||
|
||
- В модуле объекта и события добавить экспортную процедуру с такими же параметрами как у основной и добавить необходимую логику. |
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,67 @@ | ||||||||
# Подсистема "пользовательские функции" | ||||||||
|
||||||||
## Общие сведения | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure headings are surrounded by blank lines for better readability. +
## Общие сведения
+ Committable suggestion
Suggested change
|
||||||||
|
||||||||
Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций. | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove trailing spaces to adhere to coding standards. - Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций.
+ Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций. Committable suggestion
Suggested change
|
||||||||
Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария. | ||||||||
В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит. | ||||||||
|
||||||||
## Создание функции | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure headings are surrounded by blank lines for better readability. +
## Создание функции
+ Committable suggestion
Suggested change
|
||||||||
|
||||||||
Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение. | ||||||||
Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат". | ||||||||
|
||||||||
## Параметры функции | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure headings are surrounded by blank lines for better readability. +
## Параметры функции
+ Committable suggestion
Suggested change
|
||||||||
|
||||||||
В пользовательских функциях значения параметров используются для проведения проверок. | ||||||||
При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным. | ||||||||
Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей. | ||||||||
Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура). | ||||||||
Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. | ||||||||
![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87) | ||||||||
|
||||||||
## Переменные функции | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure headings are surrounded by blank lines for better readability. +
## Переменные функции
+ Committable suggestion
Suggested change
|
||||||||
|
||||||||
Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода. | ||||||||
|
||||||||
## Работа с функциями | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ensure headings are surrounded by blank lines for better readability. +
## Работа с функциями
+ Committable suggestion
Suggested change
|
||||||||
|
||||||||
В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D". | ||||||||
|
||||||||
В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода. | ||||||||
|
||||||||
Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом. | ||||||||
|
||||||||
Для вызова пользовательской функции из произвольного места существует функция - **__ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(Ссылка, Параметры)** | ||||||||
Параметры: | ||||||||
Ссылка - СправочникСсылка.__ПользовательскиеФункции - ссылка на выполняемую функцию; | ||||||||
Параметры - Структура - где ключ - имя параметра, значение - значение передаваемого параметра. | ||||||||
В случае если не передан обязательный параметр в структуре параметров, будет вызвано исключение, можно не передавать необязательные параметры, в таком случае их значение будет по умолчанию "Неопределено" | ||||||||
|
||||||||
**Пример создания пользовательской функции:** | ||||||||
|
||||||||
```1C (BSL) | ||||||||
Функция УдалитьНедопустимыеСимволы(ИсходнаяСтрока) // Формируется на основании наименования элемента справочника и параметров | ||||||||
|
||||||||
НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»"; | ||||||||
Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, НедопустимыеСимволы, Истина)); | ||||||||
|
||||||||
Возврат Результат; // Установлен автоматически, отдельно прописывать не нужно | ||||||||
|
||||||||
КонецФункции // Установлен автоматически, отдельно прописывать не нужно | ||||||||
``` | ||||||||
|
||||||||
**Пример вызова пользовательской функции:** | ||||||||
|
||||||||
```1C (BSL) | ||||||||
Функция ПолучитьВалиднуюСтроку(СсылкаНаПользовательскуюФункцию, Имя) | ||||||||
|
||||||||
ИмяБезПробелов = СтрЗаменить(Имя, " ", ""); | ||||||||
ПараметрыФункции = Новый Структура; | ||||||||
ПараметрыФункции.Вставить("ИсходнаяСтрока", ИмяБезПробелов); | ||||||||
Результат = __ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(СсылкаНаПользовательскуюФункцию, ПараметрыФункции); | ||||||||
|
||||||||
Возврат Результат; | ||||||||
|
||||||||
КонецФункции | ||||||||
``` |
There was a problem hiding this comment.
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