Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
При настройке операции Web-сервиса в конфигурации 1С: как задается тип входного параметра (то есть «что именно передается» в операцию при вызове из внешней системы)?
Тип параметра задают как обычную «Строку».
Неправильно: В настройках операции Web-сервиса тип параметра описывается не встроенными типами 1С напрямую, а через механизм XDTO. Даже если по смыслу передается строка, в описании операции это будет XDTO-тип значения, а не просто «Строка».
Тип параметра задают как «Число».
Неправильно: Числовые параметры в Web-сервисах 1С также описываются XDTO (как XDTO-значение), чтобы корректно формировались описание сервиса и преобразование в XML. Поэтому в объекте конфигурации выбирают XDTO-тип, а не «Число» как самостоятельный вариант.
Тип параметра задают как «Булево» (Истина/Ложь).
Неправильно: Булевы значения при передаче через Web-сервис относятся к простым типам, но в 1С они задаются и обрабатываются через XDTO-механизм. В результате фактическая типизация в операции остается XDTO (значение), а не отдельный «Булево» как пункт выбора.
Тип параметра задают как «элемент XML».
Неправильно: Web-сервис действительно обменивается XML, но «элемент XML» - это форма представления данных в сообщении, а не тип параметра операции в метаданных. Типизация выполняется через XDTO, который затем сериализуется/десериализуется в XML-элементы.
Тип параметра задают как объект XDTO или значение XDTO.
Правильно: В 1С типы входных параметров и возвращаемых значений Web-сервисов описываются через XDTO: либо как XDTO-объект (сложный тип с полями), либо как XDTO-значение (простой тип). Это обеспечивает корректное описание в WSDL и автоматическое преобразование между данными 1С и XML.
Подходят варианты «Строка», «Число» и «Булево».
Неправильно: Эти типы встречаются по смыслу данных, но при настройке операции Web-сервиса они задаются именно как XDTO-типы (значения или объекты), а не как отдельные «примитивы» в метаданных операции. Поэтому правильным считается общий вариант про XDTO.
Пояснение
В 1С Web-сервис описывается так, чтобы его можно было вызвать извне по WSDL, а обмен данными происходил через XML. Чтобы платформа понимала, как «упаковать» данные в XML и как «распаковать» их обратно, в операции Web-сервиса типы параметров и результата задаются через XDTO.
Что это означает на практике:
- Если передаете «простое» значение (строку, число, булево, дату и т.п.), оно все равно задается как XDTO-значение (value type). В коде обработчика вы получаете значение, типизированное по XDTO.
- Если передаете структуру с полями (например, карточку заказа, набор реквизитов контрагента, список позиций), создается XDTO-пакет и в нем описывается комплексный тип. Тогда параметр операции будет XDTO-объектом (object type) с доступом к свойствам.
Мини-пример сценария:
1) В конфигурации создают «Пакет XDTO» и описывают тип, например RequestData, где есть поля ClientCode (строка), Amount (число), IsTest (булево).
2) В операции Web-сервиса добавляют входной параметр и выбирают тип RequestData (XDTO-объект).
3) В модуле Web-сервиса в обработчике читают поля параметра и выполняют логику.
Почему не «Строка/Число/Булево» как отдельные варианты: потому что в Web-сервисах 1С важна не только природа значения, но и его схема/описание для обмена. Именно XDTO является механизмом, который связывает типы данных с их XML-представлением и делает обмен стабильным и предсказуемым.