OpenHub
OpenHub
Войти

delegateпакет

с апстрима
скачиваний: 1

Пакет лежит в основном пуле хаба: короткой формы достаточно, если хаб прописан сервером пакетов в opm.cfg.

opm install delegate

Установка на opm младше 1.7.0

Легаси-флоу. Клиент младше 1.7.0 адрес пула в аргументе не разбирает: пул сначала прописывают сервером пакетов, и только потом ставят через него. На 1.7.0 и новее этот раздел не нужен — хватает команды из шапки страницы.

Добавьте пул сервером пакетов в opm.cfg. Порт продублирован в «Сервер»: у opm push поле «Порт» не читается.

{ "СервераПакетов": [ { "Имя": "default", "Сервер": "https://hub.1cdevelopers.ru", "Порт": 443, "ПутьНаСервере": "/api/v1/pools/default/download/", "РесурсПубликацииПакетов": "/api/v1/pools/default/push", "Приоритет": 1 } ] }

И ставьте пакет, указывая сервер:

opm install -m default delegate

Описание

Делегаты

Обсудить [Join the chat at https://gitter.im/EvilBeaver/oscript-library](https://gitter.im/EvilBeaver/oscript-library?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) GitHub release Build Status

Библиотека предназначена для создания и выполнения делегатов/функторов.

Делегат представляет собой объект, который может ссылаться на метод другого объекта.

Например, можно выполнять функции-коллбэки или унифицированно выполнять методы у схожих объектов.

Также можно использовать для замены "некрасивых" и многословных объектов 1С - ОписаниеОповещения, которые имеют мало смысла в мире OneScript.

Использование

Обработчик-процедура

// Подключение библиотеки
#Использовать Делегат

// Метод, вызываемый из делегата
Процедура Поздороваться(Имя) Экспорт
    Сообщить("Привет, " + Имя + "!");
КонецПроцедуры

Делегат = Делегаты.Создать(ЭтотОбъект, "Поздороваться", "Мир");

Делегаты.Исполнить(Делегат); // или Делегат.Исполнить();

ДелегатНовыйМир = Делегаты.Создать(ЭтотОбъект, "Поздороваться");

ДелегатНовыйМир.Исполнить("Новый мир"); // или Делегаты.Исполнить(ДелегатНовыйМир, "Новый мир");

Обработчик-функция

// Подключение библиотеки
#Использовать Делегат

// Метод, вызываемый из делегата
Функция Поздороваться(Имя) Экспорт
    Сообщить("Привет, " + Имя + "!");
    Возврат Имя;
КонецФункции

Делегат = Делегаты.Создать(ЭтотОбъект, "Поздороваться", "Мир");

ИмяМир = Делегаты.Исполнить(Делегат); // или Делегат.Исполнить();

ДелегатНовыйМир = Делегаты.Создать(ЭтотОбъект, "Поздороваться");

ИмяНовыйМир = ДелегатНовыйМир.Исполнить("Новый мир"); // или Делегаты.Исполнить(ДелегатНовыйМир, "Новый мир");

Передача нескольких параметров

#Использовать Делегат

Процедура МетодСТремяПараметрами(Парам1, Парам2, Парам3) Экспорт
	Журнал  = СтрШаблон("%1%2, %3, %4!", Журнал, Парам1, Парам2, Парам3);
КонецПроцедуры

Делегат = Делегаты.Создать(ЭтотОбъект, "МетодСТремяПараметрами");

Массив = Делегаты.МассивПараметров(1, "Два", "Десять");

Делегат.Исполнить(Массив);

или можно указать параметры при создании Делегата

#Использовать Делегат

Процедура МетодСТремяПараметрами(Парам1, Парам2, Парам3) Экспорт
	Сообщить(СтрШаблон("%1, %2, %3!", Парам1, Парам2, Парам3));
КонецПроцедуры

Массив = Делегаты.МассивПараметров(1, "Два", "Десять");

Делегат = Делегаты.Создать(ЭтотОбъект, "МетодСТремяПараметрами", Массив);

Делегат.Исполнить();