|
Не выводятся детальные записи в обходе запроса. | ☑ | ||
---|---|---|---|---|
0
Босечка
21.07.17
✎
16:00
|
Запрос2.Текст = "ВЫБРАТЬ
| ВыбНоменДляДатыПрихода.Номенклатура КАК Номенклатура, | ВыбНоменДляДатыПрихода.Склад КАК Склад, | ВыбНоменДляДатыПрихода.Остаток КАК Остаток, | ТоварыНаСкладах.Период КАК Период, | ТоварыНаСкладах.Номенклатура КАК Номенклатура1, | ТоварыНаСкладах.Количество КАК Количество, | ТоварыНаСкладах.Склад КАК Склад1 |ИЗ | ВыбНоменДляДатыПрихода КАК ВыбНоменДляДатыПрихода | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах | ПО ВыбНоменДляДатыПрихода.Номенклатура = ТоварыНаСкладах.Номенклатура | И ВыбНоменДляДатыПрихода.Склад = ТоварыНаСкладах.Склад |ГДЕ | ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И НЕ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя | |УПОРЯДОЧИТЬ ПО | ТоварыНаСкладах.Период УБЫВ |ИТОГИ ПО | Номенклатура1, | Склад1, | Период"; Запрос2.МенеджерВременныхТаблиц = МенВрТаб; РезультатЗапроса = Запрос2.Выполнить().Выгрузить(); РезультатЗапроса.ВыбратьСтроку(); РезультатЗапроса = Запрос2.Выполнить(); Обход = ОбходРезультатаЗапроса.ПоГруппировкам; Номенклатура=РезультатЗапроса.Выбрать(Обход,"Номенклатура1"); Пока Номенклатура.Следующий() Цикл Склады=Номенклатура.Выбрать(Обход, "Склад1"); Пока Склады.Следующий() Цикл новстр=Т_ДатаПрихода.Добавить(); новстр.Номенклатура=Склады.Номенклатура1; Ост1=Склады.Остаток; новстр.Склад=Склады.Склад1; //Ост1=Периоды.Остаток; Сообщить("Остаток "+Ост1); //Если (ЗначениеЗаполнено(Периоды.Количество)) и (ЗначениеЗаполнено(Ост1)) тогда //Разн=Периоды.Количество-Ост1; //новстр.ДатаПрих =Периоды.Период; //Если Разн >0 тогда // новстр.ДатаПрих =Периоды.Период; // Прервать; //иначе // Ост1=Ост1-стр.Количество; //Конецесли; //Конецесли; Конеццикла; Конеццикла; Т_ДатаПрихода.ВыбратьСтроку(); |
|||
1
Босечка
21.07.17
✎
16:00
|
оСТАТОК показывает NULL
|
|||
2
Босечка
21.07.17
✎
16:01
|
Когда запрос выгружаешь в ТЗ, все хорошо
|
|||
3
Босечка
21.07.17
✎
16:09
|
ап...
|
|||
4
Ненавижу 1С
гуру
21.07.17
✎
16:10
|
а ты ведь не обходишь детальные записи
либо остаток вынеси в итоги |
|||
5
vadim777
21.07.17
✎
16:11
|
(4) Думаем, не мешай...
|
|||
6
Босечка
21.07.17
✎
16:11
|
а как их надо обойти, подскажите плиз
|
|||
7
Ненавижу 1С
гуру
21.07.17
✎
16:12
|
нужен другое вид значения ОбходРезультатаЗапроса
|
|||
8
Босечка
21.07.17
✎
16:15
|
какой?
|
|||
9
mistеr
21.07.17
✎
16:18
|
(0) Две ошибки.
1. В Запросе не указаны агрегатные функции для итогов: СУММА(Количество) 2. При обходе детальные записи будут на четвертом уровне, т.к. в итогах 3 уровня + 1 = 4. |
|||
10
vadim777
21.07.17
✎
16:18
|
(0) ВыборкаСклад = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Склад", "ВСЕ");
Не? |
|||
11
Босечка
21.07.17
✎
16:24
|
Запрос2 = Новый Запрос;
Запрос2.Текст = "ВЫБРАТЬ | ВыбНоменДляДатыПрихода.Номенклатура КАК Номенклатура, | ВыбНоменДляДатыПрихода.Склад КАК Склад, | ВыбНоменДляДатыПрихода.Остаток КАК Остаток, | ТоварыНаСкладах.Период КАК Период, | ТоварыНаСкладах.Номенклатура КАК Номенклатура1, | ТоварыНаСкладах.Количество КАК Количество, | ТоварыНаСкладах.Склад КАК Склад1 |ИЗ | ВыбНоменДляДатыПрихода КАК ВыбНоменДляДатыПрихода | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах | ПО ВыбНоменДляДатыПрихода.Номенклатура = ТоварыНаСкладах.Номенклатура | И ВыбНоменДляДатыПрихода.Склад = ТоварыНаСкладах.Склад |ГДЕ | ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | И НЕ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя | |УПОРЯДОЧИТЬ ПО | ТоварыНаСкладах.Период УБЫВ |ИТОГИ | СУММА(Остаток), | СУММА(Количество) |ПО | Номенклатура1, | Склад1"; Запрос2.МенеджерВременныхТаблиц = МенВрТаб; РезультатЗапроса = Запрос2.Выполнить().Выгрузить(); РезультатЗапроса.ВыбратьСтроку(); РезультатЗапроса = Запрос2.Выполнить(); Обход = ОбходРезультатаЗапроса.ПоГруппировкам; Номенклатура=РезультатЗапроса.Выбрать(Обход,"Номенклатура1"); Пока Номенклатура.Следующий() Цикл Склады=Номенклатура.Выбрать(Обход, "Склад1"); Пока Склады.Следующий() Цикл новстр=Т_ДатаПрихода.Добавить(); новстр.Номенклатура=Склады.Номенклатура1; Ост1=Склады.Остаток; новстр.Склад=Склады.Склад1; //Ост1=Периоды.Остаток; Сообщить("Остаток "+Ост1); //Если (ЗначениеЗаполнено(Периоды.Количество)) и (ЗначениеЗаполнено(Ост1)) тогда //Разн=Периоды.Количество-Ост1; //новстр.ДатаПрих =Периоды.Период; //Если Разн >0 тогда // новстр.ДатаПрих =Периоды.Период; // Прервать; //иначе // Ост1=Ост1-стр.Количество; //Конецесли; //Конецесли; Конеццикла; Конеццикла; |
|||
12
Босечка
21.07.17
✎
16:25
|
(9) все равно остатки не выводит. Только итоги по ним. Мне итоги не надо. Мне надо детальные записи.
|
|||
13
mistеr
21.07.17
✎
16:26
|
(12) Что значит "все равно"? Ты ошибки исправила?
|
|||
14
mistеr
21.07.17
✎
16:28
|
(13) А, прошу прощения, не увидел (11)
|
|||
15
Босечка
21.07.17
✎
16:30
|
(10) Не работает все равно
|
|||
16
mistеr
21.07.17
✎
16:30
|
(11) Ну и где обход детальных записей? Теперь это третий уровень, а у тебя только две выборки.
|
|||
17
Босечка
21.07.17
✎
16:30
|
Мне итог не нужен по Остаток. Мне нужно его значение
|
|||
18
mistеr
21.07.17
✎
16:31
|
ДетальныеЗаписи = Склады.Выбрать();
|
|||
19
Босечка
21.07.17
✎
16:31
|
(16) А какой третий по периоду?
|
|||
20
Вафель
21.07.17
✎
16:31
|
у тебя по факту 3 группировки и только 4 - деаельные записи
|
|||
21
mistеr
21.07.17
✎
16:36
|
(19) Еще раз: сколько бы ни было группировок в секции "ПО" в запросе, - детальные записи будут на СЛЕДУЮЩЕМ уровне. +1, понимаешь? В консоли выведи результат в дерево, сама все увидишь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |