mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-16 07:10:14 +02:00
Модуль 6, задание 2, примеры для заданий 1 и 2
This commit is contained in:
parent
51ed61b0e1
commit
0260a681a8
BIN
Examples/img/example-6-1-1.png
Normal file
BIN
Examples/img/example-6-1-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
Examples/img/example-6-1-2.png
Normal file
BIN
Examples/img/example-6-1-2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
BIN
Examples/img/example-6-2-1.png
Normal file
BIN
Examples/img/example-6-2-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
@ -46,3 +46,11 @@
|
||||
Данное домашнее задание предназначено для самостоятельной практики. Проверка экспертом не предусмотрена.
|
||||
|
||||
Успешным выполнением считается появление статуса "Решение верно" для всех задач из диапазона 1.1. - 1.9.
|
||||
|
||||
Пример решенного задания:
|
||||
|
||||
![Пример списка задач](/Examples/img/example-6-1-2.png)
|
||||
|
||||
Для проверки статуса выполнения можно перейти в список заданий в разделе Главное. Примерный вид списка после выполнения задач:
|
||||
|
||||
![Пример решенного задания](/Examples/img/example-6-1-1.png)
|
@ -1,60 +1,65 @@
|
||||
# Задание к занятию "Условия и подзапросы"
|
||||
# Задание к занятию "Основы запросов"
|
||||
|
||||
## Задача № 1 "Отбор номенклатуры при обновлении цен в документе Реализация"
|
||||
*Примерное время выполнения: 90 минут*
|
||||
|
||||
Все задачи обязательны к выполнению. Проверка автоматическая в тренажере.
|
||||
|
||||
Любые вопросы по решению задач задавайте в чате учебной группы.
|
||||
|
||||
## Цель задания
|
||||
|
||||
1. Научиться применять базовый конструкции языка при написании запросов.
|
||||
|
||||
Данная практика научит вас указывать какие поля должны быть в результирующей таблице запроса, выбирать источник данных, упорядочивать строки результата запроса, выбирать часть записей и накладывать простые отборы.
|
||||
|
||||
## Чеклист готовности к домашнему заданию
|
||||
|
||||
- [ ] Установить учебную платформа версии 8.3.22 или больше.
|
||||
|
||||
## Инструкция к заданию
|
||||
|
||||
1. Изучите структуру конфигурации в конфигураторе. Какие есть справочники, документы, регистры. Как они друг с другом связаны.
|
||||
2. Запустите пользовательский режим и для задач 2.1 - 2.5 составьте текст запроса, удовлетворяющий условиям.
|
||||
3. Проверьте текст запроса через встроенный механизм проверки.
|
||||
4. Реализуйте алгоритм для работы обработки "2.6. Динамический текст запроса"
|
||||
|
||||
## Задача 1 "Решение задач 2.1 - 2.5 самоучителя запросов"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Изменить процедуру для команды "Обновить цены" документа Реализация. Перечень номенклатуры получать не передачей элементов массива, а используя вложенный запрос к табличной части текущего документа.
|
||||
Составьте тексты запросов, удовлетворящих условиям задач в тренажере.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Выгрузка информационной базы (.dt) с конфигурацией из прошлого задания в котором внести изменения для получения перечня элементов номенклатуры вложенным запросом к табличной части документа Реализация.
|
||||
В поле статуса каждой задачи должно быть указано "Решение верно".
|
||||
|
||||
### Процесс выполнения
|
||||
1. Создайте новую информационную базу и загрузить в нее [выгрузку тренажера](/simulator/queries.dt). Либо используйте базу, полученную по итогам предыдущего задания.
|
||||
3. Запустите базу в пользовательском режиме.
|
||||
4. Подготовьте текст запроса, удовлетворяющий заданию, в поле "Решение"
|
||||
- Условие задания выводится справа от поля "Решение"
|
||||
- Для подготовки текста запроса можно воспользоваться конструктором запросов
|
||||
5. Проверьте решение с помощью команды "Проверить"
|
||||
6. Перейдите к следующей задаче с помощью команды "Далее >>"
|
||||
- Можно перейти к произвольному заданию нажав на название текущего задания
|
||||
|
||||
1. Использовать файл *.cf конфигурацию из прошлого задания.
|
||||
2. В форме документа Реализация для серверной процедуры команды Обновить цены внести следующие изменения:
|
||||
|
||||
* Убрать заполнение массива элементов номенклатуры;
|
||||
* Для запроса получения цен убрать заполнение параметра СписокНоменклатуры;
|
||||
* В конструкторе запроса в параметрах виртуальной таблицы в поле условие удалить предыдущее условие и вместо него -
|
||||
- вызвать конструктор запроса в поле условие;
|
||||
- построить запрос к табличной части документа Реализация с выборкой одного поля Номенклатура.Ссылка;
|
||||
- В операторе ГДЕ указать параметр для отбора определенной ссылки документа реализация;
|
||||
- Нажать на ОК. Полученый текст запроса использовать для условия отбора измерения Номенклатура;
|
||||
* Для запроса добавить установку параметра документа реализации текущей ссылкой, при этом проверять чтобы ссылка была не пустая;
|
||||
* Если ссылка пустая то Возврат;
|
||||
3. Проверить заполнение цен для всех товаров из табличной части документа Реализация нажатием на кнопку Обновить цены.
|
||||
|
||||
## Задача № 2 "Заполнение строк табличной части по отбору в документе Реализация"
|
||||
## Задача 2 "Динамический текст запроса"
|
||||
|
||||
### Описание задачи
|
||||
|
||||
Добавить команду "Заполнить строки" в табличной части документа Реализация. При заполнении добавить возможность отбора по родителю (с учетом иерархии) и диапазону цен. Заполнять номенклатуру и цены из регистра Цены номенклатуры.
|
||||
Реализуйте алгоритм, составляющий динамический текст запроса в зависимости от установленных пользователем флажкой в группе Поля и заполненных отборов.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Прикрепить .dt файл с внесенными изменениями по реализации заполнения табличной части документа Реализация из регистра сведений Цены номенклатура по отбору.
|
||||
В обработке должен формироваться корректный табличный документ в зависимости от установленных флажков.
|
||||
|
||||
### Процесс выполнения
|
||||
1. Используйте базу из предыдущего задания
|
||||
2. Откройте в конфигураторе форму обработки Задание_2_6 и реализуйте в процедуре "ЗаполнитьТекстИПараметрыЗапроса" алгоритм формирования текста запроса и установки параметров в зависимости от введенных пользователем данных. Подсказки для реализации содержаться в комментарии внутри процедуры.
|
||||
3. Запустите приложение в пользовательском режиме, перейдите в раздел "Дополнительные задания" и нажмите на ссылку "2.6. Динамический текст запроса". Попробуйте 5 разных комбинаций флажков и отборов, убедитесь, что каждый сформированный отчет соответствует установленным настройкам.
|
||||
|
||||
* В Конфигураторе добавить обработку ЗаполнениеНоменклатуры. В обработке -
|
||||
- создать форму и реквизиты формы ГруппаТовара - тип справочник Номенклатура с возможностью выбора только групп,
|
||||
ЦенаС, ЦенаПо - тип такой же как у ресурса Цена в регистре сведений Цены номенклатуры;
|
||||
- Разместить реквизиты на форме;
|
||||
- Cоздать серверную функцию ПриЗакрытииНаСервере();
|
||||
- В функции ПриЗакрытииНаСервере - создать запрос. Текст запроса выбирает последние цены на дату документа Реализация из регистра сведений Цены номенклатуры. Условие в срезе
|
||||
текста запроса формировать динамически в зависимости от значений реквизитов - ГруппаТовара, ЦенаС, ЦенаПо. При этом возможны варианты - заполнена или не заполнена группа
|
||||
номенклатуры. ЦенаС должна быть меньше чем ЦенаПо, иначе не формировать запрос и вывести соответствующее сообщение. Если группа товара заполнена, то выбирать только товары, которые расположены в иерархии выбранной группы (выбранная группа является родителем или цепочка родителей ведет к выбранной группе). Если не заполнена группа товара, то отбирать цены для всего товара без привязки к группе.
|
||||
Так же в зависимости от этих условий устанавливать необходимые параметры запроса.
|
||||
Создать структуру с элементами Номенклатура, Цена. В цикле заполнить массив структур из результата выборки запроса;
|
||||
- Добавить команду Заполнить и соответственно кнопку на форму. При нажатии на кнопку вызвать последовательно - команду Закрыть(), серверную функцию ПриЗакрытииНаСервере(),
|
||||
которая возвращает заполненный массив структур. Далее вызвать команду ОповеститьОВыборе() с передачей массива структур в качестве параметра;
|
||||
|
||||
* Для командной панели табличной части документа Реализация добавить команду ЗаполнитьСтроки и соответственно кнопку;
|
||||
* Переопределить событие для команды ЗаполнитьСтроки в котором реализовать открытие формы обработки ЗаполнениеНоменклатуры. В команде ОткрытьФорму() передавать в качестве владельца форму текущего документа;
|
||||
* Для формы документа перекрыть событие ОбработкаВыбора на клиенте и реализовать заполнение табличной части документа из полученного массива структур в параметре
|
||||
ВыбранноеЗначение. Заполнять значения для реквизитов Номенклатура и Цена;
|
||||
* Протестировать - заполнить в регистр сведений строки и проверить заполнение строк ТЧ документа Реализация нажатием на кнопку ЗаполнитьСтроки и установкой различных вариантов значений реквизитов формы обработки ЗаполнениеНоменклатуры.
|
||||
|
||||
### Подсказка: [результат выполнения домашнего задания](Examples/homework-6-2-example.md)
|
||||
## Критерии оценки
|
||||
|
||||
Данное домашнее задание предназначено для самостоятельной практики. Проверка экспертом не предусмотрена.
|
||||
|
||||
Успешным выполнением считается появление статуса "Решение верно" для всех задач из диапазона 2.1. - 2.5 и самостоятельной проверки корректной работы обработки "2.6. Динамический текст запроса".
|
||||
|
||||
Примерный вид результата работы обработки "2.6. Динамический текст запроса":
|
||||
|
||||
![Пример работы обработки](/Examples/img/example-6-2-1.png)
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user