Добавил решение блока 06
This commit is contained in:
41
06. Запросы и отчеты/03. Итоги и группировки/homework-6-3.md
Normal file
41
06. Запросы и отчеты/03. Итоги и группировки/homework-6-3.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Задание к занятию "Итоги и группировки"
|
||||
|
||||
## Задача "Реестр документов Поступление"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Создать внешнюю обработку РеестрДокументовПоступление. Обработка формирует и выводит на экран Табличный документ с перечнем документов Поступление за указанный период. Возможные итоги регулируются настройками обработки.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Прикрепить .epf файл внешней обработки для формирования реестра документов Поступление. Выгрузить базу в .dt файл и прикрепить в качестве результата.
|
||||
|
||||
### Процесс выполнения
|
||||
|
||||
1. Использовать файл *.cf конфигурацию из прошлого задания.
|
||||
2. Создать общий макет РеестрДокументовПоступление. Тип макета - табличный документ. В макете добавить области:
|
||||
* Для вывода периода формирования реестра;
|
||||
* Для вывода детальных записей по документам Поступление. Выводить данные по ссылке документа, контрагенту и сумме документа;
|
||||
* Для возможности отображения итогов по контрагенту и общих итогов. Итоги выводить после детальных записей. Если в обработке указана возможность выводить итоги по контрагенту
|
||||
и детальные записи, то в детальных записях по документам должен контрагент отсутствовать. Общие итоги выводятся в конце отчета
|
||||
3. Создать внешнюю обработку РеестрДокументвоПоступление, в которой:
|
||||
* Добавить реквизиты формы:
|
||||
- ДатаС и ДатаПо - тип дата. Разместить на форме в виде полей для выбора даты;
|
||||
- ДетальныеЗаписи, ИтогиПоКонтрагенту и ОбщиеИтоги - тип булево и разместить на форме в виде флажков;
|
||||
* Добавить команду Реестр и соответствующую кнопку разместить на форме;
|
||||
* Для команды определить действие в котором реализовать:
|
||||
- если на форме не выбран ни один из флажков, то возврат и вывести подходящее сообщение;
|
||||
- создать объект Запрос;
|
||||
- анализировать значения реквизитов периода для формирования строки условия запроса. Например если ДатаС не заполнена, а ДатаПо заполнена записываем в строковую
|
||||
переменную "ГДЕ Документ.Дата <=&ДатаПо". Также рассмотреть варианты когда обе даты не заполнены, обе даты заполнены или заполнена только ДатаС. Строку условия
|
||||
записываем в переменную для указания в качестве параметра в тексте основного запроса;
|
||||
- в этой же проверке устанавливаем используемые параметры для запроса. Например - для случая выше устанавливаем параметр для формирования условия
|
||||
и для ДатаПо - Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));
|
||||
- формировать строку для итогов.Если установлен флажок ОбщиеИтоги то записывать в переменную строку по общим итогам. Например - СтрокаИтоги = "ИТОГИ Сумма(СуммаДокумента)
|
||||
ПО ОБЩИЕ". Проверять если устовлен флажок детальные записи то в строку итогов добавлять итоги по контрагенту (при установленном флажке ИтогиПоКонтрагенту) и итоги по
|
||||
детальным записям. Передавать сформированную строку в качестве параметра в запрос.
|
||||
- создать текст запроса, который может быть в двух вариантах. Проверяем условием. Если не установлен флажок ДетальныеЗаписи, а установлен ИтогиПоКонтрагенту, то
|
||||
формировать текст запроса в виде группировки по контрагенту. Иначе формируем текст запроса в виде итогов по детальным записям. При установленном флажке
|
||||
ИтогиПоКонтрагенту добавляем во второй вариант текст запроса итогов по контрагенту. Добавить в запрос необходимые параметры для периода, формирования итогов и условий;
|
||||
- выполнить обработку данных и вывод в макет;
|
||||
- создать документы Поступление в системе различными датами и протестировать корректный вывод макета на экран;
|
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user