From 46c5a7faf938d4d620d7c263a94a3ea01a20c6de Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Fri, 26 Apr 2024 11:07:41 +0300 Subject: [PATCH 01/21] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f1e1927..82e63e58 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ 5. Управление интеграциями 6. Пользовательские функции 7. [Загрузка файла через табличный документ](docs/ЗагрузкаФайлаЧерезТабличныйДокумент.md) +8. [Переопределения методов БСП](docs/ПереопределениеМетодовБСП.md) ## Заимствованные разработки From 50e51224c1129d4833fe2da92c9f2dcdc96922f4 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Fri, 26 Apr 2024 12:12:22 +0300 Subject: [PATCH 02/21] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\275\320\272\321\206\320\270\320\270.md" | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 "docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" diff --git "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" new file mode 100644 index 00000000..76efa591 --- /dev/null +++ "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" @@ -0,0 +1,33 @@ +# Подсистема пользовательские функции + + ## Общие сведения + Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций. + Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария. + В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит. + + ## Создание функции + Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение. + Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат". + + ## Параметры функции + При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным. + Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура). + Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. + ![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87) + + ## Работа с функциями + В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D". + В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода. + Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом. + + ```1C (BSL) + Функция УдалитьНедопустимыеСимволы(ИсходнаяСтрока) // Формируется на основании наименования элемента справочника и параметров + НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»"; + Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, НедопустимыеСимволы, Истина)); + + Возврат Результат; // Установлен автоматически, отдельно прописывать не нужно + КонецФункции // Установлен автоматически, отдельно прописывать не нужно + ``` + + ## Описание функции + Для каждой функции можно составить описание, указав её назначение и особенности. Это описание вызывается кнопкой "Добавить описание подпрограммы" панели инструментов редактора кода. From e7fe2c8fca3e5537b4ec9e4bb99f4971c9a64e3a Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 11:00:41 +0300 Subject: [PATCH 03/21] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...244\321\203\320\275\320\272\321\206\320\270\320\270.md" | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" index 76efa591..3e47da33 100644 --- "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" +++ "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" @@ -11,6 +11,7 @@ ## Параметры функции При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным. + Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей. Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура). Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. ![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87) @@ -20,6 +21,8 @@ В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода. Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом. + Пример создания пользовательской функции: + ```1C (BSL) Функция УдалитьНедопустимыеСимволы(ИсходнаяСтрока) // Формируется на основании наименования элемента справочника и параметров НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»"; @@ -28,6 +31,4 @@ Возврат Результат; // Установлен автоматически, отдельно прописывать не нужно КонецФункции // Установлен автоматически, отдельно прописывать не нужно ``` - - ## Описание функции - Для каждой функции можно составить описание, указав её назначение и особенности. Это описание вызывается кнопкой "Добавить описание подпрограммы" панели инструментов редактора кода. + From 55c71d6fa8a88d67840b73d01cdf8b7f5e0a671b Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 11:26:31 +0300 Subject: [PATCH 04/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 82e63e58..a8550a5f 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ 3. [Программная модификация форм](docs/РаботаСФормами.md) 4. Подписки на события 5. Управление интеграциями -6. Пользовательские функции +6. [Пользовательские функции](docs/ПользовательскиеФункции.md) 7. [Загрузка файла через табличный документ](docs/ЗагрузкаФайлаЧерезТабличныйДокумент.md) 8. [Переопределения методов БСП](docs/ПереопределениеМетодовБСП.md) From eea0d9f312a6939b2dfd7eb8f534c83a3b219b47 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 12:10:21 +0300 Subject: [PATCH 05/21] Update README --- ...21\207\320\265\320\275\320\270\321\217.md" | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git "a/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" "b/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" index edfd24a1..e67ee066 100644 --- "a/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" +++ "b/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" @@ -1,6 +1,27 @@ # Подсистема предопределенных значений -Пример добавления нового элемента в модуле __ПредопределенныеЗначенияПереопределяемый +Для обращения к ссылкам из кода используем предопределенные значения, добавляем их в план видов характеристик (ПВХ) "__ПредопределенныеЗначения" + +Для удобной работы с ПВХ у нас есть следующие функции: + - **__ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение(Имя, ИспользоватьКэш)** - если это единичное значение, возвращается сразу оно, если установлен флаг "Список значений" то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина. + - Параметры: + - Имя - Строка + - ИспользоватьКэш - Булево + - Возвращаемое значение: + - ПроизвольныйТип - Значение переменной ПВХ. + - Массив - Массив значений переменной ПВХ. + - **__ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей, ИспользоватьКэш)** - если "ВРазрезеКлючей" то возвращает соответствие нескольких элементов ПВХ, если ВРазрезеКлючей = ложь, то возвращает массив значений. Для получения часто используемых предопределенных значений, установите ИспользоватьКэш = Истина. + - Параметры: + - Имена - Строка - Имена переменных ПВХ, перечисленные через запятую. + - ВРазрезеКлючей - Булево + - ИспользоватьКэш - Булево + - Возвращаемое значение: + - Соответствие - Соответствие имен и значений переменных ПВХ. + - Ключ - Строка - имя значения + - Значение - ПроизвольныйТип + - Массив - ПроизвольныйТип + +Пример добавления нового элемента в модуле __ПредопределенныеЗначенияПереопределяемый: ```1C (BSL) Функция ПредопределенныеЗначения() Экспорт @@ -21,7 +42,7 @@ КонецФункции ``` -Пример получения множественного результата, второй параметр указывает если Истина, то результат оборачивается в соответствие, где Ключ - Имя предопределенного элемента, Значение - значение предопределенного элемента +Пример получения множественного результата: ```1C (BSL) Функция ПолучитьДанныеАвторизации() @@ -40,12 +61,12 @@ КонецФункции ``` -Пример получения единичного результата +Пример получения единичного результата: ```1C (BSL) Функция ЗаписыватьДанныеСтандартнымСпособом(ПроверяемаяДата) - Результат = __ОбщегоНазначенияСервер.ПолучитьПредопределенныеЗначения("ДатаНачалаЗаписиВРегистры", Истина, Истина); + Результат = __ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение("ДатаНачалаЗаписиВРегистры", Истина); Возврат ПроверяемаяДата = Результат; From 9e9816944f1d2ef5805da8f4116cbdfce3bdf18c Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 12:31:35 +0300 Subject: [PATCH 06/21] Update README --- ...20\271\320\221\320\260\320\267\321\213.md" | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git "a/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" "b/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" index e3db903d..d7f714a3 100644 --- "a/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" +++ "b/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" @@ -1,22 +1,30 @@ # Соответствие объектов информационной базы через регистр сведений +Для хранения соответствия 2-3х объектов в системе предназначен регистр сведений (РС) __СоответствияОбъектовИБ. В некоторых случаях можно создавать отдельные регистры (при использовании в высоконагруженных транзакциях или при наличии большого (более 100) количества соответствий или при более чем 3 соответствующих объектов). + +Порядок создания соответствия: + - Добавить новое значение в перечисление __ТипСоответствияОбъектовИБ, если нужно, расширить типы измерений через определяемый тип __ТипыОбъектовСоответствийИБ. + - Создаем запись в регистре + +Варианты получения соответствия: + - **__ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3, ИспользоватьКэш)** - (параметры: Объект1, Объект2, Объект3, ИспользоватьКэш - необязательные) - Возвращает массив структур соответствий по установленному отбору + - **__ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш)** - (параметры: ИспользоватьКэш - необязательные) - Возвращает массив значений произвольного типа, объекта соответствия. + - Делать соединение с регистром в запросах + 1. ПолучитьСоответствиеОбъектовИБ - Позволяет фильтровать результаты по трем объектам. ```1C (BSL) Процедура Тест() // Вызов метода с заданными параметрами - МассивСоответствий = __ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, , Истина); - - // Пример обработки полученного массива структур - Для Каждого Соответствие Из МассивСоответствий Цикл - Сообщить("Тип соответствия: " + Соответствие.ТипСоответствия); - Сообщить("Объект 1: " + Соответствие.Объект1); - Сообщить("Объект 2: " + Соответствие.Объект2); - Сообщить("Объект 3: " + Соответствие.Объект3); - КонецЦикла; + МассивСоответствий = __ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(Перечисления.__ТипСоответствияОбъектовИБ.Тест, Тест1, Тест2, , Истина); + + Если ЗначениеЗаполнено(МассивСоответствий) Тогда + РезультатТест = МассивСоответствий[0].Объект3; + КонецЕсли; + КонецПроцедуры ``` -2. ПолучитьЗначенияОбъектаСоответствияПоКлючу +2. ПолучитьЗначенияОбъектаСоответствияПоКлючу - Позволяет получить массив значений по ключу ```1C (BSL) Процедура Тест() @@ -24,7 +32,7 @@ ЗначениеКлюча = Склад; ИмяОбъекта = "Объект3"; // Вызов метода с заданными параметрами - Значения = __ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта); + Значения = __ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(Перечисления.__ТипСоответствияОбъектовИБ.Тест, "Объект1", Тест, "Объект2"); // Пример использования полученного массива значений Если ЗначениеЗаполнено(Значения) Тогда From d06b2693aff2e8283966fb195792ae9c7ec0c66b Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 13:07:50 +0300 Subject: [PATCH 07/21] Update README --- ...320\276\321\200\320\274\320\260\320\274\320\270.md" | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git "a/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" "b/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" index 44c361c6..44361258 100644 --- "a/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" +++ "b/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" @@ -1,5 +1,15 @@ # Общий модуль __РаботаСФормами - Модуль динамического формирования интерфейса +Предназначен для программного изменения типовых форм. + +- Общий модуль **__МодификацияКонфигурацииПереопределяемый** используется для маршрутизации из серверных процедур (напр. **ПриСозданииНаСервере**) по дополнительным модулям разбитым по объектам (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**). В сам модуль **__МодификацияКонфигурацииПереопределяемый** доработки не вносятся. +- Для вызова общего модуля **__МодификацияКонфигурацииПереопределяемый**: + - В случае если в типовой форме которую нужно программно изменить есть в обработчике события вызов типового общего модуля **МодификацияКонфигурацииПереопределяемый** или **СобытияФорм**, то необходимо добавить в общий модуль **__ОбщегоНазначенияПовтИсп** соответствие в нужную функцию (напр. **ФормыПриСозданииНаСервере**) + - В случае если в типовой форме отсутствуют данные вызовы типовых модулей, то необходимо вызывать сразу общий модуль **__МодификацияКонфигурацииПереопределяемый** через добавление в расширение обработчика события **После**. +- В переопределяемом общем модуле для объекта (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**) необходимо добавить процедуру-обработчик изменения (напр. **ДокументАвансовыйОтчетФормаФормаДокументаПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт**) +- Использовать функции и процедуры общего модуля **__РаботаСФормами** для уменьшения объема текста при добавлении элементов (напр. **__РаботаСФормами.СоздатьПоле(Форма, "_ДемоДата", ГруппаНомерДата, "от", 1, "_ДемоДата")**) +- В случае если для нужного типа объекта ещё не был создан общий модуль, создать его и добавить в подсистему **__МодификацияФорм** + Демо-пример использования методов общего модуля ```1C (BSL) From 70e58094c971654d0c53839af0ea7c765665b62c Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:13:02 +0300 Subject: [PATCH 08/21] Create README --- ...20\261\321\213\321\202\320\270\321\217.md" | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 "docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" diff --git "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" new file mode 100644 index 00000000..cc8cbe6e --- /dev/null +++ "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" @@ -0,0 +1,54 @@ +# Подсистема подписок на события + +Подписки на события применяются для реализации дополнительной постобработки или проверок, которые активируются после определённых событий в типовых объектах или модулях менеджера. +В случае отстутствия типовой подписки, используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль. + +Порядок действий при работе с подсистемой: + - Необходимо проверить, существует ли общая подписка на нужный тип объекта и событие. Например: **ДокументОбработкаПроведения**, **СправочникПриЗаписи** и так далее. +Недопускается смешение типов объектов и событий в одной подписке. Если подписки не существует, нужно её добавить, а так же общий модуль с аналогичным названием (напр. **__ДокументыОбработкаЗаполнения** - и подписка, и общий модуль). +Добавить их в подсистему **__ПодпискиНаСобытия**. + - Если создана новая подписка и модуль, то в модуле создается обработчик для подписки и выбрать его в подписке. У каждого события свой набор параметров. + +```1C (BSL) +Процедура ДокументыОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт + // Опустить обработку, если есть отказ или идёт загрузка обмена данными + Если Отказ Или Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + // Получение имени метода для исполнения + ИмяМетода = юр_ОбщегоНазначенияПовтИсп.ДокументыОбработкаПроведения().Получить(ТипЗнч(Источник)); + + // Выполнение метода, если он определён + Если ЗначениеЗаполнено(ИмяМетода) Тогда + // Попытка выполнения метода с необходимыми параметрами + Попытка + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(Источник); + ПараметрыМетода.Добавить(Отказ); + ПараметрыМетода.Добавить(РежимПроведения); + ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода); + Исключение + // В случае ошибки вывод информации о ней + ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода); + КонецПопытки; + КонецЕсли; +КонецПроцедуры +``` + + - В общем модуле **__ОбщегоНазначенияПовтИсп** найти функцию с названием объекта и события и добавить в соответствие тип объекта и вызываемую процедуру. Если функции для данного набора нет, создать её. + +```1C (BSL) +Функция ДокументыОбработкаПроведения() Экспорт + Соответствие = Новый Соответствие; + // Добавление соответствий между типами объектов и методами + Соответствие.Вставить(Тип("ДокументОбъект.СписаниеБезналичныхДенежныхСредств"), + "юр_ДокументыОбработкаПроведения.СписаниеБезналичныхДенежныхСредств"); + Соответствие.Вставить(Тип("ДокументОбъект.ПоступлениеБезналичныхДенежныхСредств"), + "юр_ДокументыОбработкаПроведения.ПоступлениеБезналичныхДенежныхСредств"); + + Возврат Соответствие; +КонецФункции +``` + +- В модуле объекта и события добавить экспортную процедуру с такими же параметрами как у основной и добавить необходимую логику. From 9a9f1e7292f5dba3d85a4b77c80218b984ad655f Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:17:49 +0300 Subject: [PATCH 09/21] Update README --- ...20\244\320\276\321\200\320\274\320\260\320\274\320\270.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" "b/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" index 44361258..e4c93ff9 100644 --- "a/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" +++ "b/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" @@ -1,6 +1,6 @@ -# Общий модуль __РаботаСФормами - Модуль динамического формирования интерфейса +# Подсистема "модификация форм" -Предназначен для программного изменения типовых форм. +Предназначена для динамического формирования интерфейса. Также использовать в случае изменения типовых форма. - Общий модуль **__МодификацияКонфигурацииПереопределяемый** используется для маршрутизации из серверных процедур (напр. **ПриСозданииНаСервере**) по дополнительным модулям разбитым по объектам (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**). В сам модуль **__МодификацияКонфигурацииПереопределяемый** доработки не вносятся. - Для вызова общего модуля **__МодификацияКонфигурацииПереопределяемый**: From 81a3bed0e0312def0634af0016f21c03b429d00e Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:18:41 +0300 Subject: [PATCH 10/21] Rename README --- ...60\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" => "docs/\320\274\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" (100%) diff --git "a/docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" "b/docs/\320\274\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" similarity index 100% rename from "docs/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.md" rename to "docs/\320\274\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" From 7f8e516dbdef44f479133f569472d3ef6958a686 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:19:46 +0300 Subject: [PATCH 11/21] Rename README --- ...60\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "docs/\320\274\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" => "docs/\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" (100%) diff --git "a/docs/\320\274\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" "b/docs/\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" similarity index 100% rename from "docs/\320\274\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" rename to "docs/\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" From ea2ca49b0fb74ac6264992728120c9460194913a Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:20:09 +0300 Subject: [PATCH 12/21] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a8550a5f..a27a8291 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ 1. [Предопределенные значения](docs/ПредопределенныеЗначения.md) 2. [Соответствия объектов ИБ](docs/СоответствиеОбъектовИнформационнойБазы.md) -3. [Программная модификация форм](docs/РаботаСФормами.md) -4. Подписки на события +3. [Программная модификация форм](docs/МодификацияФорм.md) +4. [Подписки на события](docs/ПодпискиНаСобытия.md) 5. Управление интеграциями 6. [Пользовательские функции](docs/ПользовательскиеФункции.md) 7. [Загрузка файла через табличный документ](docs/ЗагрузкаФайлаЧерезТабличныйДокумент.md) From 7643cb0096820b22287f221dc3a9165e15288a50 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:20:42 +0300 Subject: [PATCH 13/21] =?UTF-8?q?Update=20=D0=9F=D0=BE=D0=B4=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=9D=D0=B0=D0=A1=D0=BE=D0=B1=D1=8B=D1=82?= =?UTF-8?q?=D0=B8=D1=8F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" index cc8cbe6e..691ef9fc 100644 --- "a/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" +++ "b/docs/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.md" @@ -1,4 +1,4 @@ -# Подсистема подписок на события +# Подсистема "подписки на события" Подписки на события применяются для реализации дополнительной постобработки или проверок, которые активируются после определённых событий в типовых объектах или модулях менеджера. В случае отстутствия типовой подписки, используется подсистема **"Подписки на события"**. Если нужно внести изменения в типовую логику работы подписки, используется заимствование методов в расширении с аннотацией &ИзменениеИКонтроль. From 989f65d8ed6f7ef817f0f27b850fc0c81737194b Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:21:29 +0300 Subject: [PATCH 14/21] =?UTF-8?q?Update=20=D0=9F=D1=80=D0=B5=D0=B4=D0=BE?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=D0=97=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D1=8F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" "b/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" index e67ee066..2e1e3db0 100644 --- "a/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" +++ "b/docs/\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.md" @@ -1,4 +1,4 @@ -# Подсистема предопределенных значений +# Подсистема "предопределенные значения" Для обращения к ссылкам из кода используем предопределенные значения, добавляем их в план видов характеристик (ПВХ) "__ПредопределенныеЗначения" From c759451599c42476a3f7de82ef1900d71f98dfea Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:22:25 +0300 Subject: [PATCH 15/21] =?UTF-8?q?Update=20=D0=A1=D0=BE=D0=BE=D1=82=D0=B2?= =?UTF-8?q?=D0=B5=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B5=D0=9E=D0=B1=D1=8A?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=D0=98=D0=BD=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D0=BE=D0=B9=D0=91?= =?UTF-8?q?=D0=B0=D0=B7=D1=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" "b/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" index d7f714a3..ae323d7c 100644 --- "a/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" +++ "b/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" @@ -1,4 +1,4 @@ -# Соответствие объектов информационной базы через регистр сведений +# Подсистема "Соответствие объектов информационной базы" Для хранения соответствия 2-3х объектов в системе предназначен регистр сведений (РС) __СоответствияОбъектовИБ. В некоторых случаях можно создавать отдельные регистры (при использовании в высоконагруженных транзакциях или при наличии большого (более 100) количества соответствий или при более чем 3 соответствующих объектов). From a0cf3a91cee1280b1842f9867219c6a60696c860 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:22:49 +0300 Subject: [PATCH 16/21] =?UTF-8?q?Update=20=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D0=B5=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" index 3e47da33..d77be193 100644 --- "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" +++ "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" @@ -1,4 +1,4 @@ -# Подсистема пользовательские функции +# Подсистема "пользовательские функции" ## Общие сведения Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций. From 889c2a6439e0dcf5491d140351aba1a2c0c7ecfd Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:03:53 +0300 Subject: [PATCH 17/21] =?UTF-8?q?Update=20=D0=9C=D0=BE=D0=B4=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D1=8F=D0=A4=D0=BE=D1=80=D0=BC.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\206\320\270\321\217\320\244\320\276\321\200\320\274.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/docs/\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" "b/docs/\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" index e4c93ff9..d6f0e154 100644 --- "a/docs/\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" +++ "b/docs/\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\244\320\276\321\200\320\274.md" @@ -2,11 +2,11 @@ Предназначена для динамического формирования интерфейса. Также использовать в случае изменения типовых форма. -- Общий модуль **__МодификацияКонфигурацииПереопределяемый** используется для маршрутизации из серверных процедур (напр. **ПриСозданииНаСервере**) по дополнительным модулям разбитым по объектам (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**). В сам модуль **__МодификацияКонфигурацииПереопределяемый** доработки не вносятся. +- Общий модуль **__МодификацияКонфигурацииПереопределяемый** используется для маршрутизации из серверных процедур (напр. **ПриСозданииНаСервере**) по дополнительным модулям разбитым по объектам (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**). В сам модуль **__МодификацияКонфигурацииПереопределяемый** могут добавляться обработчики событий которых нет изначально. - Для вызова общего модуля **__МодификацияКонфигурацииПереопределяемый**: - В случае если в типовой форме которую нужно программно изменить есть в обработчике события вызов типового общего модуля **МодификацияКонфигурацииПереопределяемый** или **СобытияФорм**, то необходимо добавить в общий модуль **__ОбщегоНазначенияПовтИсп** соответствие в нужную функцию (напр. **ФормыПриСозданииНаСервере**) - В случае если в типовой форме отсутствуют данные вызовы типовых модулей, то необходимо вызывать сразу общий модуль **__МодификацияКонфигурацииПереопределяемый** через добавление в расширение обработчика события **После**. -- В переопределяемом общем модуле для объекта (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**) необходимо добавить процедуру-обработчик изменения (напр. **ДокументАвансовыйОтчетФормаФормаДокументаПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт**) +- В переопределяемом общем модуле для объекта (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**) необходимо добавить процедуру-обработчик изменения (напр. **ДокументАвансовыйОтчетФормаДокументаПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт**) - Использовать функции и процедуры общего модуля **__РаботаСФормами** для уменьшения объема текста при добавлении элементов (напр. **__РаботаСФормами.СоздатьПоле(Форма, "_ДемоДата", ГруппаНомерДата, "от", 1, "_ДемоДата")**) - В случае если для нужного типа объекта ещё не был создан общий модуль, создать его и добавить в подсистему **__МодификацияФорм** From a4e0376f2481cd86c3c448420e8243516a165b98 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Sun, 28 Apr 2024 00:24:11 +0300 Subject: [PATCH 18/21] =?UTF-8?q?Update=20=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D0=B5=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\244\321\203\320\275\320\272\321\206\320\270\320\270.md" | 4 ++++ 1 file changed, 4 insertions(+) diff --git "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" index d77be193..31916708 100644 --- "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" +++ "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" @@ -10,11 +10,15 @@ Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат". ## Параметры функции + В пользовательских функциях значения параметров используются для проведения проверок. При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным. Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей. Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура). Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. ![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87) + + ## Переменные функции + Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода. ## Работа с функциями В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D". From 80c2d2b454bcb552a456bf1533853a4c5f9c6026 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Fri, 3 May 2024 15:44:11 +0300 Subject: [PATCH 19/21] =?UTF-8?q?Update=20=D0=A1=D0=BE=D0=BE=D1=82=D0=B2?= =?UTF-8?q?=D0=B5=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B5=D0=9E=D0=B1=D1=8A?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=D0=98=D0=BD=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D0=BE=D0=B9=D0=91?= =?UTF-8?q?=D0=B0=D0=B7=D1=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\276\320\271\320\221\320\260\320\267\321\213.md" | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git "a/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" "b/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" index ae323d7c..917b84da 100644 --- "a/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" +++ "b/docs/\320\241\320\276\320\276\321\202\320\262\320\265\321\202\321\201\321\202\320\262\320\270\320\265\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\276\320\271\320\221\320\260\320\267\321\213.md" @@ -3,12 +3,12 @@ Для хранения соответствия 2-3х объектов в системе предназначен регистр сведений (РС) __СоответствияОбъектовИБ. В некоторых случаях можно создавать отдельные регистры (при использовании в высоконагруженных транзакциях или при наличии большого (более 100) количества соответствий или при более чем 3 соответствующих объектов). Порядок создания соответствия: - - Добавить новое значение в перечисление __ТипСоответствияОбъектовИБ, если нужно, расширить типы измерений через определяемый тип __ТипыОбъектовСоответствийИБ. + - Добавить новое значение в перечисление **"Тип соответствия объектов ИБ"**, если нужно, расширить типы измерений/ресурсов через определяемый тип __ТипыОбъектовСоответствийИБ. - Создаем запись в регистре Варианты получения соответствия: - - **__ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3, ИспользоватьКэш)** - (параметры: Объект1, Объект2, Объект3, ИспользоватьКэш - необязательные) - Возвращает массив структур соответствий по установленному отбору - - **__ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш)** - (параметры: ИспользоватьКэш - необязательные) - Возвращает массив значений произвольного типа, объекта соответствия. + - **__ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(ИдентификаторНастройки, Объект1, Объект2, Объект3, ИспользоватьКэш)** - (параметры: Объект1, Объект2, Объект3, ИспользоватьКэш - необязательные) - Возвращает массив структур соответствий по установленному отбору + - **__ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(ИдентификаторНастройки, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш)** - (параметры: ИспользоватьКэш - необязательные) - Возвращает массив значений произвольного типа, объекта соответствия. - Делать соединение с регистром в запросах 1. ПолучитьСоответствиеОбъектовИБ - Позволяет фильтровать результаты по трем объектам. @@ -16,7 +16,8 @@ ```1C (BSL) Процедура Тест() // Вызов метода с заданными параметрами - МассивСоответствий = __ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(Перечисления.__ТипСоответствияОбъектовИБ.Тест, Тест1, Тест2, , Истина); + ИдентификаторНастройки = "Тест"; + МассивСоответствий = __ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(ИдентификаторНастройки, Тест1, Тест2, , Истина); Если ЗначениеЗаполнено(МассивСоответствий) Тогда РезультатТест = МассивСоответствий[0].Объект3; @@ -32,7 +33,8 @@ ЗначениеКлюча = Склад; ИмяОбъекта = "Объект3"; // Вызов метода с заданными параметрами - Значения = __ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(Перечисления.__ТипСоответствияОбъектовИБ.Тест, "Объект1", Тест, "Объект2"); + ИдентификаторНастройки = "Тест"; + Значения = __ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(ИдентификаторНастройки, "Объект1", Тест, "Объект2"); // Пример использования полученного массива значений Если ЗначениеЗаполнено(Значения) Тогда From a9f563030efe6b887fd587be5773742099dd37fb Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Mon, 6 May 2024 18:03:46 +0300 Subject: [PATCH 20/21] =?UTF-8?q?Update=20=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D0=B5=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\275\320\272\321\206\320\270\320\270.md" | 86 ++++++++++++------- 1 file changed, 55 insertions(+), 31 deletions(-) diff --git "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" index 31916708..0b082d9e 100644 --- "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" +++ "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" @@ -1,38 +1,62 @@ # Подсистема "пользовательские функции" - ## Общие сведения - Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций. - Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария. - В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит. - - ## Создание функции - Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение. - Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат". - - ## Параметры функции - В пользовательских функциях значения параметров используются для проведения проверок. - При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным. - Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей. - Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура). - Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. - ![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87) - - ## Переменные функции - Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода. +## Общие сведения +Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций. +Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария. +В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит. + +## Создание функции +Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение. +Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат". + +## Параметры функции +В пользовательских функциях значения параметров используются для проведения проверок. +При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным. +Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей. +Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура). +Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. +![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87) + +## Переменные функции +Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода. - ## Работа с функциями - В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D". - В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода. - Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом. +## Работа с функциями +В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D". + +В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода. + +Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом. - Пример создания пользовательской функции: +Для вызова пользовательской функции из произвольного места существует функция - **__ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(Ссылка, Параметры)** +Параметры: +Ссылка - СправочникСсылка.__ПользовательскиеФункции - ссылка на выполняемую функцию; +Параметры - Структура - где ключ - имя параметра, значение - значение передаваемого параметра. +В случае если не передан обязательный параметр в структуре параметров, будет вызвано исключение, можно не передавать необязательные параметры, в таком случае их значение будет по умолчанию "Неопределено" - ```1C (BSL) - Функция УдалитьНедопустимыеСимволы(ИсходнаяСтрока) // Формируется на основании наименования элемента справочника и параметров - НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»"; - Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, НедопустимыеСимволы, Истина)); +**Пример создания пользовательской функции:** - Возврат Результат; // Установлен автоматически, отдельно прописывать не нужно - КонецФункции // Установлен автоматически, отдельно прописывать не нужно - ``` +```1C (BSL) +Функция УдалитьНедопустимыеСимволы(ИсходнаяСтрока) // Формируется на основании наименования элемента справочника и параметров + НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»"; + Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, НедопустимыеСимволы, Истина)); + + Возврат Результат; // Установлен автоматически, отдельно прописывать не нужно + +КонецФункции // Установлен автоматически, отдельно прописывать не нужно +``` + +**Пример вызова пользовательской функции:** + +```1C (BSL) +Функция ПолучитьВалиднуюСтроку(СсылкаНаПользовательскуюФункцию, Имя) + + ИмяБезПробелов = СтрЗаменить(Имя, " ", ""); + ПараметрыФункции = Новый Структура; + ПараметрыФункции.Вставить("ИсходнаяСтрока", ИмяБезПробелов); + Результат = __ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(СсылкаНаПользовательскуюФункцию, ПараметрыФункции); + + Возврат Результат; + +КонецФункции +``` From 2643cfed8cf2c9c31d5b545874aaf28861235646 Mon Sep 17 00:00:00 2001 From: DenisUshakov <59319861+DenisUshakov@users.noreply.github.com> Date: Mon, 6 May 2024 18:15:59 +0300 Subject: [PATCH 21/21] =?UTF-8?q?Update=20=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D0=B5=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\203\320\275\320\272\321\206\320\270\320\270.md" | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" index 0b082d9e..ee18e76a 100644 --- "a/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" +++ "b/docs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.md" @@ -1,15 +1,18 @@ # Подсистема "пользовательские функции" ## Общие сведения + Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций. -Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария. +Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария. В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит. ## Создание функции -Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение. + +Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение. Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат". ## Параметры функции + В пользовательских функциях значения параметров используются для проведения проверок. При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным. Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей. @@ -18,9 +21,11 @@ ![Параметры функ](https://github.com/firstBitSportivnaya/PSSL/assets/59319861/30367563-ce96-46d9-9b25-07d1b714cc87) ## Переменные функции -Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода. - + +Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода. + ## Работа с функциями + В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D". В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода.