1С ~~~ .. hint:: Драйвер разработан в соответствии с требованиями к разработке драйверов подключаемого к 1С оборудования (версия 2.2) Создание объекта ---------------- .. code:: 1С Компонента = Новый("AddIn.Community.Mertech"); Если Компонента = Неопределено Тогда ВызватьИсключение "Не удалось создать объект компоненты"; КонецЕсли; Добавление и получение параметров --------------------------------- При добавлении параметров необходимо контролировать тип этого параметра. *Функция добавления параметра:* ``УстановитьПользовательскийПараметр([Тип параметра], [Значение])`` / ``SetCustomParameter([Тип параметра], [Значение])`` В качестве типа входного параметра функция принимает числовой номер параметра или его наименование. .. code:: 1С Компонента.УстановитьПользовательскийПараметр("Ip", "192.168.0.100"); //Ip Компонента.УстановитьПользовательскийПараметр(2, "1111"); //Порт *Функция получения параметра:* ``ПолучитьВыходнойПараметр([Тип параметра], [Значение])`` / ``GetOutParameter([Тип параметра], [Значение])`` В качестве типа входного параметра функция принимает числовой номер параметра или его наименование. Переменная для значения параметра должна быть объявлена перед вызовом функции и иметь необходимый тип. В результате успешного выполнения функции, переменная будет заполнена. .. code:: 1С ИмяМагазина = ""; //Компонента.ПолучитьПользовательскийПараметр("ShopName", ИмяМагазина); Если(Компонента.ПолучитьВыходнойПараметр(181, ИмяМагазина)) Тогда Сообщить(ИмяМагазина); Иначе Сообщить("Параметр не найден"); КонецЕсли; .. hint:: Список типов параметров приведён в разделе с общими принципами работы с драйвером. *Функция выполнения команды* Для отправки любой поддерживаемой команды на весы нужно воспользоваться универсальной функцией выполнения команды и указать в качестве аргумента числовой эквивалент нужной команды. ``ВыполнитьПользовательскоеДействие([номер команды])`` / ``DoCustomAction([номер команды])`` ``ВыполнитьПользовательскоеДействиеНаУстройстве([ID устройства], [номер команды])`` / ``DoCustomActionOnDevice([ID устройства], [номер команды])`` .. code:: 1c Компонента.ВыполнитьПользовательскоеДействие(19); Компонента.ВыполнитьПользовательскоеДействиеНаУстройстве(ИдентификаторУстройства, 19); После успешного выполнения команды функция вернёт значение "0". В противном случае вернётся код ошибки. .. hint:: Список всех поддерживаемых команд приведён в разделе с общими принципами работы с драйвером. Набор параметров и способ работы с каждой командой аналогичны тому, что описаны в разделе С/С++. Пример работы ------------- .. code:: 1c Сообщить("Подключение внешней компоненты"); ПутьККомпоненте = "D:\driver_1c.dll"; Если Не ПодключитьВнешнююКомпоненту(ПутьККомпоненте, "Community", ТипВнешнейКомпоненты.Native) Тогда ВызватьИсключение "Не удалось создать объект"; КонецЕсли; Компонента = Новый("AddIn.Community.Mertech"); Если Компонента = Неопределено Тогда ВызватьИсключение "Не удалось создать объект компоненты"; КонецЕсли; Ревиз = Компонента.ПолучитьРевизиюИнтерфейса(); Сообщить("Ревизия: "+ Ревиз); //Подключение Компонента.УстановитьПользовательскийПараметр("Ip", "192.168.0.101"); Компонента.УстановитьПользовательскийПараметр(2, "1111"); Компонента.УстановитьПользовательскийПараметр(3,"1234"); Компонента.УстановитьПользовательскийПараметр(4,"12345"); Описание=""; ДемоРежим=""; ИдентификаторУстройства = ""; Компонента.Подключить(ИдентификаторУстройства); Компонента.ТестУстройства(Описание, ДемоРежим); Сообщить("Описание: "+ Описание); Сообщить("ДемоРежим: "+ ДемоРежим); //Получение названия магазина Компонента.УстановитьПользовательскийПараметр("StringNumber", 1); Компонента.ВыполнитьПользовательскоеДействие(18); ИмяМагазина = ""; //Компонента.ПолучитьПользовательскийПараметр("ShopName", ИмяМагазина); Если(Компонента.ПолучитьВыходнойПараметр(181, ИмяМагазина)) Тогда Сообщить(ИмяМагазина); Иначе Сообщить("Параметр не найден"); КонецЕсли; //Запись нового названия магазина Компонента.УстановитьПользовательскийПараметр("StringNumber", 1); Компонента.УстановитьПользовательскийПараметр("ShopName", "Пример названия"); Компонента.ВыполнитьПользовательскоеДействие(19); //Отправка файла и установка параметра с типом двоичных данных Компонента.УстановитьПользовательскийПараметр("FilePath", ПолучитьДвоичныеДанныеИзСтроки("D:\test.csv", КодировкаТекста.UTF8)); Компонента.УстановитьПользовательскийПараметр("FileType", 4); Компонента.ВыполнитьПользовательскоеДействиеНаУстройстве(ИдентификаторУстройства, 48);