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

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

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

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


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
88 Сообщений
alex0402
50 Сообщений
AIFrame
43 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
37 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений
BuhRust
13 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal