Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
28 Мар 2017, 22:46
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вывод остатков с группировкой по датам  (Прочитано 419 раз)

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

Оффлайн Алекс Витальевич

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2016-08-23
  • Сайт: 
  • Профессия: Программист 7.7
Данный код выводит мне таблицу с общими остатками и еще остатки по дням.

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

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


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

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

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

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


Оффлайн alexandr_ll

  • ****
  • Сообщений: 253
  • РЕПУТАЦИЯ: 36
  • КПД: 14%
  • Регистрация: 2016-08-23
  • Сайт: 
  • Профессия: Программист 1С
чтобы вывести заголовки с датами нужно в шапке  как в строках использовать ПрисоединитьСекцию
для удаления лишних строк создайте новую таблицу значений и через цикл с условием для заполненной ТЗ перенесите в нее нужные строки


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
alex0402
124 Сообщений
MuI_I_Ika MuI_I_Ika
53 Сообщений
Norfolk
52 Сообщений
LexaK
47 Сообщений
AsadRoman
20 Сообщений
друган
20 Сообщений
alexandr_ll
20 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

  • Точка Гостей: 428
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal