1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00
1c-homeworks/homework-6-3.md

41 lines
5.7 KiB
Markdown
Raw Normal View History

2020-07-07 07:19:52 +02:00
# Задание к занятию "Итоги и группировки"
2020-07-07 07:18:26 +02:00
2020-07-07 17:59:05 +02:00
## Задача "Реестр документов Поступление"
2020-07-07 07:19:52 +02:00
### Описание задачи
2020-07-07 15:44:55 +02:00
Создать внешнюю обработку РеестрДокументовПоступление. Обработка формирует и выводит на экран Текстовый документ с перечнем документов Поступление за указанный период. Возможные итоги регулируются настройками обработки.
2020-07-07 07:19:52 +02:00
### Требования к результату
2020-08-04 12:57:18 +02:00
Прикрепить .epf файл внешней обработки для формирования реестра документов Поступление. Выгрузить базу в .dt файл и прикрепить в качестве результата.
2020-07-07 07:19:52 +02:00
### Процесс выполнения
2020-07-07 15:44:55 +02:00
1. Использовать файл *.cf конфигурацию из прошлого задания.
2. Создать общий макет РеестрДокументовПоступление. Тип макета - текстовый документ. В макете добавить области:
* Для вывода периода формирования реестра;
* Для вывода детальных записей по документам Поступление. Выводить данные по ссылке документа, контрагенту и сумме документа;
2020-08-17 13:15:51 +02:00
* Для возможности отображения итогов по контрагенту и общих итогов. Итоги выводить после детальных записей. Если в обработке указана возможность выводить итоги по контрагенту
и детальные записи, то в детальных записях по документам должен контрагент отсутствовать. Общие итоги выводятся в конце отчета
2020-07-07 15:44:55 +02:00
3. Создать внешнюю обработку РеестрДокументвоПоступление, в которой:
2020-09-29 08:59:20 +02:00
* Добавить реквизиты формы:
- ДатаС и ДатаПо - тип дата. Разместить на форме в виде полей для выбора даты;
- ДетальныеЗаписи, ИтогиПоКонтрагенту и ОбщиеИтоги - тип булево и разместить на форме в виде флажков;
2020-07-07 18:10:59 +02:00
* Добавить команду Реестр и соответствующую кнопку разместить на форме;
2020-07-07 15:44:55 +02:00
* Для команды перекрыть действие в котором реализовать:
2020-09-29 09:07:41 +02:00
- если на форме не выбран ни один из флажков, то возврат и вывести подходящее сообщение;
2020-09-29 09:00:42 +02:00
- создать объект Запрос;
2020-09-29 08:59:20 +02:00
- анализировать значения реквизитов периода для формирования строки условия запроса. Например если ДатаС не заполнена, а ДатаПо заполнена пишем в строковую переменную
"ГДЕ Документ.Дата <=&ДатаПо". Также рассмотреть варианты когда обе даты не заполнены, обе даты заполнены или заполнена только ДатаС. Строку условия записываем в
переменную для конкатенации со строкой общего запроса;
2020-10-02 09:14:17 +02:00
- в этой же проверке устанавливаем используемые параметры для запроса. Например - для случая выше устанавливаем параметр только для ДатаПо -
Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));
- создать текст запроса, который может быть в двух вариантах. Проверяем условием. Если не установлен флажок ДетальныеЗаписи, а установлен ИтогиПоКонтрагенту, то
формировать текст запроса в виде группировки по контрагенту. Иначе формируем текст запроса в виде итогов по детальным записям. При установленном флажке
2020-10-02 09:15:10 +02:00
ИтогиПоКонтрагенту добавляем во второй вариант текст запроса итогов по контрагенту.
2020-10-02 09:14:17 +02:00
Если установлен флажок ОбщиеИтоги, добавляем в текст итоги по ОБЩИЕ в обеих вариантах текста запроса. Итоги считаются по сумме документа.
- Сделать в нужном месте (где применяется условие) операцию конкатенации строки запроса с переменной, которая содержит сформированную строку с условием по датам;
- выполнить обработку данных и вывод в макет;
- создать документы Поступление в системе различными датами и протестировать корректный вывод макета на экран;