|
Помогите с циклом | ☑ | ||
---|---|---|---|---|
0
EgorWonder
17.07.14
✎
09:33
|
Для каждого строка из ТабН цикл
Область = Макет.ПолучитьОбласть("НГ"); Область.Параметры.НоменклатурнаяГруппа = Строка.НоменклатурнаяГруппа; ТабДокумент.Присоединить(Область) ; конеццикла; Как вставить сюда условие так, чтобы номенклатурные группы не повторялись (просто нужно чтобы в макете заполнялось так) <Материалы> <НоменклатурнаяГруппа> <Количестово> НоменклатурнаяГруппа по вертикали, а <Материалы> и <Количестово> по горизонтали. |
|||
1
mikecool
17.07.14
✎
09:35
|
добавить цикл по материалам
|
|||
2
Redkiy
17.07.14
✎
09:35
|
СКД тебе в помощь
|
|||
3
EgorWonder
17.07.14
✎
09:37
|
(1) он есть и работает как нужно. Я не знаю как поставить условие, чтобы НомГруппы не повторялись, при этом заполнялось Количество материалов.
|
|||
4
informts
17.07.14
✎
09:38
|
только 3 цикла делать, определять количество столбцов.
|
|||
5
EgorWonder
17.07.14
✎
09:40
|
(4) Функция Печать() Экспорт
ТабДокумент = Новый ТабличныйДокумент; запрос = новый запрос; Запрос.УстановитьПараметр("Док", СсылкаНаОбъект); Запрос.УстановитьПараметр("ДокТ", СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ | ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, | ТребованиеНакладнаяМатериалы.Номенклатура, | ТребованиеНакладнаяМатериалы.Ссылка, | ТребованиеНакладнаяМатериалы.Количество КАК Итог, | ЕСТЬNULL(ТНМ.Количество, 0) КАК Колво, | ТНМ.Номенклатура КАК Номенклатура1, | ТНМ.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа1 |ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура, | ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, | ТребованиеНакладнаяМатериалы.Ссылка КАК Ссылка, | ТребованиеНакладнаяМатериалы.Количество КАК Количество | ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &Докт) КАК ТНМ | ПО (ИСТИНА) |ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &Док | |УПОРЯДОЧИТЬ ПО | НоменклатурнаяГруппа"; ТабНГР = запрос.Выполнить().Выгрузить(); ТабНГР.Свернуть("Номенклатура"); ТабН = запрос.Выполнить().Выгрузить(); ТабН.Свернуть("НоменклатурнаяГруппа, Колво"); Макет = ПолучитьМакет("ПроизводственноеЗадание"); Область = Макет.ПолучитьОбласть("ШапкаПС|ШП"); Область.Параметры.Организация = ссылканаобъект.Организация; ТабДокумент.Вывести(Область); Область = Макет.ПолучитьОбласть("Шапка|ШП"); ТабДокумент.Вывести(Область); Для каждого строка из ТабНГР цикл Область = Макет.ПолучитьОбласть("Шапка|ном"); область.Параметры.Номенклатура = Строка.Номенклатура; ТабДокумент.Присоединить(Область); конеццикла; Для каждого строка из ТабН цикл Область = Макет.ПолучитьОбласть("НГ"); Область.Параметры.НоменклатурнаяГруппа = Строка.НоменклатурнаяГруппа; ТабДокумент.Присоединить(Область) ; конеццикла; Область = Макет.ПолучитьОбласть("Итого|ШП"); ТабДокумент.Вывести(Область); Возврат ТабДокумент; конецфункции |
|||
6
mikecool
17.07.14
✎
09:42
|
Запрос по ном группе, материалу, количеству
итоги по ном группе все |
|||
7
zak555
17.07.14
✎
09:42
|
(4) зачем три ?
|
|||
8
zak555
17.07.14
✎
09:43
|
> Область.Параметры.НоменклатурнаяГруппа = Строка.НоменклатурнаяГруппа;
заменить на заполнить |
|||
9
User_Agronom
17.07.14
✎
09:43
|
Ох уж эти 1С-ники. Горе программеры.
Область = Макет.ПолучитьОбласть("НГ"); Для каждого строка из ТабН цикл Область.Параметры.НоменклатурнаяГруппа = Строка.НоменклатурнаяГруппа; ТабДокумент.Присоединить(Область) ; КонецЦикла; Нафига область получать 100500 раз? |
|||
10
informts
17.07.14
✎
09:44
|
Можно и через итоги. Кинь мне в почту, макет еще посмотреть :)
|
|||
11
User_Agronom
17.07.14
✎
09:46
|
(10) Ну да. Сгруппировать по какому-то полю и выгрузить деревом. Хорошее решение.
|
|||
12
spiller26
17.07.14
✎
09:48
|
(10) через итоги или СКД.
|
|||
13
EgorWonder
17.07.14
✎
09:49
|
(9) ну я не отрицаю, что руко*опый, но все приходит с опытом)
|
|||
14
EgorWonder
17.07.14
✎
09:49
|
(10) скинул
|
|||
15
User_Agronom
17.07.14
✎
09:59
|
(14) Неправильный подход.
Разберись с назначением "ИТОГИ ПО" в запросе, чем отличается выгрузить по группировкам от прямой выгрузки. Тогда, в следующий раз, не придётся спрашивать на форуме. |
|||
16
0xFFFFFF
17.07.14
✎
09:59
|
(9) на всякий случай. А вдруг с первого раза не получит? :)))
|
|||
17
EgorWonder
17.07.14
✎
10:09
|
(15) ВЫБРАТЬ
| ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, | ТребованиеНакладнаяМатериалы.Номенклатура, | ТребованиеНакладнаяМатериалы.Ссылка, | ТребованиеНакладнаяМатериалы.Количество КАК Итог, | ЕСТЬNULL(ТНМ.Количество, 0) КАК Колво, | ТНМ.Номенклатура КАК Номенклатура1, | ТНМ.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа1 |ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура, | ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа, | ТребованиеНакладнаяМатериалы.Ссылка КАК Ссылка, | ТребованиеНакладнаяМатериалы.Количество КАК Количество | ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &Докт) КАК ТНМ | ПО (ИСТИНА) |ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &Док | |УПОРЯДОЧИТЬ ПО | НоменклатурнаяГруппа |ИТОГИ | СУММА(Итог) |ПО | НоменклатурнаяГруппа так? |
|||
18
informts
17.07.14
✎
10:10
|
Отправил циклами, но по хорошему через итоги лучше делать.
|
|||
19
EgorWonder
17.07.14
✎
10:15
|
а может кто-нибудь ссылку скинуть, там где хорошо итоги объясняют?
|
|||
20
informts
17.07.14
✎
10:27
|
||||
21
User_Agronom
17.07.14
✎
10:33
|
(17) Да. Ещё когда Выгрузить(ОбходВсейХрени.ПоГруппировкамс)
|
|||
22
spiller26
17.07.14
✎
10:42
|
Вот как то так
|СГРУППИРОВАТЬ ПО | ВТ.Организация, | ВТ.НоменклатурнаяГруппа, | ВТ.Номенклатура, | ВТ.Контрагент |ИТОГИ | СУММА(ПланМесяц), | СУММА(ФактМесяц), | СУММА(ПланДень), | СУММА(ФактДень) |ПО | Организация, | Контрагент, | НоменклатурнаяГруппа, | Номенклатура"; Рез = Запрос.Выполнить(); РезОрг = Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Организация"); Пока РезОрг.Следующий() Цикл //вывод по РезОрг РезНомГр = РезОрг.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатурнаяГруппа"); Пока РезНомГр.Следующий() Цикл //вывод по РезНомГр КонецЦикла; КонецЦикла; |
|||
23
samozvanec
17.07.14
✎
10:59
|
(19) а ты конструктор открой и сам попробуй
|
|||
24
EgorWonder
17.07.14
✎
11:08
|
(23) да открывал, пробовал... но немножечко теории и других примеров не помешает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |