Имя: Пароль:
1C
1С v8
Кривые руки или запрос?
0 tabarigen
 
30.10.15
16:03
Пишу простой сервис

Функция PoluchitOstatki()
    // Получаем объекты XDTO
    НоменклатураОстатокТип = ФабрикаXDTO.Тип("http://*******.ru/";, "StrokaElektronnogoZakaza");
    МассивНоменклатураОстатокТип = ФабрикаXDTO.Тип("http://*******.ru/";, "MassivElektronnogoZakaza");
    //Создаем объекты
    НоменклатураОстаток = ФабрикаXDTO.Создать(НоменклатураОстатокТип);
    МассивНоменклатураОстаток = ФабрикаXDTO.Создать(МассивНоменклатураОстатокТип);
    
    //Запросом получаем номенклатуру и остатки
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ДатаНаСегодня", НачалоДня(ТекущаяДата()));
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 500
                   |    НомНоменклатура.Наименование,
                   |    НомНоменклатура.СтавкаНДС,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ЕСТЬNULL(НомНоменклатура.Срок, ""2002-09-24"") КАК Срок,
                   |    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
                   |    ЕСТЬNULL(НомНоменклатура.Производитель.Наименование, "" "") КАК Производитель
                   |ИЗ
                   |    Справочник.Номенклатура КАК НомНоменклатура
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаНаСегодня, ) КАК ТоварыНаСкладахОстатки
                   |        ПО НомНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура.Ссылка
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаНаСегодня, ) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО НомНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка";
                  
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл    
        //Заполняем значения строки электронного заказа
        НоменклатураОстаток.Nomenklatura = Выборка.Наименование;
        НоменклатураОстаток.Proizvoditel = Выборка.Производитель;
        
        //НоменклатураОстаток.StavkaNds = Перечисления.СтавкиНДС.;
        НоменклатураОстаток.Cena = Выборка.Цена;
        НоменклатураОстаток.Srok = Выборка.Срок;
        НоменклатураОстаток.Ostatok = Выборка.КоличествоОстаток;
        
        //Добавляем данные в массив
        МассивНоменклатураОстаток.StrokaZakaza.Добавить(НоменклатураОстаток);
    КонецЦикла;    
    
    Возврат МассивНоменклатураОстаток;                          
    
КонецФункции


На выходе получаю, одну и ту же строку для всего массива
<img src="https://habrastorage.org/files/e91/39c/bf8/e9139cbf890b4da8b32c962da8fc23b7.png"/>;

Хотя в консоли запросов выдается нормальный результат, то есть разные элементы массива
<img src="https://habrastorage.org/files/368/b4f/f03/368b4ff03d0a4881871a51fcacdfddcd.png"/>;
1 tabarigen
 
30.10.15
16:04
упс картинки не вставились, ладно скину так
https://yadi.sk/i/3oifMp4ok8DLS
https://yadi.sk/i/Gc3ImVRbk8DMF
2 tabarigen
 
30.10.15
16:05
Пятница ребята!) Если что)
3 Fragster
 
гуру
30.10.15
16:07
вставь отбор по типу цены в параметры ВТ с ценами. убери .ссылка
4 Fragster
 
гуру
30.10.15
16:07
ну и вообще по всем измерениям регистра с ценами, кроме номенклатуры
5 tabarigen
 
30.10.15
16:29
(3) отбор сделал. в целом запрос стал выполняться замеьтно шустрее. я вот не пойму зачем сервис выдаетс только первую строку.
6 tabarigen
 
30.10.15
16:30
7 tabarigen
 
30.10.15
16:32
Пробовал Цикл Для Каждого. То же самое. В консоли запросов, выдаются разные позиции номенклатуры, веб-сервис же возвращает одну и ту же.

Что в SOAP Ui что в браузере одно и то же.
8 Ненавижу 1С
 
гуру
30.10.15
16:32
потому что ты работаешь с одним и тем же объектом, объект создавай в цикле:

НоменклатураОстаток = ФабрикаXDTO.Создать(НоменклатураОстатокТип);
9 Лодырь
 
30.10.15
16:32
НоменклатураОстаток = ФабрикаXDTO.Создать(НоменклатураОстатокТип);
в цикл засунуть не желаешь?
10 tabarigen
 
30.10.15
16:38
(9) ай да Лодырь, ай да красавец. Сделал как ты сказал, теперь все ок.
https://yadi.sk/i/pZidcpayk8GDy

P.S. Как сюда картинки вставлять?
11 Ненавижу 1С
 
гуру
30.10.15
16:39
(10) вот ты негодяй, я же первым был, пятницо!
12 Лодырь
 
30.10.15
16:42
(11) Не повезло )
13 tabarigen
 
30.10.15
17:46
(8) Ненавижу1С родненький ты мой, большое тебе человеческое спасибо xD
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан