Skip to content

Latest commit

 

History

History
96 lines (81 loc) · 6.45 KB

README.md

File metadata and controls

96 lines (81 loc) · 6.45 KB

Общая информация по библиотеке VanessaExt

Состав библиотеки

Внешние компоненты в составе библиотеки поддерживают как синхронный, так и асинхронный вызов. Для асинхронного вызова в полном соответствии с документацией Синтакс-помощника 1С:Предприятие применяются методы:

  • НачатьВызов<ИмяМетода>(<ОписаниеОповещения>, <Параметры>)
  • НачатьПолучение<ИмяСвойства>(<ОписаниеОповещения>)

Пример асинхронного вызова внешней компоненты:

&НаКлиенте
Процедура ПодключениеВнешнейКомпонентыЗавершение(Подключение, ДополнительныеПараметры) Экспорт
	ОписаниеОповещения = Новый ОписаниеОповещения("ПолученаВерсияКомпоненты", ЭтотОбъект);
	ВнешняяКомпонента.НачатьПолучениеВерсия(ОписаниеОповещения);
КонецПроцедуры

&НаКлиенте
Процедура ПолученаВерсияКомпоненты(Значение, ДополнительныеПараметры) Экспорт
	Заголовок = "Управление окнами, версия " + Значение;
КонецПроцедуры	

Все примеры будут приводиться для синхронных вызовов. В публикуемом примере VanessaExt.epf используются только асинхронные вызовы.

Многие свойства и методы компоненты возвращают сложные типы данных, которые сериализованы в строку формата JSON. Поэтому имеет смысл объявить в вызывающем модуле универсальную функцию, которая будет использоваться ниже в примерах работы компоненты:

Функция ПрочитатьСтрокуJSON(ТекстJSON)
	Если ПустаяСтрока(ТекстJSON) Тогда
		Возврат Неопределено;
	Иначе
		ПоляДаты = Новый Массив;
		ПоляДаты.Добавить("date");
		ПоляДаты.Добавить("CreationDate");
		ЧтениеJSON = Новый ЧтениеJSON();
		ЧтениеJSON.УстановитьСтроку(ТекстJSON);
		Возврат ПрочитатьJSON(ЧтениеJSON, , ПоляДаты);
	КонецЕсли;
КонецФункции

Установка и подключение

В прилагаемом примере файлы внешней компоненты хранятся в макете VanessaExt, реквизит формы МестоположениеКомпоненты используется для передачи макета компоненты между сервером и клиентом. Для установки и подключения внешней компоненты рекомендуется использовать следующий программный код:

&НаКлиенте
Перем ИдентификаторКомпоненты, ВнешняяКомпонента;

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	МакетКомпоненты = РеквизитФормыВЗначение("Объект").ПолучитьМакет("VanessaExt");
	МестоположениеКомпоненты = ПоместитьВоВременноеХранилище(МакетКомпоненты, УникальныйИдентификатор);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ИдентификаторКомпоненты = "_" + СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
	ВыполнитьПодключениеВнешнейКомпоненты(Истина);
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьПодключениеВнешнейКомпоненты(ДополнительныеПараметры) Экспорт
	НачатьПодключениеВнешнейКомпоненты(
		Новый ОписаниеОповещения("ПодключениеВнешнейКомпонентыЗавершение", ЭтаФорма, ДополнительныеПараметры),
		МестоположениеКомпоненты, ИдентификаторКомпоненты, ТипВнешнейКомпоненты.Native); 
КонецПроцедуры	

&НаКлиенте
Процедура ПодключениеВнешнейКомпонентыЗавершение(Подключение, ДополнительныеПараметры) Экспорт
	Если Подключение Тогда
		ВнешняяКомпонента = Новый("AddIn." + ИдентификаторКомпоненты + ".WindowsControl");
	ИначеЕсли ДополнительныеПараметры = Истина Тогда
		ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПодключениеВнешнейКомпоненты", ЭтаФорма, Ложь);
		НачатьУстановкуВнешнейКомпоненты(ОписаниеОповещения, МестоположениеКомпоненты);
	КонецЕсли;
КонецПроцедуры	

Инструкция по самостоятельной сборке библиотеки

При разработке использовались библиотеки: