1с http-сервис выгрузка данных
Добрый день. Получаю данные контрагентов из конфигурации Бухгалтерия предприятия 3.0.79.11 с помощью http-сервиса.
1. HTTP-Сервис
Имя: Контрагент
Синоним: Контрагент
Корневой URL: partner
2. Шаблон
Имя: ПоискИНН
Синоним: ПоискИНН
Шаблон: /search
3. Метод
Имя: SearchPartner
Синоним: Search partner
HTTP-метод: POST
Обработчик:
При выборе HTTP-метод: POST ничего не выгружается.
При смене HTTP-метод: POST на GET получаю ошибку {HTTPСервис.Контрагент.Модуль(18)}: Ошибка при вызове метода контекста (ЗаписатьJSON).
При смене HTTP-метод: POST на GET и в структуре ДанныеКонтрагентов оставляю только Код и Наименование выгрузка проходит. Не выгружается ИНН и НаименованиеПолное
Как выгрузить все записи структуры?
1. HTTP-Сервис
Имя: Контрагент
Синоним: Контрагент
Корневой URL: partner
2. Шаблон
Имя: ПоискИНН
Синоним: ПоискИНН
Шаблон: /search
3. Метод
Имя: SearchPartner
Синоним: Search partner
HTTP-метод: POST
Обработчик:
Функция ПоискИННSearchPartner(Запрос)
//Формируем массив контрагентов
Контрагенты = Справочники.Контрагенты.Выбрать();
МассивКонтрагентов = Новый Массив;
Пока Контрагенты.Следующий()Цикл
ДанныеКонтрагентов = Новый Структура;
ДанныеКонтрагентов.Вставить("Code", Контрагенты.Код);
ДанныеКонтрагентов.Вставить("Inn", Контрагенты.ИНН);
ДанныеКонтрагентов.Вставить("Name", Контрагенты.Наименование);
ДанныеКонтрагентов.Вставить("FullName",Контрагенты.НаименованиеПолное);
МассивКонтрагентов.Добавить(ДанныеКонтрагентов);
КонецЦикла;
//Сериализуем массив в JSON
ЗаписьJOIN = Новый ЗаписьJSON;
ЗаписьJOIN.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJOIN,МассивКонтрагентов);
СтрокаДляОтвета = ЗаписьJOIN.Закрыть();
//Формируем ответ веб-клиенту
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-type","application/JOIN; charset=utf-8");
Ответ.УстановитьТелоИзСтроки(СтрокаДляОтвета,КодировкаТекста.UTF8,
ИспользованиеByteOrderMark.НеИспользовать);
Возврат Ответ;
КонецФункции
ПоказатьПри выборе HTTP-метод: POST ничего не выгружается.
При смене HTTP-метод: POST на GET получаю ошибку {HTTPСервис.Контрагент.Модуль(18)}: Ошибка при вызове метода контекста (ЗаписатьJSON).
При смене HTTP-метод: POST на GET и в структуре ДанныеКонтрагентов оставляю только Код и Наименование выгрузка проходит. Не выгружается ИНН и НаименованиеПолное
Как выгрузить все записи структуры?
По теме из базы знаний
- Использование системы мониторинга Zabbix с 1С для мониторинга ключевых показателей бизнеса
- Адресная книга для 1С:Документооборот
- Как из 1С отдать миллионы строк в BI и успеть это сделать быстро
- Универсальный обмен данными между конфигурациями через http-сервис
- Система управления интеграциями на базе 1С:Шины
Найденные решения
А вообще - при работе с данными в HTTP сервисе всегда проверяйте типы, с которыми работаете. http сервисы позволяют работать только с примитивными данными: строка, число, булево (не уверен на 100% на счет него). В вашем случае скорее всего для групп справочника 1с возвращает неопределено для ИНН и полного наименования, что критично для http ответа.
Для JSON аналогично
Для JSON аналогично
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Как вариант:
Контрагенты = Справочники.Контрагенты.Выбрать();
МассивКонтрагентов = Новый Массив;
Пока Контрагенты.Следующий()Цикл
Если Контрагенты.ЭтоГруппа() Тогда
Продолжить;
КонецЕсли;
ДанныеКонтрагентов = Новый Структура;
ДанныеКонтрагентов.Вставить("Code", Контрагенты.Код);
ДанныеКонтрагентов.Вставить("Inn", Контрагенты.ИНН);
ДанныеКонтрагентов.Вставить("Name", Контрагенты.Наименование);
ДанныеКонтрагентов.Вставить("FullName",Контрагенты.НаименованиеПолное);
МассивКонтрагентов.Добавить(ДанныеКонтрагентов);
КонецЦикла;
Показать
А вообще - при работе с данными в HTTP сервисе всегда проверяйте типы, с которыми работаете. http сервисы позволяют работать только с примитивными данными: строка, число, булево (не уверен на 100% на счет него). В вашем случае скорее всего для групп справочника 1с возвращает неопределено для ИНН и полного наименования, что критично для http ответа.
Для JSON аналогично
Для JSON аналогично
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот