Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 01:30

Упорядочить итоги запроса по дням.

Автор Glikeria, 18 авг 2010, 10:18

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

Glikeria

Здравствуйте!Подскажите,пожалуйста,как в следующем запросе упорядочить итоги по дням.Просто при выводе результатов в таблицу,они идут вразнобой.Спасибо.
// подготовка и выполнение запроса
Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ХозрасчетныйОстаткиИОбороты.Субконто1 КАК БанковскийСчет,
| ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотКт,
| ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.Регистратор.Номер КАК НомерПЛ,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт,
| НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, ДЕНЬ) КАК День,
| ХозрасчетныйОстаткиИОбороты.Субконто1.ВалютаДенежныхСредств КАК Валюта
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
| &ДатаНачала,
| &ДатаОкончания,
| Запись,
| ,
| Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета))
| ИЛИ Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВалютныеСчета)),
| ,
| Субконто1 = &БанковскийСчет
| ИЛИ (НЕ &ОтборПоБанковскимСчетам)) КАК ХозрасчетныйОстаткиИОбороты
|
|УПОРЯДОЧИТЬ ПО
| Регистратор
| День

|ИТОГИ ПО
| День,
| БанковскийСчет");
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания));
Запрос.УстановитьПараметр("БанковскийСчет", БанковскийСчет);
Запрос.УстановитьПараметр("ОтборПоБанковскимСчетам", ЗначениеЗаполнено(БанковскийСчет));

Результат = Запрос.Выполнить();

// подготовка табличного документа
ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

Макет = ПолучитьМакет("Макет");

ВыборкаПоДням = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "День");
Пока ВыборкаПоДням.Следующий() Цикл
ВыборкаПоБС = ВыборкапоДням.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "БанковскийСчет");
Пока ВыборкаПоБС.Следующий() Цикл
Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.Заполнить(ВыборкаПоБС);
Если ВыборкаПоБС.Валюта <> Рубли Тогда
Область.Параметры.ОстатокНач = ВыборкаПоБС.ВалютнаяСуммаНачальныйОстатокДт;
Иначе
Область.Параметры.ОстатокНач = ВыборкаПоБС.СуммаНачальныйОстатокДт;
КонецЕсли;
ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(Область);
Выборка = ВыборкаПоБС.Выбрать();
Пока Выборка.Следующий() Цикл
Область = Макет.ПолучитьОбласть("Строка");
Для Каждого Параметр Из Область.Параметры Цикл
Параметр = "";
КонецЦикла;
Область.Параметры.Заполнить(Выборка);
Если ВыборкаПоБС.Валюта <> Рубли Тогда
Если Выборка.ВалютнаяСуммаОборотДт > 0 Тогда
Область.Параметры.СуммаОборотДт = Выборка.ВалютнаяСуммаОборотДт;
КонецЕсли;
Если Выборка.ВалютнаяСуммаОборотКт > 0 Тогда
Область.Параметры.СуммаОборотКт = Выборка.ВалютнаяСуммаОборотКт;
КонецЕсли;
КонецЕсли;

Если ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") Тогда
Область.Параметры.КонтрагентКт = Выборка.Регистратор.ПринятоОт;
Область.Параметры.НазначениеПлатежаКт = Выборка.Регистратор.Основание;
ИначеЕсли ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
Область.Параметры.КонтрагентДт = Выборка.Регистратор.Выдать;
Область.Параметры.НазначениеПлатежаДт = Выборка.Регистратор.Основание;
ИначеЕсли ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.ПлатежноеПоручениеВходящее")
ИЛИ ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.ПлатежноеТребованиеВыставленное")
ИЛИ ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.ПлатежныйОрдерПоступлениеДенежныхСредств") Тогда
Область.Параметры.КонтрагентДт = Выборка.Регистратор.Контрагент;
Область.Параметры.НазначениеПлатежаДт = Выборка.Регистратор.НазначениеПлатежа;
ИначеЕсли ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее")
ИЛИ ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств") Тогда
Область.Параметры.КонтрагентКт = Выборка.Регистратор.Контрагент;
Область.Параметры.НазначениеПлатежаКт = Выборка.Регистратор.НазначениеПлатежа;
Иначе // что-либо другое

КонецЕсли;

ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(Область);
КонецЦикла;
Область = Макет.ПолучитьОбласть("Подвал");
Область.Параметры.Заполнить(ВыборкаПоБС);
Если ВыборкаПоБС.Валюта <> Рубли Тогда
Область.Параметры.СуммаОборотДт = ВыборкаПоБС.ВалютнаяСуммаоборотДт;
Область.Параметры.СуммаОборотКт = ВыборкаПоБС.ВалютнаяСуммаоборотКт;
Область.Параметры.ОстатокКон = ВыборкаПоБС.ВалютнаяСуммаНачальныйОстатокДт;
Иначе
Область.Параметры.ОстатокКон = ВыборкаПоБС.СуммаНачальныйОстатокДт;
КонецЕсли;
ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(Область);
КонецЦикла;
КонецЦикла;


YouAreEmpty

Для начала в секции упорядочить по попробуй поменять местами День и Регистратор

Glikeria

Спасибо большое.А ещё у меня такой вопрос.Когда выводится результат в виде таблицы,то почему-то заполняются не все графы.В чём может быть причина?

YouAreEmpty

Проверяй правильность заполнения параметром у областей макета

crow1983

Или в макете есть поле с параметром, а в свойствах ячейки забыли указать что параметр
Преподаватель, программист...и просто хороший человек

Glikeria

У меня почему-то до июня заполняются только графы таблицы СуммаОборотДт и СуммаОборотКт,а начиная с июня всё как надо заполняется.Почему так может быть?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск