From 26b65b1d08ff33b8956046da6df2adcc18ca2f80 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Sat, 2 Nov 2024 17:02:48 +0000 Subject: [PATCH 01/10] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=B5=D0=BF=D0=BB=D1=8F=D0=B5=D0=BC=D1=8B?= =?UTF-8?q?=D0=BC=20=D1=87=D0=B0=D1=81=D1=82=D0=B8=D1=86=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...201\321\202\321\217\321\210\320\272\320\260.os" | 5 +++++ ...202\320\260\320\273\321\214\320\272\320\260.os" | 13 +++++++++++++ ...201\321\202\320\270\320\273\320\270\320\275.os" | 14 ++++++++++++++ 3 files changed, 32 insertions(+) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" index df6f9f0..1d0d407 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" @@ -1,3 +1,8 @@ +// Маркерная аннотация для указания, что прилепляемая частица +// является произвольным значением, передавамым кодом. +// +// Может быть использована только над параметром конструктора/метода завязи желудя. +// &Аннотация("Блестяшка") Процедура ПриСозданииОбъекта() diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" index 60f29c3..67e9f9f 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" @@ -1,3 +1,16 @@ +// Маркерная аннотация для указания, что прилепляемая частица +// является настройкой приложения. +// +// Может быть использована над параметром конструктора/метода завязи желудя, полем класса +// или методом установки значения. +// +// Параметры: +// Значение - Строка - Ключ настройки. См. библиотеку [configor](https://github.com/oscript-library/configor) +// для полного описания синтаксиса. +// Если не заполнено, используется имя параметра конструктора/поля класса +// или часть имени метода для установки значения. +// ЗначениеПоУмолчанию - Произвольный - Значение, которое принимает деталька, если не задано из-вне. +// &Аннотация("Деталька") Процедура ПриСозданииОбъекта(Значение = "", ЗначениеПоУмолчанию = Неопределено) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" index 8927d09..99ba66e 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" @@ -1,3 +1,17 @@ +// Маркерная аннотация для указания, что прилепляемая частица +// является желудем. Основной способ связывания желудей между собой. +// +// Может быть использована над параметром конструктора/метода завязи желудя, полем класса +// или методом установки значения. +// +// Параметры: +// Значение - Строка - Имя внедряемого желудя. Если не заполнено, используется имя параметра конструктора/поля класса +// или часть имени метода для установки значения. +// Тип - Строка - Тип внедряемого желудя. В случае передачи значения "Желудь", будет внедрен желудь как таковой. +// Так же может быть указан тип "Массив", "ТаблицаЗначений" и другие. Полный список доступных типов +// см. в библиотеке [autumn-collections](https://github.com/autumn-library/autumn-collections). +// Блестяшка - Произвольный - Повторяемый параметр. Передаваемые в прилепляемый желудь произвольные значения. +// &Аннотация("Пластилин") Процедура ПриСозданииОбъекта(Значение = "", Тип = "", &Повторяемый Блестяшка = Неопределено) From 3364d4e4c2492fb536384038f4a21e1cc3ecf2b2 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Mon, 11 Nov 2024 16:47:19 +0000 Subject: [PATCH 02/10] Some docs --- ...21\202\321\217\321\210\320\272\320\260.os" | 10 ++++++++ ...20\276\320\262\320\275\321\213\320\271.os" | 2 ++ ...20\260\320\273\321\214\320\272\320\260.os" | 22 +++++++++++++++++ ...21\202\320\270\320\273\320\270\320\275.os" | 24 +++++++++++++++++++ 4 files changed, 58 insertions(+) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" index 1d0d407..d902e86 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" @@ -3,6 +3,16 @@ // // Может быть использована только над параметром конструктора/метода завязи желудя. // +// Пример: +// +// 1. +// &Желудь +// Процедура ПриСозданииОбъекта(&Блестяшка ПроизвольноеЗначение) +// +// 2. +// &Завязь +// Функция МойЖелудь(&Блестяшка ПроизвольноеЗначение) Экспорт +// &Аннотация("Блестяшка") Процедура ПриСозданииОбъекта() diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" index a799870..ea46a7e 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" @@ -1,3 +1,5 @@ +// <Описание процедуры> +// &Аннотация("Верховный") Процедура ПриСозданииОбъекта() diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" index 67e9f9f..bc0754b 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\320\265\321\202\320\260\320\273\321\214\320\272\320\260.os" @@ -11,6 +11,28 @@ // или часть имени метода для установки значения. // ЗначениеПоУмолчанию - Произвольный - Значение, которое принимает деталька, если не задано из-вне. // +// Пример: +// +// 1. +// &Деталька +// Перем ПутьКФайлу; +// +// 2. +// &Деталька(Значение = "Настройки.ПутьКФайлу", ЗначениеПоУмолчанию = "./file.txt") +// Перем ПутьКФайлу; +// +// 3. +// &Желудь +// Процедура ПриСозданииОбъекта(&Деталька ПутьКФайлу) +// +// 4. +// &Деталька +// Процедура УстановитьПутьКФайлу(Значение) Экспорт +// +// 5. +// &Завязь +// Функция МойЖелудь(&Деталька ПутьКФайлу) Экспорт +// &Аннотация("Деталька") Процедура ПриСозданииОбъекта(Значение = "", ЗначениеПоУмолчанию = Неопределено) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" index 99ba66e..12210bc 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" @@ -12,6 +12,30 @@ // см. в библиотеке [autumn-collections](https://github.com/autumn-library/autumn-collections). // Блестяшка - Произвольный - Повторяемый параметр. Передаваемые в прилепляемый желудь произвольные значения. // +// Пример: +// +// 1. +// &Желудь +// Процедура ПриСозданииОбъекта(&Пластилин ДругойЖелудь) +// +// 2. +// &Желудь +// Процедура ПриСозданииОбъекта( +// . &Пластилин(Значение = "ДругойЖелудь", Тип = "Массив", Блестяшка = "Парам1", Блестяшка = "Парам2") Зависимость +// ) +// +// 3. +// &Пластилин +// Перем ДругойЖелудь; +// +// 4. +// &Завязь +// Функция МойЖелудь(&Пластилин ДругойЖелудь) Экспорт +// +// 5. +// &Пластилин +// Процедура УстановитьДругойЖелудь(Зависимость) Экспорт +// &Аннотация("Пластилин") Процедура ПриСозданииОбъекта(Значение = "", Тип = "", &Повторяемый Блестяшка = Неопределено) From 6308eae42dcad3230e6b37f73c1baf43421335ae Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Thu, 14 Nov 2024 16:12:38 +0000 Subject: [PATCH 03/10] =?UTF-8?q?=D0=95=D1=89=D0=B5=20=D0=BD=D0=B5=D0=BC?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\276\320\262\320\275\321\213\320\271.os" | 10 +++++++++- ...20\265\320\273\321\203\320\264\321\214.os" | 8 ++++++++ ...21\200\321\217\320\264\320\276\320\272.os" | 19 +++++++++++++++++- ...20\250\321\202\321\200\320\270\321\205.os" | 10 ++++++++++ ...20\260\320\272\321\202\320\265\321\200.os" | 20 +++++++++++++++++++ 5 files changed, 65 insertions(+), 2 deletions(-) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" index ea46a7e..3e13989 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" @@ -1,4 +1,12 @@ -// <Описание процедуры> +// Помечает желудь как имеющий приоритет среди других желудей с таким же именем или `&Прозвищем`. +// В случае конфликта имен при получении желудей или их регистрации, будет использован желудь с аннотацией `&Верховный`. +// +// При наличии нескольких желудей с одним и тем же прозвищем позволяет определить, какой из них следует возвращать +// при поиске единственного желудя по его прозвищу. +// +// Если несколько желудей с одним и тем же именем/прозвищем имеют аннотацию `&Верховный`, будет вызвано исключение. +// +// Размещается над определением желудя - конструктором или методом &Завязи. // &Аннотация("Верховный") Процедура ПриСозданииОбъекта() diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" index 00651f4..ae0da3e 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" @@ -1,3 +1,11 @@ +// Помечает указанный класс как желудь - компонент, жизненным циклом которого управляет фреймворк ОСень. +// +// Размещается над конструктором класса. +// +// Параметры: +// Значение - Строка- Имя желудя. По умолчанию будет использовано имя типа объекта, +// как оно возвращается функцией `ТипЗнч`. +// &Аннотация("Желудь") Процедура ПриСозданииОбъекта(Значение = "") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" index 70539d6..aa4f7e4 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" @@ -1,10 +1,27 @@ Перем _Значение; +// Порядок, заданный аннотацией. +// +// Возвращаемое значение: +// Число - Заданный порядок. +// Функция Значение() Экспорт Возврат _Значение; КонецФункции +// Управляет порядком инициализации и использования желудя. Не может быть меньше 1 или больше 999998. +// +// Если размещается над обычным `&Желудем` или `&Завязью`, то влияет на порядок сортировки, при получении +// коллекции желудей по прозвищу. +// +// Если размещается над `&Напильником`, влияет на порядок применения напильников к желудям. +// +// Если размещается над `&Рогаткой`, влияет на порядок запуска рогаток при старте приложения. +// +// Параметры: +// Значение - Число - Задаваемый порядок. +// &Аннотация("Порядок") Процедура ПриСозданииОбъекта(Значение = 1) _Значение = Значение; -КонецПроцедуры \ No newline at end of file +КонецПроцедуры diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" index 3c324ed..eaffdd5 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" @@ -1,3 +1,13 @@ +// Процедуры, помеченные аннотацией "ФинальныйШтрих" будут вызваны в конце инициализации желудя, +// после отработки конструктора/метода завязи и всех напильников, применяемых на желуде. +// Во время выполнения процедуры доступны все зависимости, внедренняемые как через конструктор, так и через поля класса +// и методы-сеттеры. +// +// Желудь может содержать несколько процедур, помеченных аннотацией "ФинальныйШтрих". +// Порядок их вызова не гарантируется. +// +// Процедура должна быть помечена `Экспорт`ная. +// &Аннотация("ФинальныйШтрих") Процедура ПриСозданииОбъекта() diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" index b9e6cae..c1b7eb2 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" @@ -1,3 +1,23 @@ +// Задает способ управления жизненным циклом желудя. +// +// ОСень содержит два базовых характера желудя: "Одиночка" и "Компанейский". +// +// По умолчанию все желуди имеют характер "Одиночка", означающий, что желудь +// инициализируется один раз. При каждом запросе желудя будет возвращаться один и тот же +// экземпляр. +// +// Характер "Компанейский" означает, что каждый раз при запросе желудя будет создаваться +// новый экземпляр. +// +// Размещается над конструктором класса или над методом `&Завязи`. +// +// Параметры: +// Значение - Строка - Характер желудя. +// +// Пример: +// 1. &Характер("Одиночка") +// 2. &Характер("Компанейский") +// &Аннотация("Характер") Процедура ПриСозданииОбъекта(Значение) From 94184523b682631a06703f6a8de548198a7da1ae Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Fri, 15 Nov 2024 16:59:47 +0000 Subject: [PATCH 04/10] =?UTF-8?q?=D0=95=D1=89=D0=B5=20=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\202\320\270\320\273\320\270\320\275.os" | 6 +-- ...21\200\321\217\320\264\320\276\320\272.os" | 2 +- ...20\270\320\265\320\274\320\272\320\260.os" | 12 ++++++ ...20\272\320\260\321\206\320\270\321\217.os" | 31 +++++++++++--- ...20\272\320\265\321\200\320\272\320\260.os" | 29 ++++++++++++++ ...20\250\321\202\321\200\320\270\321\205.os" | 4 +- ...20\260\320\272\321\202\320\265\321\200.os" | 6 ++- ...20\260\321\201\321\202\320\270\321\206.os" | 2 +- ...20\266\320\265\320\275\320\270\321\217.os" | 40 +++++++++---------- 9 files changed, 97 insertions(+), 35 deletions(-) rename "src/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" => "src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" (97%) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" index 12210bc..bb7254c 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" @@ -5,9 +5,9 @@ // или методом установки значения. // // Параметры: -// Значение - Строка - Имя внедряемого желудя. Если не заполнено, используется имя параметра конструктора/поля класса -// или часть имени метода для установки значения. -// Тип - Строка - Тип внедряемого желудя. В случае передачи значения "Желудь", будет внедрен желудь как таковой. +// Значение - Строка - Имя прилепляемого желудя. Если не заполнено, используется имя параметра конструктора/поля +// класса или часть имени метода для установки значения. +// Тип - Строка - Тип прилепляемого желудя. В случае передачи значения "Желудь", будет внедрен желудь как таковой. // Так же может быть указан тип "Массив", "ТаблицаЗначений" и другие. Полный список доступных типов // см. в библиотеке [autumn-collections](https://github.com/autumn-library/autumn-collections). // Блестяшка - Произвольный - Повторяемый параметр. Передаваемые в прилепляемый желудь произвольные значения. diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" index aa4f7e4..5ed92b5 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\276\321\200\321\217\320\264\320\276\320\272.os" @@ -3,7 +3,7 @@ // Порядок, заданный аннотацией. // // Возвращаемое значение: -// Число - Заданный порядок. +// Число // Функция Значение() Экспорт Возврат _Значение; diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" index 09ed5b9..2167e22 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" @@ -1,3 +1,15 @@ +// Аналог &Напильника для `ОпределениеЖелудя`. Срабатывает каждый раз, когда в контекст добавляется новое +// определение желудя. При добавлении самой Приемки в контекст, все ранее добавленные определения желудей +// передаются в Приемку для проверки. +// +// Класс, помеченный аннотацией `&Приемка` должен реализовать следующий интерфейс: +// * `Процедура ПриДобавленииОпределенияЖелудя(ОпределениеЖелудя) Экспорт` +// +// Каждая `&Приемка` так же имеет `&Характер("Компанейский")`, `&Прозвище("Приемка")` и `&Спецификация("Инициализация")` +// +// Параметры: +// Значение - Строка - Имя желудя, под которым приемка добавляется в контекст Поделки. +// &Аннотация("Приемка") &Прозвище("Приемка") &Характер("Компанейский") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" index c417d7a..25edc6e 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" @@ -1,17 +1,36 @@ Перем _Значение; +// Сохраненное значение спецификации. +// +// Возвращаемое значение: +// Строка +// Функция Значение() Экспорт Возврат _Значение; КонецФункции +// `@unstable` +// +// Аннотация для указания жизненого цикла приложения, начиная с которого разрешено создавать желудь. +// +// По умолчанию все желуди имеют спецификацию "Выполнение", означающую, что желудь может быть создан только после вызова +// `Поделка.ЗапуститьПриложение()`. +// +// К желудям со специкацией "Инициализация" не применяются напильники. +// +// Параметры: +// Значение - Строка - Состояние приложения, на котором разрешено создавать желудь. См. СостоянияПриложения. +// +// Пример: +// &Спецификация("Инициализация") +// &Желудь +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// &Аннотация("Спецификация") -Процедура ПриСозданииОбъекта(Значение) +Процедура ПриСозданииОбъекта(Значение = "Выполнение") - Если Значение = Неопределено Тогда - _Значение = "Выполнение"; - Иначе - _Значение = Значение; - КонецЕсли; + _Значение = Значение; Если СостоянияПриложения.Значения().Найти(_Значение) = Неопределено Тогда ТекстСообщения = СтрШаблон( diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" index cad7ba5..c5e9bfc 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" @@ -1,3 +1,32 @@ +// Пометка, что прилепляемая частица прилепляется не непосредственно, а через специальный объект +// типа `Табакерка`, который позволяет получить частицу программно. +// +// Может использоваться для внедрения компанейских желудей, внедрения желудя самого в себя, +// для разрыва циклических зависимостей, для передачи дополнительных параметров прилепляемого желудя и т.п. +// +// Используется совместно с аннотациями `&Пластилин` и `&Деталька`. +// +// Пример: +// +// 1. +// &Табакерка +// &Пластилин("ДругойЖелудь") +// Перем ТабакеркаСДругимЖелудем; +// . +// ДругойЖелудь = ТабакеркаСДругимЖелудем.Достать(); +// ДругойЖелудь.КакойТоМетод(); +// ... +// 2. +// &Табакерка +// &Пластилин("ДругойЖелудь") +// Перем ТабакеркаСДругимЖелудем; +// . +// МассивБлестяшек = Новый Массив; +// МассивБлестяшек.Добавить("Парам1"); +// . +// ДругойЖелудь = ТабакеркаСДругимЖелудем.Достать(МассивБлестяшек); +// ДругойЖелудь.КакойТоМетод(); +// &Аннотация("Табакерка") Процедура ПриСозданииОбъекта() diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" index eaffdd5..8963a3c 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" @@ -1,7 +1,7 @@ // Процедуры, помеченные аннотацией "ФинальныйШтрих" будут вызваны в конце инициализации желудя, // после отработки конструктора/метода завязи и всех напильников, применяемых на желуде. -// Во время выполнения процедуры доступны все зависимости, внедренняемые как через конструктор, так и через поля класса -// и методы-сеттеры. +// Во время выполнения процедуры доступны все прилепляемые частицы, прилепленные как через конструктор, +// так и через поля класса и методы-сеттеры. // // Желудь может содержать несколько процедур, помеченных аннотацией "ФинальныйШтрих". // Порядок их вызова не гарантируется. diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" index c1b7eb2..c794416 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200.os" @@ -15,8 +15,10 @@ // Значение - Строка - Характер желудя. // // Пример: -// 1. &Характер("Одиночка") -// 2. &Характер("Компанейский") +// &Характер("Компанейский") +// &Желудь +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры // &Аннотация("Характер") Процедура ПриСозданииОбъекта(Значение) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\270\320\273\320\265\320\277\320\273\321\217\321\202\320\276\321\200\320\247\320\260\321\201\321\202\320\270\321\206.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\270\320\273\320\265\320\277\320\273\321\217\321\202\320\276\321\200\320\247\320\260\321\201\321\202\320\270\321\206.os" index 60fb1e5..b797d06 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\270\320\273\320\265\320\277\320\273\321\217\321\202\320\276\321\200\320\247\320\260\321\201\321\202\320\270\321\206.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\270\320\273\320\265\320\277\320\273\321\217\321\202\320\276\321\200\320\247\320\260\321\201\321\202\320\270\321\206.os" @@ -89,7 +89,7 @@ ИначеЕсли УправляющийПрилепляемымиКоллекциями.ЕстьПрилепляемаяКоллекция(ТипЖелудя) Тогда ПрилепляемаяЧастица = Поделка.НайтиЖелуди(ИмяЧастицы, ПрилепляемыеЧастицы, ТипЖелудя); Иначе - ВызватьИсключение "Неизвестный тип внедряемого через &Пластилин значения"; + ВызватьИсключение "Неизвестный тип прилепляемого через &Пластилин значения"; КонецЕсли; ИначеЕсли ТипЧастицы = ТипыПрилепляемыхЧастиц.Деталька() Тогда diff --git "a/src/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" similarity index 97% rename from "src/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" rename to "src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index cc22e9a..83c83d2 100644 --- "a/src/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -1,20 +1,20 @@ -Перем Значения; - -Функция Инициализация() Экспорт - Возврат "Инициализация"; -КонецФункции - -Функция Выполнение() Экспорт - Возврат "Выполнение"; -КонецФункции - -Функция Значения() Экспорт - Возврат Значения; -КонецФункции - -Значения = Новый Массив; - -Значения.Добавить(Инициализация()); -Значения.Добавить(Выполнение()); - -Значения = Новый ФиксированныйМассив(Значения); +Перем Значения; + +Функция Инициализация() Экспорт + Возврат "Инициализация"; +КонецФункции + +Функция Выполнение() Экспорт + Возврат "Выполнение"; +КонецФункции + +Функция Значения() Экспорт + Возврат Значения; +КонецФункции + +Значения = Новый Массив; + +Значения.Добавить(Инициализация()); +Значения.Добавить(Выполнение()); + +Значения = Новый ФиксированныйМассив(Значения); From a2db9d2bbf06718de5a195d4e306b982279a629f Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Fri, 15 Nov 2024 17:31:14 +0000 Subject: [PATCH 05/10] =?UTF-8?q?=D0=95=D1=89=D0=B5=20=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\270\320\265\320\274\320\272\320\260.os" | 14 +++++++- ...20\263\320\260\321\202\320\272\320\260.os" | 32 +++++++++++++++++++ ...20\250\321\202\321\200\320\270\321\205.os" | 11 +++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" index 2167e22..2b8f0c9 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" @@ -1,8 +1,10 @@ +// Специальный тип желудя для обработки определений желудей. +// // Аналог &Напильника для `ОпределениеЖелудя`. Срабатывает каждый раз, когда в контекст добавляется новое // определение желудя. При добавлении самой Приемки в контекст, все ранее добавленные определения желудей // передаются в Приемку для проверки. // -// Класс, помеченный аннотацией `&Приемка` должен реализовать следующий интерфейс: +// Класс, помеченный аннотацией `&Приемка`, должен реализовать следующий интерфейс: // * `Процедура ПриДобавленииОпределенияЖелудя(ОпределениеЖелудя) Экспорт` // // Каждая `&Приемка` так же имеет `&Характер("Компанейский")`, `&Прозвище("Приемка")` и `&Спецификация("Инициализация")` @@ -10,6 +12,16 @@ // Параметры: // Значение - Строка - Имя желудя, под которым приемка добавляется в контекст Поделки. // +// Пример: +// +// Процедура ПриДобавленииОпределенияЖелудя(ОпределениеЖелудя) Экспорт +// . Сообщить("Определение желудя: " + ОпределениеЖелудя.Имя()); +// КонецПроцедуры +// . +// &Приемка +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// &Аннотация("Приемка") &Прозвище("Приемка") &Характер("Компанейский") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" index 7d1d483..1df0970 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" @@ -1,14 +1,46 @@ Перем _ЗапускатьВФоне; Перем _ОжидатьЗавершения; +// Флаг необходимости запуска рогатки в фоновом задании. +// +// Возвращаемое значение: +// Булево +// Функция ЗапускатьВФоне() Экспорт Возврат _ЗапускатьВФоне; КонецФункции +// Флаг необходимости ожидания завершения рогатки при ее запуске в фоновом задании. +// +// Возвращаемое значение: +// Булево +// Функция ОжидатьЗавершения() Экспорт Возврат _ОжидатьЗавершения; КонецФункции +// Специальный тип желудя, автоматически выполняемый при запуске приложения (`Поделка.ЗапуститьПриложение()`). +// +// Класс, помеченный аннотацией `&Рогатка`, должен реализовать следующий интерфейс: +// * `Процедура ПриЗапускеПриложения() Экспорт` +// +// Каждая `&Рогатка` дополнительно имеет `&Прозвище("Рогатка")`. +// +// Параметры: +// Значение - Строка - Имя желудя, под которым рогатка добавляется в контекст Поделки. +// ЗапускатьВФоне - Булево - Если Истина, то рогатка будет запущена в фоновом задании. +// Если Ложь, то рогатка будет запущена в текущем потоке. +// ОжидатьЗавершения - Булево - Если Истина и `ЗапускатьВФоне` = Истина, +// то после запуска рогатки будет ожидаться её завершение. +// Пример: +// Процедура ПриЗапускеПриложения() Экспорт +// . Сообщить("Привет из рогатки!"); +// КонецПроцедуры +// . +// &Рогатка +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// &Аннотация("Рогатка") &Прозвище("Рогатка") Процедура ПриСозданииОбъекта(Значение = "", ЗапускатьВФоне = Истина, ОжидатьЗавершения = Истина) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" index 8963a3c..cd7afad 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\244\320\270\320\275\320\260\320\273\321\214\320\275\321\213\320\271\320\250\321\202\321\200\320\270\321\205.os" @@ -8,6 +8,17 @@ // // Процедура должна быть помечена `Экспорт`ная. // +// Пример: +// +// &ФинальныйШтрих +// Процедура ПостИнициализация() Экспорт +// . Сообщить("Я выполнилась после конструктора объекта"); +// КонецПроцедуры +// . +// &Желудь +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// &Аннотация("ФинальныйШтрих") Процедура ПриСозданииОбъекта() From b9b4ca4f74e8814495f7c8a714c1c027667dc78c Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Sat, 16 Nov 2024 22:26:41 +0000 Subject: [PATCH 06/10] =?UTF-8?q?=D0=95=D1=89=D0=B5=20=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\320\276\320\262\320\275\321\213\320\271.os" | 13 +++++++++++++ ...0\321\211\320\265\320\275\320\270\320\265.os" | 11 +++++++++++ ...6\320\267\320\262\320\270\321\211\320\265.os" | 16 ++++++++++++++++ 3 files changed, 40 insertions(+) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" index 3e13989..28ed147 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" @@ -8,6 +8,19 @@ // // Размещается над определением желудя - конструктором или методом &Завязи. // +// Пример: +// 1. +// &Верховный +// &Желудь("ПереопределяемыйЖелудь") +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// . +// 2. +// &Верховный +// &Завязь +// Функция ПереопределяемыйЖелудь() Экспорт +// КонецФункции +// &Аннотация("Верховный") Процедура ПриСозданииОбъекта() diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" index af09401..1aaae06 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" @@ -18,6 +18,17 @@ КонецФункции +// Маркерная аннотация, показывающая, что желудь требует изменений в процессе своего создания. +// +// Параметры аннотации конфликтуют между собой. Если отключаются все напильники, то нельзя задавать ограничения на +// применение конкретных напильников или отключение конкретных напильников. Если задано ограничение на применение только +// конкретных напильников, то нельзя задавать ограничение на отключение конкретных напильников (и наоборот). +// +// Параметры: +// ОтключитьВсеНапильники - Булево - Не применять на желуде никакие напильники. +// ПрименятьТолькоНапильник - Строка - Повторяемый параметр. Применять на желуде только напильник с указанным именем. +// НеПрименятьНапильник - Строка - Повторяемый параметр. Не применять на желуде напильник с указанным именем. +// &Аннотация("ОсобоеОбращение") Процедура ПриСозданииОбъекта( ОтключитьВсеНапильники = Ложь, diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" index 4c530cd..4b76a8e 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" @@ -1,3 +1,19 @@ +// Добавляет к желудю дополнительный идентификатор, по которому его можно в последствии доставать из Поделки. +// Желудь может иметь несколько прозвищ. Одно и то же прозвище может использоваться для нескольких желудей. +// +// Может быть использовано, например, для группировки желудей и получении их в виде массива. +// +// Параметры: +// Значение - Строка - Задаваемое прозвище. +// +// Пример: +// +// &Прозвище("ПодписчикНаСобытие") +// &Прозвище("ПользовательскийЖелудь") +// &Желудь("МойЖелудь") +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// &Аннотация("Прозвище") Процедура ПриСозданииОбъекта(Значение) From 8bdf1221bebbce93541f9de94bceed195f7dcf5d Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Mon, 18 Nov 2024 20:44:35 +0100 Subject: [PATCH 07/10] =?UTF-8?q?=D0=95=D1=89=D0=B5=20=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\270\321\217\320\224\321\203\320\261.os" | 21 +++++++++++++++++++ ...20\265\320\273\321\203\320\264\321\214.os" | 9 ++++++-- ...20\260\320\262\321\217\320\267\321\214.os" | 18 ++++++++++++++++ ...21\211\320\265\320\275\320\270\320\265.os" | 10 +++++++++ ...20\270\320\265\320\274\320\272\320\260.os" | 2 ++ ...20\267\320\262\320\270\321\211\320\265.os" | 2 ++ ...20\263\320\260\321\202\320\272\320\260.os" | 7 ++++++- ...20\272\320\260\321\206\320\270\321\217.os" | 2 ++ 8 files changed, 68 insertions(+), 3 deletions(-) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" index 17efbf5..e242400 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" @@ -1,3 +1,24 @@ +// Помечает указанный класс как фабрику компонентов - дуб, из которого появляются желуди. +// `&Дуб` сам по себе тоже является желудем, то есть может запрашивать прилепление частиц, +// является объектом для обработки `&Напильник`ом, может иметь `&Спецификация` и так далее. +// +// Дуб содержит методы, помеченные аннотацией `&Завязь`, которые возвращают желуди. +// +// Размещается над конструктором класса. +// +// Параметры: +// Значение - Строка - Имя желудя. По умолчанию будет использовано имя типа объекта, +// как оно возвращается функцией `ТипЗнч`. +// Пример: +// &Дуб +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// . +// &Завязь +// Функция ПользовательскийЖелудь() Экспорт +// . Возврат Новый ПользовательскийЖелудь(); +// КонецФункции +// &Аннотация("Дуб") Процедура ПриСозданииОбъекта(Значение = "") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" index ae0da3e..65329ae 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\226\320\265\320\273\321\203\320\264\321\214.os" @@ -3,8 +3,13 @@ // Размещается над конструктором класса. // // Параметры: -// Значение - Строка- Имя желудя. По умолчанию будет использовано имя типа объекта, -// как оно возвращается функцией `ТипЗнч`. +// Значение - Строка - Имя желудя. По умолчанию будет использовано имя типа объекта, +// как оно возвращается функцией `ТипЗнч`. +// +// Пример: +// &Желудь +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры // &Аннотация("Желудь") Процедура ПриСозданииОбъекта(Значение = "") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" index d5b5ce8..d7b0ac4 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" @@ -1,3 +1,21 @@ +// Помечает функцию как функцию, создающую желудь. +// +// Может иметь параметры, каждый из которых должен быть промаркирован как &Пластилин, &Деталька или &Блестяшка. +// В указанные параметры автоматически будут прилеплены соответствующие частицы при создании желудя. +// +// Размещается над экспортной функцией в классе, проаннотированном как `&Дуб`. +// +// Параметры: +// Значение - Строка - Имя создаваемого желудя. По умолчанию будет использовано имя метода. +// Тип - Строка - Тип создаваемого желудя. +// Требуется если по имени желудя не получается однозначного определить его тип. +// +// Пример: +// &Завязь +// Функция ПользовательскийЖелудь(&Пластилин Зависимость, &Деталька ВажнаяНастройка) Экспорт +// . Возврат Новый ПользовательскийЖелудь(Зависимость, ВажнаяНастройка); +// КонецФункции +// &Аннотация("Завязь") Процедура ПриСозданииОбъекта(Значение = "", Тип = "") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" index 1aaae06..91f1ef3 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\236\321\201\320\276\320\261\320\276\320\265\320\236\320\261\321\200\320\260\321\211\320\265\320\275\320\270\320\265.os" @@ -4,6 +4,14 @@ Перем _ПрименятьТолькоНапильники; Перем _НеПрименятьНапильники; +// Проверяет, может ли указанный напильник применяться над желудем, помеченным аннотацией `&ОсобоеОбращение`. +// +// Параметры: +// ИмяНапильника - Строка - Имя напильника для проверки применимости. +// +// Возвращаемое значение: +// Булево - Истина, если напильник может применяться на текущем желуде, иначе Ложь. +// Функция НапильникМожетПрименяться(ИмяНапильника) Экспорт Если _ОтключитьВсеНапильники Тогда @@ -24,6 +32,8 @@ // применение конкретных напильников или отключение конкретных напильников. Если задано ограничение на применение только // конкретных напильников, то нельзя задавать ограничение на отключение конкретных напильников (и наоборот). // +// Размещается над конструктором класса или над методом `&Завязи`. +// // Параметры: // ОтключитьВсеНапильники - Булево - Не применять на желуде никакие напильники. // ПрименятьТолькоНапильник - Строка - Повторяемый параметр. Применять на желуде только напильник с указанным именем. diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" index 2b8f0c9..72ca497 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" @@ -9,6 +9,8 @@ // // Каждая `&Приемка` так же имеет `&Характер("Компанейский")`, `&Прозвище("Приемка")` и `&Спецификация("Инициализация")` // +// Размещается над конструктором класса или над методом `&Завязи`. +// // Параметры: // Значение - Строка - Имя желудя, под которым приемка добавляется в контекст Поделки. // diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" index 4b76a8e..2159ae3 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\276\320\267\320\262\320\270\321\211\320\265.os" @@ -3,6 +3,8 @@ // // Может быть использовано, например, для группировки желудей и получении их в виде массива. // +// Размещается над конструктором класса или над методом `&Завязи`. +// // Параметры: // Значение - Строка - Задаваемое прозвище. // diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" index 1df0970..4a882a3 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" @@ -21,11 +21,16 @@ // Специальный тип желудя, автоматически выполняемый при запуске приложения (`Поделка.ЗапуститьПриложение()`). // -// Класс, помеченный аннотацией `&Рогатка`, должен реализовать следующий интерфейс: +// Желудь, помеченный аннотацией `&Рогатка`, должен реализовать следующий интерфейс: // * `Процедура ПриЗапускеПриложения() Экспорт` // // Каждая `&Рогатка` дополнительно имеет `&Прозвище("Рогатка")`. // +// `&Рогатка` сама по себе тоже является желудем, то есть может запрашивать прилепление частиц, +// является объектом для обработки `&Напильник`ом, может иметь `&Спецификация` и так далее. +// +// Размещается над конструктором класса или над методом `&Завязи`. +// // Параметры: // Значение - Строка - Имя желудя, под которым рогатка добавляется в контекст Поделки. // ЗапускатьВФоне - Булево - Если Истина, то рогатка будет запущена в фоновом задании. diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" index 25edc6e..a58e769 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" @@ -18,6 +18,8 @@ // // К желудям со специкацией "Инициализация" не применяются напильники. // +// Размещается над конструктором класса или над методом `&Завязи`. +// // Параметры: // Значение - Строка - Состояние приложения, на котором разрешено создавать желудь. См. СостоянияПриложения. // From 7a440949c53cd18ea852e29f58b9007f228ce7d1 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Mon, 18 Nov 2024 21:02:38 +0100 Subject: [PATCH 08/10] =?UTF-8?q?=D0=98=20=D0=B5=D1=89=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\273\321\214\320\275\320\270\320\272.os" | 29 +++++++++++++++++++ ...20\270\320\265\320\274\320\272\320\260.os" | 2 +- ...20\263\320\260\321\202\320\272\320\260.os" | 2 +- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" index c0e4ff9..2c2e019 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" @@ -3,6 +3,15 @@ Перем _ПрименяетсяТолькоНа; +// Проверить, может ли текущий напильник применяться на указанном желуде. +// +// Параметры: +// ОпределениеЖелудя - ОпределениеЖелудя - Определение желудя, для которого проверяется +// применимость текущего напильника. +// +// Возвращаемое значение: +// Булево - Истина, если напильник может применяться на указанном желуде, иначе Ложь. +// Функция МожетПрименятьсяНа(ОпределениеЖелудя) Экспорт НапильникМожетПрименяться = Ложь; @@ -24,6 +33,26 @@ КонецФункции +// Специальный тип желудя для дополнительной обработки других желудей в процессе их создания. +// +// Может использоваться для добавления дополнительных действий или свойств создаваемым желудям. Метод `ОбработатьЖелудь` +// **может** возвращать другой объект, который подменит текущий желудь, или обертку-декоратор над текущим желудем. +// +// Каждый `&Напильник` дополнительно имеет `&Прозвище("Напильник")`. +// +// Напильник сам по себе является желудем, однако в силу своей специфики он может запрашивать прилепление только +// &Деталек и Поделки. +// +// Желудь, помеченный аннотацией `&Напильник`, должен реализовать следующий интерфейс: +// * `Функция ОбработатьЖелудь(Желудь, ОпределениеЖелудя) Экспорт` +// +// Размещается над конструктором класса. +// +// Параметры: +// Значение - Строка - Имя желудя, под которым напильник добавляется в контекст Поделки. +// ПрименяетсяТолькоНа - Строка - Повторяемый параметр. Ограничивает применение напильника только на желудях +// с указанными именами. +// &Аннотация("Напильник") &Прозвище("Напильник") Процедура ПриСозданииОбъекта(Значение = "", &Повторяемый ПрименяетсяТолькоНа = Неопределено) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" index 72ca497..45801b9 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\321\200\320\270\320\265\320\274\320\272\320\260.os" @@ -9,7 +9,7 @@ // // Каждая `&Приемка` так же имеет `&Характер("Компанейский")`, `&Прозвище("Приемка")` и `&Спецификация("Инициализация")` // -// Размещается над конструктором класса или над методом `&Завязи`. +// Размещается над конструктором класса. // // Параметры: // Значение - Строка - Имя желудя, под которым приемка добавляется в контекст Поделки. diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" index 4a882a3..51df069 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\240\320\276\320\263\320\260\321\202\320\272\320\260.os" @@ -29,7 +29,7 @@ // `&Рогатка` сама по себе тоже является желудем, то есть может запрашивать прилепление частиц, // является объектом для обработки `&Напильник`ом, может иметь `&Спецификация` и так далее. // -// Размещается над конструктором класса или над методом `&Завязи`. +// Размещается над конструктором класса. // // Параметры: // Значение - Строка - Имя желудя, под которым рогатка добавляется в контекст Поделки. From 52f52ed460286edb6ed24fa1d8775173a2f94c43 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Mon, 18 Nov 2024 21:07:28 +0100 Subject: [PATCH 09/10] =?UTF-8?q?=D0=98=20=D0=B5=D1=89=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\202\320\276\320\262\320\272\320\260.os" | 20 +++++++++++++++++++ ...20\273\321\214\320\275\320\270\320\272.os" | 5 +++++ 2 files changed, 25 insertions(+) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260.os" index 7b5d8e4..0d18875 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260.os" @@ -1,3 +1,23 @@ +// Специальный тип желудя для выполнения дополнительных действий в момент помещения класса в контекст Поделки. +// +// Может использоваться для добавления динамической загрузки новых классов в систему типов OneScript или +// дополнительных импортов библиотек через директиву `#Использовать`. +// +// Каждая `&Заготовка` дополнительно имеет `&Прозвище("Заготовка")` и &Спецификация("Инициализация"). +// +// Желудь, помеченный аннотацией `&Заготовка`, должен реализовать следующий интерфейс: +// * `Процедура ПриИнициализацииПоделки(Поделка) Экспорт` +// +// Размещается над конструктором класса. +// +// Параметры: +// Значение - Строка - Имя желудя, под которым заготовка добавляется в контекст Поделки. +// +// Пример: +// &Заготовка +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// &Аннотация("Заготовка") &Прозвище("Заготовка") &Спецификация("Инициализация") diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" index 2c2e019..c288b7a 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\235\320\260\320\277\320\270\320\273\321\214\320\275\320\270\320\272.os" @@ -53,6 +53,11 @@ // ПрименяетсяТолькоНа - Строка - Повторяемый параметр. Ограничивает применение напильника только на желудях // с указанными именами. // +// Пример: +// &Напильник +// Процедура ПриСозданииОбъекта() +// КонецПроцедуры +// &Аннотация("Напильник") &Прозвище("Напильник") Процедура ПриСозданииОбъекта(Значение = "", &Повторяемый ПрименяетсяТолькоНа = Неопределено) From ebe5006a1b9b53718261d0bd8d2796ef680e1086 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Tue, 19 Nov 2024 20:04:11 +0100 Subject: [PATCH 10/10] Apply code review suggestions --- ...\265\321\201\321\202\321\217\321\210\320\272\320\260.os" | 2 +- ...\200\321\205\320\276\320\262\320\275\321\213\320\271.os" | 2 +- ...\260\321\206\320\270\321\217\320\224\321\203\320\261.os" | 3 ++- ...\217\320\227\320\260\320\262\321\217\320\267\321\214.os" | 3 ++- ...\260\321\201\321\202\320\270\320\273\320\270\320\275.os" | 5 +++-- ...\204\320\270\320\272\320\260\321\206\320\270\321\217.os" | 6 ++---- ...\261\320\260\320\272\320\265\321\200\320\272\320\260.os" | 2 +- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" index d902e86..986ef69 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\221\320\273\320\265\321\201\321\202\321\217\321\210\320\272\320\260.os" @@ -1,5 +1,5 @@ // Маркерная аннотация для указания, что прилепляемая частица -// является произвольным значением, передавамым кодом. +// является произвольным значением, передаваемым в конструктор желудя. // // Может быть использована только над параметром конструктора/метода завязи желудя. // diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" index 28ed147..d5e62d7 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\222\320\265\321\200\321\205\320\276\320\262\320\275\321\213\320\271.os" @@ -2,7 +2,7 @@ // В случае конфликта имен при получении желудей или их регистрации, будет использован желудь с аннотацией `&Верховный`. // // При наличии нескольких желудей с одним и тем же прозвищем позволяет определить, какой из них следует возвращать -// при поиске единственного желудя по его прозвищу. +// при поиске конкретного желудя по его прозвищу. // // Если несколько желудей с одним и тем же именем/прозвищем имеют аннотацию `&Верховный`, будет вызвано исключение. // diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" index e242400..6ae61eb 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\224\321\203\320\261.os" @@ -2,7 +2,8 @@ // `&Дуб` сам по себе тоже является желудем, то есть может запрашивать прилепление частиц, // является объектом для обработки `&Напильник`ом, может иметь `&Спецификация` и так далее. // -// Дуб содержит методы, помеченные аннотацией `&Завязь`, которые возвращают желуди. +// Дуб обычно содержит методы, помеченные аннотацией `&Завязь`, которые возвращают желуди, но +// может содержать и другие методы, не связанные непосредственно с созданием желудей. // // Размещается над конструктором класса. // diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" index d7b0ac4..53eb4df 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\227\320\260\320\262\321\217\320\267\321\214.os" @@ -3,7 +3,8 @@ // Может иметь параметры, каждый из которых должен быть промаркирован как &Пластилин, &Деталька или &Блестяшка. // В указанные параметры автоматически будут прилеплены соответствующие частицы при создании желудя. // -// Размещается над экспортной функцией в классе, проаннотированном как `&Дуб`. +// Может размещаться над экспортной функцией в классе, проаннотированном как `&Дуб`, или над методом-лямбдой, +// передаваемой в качестве параметра в `Поделка.ДобавитьЗавязь()`. // // Параметры: // Значение - Строка - Имя создаваемого желудя. По умолчанию будет использовано имя метода. diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" index bb7254c..360a41a 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\237\320\273\320\260\321\201\321\202\320\270\320\273\320\270\320\275.os" @@ -8,8 +8,9 @@ // Значение - Строка - Имя прилепляемого желудя. Если не заполнено, используется имя параметра конструктора/поля // класса или часть имени метода для установки значения. // Тип - Строка - Тип прилепляемого желудя. В случае передачи значения "Желудь", будет внедрен желудь как таковой. -// Так же может быть указан тип "Массив", "ТаблицаЗначений" и другие. Полный список доступных типов -// см. в библиотеке [autumn-collections](https://github.com/autumn-library/autumn-collections). +// Так же может быть указан тип-коллекция: "Массив", "ТаблицаЗначений" и другие. Полный список +// доступных типов см. в библиотеке +// [autumn-collections](https://github.com/autumn-library/autumn-collections). // Блестяшка - Произвольный - Повторяемый параметр. Передаваемые в прилепляемый желудь произвольные значения. // // Пример: diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" index a58e769..1b8da2f 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\241\320\277\320\265\321\206\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217.os" @@ -9,14 +9,12 @@ Возврат _Значение; КонецФункции -// `@unstable` -// -// Аннотация для указания жизненого цикла приложения, начиная с которого разрешено создавать желудь. +// Аннотация для указания жизненного цикла приложения, начиная с которого разрешено создавать желудь. // // По умолчанию все желуди имеют спецификацию "Выполнение", означающую, что желудь может быть создан только после вызова // `Поделка.ЗапуститьПриложение()`. // -// К желудям со специкацией "Инициализация" не применяются напильники. +// К желудям со спецификацией "Инициализация" не применяются напильники. // // Размещается над конструктором класса или над методом `&Завязи`. // diff --git "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" index c5e9bfc..aa08c8a 100644 --- "a/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" +++ "b/src/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\260\320\261\320\260\320\272\320\265\321\200\320\272\320\260.os" @@ -1,5 +1,5 @@ // Пометка, что прилепляемая частица прилепляется не непосредственно, а через специальный объект -// типа `Табакерка`, который позволяет получить частицу программно. +// типа `Табакерка`, который позволяет получить частицу программно и отложенно. // // Может использоваться для внедрения компанейских желудей, внедрения желудя самого в себя, // для разрыва циклических зависимостей, для передачи дополнительных параметров прилепляемого желудя и т.п.