Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 21:26

HTTP сервисы JSON

Автор Kirill Runets, 06 фев 2017, 12:29

0 Пользователей и 1 гость просматривают эту тему.

Kirill Runets

Ситуация такая, в 1с приходит POST запрос в теле которого передаются данные для создания ордера перемещения между складскими помещениями, такого вида
{
   "storage","",
    "roomSender","",
    "roomReceiver","",
    "priority","",
    "comment","",
    "goods": [
       {
           "name": "name1",
            "quantity": "vcode2",
             "action": "action3"
        },
        {
           "name": "name2",
            "quantity": "vcode2",
            "action": "action3"
        }
    ],

}

Как заметили в JSON есть массив объектов, необходимо при создание как то читать этот массив и добавлять товары в табличную часть ордера на перемещение

Написал код, который делает все это кроме  считывания массива объектов (товаров) и их добавления в тч


Функция PostOrderМетод1(Запрос)
   
   
   ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку("UTF-8");
   
   ЧтениеJSON = Новый ЧтениеJSON;
   
   
   ЧтениеJSON.УстановитьСтроку(ТелоЗапроса);
   
   Инфа = ПрочитатьJSON(ЧтениеJSON);
   ЧтениеJSON.Закрыть();
   
   
   НовыйДокумент = Документы.ОрдерНаПеремещениеТоваров.СоздатьДокумент();
   НовыйДокумент.Дата = ТекущаяДата();
   НовыйДокумент.ДатаОтгрузки = ТекущаяДата();
   НовыйДокумент.Склад = Справочники.Склады.НайтиПоНаименованию(Инфа.storage);
   НовыйДокумент.ПомещениеОтправитель = Справочники.СкладскиеПомещения.НайтиПоНаименованию(Инфа.roomSender,,,НовыйДокумент.Склад);
   НовыйДокумент.ПомещениеПолучатель = Справочники.СкладскиеПомещения.НайтиПоНаименованию(Инфа.roomReceiver,,,НовыйДокумент.Склад);;
   НовыйДокумент.Приоритет = Справочники.Приоритеты.НайтиПоНаименованию(Инфа.priority);
   НовыйДокумент.Статус = Перечисления.СтатусыОрдеровНаПеремещение.КОтбору;
   НовыйДокумент.Комментарий = Инфа.comment;
   
   // ЗДЕСЬ НЕОБХОДИМО ДОБАВИТЬ ЦИКЛ (ДЛЯ ДОБАВЛЕНИЯ ТОВАРОВ В ТЧ)
   Товар = НовыйДокумент.ОтгружаемыеТовары.Добавить();
                                                    
   Товар.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию( Инфа.goodName);
   Товар.КоличествоУпаковок = Инфа.quantity;           
   Товар.Действие = Перечисления.ДействияСоСтрокамиОрдеровНаОтгрузку.Отгрузить;
   
      
   
      

   НовыйДокумент.Записать();
   
   
   Ответ = Новый HTTPСервисОтвет(200);
   Возврат Ответ;
КонецФункции

Dethmontt

Kirill Runets,
Для каждого Гуд из Инфа.Goods Цикл
  //ДобавитьТовар(Гуд.name);
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги: Json http 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск