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

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

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

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

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: -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

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


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
89 Сообщений
wise wise
68 Сообщений
MuI_I_Ika MuI_I_Ika
51 Сообщений
alex0402
49 Сообщений
Dethmontt Dethmontt
48 Сообщений
Сергей Федоров Сергей Федоров
29 Сообщений
ilyay ilyay
28 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal