### Dependency Injection of Component Collections Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/100-aliases-grouping.md Показывает, как внедрить коллекцию компонентов ('Панк') в качестве зависимости с использованием аннотации &Пластилин. Параметр 'Тип' устанавливается в 'Массив' для получения всех компонентов как единого массива. ```bsl Процедура ПриСозданииОбъекта(&Пластилин(Значение = "Панк", Тип = "Массив") Панки) Для Каждого Панк Из Панки Цикл Панк.Хой(); КонецЦикла; КонецПроцедуры ``` -------------------------------- ### Finding Components by Alias Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/100-aliases-grouping.md Демонстрирует использование метода Поделка.НайтиЖелуди() для поиска всех компонентов, зарегистрированных под определенным алиасом ('Панк'). Результат проверяется на тип 'Массив' и количество элементов. ```bsl Панки = Поделка.НайтиЖелуди("Панк"); Ожидаем.Что(Панки).ИмеетТип("Массив"); Ожидаем.Что(Панки.Количество()).Равно(4); Для Каждого Панк Из Панки Цикл Панк.Хой(); КонецЦикла; ``` -------------------------------- ### Custom Component Collection Builder Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/100-aliases-grouping.md Определяет пользовательский сборщик коллекций ('СобирательПанков.os') для группировки компонентов. Включает методы Добавить() для обработки каждого компонента и Получить() для возврата собранной структуры. Аннотация &ПрилепляемаяКоллекция регистрирует сборщик. ```bsl // СобирательПанков.os Перем Банда; // Тут нам на вход приходит очередной панк Процедура Добавить(Панк, ОпределениеПанка) Экспорт Для Каждого РольИИсполнитель Из Банда Цикл Если Не ЗначениеЗаполнено(РольИИсполнитель.Значение) Тогда Банда.Вставить(РольИИсполнитель.Ключ, Желудь); Прервать; КонецЕсли; КонецЦикла; Коллекция.Добавить(ОпределениеЖелудя.Имя()); КонецПроцедуры // А тут нам надо вернуть собранную банду Функция Получить() Экспорт Возврат Новый ФиксированнаяСтруктура(Банда); КонецФункции &ПрилепляемаяКоллекция("СобирательПанков") Процедура ПриСозданииОбъекта() Банда = Новый Структура( "Гитарист, Барабанщик, БасГитарист, Вокалист" ); КонецПроцедуры ``` -------------------------------- ### Individual Component Definitions Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/100-aliases-grouping.md Примеры определения отдельных компонентов с использованием аннотаций &Желудь и &Прозвище для присвоения им алиаса ('Панк'). Каждый компонент представляет собой отдельный модуль или класс. ```bsl &Желудь &Прозвище("Панк") Процедура ПриСозданииОбъекта() КонецПроцедуры ``` ```bsl &Желудь &Прозвище("Панк") Процедура ПриСозданииОбъекта() КонецПроцедуры ``` ```bsl &Желудь &Прозвище("Панк") Процедура ПриСозданииОбъекта() КонецПроцедуры ``` ```bsl &Желудь &Прозвище("Панк") Процедура ПриСозданииОбъекта() КонецПроцедуры ``` -------------------------------- ### Injecting Lazy Acorn via Repeating &Shiny Parameter Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/070-custom-arguments.md Демонстрирует внедрение желудя с помощью повторяемого параметра Блестяшка в аннотации &Пластилин. ```bsl &Пластилин(Блестяшка = "Шестью девять?") Перем ЛенивыйЖелудь; &Желудь Процедура ПриСозданииОбъекта() КонецПроцедуры ``` -------------------------------- ### Lazy Acorn Constructor with &Shiny Annotation Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/070-custom-arguments.md Пример объявления конструктора желудя с использованием аннотации &Блестяшка для приема произвольных аргументов. ```bsl &Желудь Процедура ПриСозданииОбъекта( &Пластилин ПроверяторВерсий &Блестяшка ФормулировкаВопроса ) КонецПроцедуры ``` -------------------------------- ### Passing Constructor Arguments via Array Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/070-custom-arguments.md Демонстрирует передачу всех параметров конструктора в виде массива в метод Поделка.НайтиЖелудь(). ```bsl ПараметрыКонструктора = Новый Массив; ПараметрыКонструктора.Добавить(Поделка.НайтиЖелудь("ПроверяторВерсий")); ПараметрыКонструктора.Добавить("Главный вопрос жизни, вселенной и всего такого"); ЛенивыйЖелудь = Поделка.НайтиЖелудь( "ЛенивыйЖелудь", ПараметрыКонструктора ); ``` -------------------------------- ### Using Custom Collection Builder Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/100-aliases-grouping.md Демонстрирует, как использовать пользовательский сборщик коллекций ('СобирательПанков') с методом Поделка.НайтиЖелуди() для получения компонентов, собранных согласно логике сборщика. ```bsl Панки = Поделка.НайтиЖелуди("Панк", , "СобирательПанков"); // > Панки.Гитарист // > Панки.Барабанщик // > Панки.БасГитарист // > Панки.Вокалист ``` -------------------------------- ### Passing Multiple Repeating &Shiny Parameters Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/070-custom-arguments.md Показывает, как передавать несколько значений для одного и того же параметра аннотации, если желудь принимает несколько блестяшек. ```bsl &Пластилин(Блестяшка = "Первое значение", Блестяшка = "Второе значение") Перем ЖелудьСДвумяБлестяшками; ``` -------------------------------- ### Oak with Lazy Acorn using &Seed Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/070-custom-arguments.md Пример использования &Блестяшка в сочетании с аннотациями &Дуб и &Завязь для внедрения желудя с произвольным аргументом. ```bsl &Дуб Процедура ПриСозданииОбъекта() КонецПроцедуры &Завязь Процедура ЛенивыйЖелудь( &Пластилин ПроверяторВерсий &Блестяшка ФормулировкаВопроса ) ЛенивыйЖелудь = Новый ЛенивыйЖелудь(ПроверяторВерсий); ЛенивыйЖелудь.ЗадатьВопрос(ФормулировкаВопроса); Возврат ЛенивыйЖелудь; КонецПроцедуры ``` -------------------------------- ### Finding Components as Specific Collection Type Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/100-aliases-grouping.md Пример использования метода Поделка.НайтиЖелуди() с указанием третьего параметра для получения компонентов в виде конкретного типа коллекции, например, 'Массив'. ```bsl Панки = Поделка.НайтиЖелуди("Панк", , "Массив"); ``` -------------------------------- ### bsl: ДополнительныйКаталогПоискаФайлаСоЗначениямиДеталек Source: https://github.com/autumn-library/autumn/blob/master/docs/api/050-Классы/20-СоветДругогоМастера.md Функция для установки или получения относительного пути к каталогу, где хранятся файлы со значениями деталек. Принимает строку и возвращает текущее значение или объект для сеттера. ```bsl // Установить/получить относительный путь к каталогу, где хранятся файл со значениями деталек. // // Параметры: // НовоеЗначение - Строка - устанавливаемый путь к каталогу. // // Возвращаемое значение: // Строка, СоветДругогоМастера - Текущее установленное значение для гетера, ЭтотОбъект для сеттера. // Функция ДополнительныйКаталогПоискаФайлаСоЗначениямиДеталек(НовоеЗначение = Неопределено) Экспорт ``` -------------------------------- ### Passing Only &Shiny Arguments Source: https://github.com/autumn-library/autumn/blob/master/docs/product/framework-elements/070-custom-arguments.md Показывает передачу только аннотированных &Блестяшка параметров, позволяя ОСени автоматически подставить &Пластилин и &Детальки. ```bsl ПараметрыКонструктора = Новый Массив; ПараметрыКонструктора.Добавить("Главный вопрос жизни, вселенной и всего такого"); ЛенивыйЖелудь = Поделка.НайтиЖелудь( "ЛенивыйЖелудь", ПараметрыКонструктора ); ``` -------------------------------- ### bsl: ЗначенияДеталек Source: https://github.com/autumn-library/autumn/blob/master/docs/api/050-Классы/20-СоветДругогоМастера.md Функция для установки или получения значений деталек. Принимает объект типа Соответствие и возвращает текущее установленное значение или объект для сеттера. ```bsl // Установить/получить значения деталек. // // Параметры: // НовоеЗначение - Соответствие - устанавливаемые значения деталек. // // Возвращаемое значение: // Соответствие, СоветДругогоМастера - Текущее установленное значение для гетера, ЭтотОбъект для сеттера. // Функция ЗначенияДеталек(НовоеЗначение = Неопределено) Экспорт ``` -------------------------------- ### bsl: ИмяФайлаСоЗначениямиДеталек Source: https://github.com/autumn-library/autumn/blob/master/docs/api/050-Классы/20-СоветДругогоМастера.md Функция для установки или получения имени файла (без расширения), в котором хранятся значения деталек. Принимает строку и возвращает текущее значение или объект для сеттера. ```bsl // Установить/получить имя файла (без расширения), в котором хранятся значения деталек. // // Параметры: // НовоеЗначение - Строка - устанавливаемое имя файла. // // Возвращаемое значение: // Строка, СоветДругогоМастера - Текущее установленное значение для гетера, ЭтотОбъект для сеттера. // Функция ИмяФайлаСоЗначениямиДеталек(НовоеЗначение = Неопределено) Экспорт ```