|
ВыгрузитьПоПравилу не получается настроить | ☑ | ||
---|---|---|---|---|
0
Gena1984
22.12.15
✎
15:50
|
В ПВД пишу следующий код:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтчетКомитентуОПродажах.Ссылка КАК Док |ИЗ | Документ.ОтчетКомитентуОПродажах КАК ОтчетКомитентуОПродажах |ГДЕ | ОтчетКомитентуОПродажах.Проведен | И ОтчетКомитентуОПродажах.Организация = &Организация | И ОтчетКомитентуОПродажах.ДоговорКонтрагента = &ДоговорКонтрагента | И ОтчетКомитентуОПродажах.Контрагент = &Контрагент | И ОтчетКомитентуОПродажах.Дата >= &ДатаНачала | И ОтчетКомитентуОПродажах.Дата <= КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ) | |СГРУППИРОВАТЬ ПО | ОтчетКомитентуОПродажах.Ссылка"; Запрос.УстановитьПараметр("Контрагент",Параметры.Контрагент); Запрос.УстановитьПараметр("Организация",Параметры.Организация); Запрос.УстановитьПараметр("ДатаНачала",ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания",ДатаОкончания); Запрос.УстановитьПараметр("ДоговорКонтрагента",Параметры.ДоговорКонтрагента); гВыборка = Запрос.Выполнить().Выбрать(); Пока гВыборка.Следующий() Цикл Для каждого стр из гВыборка.Док.Поставщики Цикл ВходящиеДанные = Новый Структура; ТаблицаТоваров = Новый ТаблицаЗначений; ТаблицаТоваров.Колонки.Добавить("ЕдиницаИзмерения"); ТаблицаТоваров.Колонки.Добавить("Количество"); ТаблицаТоваров.Колонки.Добавить("КоличествоМест"); ТаблицаТоваров.Колонки.Добавить("Коэффициент"); ТаблицаТоваров.Колонки.Добавить("Номенклатура"); ТаблицаТоваров.Колонки.Добавить("СтавкаНДС"); ТаблицаТоваров.Колонки.Добавить("Сумма"); ТаблицаТоваров.Колонки.Добавить("СуммаНДС"); ТаблицаТоваров.Колонки.Добавить("Цена"); ТаблицаТоваров.Колонки.Добавить("СчетУчетаБУ"); ТаблицаТоваров.Колонки.Добавить("СчетУчетаНУ"); ТаблицаТоваров.Колонки.Добавить("СчетУчетаНДС"); ТаблицаТоваров.Колонки.Добавить("СерияНоменклатуры"); Попытка ВходящиеДанные.Вставить("НомерВходящегоДокумента",Число(стр.СчетФактура.Номер)); Исключение ВходящиеДанные.Вставить("НомерВходящегоДокумента",стр.СчетФактура.Номер); КонецПопытки; ВходящиеДанные.Вставить("Дата", стр.СчетФактура.Дата); ВходящиеДанные.Вставить("ДатаВходящегоДокумента", стр.СчетФактура.Дата); ВходящиеДанные.Вставить("Грузоотправитель", стр.Поставщик); ВходящиеДанные.Вставить("ВалютаДокумента", гВыборка.Док.ВалютаДокумента); ВходящиеДанные.Вставить("ДоговорКонтрагента", гВыборка.Док.ДоговорКонтрагента); Ключ = ""+гВыборка.Док.Номер+" "+Формат(гВыборка.Док.Дата,"ДФ = гггг")+"_"+стр.НомерСтроки; ВходящиеДанные.Вставить("Комментарий", Ключ); ВходящиеДанные.Вставить("Контрагент", гВыборка.Док.Организация); ВходящиеДанные.Вставить("КратностьВзаиморасчетов", гВыборка.Док.КратностьВзаиморасчетов); ВходящиеДанные.Вставить("КурсВзаиморасчетов", гВыборка.Док.КурсВзаиморасчетов); ВходящиеДанные.Вставить("Организация", гВыборка.Док.Контрагент); ВходящиеДанные.Вставить("ПометкаУдаления", гВыборка.Док.ПометкаУдаления); ВходящиеДанные.Вставить("Проведен", гВыборка.Док.Проведен); ВходящиеДанные.Вставить("ВидОперации", "ПокупкаКомиссия"); ВходящиеДанные.Вставить("ВидПоступления", "НаСклад"); ВходящиеДанные.Вставить("СчетУчетаРасчетовПоАвансам", "РасчетыПоАвансамВыданным"); ВходящиеДанные.Вставить("СчетУчетаРасчетовСКонтрагентом", "РасчетыСПоставщиками"); ВходящиеДанные.Вставить("ОтражатьВБухгалтерскомУчете", Истина); ВходящиеДанные.Вставить("ОтражатьВНалоговомУчете", Истина); ВходящиеДанные.Вставить("ОтражатьВУправленческомУчете", Истина); Для каждого стр2 из гВыборка.Док.Товары Цикл Если стр2.КлючСтроки = стр.КлючСтроки Тогда ТабСтр = ТаблицаТоваров.Добавить(); ТабСтр.ЕдиницаИзмерения = стр2.ЕдиницаИзмерения; ТабСтр.Количество = стр2.Количество; ТабСтр.КоличествоМест = стр2.КоличествоМест; ТабСтр.Коэффициент = стр2.Коэффициент; ТабСтр.Номенклатура = стр2.Номенклатура; ТабСтр.СтавкаНДС = стр2.СтавкаНДС; ТабСтр.Сумма = стр2.Сумма; ТабСтр.СуммаНДС = стр2.СуммаНДС; ТабСтр.Цена = стр2.Цена; ТабСтр.СчетУчетаБУ = "СырьеИМатериалы"; ТабСтр.СчетУчетаНУ = "СырьеИМатериалы"; ТабСтр.СчетУчетаНДС = "НДСпоПриобретеннымМПЗ"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.НомерГТД |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Документ | И ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура | И ПоступлениеТоваровУслугТовары.Количество = &Количество"; Запрос.УстановитьПараметр("Номенклатура",стр2.Номенклатура); Запрос.УстановитьПараметр("Количество",стр2.Количество); Запрос.УстановитьПараметр("Документ",гВыборка.Док.Ссылка); гВыборка = Запрос.Выполнить().Выбрать(); Пока гВыборка.Следующий() Цикл ТабСтр.СерияНоменклатуры = гВыборка.НомерГТД; КонецЦикла; КонецЕсли; КонецЦикла; ВходящиеДанные.Вставить("ТаблицаТоваров",ТаблицаТоваров); ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ПоступлениеТоваровУслугИзРеализации_ОтчетКом2"); КонецЦикла; КонецЦикла; После первого проход цикла пишет: Поле объекта не онаружено "Док". Что я делаю не так? |
|||
1
akaBrr
22.12.15
✎
15:55
|
у вас 3 цикла, после первого прохода какого из них?
почему все данные сразу не получаете запросом? |
|||
2
Gena1984
22.12.15
✎
15:57
|
Процедуру ВыгрузитьПоПравилу он 1 раз проходит, после этого пишет ощибку
|
|||
3
Krolik Bezobraznik
22.12.15
✎
15:59
|
У вас в переменную гВыборка записывается результат выполнения запроса. Затем когда вы обходите результат, снова выполняете другой запрос и снова в переменную гВыборка передаете выборку иного запроса.
Затем когда у вас происходит вторая итерация по первой выборке у вас ссылается на Док, а его уже нет. |
|||
4
mehfk
22.12.15
✎
16:02
|
(0)
гВыборка = Запрос.Выполнить().Выбрать(); Пока гВыборка.Следующий() Цикл ТабСтр.СерияНоменклатуры = гВыборка.НомерГТД; КонецЦикла; |
|||
5
Gena1984
22.12.15
✎
16:03
|
Все, тупанул, спасибо большое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |