R
Renat11111
Добрый вечер! Пытаюсь освоить азы программтрования 1с. Читаю книгу Радченко, и столкнулся с проблемой небольшой. Суть проблемы: создал отчет Рейтинг услуг
который работает некорректно. тоесть в поле ввода ввожу даты начала и конца с надеждой получить рейтинг услуг в порядке убывания отчет ничего не показывает
Самое интересно что если даты не вносить то отчет показывает верные итоги по регистру накопления (оборотному). Заранее спасибо за помощь
код модуля формы
[codebox]
Процедура ДействияФормыРейтингУслугСформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(РейтингУслуг)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
РейтингУслуг(ТабДок, Неопределено, ДатаКонца, ДатаНачала);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
Процедура РейтингУслуг(ТабДок, ВидыНоменклатуры, ДатаКонца, ДатаНачала) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(РейтингУслуг)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ОтчетОбъект.ПолучитьМакет("РейтингУслуг");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Услуга,
| СпрНоменклатура.Представление,
| ПродажиОбороты.ВыручкаОборот КАК Выручка
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаКонца,Месяц , ) КАК ПродажиОбороты
| ПО ПродажиОбороты.Номенклатура = СпрНоменклатура.Ссылка
|ГДЕ
| СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
| И СпрНоменклатура.ВидыНоменклатуры = &ВидыНоменклатуры
|
|УПОРЯДОЧИТЬ ПО
| Выручка УБЫВ";
Запрос.УстановитьПараметр("ВидыНоменклатуры", Перечисления.ВидыНоменклатуры.Услуга);
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры
[/codebox]
который работает некорректно. тоесть в поле ввода ввожу даты начала и конца с надеждой получить рейтинг услуг в порядке убывания отчет ничего не показывает
Самое интересно что если даты не вносить то отчет показывает верные итоги по регистру накопления (оборотному). Заранее спасибо за помощь
код модуля формы
[codebox]
Процедура ДействияФормыРейтингУслугСформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(РейтингУслуг)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
РейтингУслуг(ТабДок, Неопределено, ДатаКонца, ДатаНачала);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
Процедура РейтингУслуг(ТабДок, ВидыНоменклатуры, ДатаКонца, ДатаНачала) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(РейтингУслуг)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ОтчетОбъект.ПолучитьМакет("РейтингУслуг");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Услуга,
| СпрНоменклатура.Представление,
| ПродажиОбороты.ВыручкаОборот КАК Выручка
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаКонца,Месяц , ) КАК ПродажиОбороты
| ПО ПродажиОбороты.Номенклатура = СпрНоменклатура.Ссылка
|ГДЕ
| СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
| И СпрНоменклатура.ВидыНоменклатуры = &ВидыНоменклатуры
|
|УПОРЯДОЧИТЬ ПО
| Выручка УБЫВ";
Запрос.УстановитьПараметр("ВидыНоменклатуры", Перечисления.ВидыНоменклатуры.Услуга);
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры
[/codebox]