Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Отладчик для массива

Отладчик для массива
Я
   Roma1314704
 
07.05.18 - 09:41
Есть следующая функция. Необходимо в хml вывести значения со справочника и с регистра сведения  - параметры

Как глянуть через отладчик что в массиве?

&НаСервере
Функция ПолучитьМассивДанных()
    
    МассивДанных = Новый Массив;
        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    // Данный фрагмент построен конструктором.

    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    
    Запрос = Новый Запрос;
    Запрос.Текст = 
"ВЫБРАТЬ
|        Товар.Код КАК Код,
|        Товар.Родитель,
|        Товар.Родитель.Код КАК РодительКод,
|        Товар.Наименование КАК Наименование,
|        Товар.Ссылка,
|        Товар.ЦенаПродажиРозетка КАК ЦенаПродажи,
|        Товар.Бренд КАК Бренд,
|        Товар.ХарактеристикаXML КАК ОписаниеТовара,
|        Товар.СсылкаФотоТовара1 Как СсылкаФотоТовара1,
|        Товар.СсылкаФотоТовара2 Как СсылкаФотоТовара2,
|        Товар.СсылкаФотоТовара3 Как СсылкаФотоТовара3,
|        Товар.СсылкаФотоТовара4 Как СсылкаФотоТовара4,
|        Товар.ТоварXml КАК ТоварXml,
|        Товар.СсылкаНаСайт Как СсылкаНаСайт,
|        Остатки.КоличествоОстаток КАК ОстатокТовара
|        
|        
|                
|    ИЗ
|        Справочник.Номенклатура КАК Товар
|        ЛЕВОЕ СОЕДИНЕНИЕ
|        РегистрНакопления.ОстаткиПоСкладам.Остатки КАК Остатки
|                    
|    ПО
|        Товар.Ссылка = Остатки.Номенклатура
|        
|    ГДЕ
|        Номенклатура.ТоварXml = &Истина И
|        Склад = &Склад;
|ВЫБРАТЬ
|    РегистрСведенийЗначениеХарактеристикТоваров.Номенклатура КАК Номенклатура,
|    РегистрСведенийЗначениеХарактеристикТоваров.Характеристика КАК Характеристика,
|    РегистрСведенийЗначениеХарактеристикТоваров.ЗначениеХарактеристики КАК ЗначениеХарактеристики
|ИЗ
|    РегистрСведений.ЗначениеХарактеристикТоваров КАК РегистрСведенийЗначениеХарактеристикТоваров
|ГДЕ
|    РегистрСведенийЗначениеХарактеристикТоваров.Номенклатура = Номенклатура.Ссылка";


            
    Запрос.УстановитьПараметр("Истина", Истина);
    Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоНаименованию("Основной склад"));

    
    РезультатЗапроса = Запрос.ВыполнитьПакет();
    ВыборкаДетальныеЗаписи = РезультатЗапроса[0].Выбрать();
    
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        НоваяЗапись = Новый Структура("Код, Наименование, Бренд, ОписаниеТовара, Характеристика, ЗначениеХарактеристики, ЦенаПродажи, СсылкаНаСайт, Категория, РодительскаяКатегорияКод,РодительскаяКатегория,СсылкаФотоТовара1,СсылкаФотоТовара2, СсылкаФотоТовара3, СсылкаФотоТовара4, ОстатокТовара");
        НоваяЗапись.Код = Строка(ВыборкаДетальныеЗаписи.Код);
        НоваяЗапись.Наименование = Строка(ВыборкаДетальныеЗаписи.Наименование);
        НоваяЗапись.ЦенаПродажи = Строка(ВыборкаДетальныеЗаписи.ЦенаПродажи);
        НоваяЗапись.СсылкаНаСайт = Строка(ВыборкаДетальныеЗаписи.СсылкаНаСайт);
        НоваяЗапись.РодительскаяКатегория = Строка(ВыборкаДетальныеЗаписи.Родитель);
        НоваяЗапись.РодительскаяКатегорияКод = Строка(ВыборкаДетальныеЗаписи.РодительКод);
        НоваяЗапись.СсылкаФотоТовара1 = Строка(ВыборкаДетальныеЗаписи.СсылкаФотоТовара1);
        НоваяЗапись.СсылкаФотоТовара2 = Строка(ВыборкаДетальныеЗаписи.СсылкаФотоТовара2);
        НоваяЗапись.СсылкаФотоТовара3 = Строка(ВыборкаДетальныеЗаписи.СсылкаФотоТовара3);
        НоваяЗапись.СсылкаФотоТовара4 = Строка(ВыборкаДетальныеЗаписи.СсылкаФотоТовара4);
        НоваяЗапись.ОстатокТовара = Строка(ВыборкаДетальныеЗаписи.ОстатокТовара);
        ВыборкаДетальныеЗаписиХарактеристикиТовара = РезультатЗапроса[1].Выбрать();
        

        Пока  ВыборкаДетальныеЗаписиХарактеристикиТовара.Следующий() Цикл
            НоваяЗапись.Характеристика = Строка(ВыборкаДетальныеЗаписиХарактеристикиТовара.Характеристика);
            НоваяЗапись.ЗначениеХарактеристики = Строка(ВыборкаДетальныеЗаписиХарактеристикиТовара.ЗначениеХарактеристики);
            

        КонецЦикла;

        //Для Каждого Элемента ИЗ ВыборкаДетальныеЗаписи.Характеристика Цикл

            
        НоваяЗапись.ОписаниеТовара = Строка(ВыборкаДетальныеЗаписи.ОписаниеТовара);
        //МассивДанных.Добавить(НоваяЗапись);

        //КонецЦикла;

        НоваяЗапись.Бренд = Строка(ВыборкаДетальныеЗаписи.Бренд);
        МассивДанных.Добавить(НоваяЗапись);
        
        
    КонецЦикла;
    
    Возврат МассивДанных;
    
КонецФункции


&НаКлиенте
Процедура ТестоваяКоманда(Команда)
    ПолучитьМассив = ПолучитьМассивДанных();
    //Для Каждого Элемент Из ПолучитьМассив Цикл

    //    Сообщить(Элемент);

    //КонецЦикла;

    
КонецПроцедуры
 
 
   xxTANATORxx
 
1 - 07.05.18 - 09:43
F2 ??
   Fish
 
2 - 07.05.18 - 09:43
(0) "Показать значение в отдельном окне". Удивительный вопрос.
   Roma1314704
 
3 - 07.05.18 - 10:06
Пока  ВыборкаДетальныеЗаписиХарактеристикиТовара.Следующий() Цикл
            НоваяЗапись.Характеристика = Строка(ВыборкаДетальныеЗаписиХарактеристикиТовара.Характеристика);
            НоваяЗапись.ЗначениеХарактеристики = Строка(ВыборкаДетальныеЗаписиХарактеристикиТовара.ЗначениеХарактеристики);
            

КонецЦикла;

Характеристик и их значений 8 позиций по факту в массив записывает только 1 как мне записать все остальные?
   Lexey_
 
4 - 07.05.18 - 10:10
(3) нужно исправить код, который вне цикла
   Ненавижу 1С
 
5 - 07.05.18 - 10:13
(3) потому-что у тебя всего одна НоваяЗапись
   Roma1314704
 
6 - 07.05.18 - 10:14
Подскажите как это реализовать
   Мандалай
 
7 - 07.05.18 - 10:15
Толи я после праздников плохо соображаю, то ли надо пакет убрать, соединить все в один запрос и организовать группировку по товарам, характеристикам. У тебя там бред какой то получается при определении ВыборкаДетальныеЗаписиХарактеристикиТовара = РезультатЗапроса[1].Выбрать();
   Boleev
 
8 - 07.05.18 - 10:19
(6) мне просто интересно, чем ты занимался  11 лет 6 месяцев 1 день
   Roma1314704
 
9 - 07.05.18 - 10:21
Собирался с мыслями что надо учить 1с
   Roma1314704
 
10 - 07.05.18 - 10:23
Если серьезно , нужно помощь как это все до ума довести
 
 Рекламное место пустует
   Мандалай
 
11 - 07.05.18 - 10:28
1. Убери пакет, оставь только первый запрос.
2. На регистре остатков у тебя должна хранится информация по остаткам в разрезе характеристик, иначе бред получается.
3. Бери характеристики напрямую из регистра остатков. То есть второй запрос тебе без надобности, хотя тебе видней.
4. Не очень понимаю зачем тебе справочник Номенклатура, в таком варианте ты получишь всю номенклатуру, и ту которая есть на остатках и ту которой нет на остатке. Если конечно так надо по условию значит надо. Поэтому огласи какие данные должны попасть в отчет.
   Roma1314704
 
12 - 07.05.18 - 10:42
НоваяЗапись = Новый Структура("Код, Наименование, Бренд, ОписаниеТовара, Характеристика, ЗначениеХарактеристики, ЦенаПродажи, СсылкаНаСайт, Категория, РодительскаяКатегорияКод,РодительскаяКатегория,СсылкаФотоТовара1,СсылкаФотоТовара2, СсылкаФотоТовара3, СсылкаФотоТовара4, ОстатокТовара");
Все это должно попасть в отчет. Но в регистре сведений характеристика товара не 1-но значение их может быть несколько - как их все выдернуть в массив -не могу осилить
   МимохожийОднако
 
13 - 07.05.18 - 10:47
Возьми листочек и нарисуй, что и где лежит. Потом по этому плану делай запрос.
   Roma1314704
 
14 - 07.05.18 - 11:08
Да правильно. Не могу понять с этим массивом  -ведь в структуре 1 значение характеристики соответственно сколько  не перебирай запрос в цикле  -запишет только последнее значение и одно единественное значение. Как записать в структуру остальные значения Характеристик?
   Roma1314704
 
15 - 07.05.18 - 11:58
Разобрался. Всем спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует