Category:

1С:Предприятие 8. Веб-сервисы. Передаем массив в 1С

Чтобы передать массив в 1С в качестве параметра операции веб сервиса достаточно просто этому параметру указать тип anyType (http://www.w3.org/2001/XMLSchema). После чего, переданный из php массив, в 1С будет передан как СписокXDTO, который можно обходить в цикле.

Давайте создадим веб сервис и операцию "GetMass". Для этой операции добавим один параметр "param" типа anyType (http://www.w3.org/2001/XMLSchema) как показано на рисунке.



В принципе, это все что необходимо сделать.

Следующий код передает массив в 1С.

<?php
// устанавливаем кодировку
header("Content-Type: text/html; charset=UTF-8");
ini_set("soap.wsdl_cache_enabled","0");
// создаем клиент для веб-сервисов и вызываем операцию
$Mass = array(1,2,3);
$Result = $SoapClient1C->GetMass(array("param"=>$Mass));
print_r($Result);
?>


В 1С в отладчике можно увидеть что params имеет тип СписокXDTO.



Соответственно возможен обход в цикле:

Функция GetMass(param)

Результат = 0;
Для каждого Значение из param.int цикл
Результат = Результат + Значение;
КонецЦикла;

Возврат Результат;

КонецФункции


Вместо типа anyType можно использовать другие типы, например, array из стандартных типов 1С datacore.

UPD от 01.09.2015:

По каким то причинам передать массив или структуру в веб сервис из 1С нельзя. Ругается на несоответствие типов. Но передать параметр можно, если в операцию передать ОбъектXDTO.



На рисунке приведен код, который передает структуру в 1С. Тип параметра WS операции должен быть Structure (http://v8.1c.ru/8.1/data/core).

Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля — краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

promo luckyea77 november 4, 2024 21:52 5
Buy for 10 tokens
В прошлом посте " Эпоха интеллекта" я публиковал эссе генерального директора OpenAI Сэма Альтмана. В нем Альтман пишет, что мы можем представить себе возможности создавать любое программное обеспечение, которое только можно представить, и многое другое. Недавно я с помощью нейросети создал…