8.х Для Каждого ... ИЗ ... Цикл

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dimrik, 3 апр 2008.

  1. TopicStarter Overlay
    Dimrik
    Offline

    Dimrik

    Регистрация:
    3 апр 2008
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Бухгалтерия 1.6.5.4
    Добавил в документ "Счет на оплату" колонку "Скидка". Цена, Количество и все остальное туда попадают. Пытаюсь сделать, чтобы из табличной части документа в печатную форму попадала Скидка, т.е. сделать обход строк документа. НО пишет ошибку:

    {Документ.СчетНаОплатуПокупателю(226)}: Итератор для значения не определен
    Для Каждого Строка ИЗ РезСкидка Цикл

    Помогите пжалста!!!



    Код:
    Запрос2=новый Запрос;
    Запрос2.УстановитьПараметр("ТекущийДокумент",ЭтотОбъект.Ссылка);
    Запрос2.Текст="ВЫБРАТЬ
    |СчетНаОплатуПокупателю.Товары.(
    |Номенклатура,
    |Цена,
    |Сумма,
    |Скидка,
    |Количество,
    |СуммаБезСкидки
    |)
    |ИЗ
    |Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
    |ГДЕ
    |СчетНаОплатуПокупателю.Ссылка = &ТекущийДокумент";
    РезСкидка = Запрос2.Выполнить().Выбрать();
    
    
    
    Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл 
    
    ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
    ТабДокумент.Вывести(ОбластьНомера);
    
    ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
    ОбластьДанных.Параметры.Товар       = СокрЛП(ВыборкаСтрокТовары.Товар);
    ТабДокумент.Присоединить(ОбластьДанных);
    
    ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
    ТабДокумент.Присоединить(ОбластьСуммы);
    Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
    СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;
    ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
    
    
    i=0;
    j=0;
    Для Каждого Строка ИЗ РезСкидка Цикл
    Пока  РезСкидка.Следующий() Цикл
    Если  ВыборкаСтрокТовары.Номенклатура.Наименование=   Строка[i][j].Номенклатура.Наименование Тогда
    ОбластьДанных.Параметры.Скидка = Строка[i][j].Скидка;
    КонецЕсли;
    i=i+1;
    j=j+1;
    КонецЦикла;
    КонецЦикла;
    
    
    
    
  2. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    1. Вам стоит почитать книжки
    2. Если вы делаете выборку из запроса, то надо не такой цикл, а
    Код:
    Пока РезСкидка.Следующий() Цикл
    ////
    КонецЦикла;
    
    
    3. А можно так, сначала:
    Код:
    РезСкидка = Запрос.Выполнить().Выгрузить();
    
    
    Тогда РезСкидка будет таблицей значений - из нее можн овыбирать вашим циклом.
  3. TopicStarter Overlay
    Dimrik
    Offline

    Dimrik

    Регистрация:
    3 апр 2008
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое!

Поделиться этой страницей