|
Отчет по часами | ☑ | ||
---|---|---|---|---|
0
Федя1305
06.11.23
✎
07:27
|
Процедура ОтчетНажатие(Элемент)
ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЧАС(ОтчетКассовойСменыДеталноСписокЧеков.ДатаЧек) КАК Час, | ОтчетКассовойСменыДеталноСписокЧеков.Ссылка.Касса КАК Касса, | СУММА(ОтчетКассовойСменыДеталноСписокЧеков.СуммаЧек) КАК Сумма, | СУММА(ВЫБОР | КОГДА ОтчетКассовойСменыДеталноСписокЧеков.СуммаЧек <> 0 | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ) КАК Количество |ИЗ | Документ.ОтчетКассовойСменыДетално.СписокЧеков КАК ОтчетКассовойСменыДеталноСписокЧеков |ГДЕ | ОтчетКассовойСменыДеталноСписокЧеков.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца | И ОтчетКассовойСменыДеталноСписокЧеков.Ссылка.Проведен = ИСТИНА | И ЧАС(ОтчетКассовойСменыДеталноСписокЧеков.ДатаЧек) МЕЖДУ ЧАС(&ЧасНачала) И ЧАС(&ЧасКонца) | |СГРУППИРОВАТЬ ПО | ОтчетКассовойСменыДеталноСписокЧеков.Ссылка.Касса, | ЧАС(ОтчетКассовойСменыДеталноСписокЧеков.ДатаЧек)"; Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца); Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ЧасКонца", ЧасКонца); Запрос.УстановитьПараметр("ЧасНачала", ЧасНачала); РезультатЗапроса = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); ТабДок.Показать("Отчет"); КонецПроцедуры ЧасНачала=НачалоДня(ТекущаяДата()); ЧасКонца=КонецДня(ТекущаяДата()); ДатаНачала=ТекущаяДата()-432000; ДатаКонца=ТекущаяДата(); |
|||
1
Федя1305
06.11.23
✎
07:29
|
||||
2
Федя1305
06.11.23
✎
07:32
|
Всем доброе утро. Пожалуйста, помогите мне. Я почти хочу, чтобы это было так
https://ibb.co/2gV8R3P |
|||
3
rphosts
06.11.23
✎
07:57
|
у тебя макет для списка а хочешь что-бы была кросс-таблица. Есть 2 рациональных варианта решения этой задачи:
1.сделай всё это в СКД - ни строчки кодить не придётся. 2.перепиши цикл (будет 2 вложенных цикла и немного кода сверх того - вариантов как это писать несколько). Через СКД чуть сложнее но в дальнейшем все затраты на изучение СКД окупятся. Считаю что помог. И да, за тебя ни кто это делать не будет. Недочёты запроса: 1.при наличии хотя-бы минимального опыта пишут вот так: "И ОтчетКассовойСменыДеталноСписокЧеков.Ссылка.Проведен" 2.непонятно зачем отдельно условия на Дни а зачем условия на Часы, если дату документа можно привести к часу. 3.А вот это вообще жуть! ЧасНачала=НачалоДня(ТекущаяДата()); ЧасКонца=КонецДня(ТекущаяДата()); ДатаНачала=ТекущаяДата()-432000; ДатаКонца=ТекущаяДата(); |
|||
4
Федя1305
06.11.23
✎
08:08
|
(3) Вы абсолютно правы. Мне нужно изучить СКД.
|
|||
5
Обработка
06.11.23
✎
08:25
|
Тему бы поменять в ветке...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |