Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 окт 2021, 15:12

Вывод остатков с группировкой по датам

Автор Алекс Витальевич, 23 авг 2016, 12:24

0 Пользователей и 1 гость просматривают эту тему.

Алекс Витальевич

Данный код выводит мне таблицу с общими остатками и еще остатки по дням.

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|ЦенаПрод = Регистр.ОстаткиТМЦ.ЦенаПрод;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Фирмы = Справочник.Фирмы.ТекущийЭлемент;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура упорядочить по Номенклатура.Наименование;
|Группировка День;
|Условие(Номенклатура в ВыбНоменклатура);
|Условие(Склад в ВыбСклад);
|Условие(Фирмы в ВыбФирмы);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Запрос.Выгрузить(ТЗ);           

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица1");
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Ном="";


Для N = 1 По ТЗ.КоличествоСтрок() Цикл
//Ном = ТЗ.ПолучитьСтрокуПоНомеру(N);
    Номенклатура = ТЗ.ПолучитьЗначение(N,"Номенклатура");
Остаток      = ТЗ.ПолучитьЗначение(N,"КоличествоКонОст");
День         = ТЗ.ПолучитьЗначение(N,"День");
//Если ПустоеЗначение(День)=1 тогда
// ТЗ.УдалитьСтроку(N);
// N=N-1;
//КонецЕсли;
//День =    ТЗ.ПолучитьЗначение(N,"День");
//Если Ном <> Таб.ПолучитьСекцию("Номенклатура") тогда 

Если Ном <> Номенклатура тогда
Таб.ВывестиСекцию("Номенклатура|Лев");
Таб.ПрисоединитьСекцию("Номенклатура|День");
Ном = Номенклатура;
иначе
Таб.ПрисоединитьСекцию("Номенклатура|День");
КонецЕсли;

КонецЦикла;
    Таб.Показать();
КонецПроцедуры


Теперь в шапке над столбцами с остатками по дням надо вывести сами даты. Что исправить в коде?
Еще хотел удалять строки, где не указана дата(группы). При удалении строки уменьшаю количество строк на единицу-получаю ошибку "номер за пределами значения". Как исправить?

alexandr_ll

чтобы вывести заголовки с датами нужно в шапке  как в строках использовать ПрисоединитьСекцию
для удаления лишних строк создайте новую таблицу значений и через цикл с условием для заполненной ТЗ перенесите в нее нужные строки

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск