diff --git a/homework-6-7.md b/homework-6-7.md index 265887a..14c60fb 100644 --- a/homework-6-7.md +++ b/homework-6-7.md @@ -1,41 +1,54 @@ # Задание к занятию "Работа с СКД" -Данное задание является необязательным. Вы может его выполнить, чтобы лучше разобраться в теме. +Все задачи обязательны к выполнению. Любые вопросы по решению задач задавайте в чате учебной группы. -## Задача "Отчет Продажи по контрагентам" +## Цель задания + +1. Научиться формировать отчеты с использованием СКД + +## Чеклист готовности к домашнему заданию + +- [ ] Установить платформу 1С:Предприятие версии 8.3.22 или больше. + +## Задача 1 (со звёздочкой) Анализ выгрузки ### Описание задачи - -Создать отчет Продажи по контрагентам на СКД. Запрос используем из предыдущего задания. Добавляем набор данных - объект. Имя набора данных - ОтчетПоПродажам. -Из модуля отчета организовать заполнение отчета из таблицы значений с возможностью выполнения расшифровки. +Партнер передает информацию о продажах наших товаров за период в виде архива. Необходимо реализовать отчет для анализа данных архива, предоставленных партнером. ### Требования к результату - -В отчете вместо набора данных Запрос использовать набор данных Объект. Переопределить событие (создать обработку события) ПриКомпоновкеРезультата модуля объекта отчета для передачи ТЗ в СКД. Прикрепить файл внешнего отчета и выгрузку информационной базы (.dt). - +Внешний отчет, который позволяет выбрать архив, получает из него данные и формирует отчет. ### Процесс выполнения +1. Скачайте и изучите [Пример архива](reference-data/export.zip), который отправляет поставщик +2. Создайте внешний отчет, добавьте реквизит отчета АдресДанных, тип - строка. +3. Создайте форму внешнего отчета, добавьте на форму команду Загрузить данные. При выполнении команды необходимо предлагать пользователю выбрать zip-файл, когда файл выбрать - сохранять его во временном хранилище. Адрес временного хранилища необходимо сохранить в реквизите отчета АдресДанных. +4. Назначьте обработчик события ПриКомпоновкеРезультата в модуле объекта отчета и реализуйте алгоритм: + - Отключите стандартную обработку + - Проверьте заполнения АдресаДанных - если он пустой необходимо показать ошибку "Для формирования отчета необходимо выбрать файл архива" + - Получите архив из временного хранилища + - Получите имя временного файла и создайте новый каталог с этим именем с помощью методов ПолучитьИмяВременногоФайла() и СоздатьКаталог() + - Распакуйте архив в новый каталог с помощью объекта ЧтениеZipФайла + - Создайте таблицу значений для хранения данных файлов, добавьте колонки исходя из содержимого файлов и целевого внешнего вида отчета + - Найдите все файлы в каталоге с помощью метода НайтиФайлы() + - Прочитайте данные каждого файла с помощью Табличного документа и добавьте эти данные в таблицу значений + - Удалите временные файлы + - Сформируйте отчет программно вызывая объекты СКД с передачей сформированной таблицы значений как внешнего набора данных +5. Создайте Основную схему компоновки данных + - Добавьте в качества источника НаборДанных: Объект + - Заполните колонки набора данных исходя из целевого внешнего вида отчета + - Заполните ресурсы исходя из целевого внешнего вида отчета + - Заполните настройки отчета исходя из целевого внешнего вида +6. Проотестируйте работу отчета + - Откройте отчет в любой информационной базе + - Выберите в качестве файла [Пример архива](reference-data/export.zip) + - Сформируйте отчет и сравните с примеров внешнего вида отчета -1. Изменяем внешний отчета из прошлого задания; -2. Перекрыть событие ПриКомпоновкеРезультата() в модуле отчета. Убрать стандартную обработку; -3. Создать запрос с текстом из предыдущего задания с параметром ограничения по дате; -3. Получаем настройки компоновщика настроек. Создаем объект - ПараметрКомпоновкиДанных и из коллекции ПараметрыДанных - из полученных настроек функцией НайтиЗначениеПараметра() возвращаем объект ЗначениеПараметраКомпоновкиДанных и устанавливаем значение параметра для запроса - свойством Значение; -4. Выгружаем результат запроса в таблицу значений; -5. Для доступа к расшифровке в отчете - использовать параметр события ДанныеРасшифровки() при вызвове метода Выполнить() компоновщика макета - и Инициализировать() процессора компоновки данных. -6. Создаем объект КомпоновщикМакетаКомпоновкиДанных и функцией Выполнить() возвращаем результат в переменную. -7. Создаем структуру - Название объекта в СКД и таблица значений с данными; -8. Создаем и инициализируем объект ПроцессорКомпоновкиДанных; -9. Очищаем параметр ДокументРезультат; -10. Через объект ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент устанавливаем ДокументРезультат и выводим объект ПроцессорКомпоновкиДанных; -11. В схеме компоновки данных добавляем набор данных - объект; -12. Задаем имя объекта которое совпадает с наименованием ключа структуры с ТЗ; -13. Создаем поля на вкладке Наборы данных - количество и имена полей должны совпадать с колонками переданной таблицы значений; -14. Определяем правильный тип полей; -15. Делаем настройки для полей как в прошлом задании; -16. Проверяем формирование отчета в пользовательском режиме. +### Пример внешнего вида отчета +![Пример внешнего вида отчета](img/homework-6-7-1.png) -### Подсказка: [результат выполнения домашнего задания](Examples/homework-6-7-example.md) +## Критерии оценки + +Домашнее задание проверяется экспертом. + +Успешным выполнением считается корректно реализованный отчет "Анализ выгрузки" \ No newline at end of file diff --git a/img/homework-6-7-1.png b/img/homework-6-7-1.png new file mode 100644 index 0000000..eb101cc Binary files /dev/null and b/img/homework-6-7-1.png differ diff --git a/reference-data/export.zip b/reference-data/export.zip new file mode 100644 index 0000000..07d7f6b Binary files /dev/null and b/reference-data/export.zip differ