-
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 16 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 |
---|---|---|
@@ -1,4 +1,14 @@ | ||
# Общий модуль __РаботаСФормами - Модуль динамического формирования интерфейса | ||
# Подсистема "модификация форм" | ||
|
||
Предназначена для динамического формирования интерфейса. Также использовать в случае изменения типовых форма. | ||
|
||
- Общий модуль **__МодификацияКонфигурацииПереопределяемый** используется для маршрутизации из серверных процедур (напр. **ПриСозданииНаСервере**) по дополнительным модулям разбитым по объектам (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**). В сам модуль **__МодификацияКонфигурацииПереопределяемый** доработки не вносятся. | ||
- Для вызова общего модуля **__МодификацияКонфигурацииПереопределяемый**: | ||
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. В модуль __МодификацияКонфигурацииПереопределяемый могут добавляться обработчики событий которых нет изначально |
||
- В случае если в типовой форме которую нужно программно изменить есть в обработчике события вызов типового общего модуля **МодификацияКонфигурацииПереопределяемый** или **СобытияФорм**, то необходимо добавить в общий модуль **__ОбщегоНазначенияПовтИсп** соответствие в нужную функцию (напр. **ФормыПриСозданииНаСервере**) | ||
- В случае если в типовой форме отсутствуют данные вызовы типовых модулей, то необходимо вызывать сразу общий модуль **__МодификацияКонфигурацииПереопределяемый** через добавление в расширение обработчика события **После**. | ||
- В переопределяемом общем модуле для объекта (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**) необходимо добавить процедуру-обработчик изменения (напр. **ДокументАвансовыйОтчетФормаФормаДокументаПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт**) | ||
- Использовать функции и процедуры общего модуля **__РаботаСФормами** для уменьшения объема текста при добавлении элементов (напр. **__РаботаСФормами.СоздатьПоле(Форма, "_ДемоДата", ГруппаНомерДата, "от", 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. ДокументАвансовыйОтчетФормаДокументаПриСозданииНаСервере - без лишнего Форма |
||
- В случае если для нужного типа объекта ещё не был создан общий модуль, создать его и добавить в подсистему **__МодификацияФорм** | ||
|
||
Демо-пример использования методов общего модуля | ||
|
||
|
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,34 @@ | ||||||||||||||||||
# Подсистема "пользовательские функции" | ||||||||||||||||||
|
||||||||||||||||||
## Общие сведения | ||||||||||||||||||
Пользовательские функции в системе 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. Correct formatting and typographical issues in the general information section. - ## Общие сведения
+ ## Общие сведения
- Пользовательские функции в системе 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. Correct formatting and typographical issues in the function creation section. - ## Создание функции
+ ## Создание функции
- Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.
+ Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.
- Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат".
+ Главным условием является то, что сформированное значение должно быть помещено в переменную "Результат". 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. Нужно дописать что значения параметров используются для проверки, а для использования ссылочных констант в коде используется вкладка Переменные |
||||||||||||||||||
Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура). | ||||||||||||||||||
Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. | ||||||||||||||||||
![Параметры функ](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. Remove trailing space to adhere to coding standards. -
+ Committable suggestion
Suggested change
|
||||||||||||||||||
## Работа с функциями | ||||||||||||||||||
В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D". | ||||||||||||||||||
В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода. | ||||||||||||||||||
Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом. | ||||||||||||||||||
|
||||||||||||||||||
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. Correct formatting and typographical issues in the working with functions section. - ## Работа с функциями
+ ## Работа с функциями
- В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D".
+ В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D".
- В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода.
+ В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода.
- Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом.
+ Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом. 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. Нужно добавить пример вызова пользовательской функции из другого места __ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(ТекстФункции, ТабПараметров, СтрПеременные) но вообще логичнее было бы доработать эту процедуру чтобы туда передавать ссылку на функцию и таблицу параметров, а переменные и код уже в общем модуле бы заполнялись по ссылке |
||||||||||||||||||
|
||||||||||||||||||
```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