42 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Задание к занятию "Итоги и группировки"
## Задача "Реестр документов Поступление"
### Описание задачи
Создать внешнюю обработку РеестрДокументовПоступление. Обработка формирует и выводит на экран Табличный документ с перечнем документов Поступление за указанный период. Возможные итоги регулируются настройками обработки.
### Требования к результату
Прикрепить .epf файл внешней обработки для формирования реестра документов Поступление. Выгрузить базу в .dt файл и прикрепить в качестве результата.
### Процесс выполнения
1. Использовать файл *.cf конфигурацию из прошлого задания.
2. Создать общий макет РеестрДокументовПоступление. Тип макета - табличный документ. В макете добавить области:
* Для вывода периода формирования реестра;
* Для вывода детальных записей по документам Поступление. Выводить данные по ссылке документа, контрагенту и сумме документа;
* Для возможности отображения итогов по контрагенту и общих итогов. Итоги выводить после детальных записей. Если в обработке указана возможность выводить итоги по контрагенту
и детальные записи, то в детальных записях по документам должен контрагент отсутствовать. Общие итоги выводятся в конце отчета
3. Создать внешнюю обработку РеестрДокументвоПоступление, в которой:
* Добавить реквизиты формы:
- ДатаС и ДатаПо - тип дата. Разместить на форме в виде полей для выбора даты;
- ДетальныеЗаписи, ИтогиПоКонтрагенту и ОбщиеИтоги - тип булево и разместить на форме в виде флажков;
* Добавить команду Реестр и соответствующую кнопку разместить на форме;
* Для команды определить действие в котором реализовать:
- если на форме не выбран ни один из флажков, то возврат и вывести подходящее сообщение;
- создать объект Запрос;
- анализировать значения реквизитов периода для формирования строки условия запроса. Например если ДатаС не заполнена, а ДатаПо заполнена записываем в строковую
переменную "ГДЕ Документ.Дата <=&ДатаПо". Также рассмотреть варианты когда обе даты не заполнены, обе даты заполнены или заполнена только ДатаС. Строку условия
записываем в переменную для указания в качестве параметра в тексте основного запроса;
- в этой же проверке устанавливаем используемые параметры для запроса. Например - для случая выше устанавливаем параметр для формирования условия
и для ДатаПо - Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));
- формировать строку для итогов.Если установлен флажок ОбщиеИтоги то записывать в переменную строку по общим итогам. Например - СтрокаИтоги = "ИТОГИ Сумма(СуммаДокумента)
ПО ОБЩИЕ". Проверять если устовлен флажок детальные записи то в строку итогов добавлять итоги по контрагенту (при установленном флажке ИтогиПоКонтрагенту) и итоги по
детальным записям. Передавать сформированную строку в качестве параметра в запрос.
- создать текст запроса, который может быть в двух вариантах. Проверяем условием. Если не установлен флажок ДетальныеЗаписи, а установлен ИтогиПоКонтрагенту, то
формировать текст запроса в виде группировки по контрагенту. Иначе формируем текст запроса в виде итогов по детальным записям. При установленном флажке
ИтогиПоКонтрагенту добавляем во второй вариант текст запроса итогов по контрагенту. Добавить в запрос необходимые параметры для периода, формирования итогов и условий;
- выполнить обработку данных и вывод в макет;
- создать документы Поступление в системе различными датами и протестировать корректный вывод макета на экран;