Подскажите что не так пишу или делаю.
Есть запрос
Запрос_1 = СоздатьОбъект("Запрос");
ТекстЗапроса_1 =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|ПриходнаяНакладная = Документ.ПриходнаяНакладная.ТекущийДокумент;
|ТМЦ = Документ.ПриходнаяНакладная.ТМЦ;
|ПлотностьНа15Град = Документ.ПриходнаяНакладная.ПлотностьНа15Град;
|ЛитрОтПлотности = Документ.ПриходнаяНакладная.ЛитрОтПлотности;
|Группировка День;
|Группировка ПриходнаяНакладная;
|Группировка ТМЦ;
|Группировка ПлотностьНа15Град;
|Группировка ЛитрОтПлотности;
|"//}}ЗАПРОС
Список_Прих = СоздатьОбъект("ТаблицаЗначений");
Список_Прих.НоваяКолонка("День", "Дата");
Список_Прих.НоваяКолонка("НомПрихНакл", "Строка");
Список_Прих.НоваяКолонка("ИмяПрихТовара", "Строка");
Список_Прих.НоваяКолонка("ПлотнПрихТовара", "Число");
Список_Прих.НоваяКолонка("ПрихАкцизЛитр", "Число");
Пока Запрос_1.Группировка(5) = 1 Цикл
Сообщить (Запрос_1.ЛитрОтПлотности);
НомПрих = НомПрих + 1;
Список_Прих.НоваяСтрока(НомПрих);
Список_Прих.День = Запрос_1.День;
Список_Прих.НомПрихНакл = Запрос_1.ПриходнаяНакладная;
Список_Прих.ИмяПрихТовара = Запрос_1.ТМЦ;
Список_Прих.ПлотнПрихТовара = Запрос_1.ПлотностьНа15Град;
Список_Прих.ПрихАкцизЛитр = Запрос_1.ЛитрОтПлотности;
КонецЦикла;
leo10k10 @ Сегодня, 12:31
,
Таблицу создавать не нужно. Надо выгрузить результат выполнения запроса в таблицу. Список_Прих = Результат.Выгрузить();
Таб_1 = СоздатьОбъект("ТаблицаЗначений");
Запрос_1.Выгрузить(Таб_1,0,0);
leo10k10 @ Сегодня, 14:10
,
Не правильно. Пример есть в Синтакс-Помощнике
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос_1, ТекстЗапроса_1, Таб_1, Список_Прих, НомПрих;
//Создание объекта типа Запрос
Запрос_1 = СоздатьОбъект("Запрос");
ТекстЗапроса_1 =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|ПриходнаяНакладная = Документ.ПриходнаяНакладная.ТекущийДокумент;
|ТМЦ = Документ.ПриходнаяНакладная.ТМЦ;
|ПлотностьНа15Град = Документ.ПриходнаяНакладная.ПлотностьНа15Град;
|ЛитрОтПлотности = Документ.ПриходнаяНакладная.ЛитрОтПлотности;
|Группировка День;
|Группировка ПриходнаяНакладная;
|Группировка ТМЦ;
|Группировка ПлотностьНа15Град;
|Группировка ЛитрОтПлотности;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос_1.Выполнить(ТекстЗапроса_1) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб_1 = СоздатьОбъект("Таблица");
Список_Прих = СоздатьОбъект("ТаблицаЗначений");
Список_Прих.НоваяКолонка("День", "Дата");
Список_Прих.НоваяКолонка("НомПрихНакл", "Строка");
Список_Прих.НоваяКолонка("ИмяПрихТовара", "Строка");
Список_Прих.НоваяКолонка("ПлотнПрихТовара", "Число");
Список_Прих.НоваяКолонка("ПрихАкцизЛитр", "Число");
НомПрих = 0;
Таб_1.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб_1.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб_1.Опции(0, 0, Таб_1.ВысотаТаблицы(), 0);
Пока Запрос_1.Группировка(1) = 1 Цикл
Сообщить (Запрос_1.День); // результат == 04.01.2017
Пока Запрос_1.Группировка(2) = 1 Цикл
Сообщить (Запрос_1.ПриходнаяНакладная); // результат == Прих. накл. ПН-0000001 (04.01.2017)
Пока Запрос_1.Группировка(3) = 1 Цикл
Сообщить (Запрос_1.ТМЦ); // результат == Паливо дизельне ДТ-Л-К5 сорт С ( УКТЕД 2710194300)
Пока Запрос_1.Группировка(4) = 1 Цикл
Сообщить (Запрос_1.ПлотностьНа15Град); // результат == 0.7625
Пока Запрос_1.Группировка(5) = 1 Цикл
Сообщить (Запрос_1.ЛитрОтПлотности);// результат == 36254
НомПрих = НомПрих + 1;
Список_Прих.НоваяСтрока(НомПрих);
Список_Прих.День = Запрос_1.День;
Список_Прих.НомПрихНакл = Запрос_1.ПриходнаяНакладная;
Список_Прих.ИмяПрихТовара = Запрос_1.ТМЦ;
Список_Прих.ПлотнПрихТовара = Запрос_1.ПлотностьНа15Град;
Список_Прих.ПрихАкцизЛитр = Запрос_1.ЛитрОтПлотности;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Заполнение строк поля "ПриходныйАКЦЫЗ"
Список_Прих.ВыбратьСтроки();
Пока Список_Прих.ПолучитьСтроку() = 1 Цикл
Таб_1.ВывестиСекцию("ЛитрОтПлотности");
КонецЦикла;
// Заполнение полей через Список_Прих
Список_Прих.ВыбратьСтроки();
Пока Список_Прих.ПолучитьСтроку() = 1 Цикл
Сообщить(Шаблон("[Список_Прих.День = Запрос_1.День] х [Список_Прих.НомПрихНаклра] х [Список_Прих.ИмяПрихТовара] х [Список_Прих.ПлотнПрихТовара]"));
КонецЦикла; // получил результат: 04.01.2017 Х 49943 Х 148 219 х 0.7625
// Вывод заполненной формы
Таб_1.ТолькоПросмотр(1);
Таб_1.Показать("Сформировать", "");
КонецПроцедуры
Список_Прих.НомПрихНакл = Запрос_1.ПриходнаяНакладная.НомерДок;
Список_Прих.ИмяПрихТовара = Запрос_1.ТМЦ.Наименование;
Список_Прих.Свурнуть("День,НомПрихНакл,ИмяПрихТовара,ПлотнПрихТовара","ПрихАкцизЛитр");
leo10k10,
можно вопрос:
почему вы не воспользовались этим
daveal @ Вчера, 14:36
,
советом?
Список_Прих.Свурнуть("ИмяПрихТовара,ПлотнПрихТовара","ПрихАкцизЛитр");
Суммирование в запросе происходит в разрезе объявленных группировок. Если сумма нужна только по плотности и ТМЦ, так и оставьте в запросе только эти группировки.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua