Выполнение фрагментов кода
Объект класса "БромКлиент" позволяет удаленно выполнять фрагменты кода на встроенном языке 1С:Предприятие. Фрагмент кода может опционально принимать на вход параметр произвольного сериализуемого типа. Также фрагмент кода может возвращать результат в виде значения произвольного сериализуемого типа.
Для выполнения фрагмента кода необходимо вызвать метод "Выполнить()" объекта "БромКлиент". Первым параметром требуется передать текст исполняемого кода, а вторым, если требуется, значение параметра, которое будет доступно в исполняемом коде в переменной "Параметр". Для передачи полученного значения в качестве результата выполнения установите данное значение в переменную "Результат". Значение в переменной "Результат" на момент окончания исполнения фрагмента кода будет передано на клиент как результат функции "Выполнить()".
$клиент->Выполнить("
ТекСсылка = Справочники.Номенклатура.НайтиПоНаименованию(""Бутылка"");
ТекОбъект = ТекСсылка.ПолучитьОбъект();
ТекОбъект.Наименование = ВРег(ТекОбъект.Наименование);
ТекОбъект.Записать();
");
// Данный код принимает на вход число и возвращает строку
$числоПрописью = $клиент->Выполнить("Результат = ЧислоПрописью(Параметр);", 2465);
echo($числоПрописью);
// Данный код принимает на вход массив чисел и возвращаем число
$суммаЧиселВМассиве = $клиент->Выполнить("
Результат = 0;
Для Каждого Значение Из Параметр Цикл
Результат = Результат + Значение;
КонецЦикла;
", array(45, 67, 12.56, 11.9));
echo($суммаЧиселВМассиве);
// Данный код не принимает параметров, но возвращает таблицу значений
$таблица = $клиент->Выполнить("
ТаблЗнач = Новый ТаблицаЗначений();
ТаблЗнач.Колонки.Добавить(""Кол1"");
ТаблЗнач.Колонки.Добавить(""Кол2"");
Стр = ТаблЗнач.Добавить();
Стр.Кол1 = ""Хорошие нововсти!"";
Стр.Кол2 = ТекущаяДата();
Стр = ТаблЗнач.Добавить();
Стр.Кол1 = Справочники.Номенклатура.НайтиПоНаименованию(""Телевизор"");
Стр.Кол2 = Новый Структура(""А, Б"", ""Значение А"", ""Значение Б"");
Результат = ТаблЗнач;
");
foreach ($таблица as $стр) {
echo("Кол1: {$стр->Кол1}; Кол2: {$стр->Кол2}
");
}
Вместо ключевых переменных "Параметр" и "Результат" могут использоваться их англоязычные аналоги "Parameter" и "Result".
ВАЖНО!
Метод "Выполнить()" вызывает одноименный метод встроенного языка 1С. По этой причине на фрагменты кода распространяются те же ограничения что и на стороне 1С. В частности, код не может содержать объявляния функций и процедур, не может использовать ключевон слово "Возврат" и пр..