Изначально отчет был сформирован конструктором, затем возникла проблема с отображением строки с годом, что привело к следующему
Процедура ВыполнениеЗаявкиИнициализация()
ЧислоСтрокой = "00";
Для N = 0 По 99 Цикл
ЧислоСтрокой = ЧислоСтрокой + Формат(N,"ЧЦ=2; ЧВН=");
КонецЦикла;
ПостроительОтчетаВыполнениеЗаявки.Текст =
"ВЫБРАТЬ
| ВыполнениеЗаявкиСрезПоследних.Заявка КАК Заявка,
| ВыполнениеЗаявкиСрезПоследних.Клиент КАК Клиент,
| ""Заявка №20"" + ПОДСТРОКА(""" + ЧислоСтрокой + """, (ГОД(ВыполнениеЗаявкиСрезПоследних.Заявка.Дата) - 2000) * 2 + 1, 2) + ""-"" + ВыполнениеЗаявкиСрезПоследних.Заявка.Номер + "" от "" + ВыполнениеЗаявкиСрезПоследних.Клиент.Наименование КАК ЗаявкаКлиент,
| ВыполнениеЗаявкиСрезПоследних.ОбъектЗаявки КАК ОбъектЗаявки,
| ВыполнениеЗаявкиСрезПоследних.Регистратор,
| ПРЕДСТАВЛЕНИЕ(ВыполнениеЗаявкиСрезПоследних.Состояние) КАК СостояниеСобытие
|{ВЫБРАТЬ
| ЗаявкаКлиент,
| ОбъектЗаявки.*,
| Регистратор.*,
| СостояниеСобытие}
|ИЗ
| РегистрСведений.ВыполнениеЗаявки.СрезПоследних КАК ВыполнениеЗаявкиСрезПоследних
|
|СГРУППИРОВАТЬ ПО
| ВыполнениеЗаявкиСрезПоследних.Заявка,
| ВыполнениеЗаявкиСрезПоследних.Клиент,
| ""Заявка №20"" + ПОДСТРОКА(""" + ЧислоСтрокой + """, (ГОД(ВыполнениеЗаявкиСрезПоследних.Заявка.Дата) - 2000) * 2 + 1, 2) + ""-"" + ВыполнениеЗаявкиСрезПоследних.Заявка.Номер + "" от "" + ВыполнениеЗаявкиСрезПоследних.Клиент.Наименование,
| ВыполнениеЗаявкиСрезПоследних.ОбъектЗаявки,
| ВыполнениеЗаявкиСрезПоследних.Регистратор,
| ПРЕДСТАВЛЕНИЕ(ВыполнениеЗаявкиСрезПоследних.Состояние)
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| СобытияПоЗаявке.Заявка,
| СобытияПоЗаявке.Заявка.Клиент,
| ""Заявка №20"" + ПОДСТРОКА(""" + ЧислоСтрокой + """, (ГОД(СобытияПоЗаявке.Заявка.Дата) - 2000) * 2 + 1, 2) + ""-"" + СобытияПоЗаявке.Заявка.Номер + "" от "" + СобытияПоЗаявке.Заявка.Клиент.Наименование,
| СобытияПоЗаявке.ОбъектЗаявки,
| СобытияПоЗаявке.Регистратор,
| ПРЕДСТАВЛЕНИЕ(СобытияПоЗаявке.Регистратор.ВидСобытия)
|ИЗ
| РегистрСведений.СобытияПоЗаявке КАК СобытияПоЗаявке
|
|СГРУППИРОВАТЬ ПО
| СобытияПоЗаявке.Заявка,
| СобытияПоЗаявке.Заявка.Клиент,
| ""Заявка №20"" + ПОДСТРОКА(""" + ЧислоСтрокой + """, (ГОД(СобытияПоЗаявке.Заявка.Дата) - 2000) * 2 + 1, 2) + ""-"" + СобытияПоЗаявке.Заявка.Номер + "" от "" + СобытияПоЗаявке.Заявка.Клиент.Наименование,
| СобытияПоЗаявке.ОбъектЗаявки,
| СобытияПоЗаявке.Регистратор,
| ПРЕДСТАВЛЕНИЕ(СобытияПоЗаявке.Регистратор.ВидСобытия)
|
|УПОРЯДОЧИТЬ ПО
| Заявка,
| Клиент,
| ЗаявкаКлиент,
| ОбъектЗаявки
|{УПОРЯДОЧИТЬ ПО
| Заявка.*,
| Клиент.*,
| ЗаявкаКлиент,
| ОбъектЗаявки.*}
|ИТОГИ ПО
| Заявка,
| Клиент,
| ЗаявкаКлиент,
| ОбъектЗаявки
|{ИТОГИ ПО
| Заявка.*,
| Клиент.*,
| ЗаявкаКлиент,
| ОбъектЗаявки.*}";
ПостроительОтчетаВыполнениеЗаявки.ЗаполнитьНастройки();
ПостроительОтчетаВыполнениеЗаявки.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
ПостроительОтчетаВыполнениеЗаявки.ТекстЗаголовка = "Выполнение заявки";
Настройка = 841-4294-aeb6-dc93ad37f1bc");
Если Настройка <> Неопределено Тогда
ПостроительОтчетаВыполнениеЗаявки.УстановитьНастройки(Настройка);
КонецЕсли;
КонецПроцедуры
В целом отчет работает, НО:
- При первом формировании нет поля ЗаявкаКлиент и его можно вывести только через настройку - почему?
- Сортировка идет как-то странно:
- Заявка №2010-000000001 от 777
- Заявка №2011-000000001 от 777
- Заявка №2010-000000002 от 777
- Заявка №2011-000000001 от 777
Т.е. в сортировке также не учитывается это поле и лечится опять же только ручным ковырянием настроек...
Помогите понять и исправить!
И еще - есть ли способ вывести из отчета код формирования строки с годом? - пока не нашел...