• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Вывод в печатную форму по дням

  • Автор темы 4xter
  • Дата начала
4

4xter

Доброго времени суток всем. Конфигурация типовая ТиС 7.7. Возникла следующая проблемка в написании отчёта. Существует документ, из которого вытягиваются только 2 реквизита: Имя, сыр1,сыр2. В запросе требуется выводить имя человека и цифры по каждому из сырья. Но делать это надо за каждый день в заданном периоде. У меня вроде бы всё получилось, но проблема возникает тогда когда в документе за предыдущий день человека, который есть в документе за следующий день. Тогда данные по нему ставятся за предыдущий день.
У меня предположения что я напутал в выводом секций. Но вот где не могу понять. Надеюсь на Вашу помощь.
Вот текст запроса:
Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса="
|Период с ДатаНачала по ДатаКонца;
|ОбрабатыватьДокументы Проведенные;
|Док= Документ.Обв.ТекущийДокумент;
|ДатаДок= Документ.Обв.ДатаДок;
|НомерДок= Документ.Обв.НомерДок;
|Имя= Документ.Обв.Имя;
|Сыр1= Документ.Обв.Сыр1;
|Сыр2= Документ.Обв.Сыр2;
|Группировка Имя;
|Группировка ДатаДок;
|Группировка НомерДок;
|";
Дальше организую цикл по выборке и вывожу колонки:
Пока Запрос.Группировка("Имя")=1 Цикл

ТабНаименование=" "+Запрос.Имя.Наименование;
Имя=ТабНаименование;
Таб.ВывестиСекцию("Всего|Колонки");
Пока Запрос.Группировка("ДатаДок")=1 Цикл

Пока Запрос.Группировка("НомерДок")=1 Цикл
Док=Запрос.Док;
ТабДатаДок=Запрос.ДатаДок;
ТабНомерДок=Запрос.НомерДок;
КолС1=Запрос.Сыр1;
КолС2=Запрос.Сыр2;
ТабКолС1=ТабКолС1+Колс1;
ТабКолС2=ТабКолС2+Колс2;
КонецЦикла;
Таб.ПрисоединитьСекцию("Всего|Данные");
КонецЦикла;

ТабКолС1=0;
ТабКолС2=0;
КолС1=0;
КолС2=0;
КонецЦикла;
Таблица должна иметь следующий вид: В шапке-имя, дата. При этом колонка дата включает в себя ещё 2 колонки сыр1 и сыр2. Шапку вывожу следующим образом:
Запрос.ВНачалоВыборки();
Пока Запрос.Группировка("Обвал")=1 Цикл
Пока Запрос.Группировка("ДатаДок")=1 Цикл
Если Список.НайтиЗначение(Запрос.ДатаДок)=0 тогда
Список.ДобавитьЗначение(Запрос.ДатаДок);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Список.Сортировать(0);
Для сч=1 по Список.РазмерСписка() Цикл
ТабДатаДок=Список.ПолучитьЗначение(Сч,);
Таб.ПрисоединитьСекцию("Шапка2|Данные");
КонецЦикла;

А дальше вывожу секции Вывод. Может я вообще не правильно что делаю, подскажите пожалуйста. Заранее благодарен.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!