From 94184523b682631a06703f6a8de548198a7da1ae Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Fri, 15 Nov 2024 16:59:47 +0000 Subject: [PATCH] =?UTF-8?q?=D0=95=D1=89=D0=B5=20=D0=B4=D0=BE=D0=BA=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 @@ -Перем Значения; - -Функция Инициализация() Экспорт - Возврат "Инициализация"; -КонецФункции - -Функция Выполнение() Экспорт - Возврат "Выполнение"; -КонецФункции - -Функция Значения() Экспорт - Возврат Значения; -КонецФункции - -Значения = Новый Массив; - -Значения.Добавить(Инициализация()); -Значения.Добавить(Выполнение()); - -Значения = Новый ФиксированныйМассив(Значения); +Перем Значения; + +Функция Инициализация() Экспорт + Возврат "Инициализация"; +КонецФункции + +Функция Выполнение() Экспорт + Возврат "Выполнение"; +КонецФункции + +Функция Значения() Экспорт + Возврат Значения; +КонецФункции + +Значения = Новый Массив; + +Значения.Добавить(Инициализация()); +Значения.Добавить(Выполнение()); + +Значения = Новый ФиксированныйМассив(Значения);