1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2025-11-23 22:22:23 +02:00

Домашние задания 6.1 - 6.6

This commit is contained in:
Matvey Seregin
2023-06-11 21:20:24 +03:00
parent 1af5ea58bb
commit 6f4316495f
8 changed files with 138 additions and 69 deletions

View File

@@ -29,7 +29,7 @@
### Процесс выполнения
1. Создайте новую информационную базу.
2. Загрузить в нее [выгрузку тренажера](/simulator/queries.dt)
2. Загрузите в нее [выгрузку тренажера](/simulator/queries.dt)
3. Запустите базу в пользовательском режиме.
4. Подготовьте текст запроса, удовлетворяющий заданию, в поле "Решение"
- Условие задания выводится справа от поля "Решение"

View File

@@ -31,7 +31,7 @@
В поле статуса каждой задачи должно быть указано "Решение верно".
### Процесс выполнения
1. Создайте новую информационную базу и загрузить в нее [выгрузку тренажера](/simulator/queries.dt). Либо используйте базу, полученную по итогам предыдущего задания.
1. Используйте базу, полученную по итогам предыдущего задания.
3. Запустите базу в пользовательском режиме.
4. Подготовьте текст запроса, удовлетворяющий заданию, в поле "Решение"
- Условие задания выводится справа от поля "Решение"

View File

@@ -14,9 +14,9 @@
## Инструкция к заданию
1. Изучите структуру конфигурации в конфигураторе. Какие есть справочники, документы, регистры. Как они друг с другом связаны.
2. Запустите пользовательский режим и для задач 3.1 - 3.5 составьте текст запроса, удовлетворяющий условиям.
2. Запустите пользовательский режим и для задач 3.1 - 3.4 составьте текст запроса, удовлетворяющий условиям.
3. Проверьте текст запроса через встроенный механизм проверки.
4. Реализуйте алгоритм для работы обработки "2.6. Динамический текст запроса"
4. Реализуйте алгоритм для работы обработки "3.5. Ежемесячные документы"
## Задача 1 "Решение задач 3.1 - 3.4 самоучителя запросов"
@@ -27,7 +27,7 @@
В поле статуса каждой задачи должно быть указано "Решение верно".
### Процесс выполнения
1. Создайте новую информационную базу и загрузить в нее [выгрузку тренажера](/simulator/queries.dt). Либо используйте базу, полученную по итогам предыдущего задания.
1. Используйте базу, полученную по итогам предыдущего задания.
3. Запустите базу в пользовательском режиме.
4. Подготовьте текст запроса, удовлетворяющий заданию, в поле "Решение"
- Условие задания выводится справа от поля "Решение"
@@ -48,9 +48,9 @@
1. Используйте базу из предыдущего задания
2. Откройте в конфигураторе модуль объекта обработки Задание_3_5 и реализуйте в процедуре "ЗаполнитьСписокДоговоров" алгоритм заполнения табличной части обработки. Подсказки для реализации содержатся в комментарии внутри процедуры:
1. Необходимо выбрать все договоры с типом Абонентская плата. Если заполнено поле ОтборОтветственный, то необходимо выбирать только те договоры, в которых этот сотрудник указан ответственным.
2. Если в месяце, указанном в поле Период была создана продажа с предопределенной номенклатурой Абонентская плата, то в поле Продажа вывести ссылку на эту продажу. Если продаж несколько, то договоры не должны дублироваться.
3. Если продажи нет или если в продаже сумма отличается от суммы в константе. Размер абонентской платы, то поставить флажок Создать продажу
4. Вся подготовка данных должна выполняться в одном запросе. Не следует реализовывать постобработку, например, получать значение константы или проставлять флажок СоздатьПродажу
2. Если в месяце, указанном в поле Период была создана продажа с предопределенной номенклатурой Абонентская плата, то в поле Продажа вывести ссылку на эту продажу. Если продаж несколько, то договоры не должны дублироваться, в поле продажа можно вывести любой документ из введенных по этому договору за этот период.
3. Если продажи нет или если в продаже сумма отличается от суммы в константе "Размер абонентской платы", то поставить флажок Создать продажу
4. Вся подготовка данных должна выполняться в одном запросе. Не следует реализовывать постобработку, например, получать значение константы или расчитывать алгоритмом на встроенном языке значение флажка СоздатьПродажу
3. Запустите приложение в пользовательском режиме, перейдите в раздел "Дополнительные задания" и нажмите на ссылку "3.5. Ежемесячные документы". Протестируйте работу обработки на данных июня 2023г. Убедитесь, что если для договора в указанном периоде создана продажа с корректной суммой, то флажок СоздатьПродажу не устанавливается.
## Критерии оценки

View File

@@ -1,39 +1,47 @@
# Задание к занятию "Объединения и подзапросы"
## Задача "Информация по контрагенту"
Данное задание является самостоятельным. Проверка автоматическая в тренажере.
Любые вопросы по решению задач задавайте в чате учебной группы.
Любые вопросы по решению задач задавайте в чате учебной группы.
## Цель задания
1. Научиться применять объединения и подзапросы.
2. Научиться обращаться к виртуальным таблицам регистров.
## Чеклист готовности к домашнему заданию
- [ ] Установить платформу 1С:Предприятие версии 8.3.22 или больше.
## Инструкция к заданию
1. Изучите структуру конфигурации в конфигураторе. Какие есть справочники, документы, регистры. Как они друг с другом связаны.
2. Запустите пользовательский режим и для задач 4.1 - 4.8 составьте текст запроса, удовлетворяющий условиям.
3. Проверьте текст запроса через встроенный механизм проверки.
## Задача 1 "Решение задач 4.1 - 4.8 самоучителя запросов"
### Описание задачи
Создать внешнюю обработку ИнформацияПоКонтрагенту. Обработка формирует и выводит на экран Табличный документ с информацией по контрагенту. В обработке выбирается контрагент для формирования информации.
Составьте тексты запросов, удовлетворящих условиям задач в тренажере.
### Требования к результату
Прикрепить .epf файл внешней обработки для формирования информации по контрагенту и .dt выгруженной базы с данными.
В поле статуса каждой задачи должно быть указано "Решение верно".
### Процесс выполнения
1. Используйте базу, полученную по итогам предыдущего задания.
3. Запустите базу в пользовательском режиме.
4. Подготовьте текст запроса, удовлетворяющий заданию, в поле "Решение"
- Условие задания выводится справа от поля "Решение"
- Для подготовки текста запроса можно воспользоваться конструктором запросов
5. Проверьте решение с помощью команды "Проверить"
6. Перейдите к следующей задаче с помощью команды "Далее >>"
- Можно перейти к произвольному заданию, нажав на название текущего задания
1. Сформировать внешнюю обработку ИнформацияПоКонтрагенту.epf.
2. В обработку добавить реквизит формы Контрагент с типом Справочники.Контрагенты.
3. В конфигурацию добавить общий макет ИнформацияПоКонтрагенту типа табличный документ.
4. Создать команду Вывести информацию и соответствующую кнопку на форму.
5. Перекрыть действие команды и реализовать следующее:
* Если реквизит Контрагент не заполнен, выдавать соответствующее сообщение и дальше не продолжать;
* Создать текст запроса который будет посекционно выводить информацию по выбранному контрагенту в общий макет ИнформацияПоКонтрагенту;
* В первую секцию выводить наименование контрагента, ИНН, и КПП из справочника Контрагенты;
* Во вторую секцию выводить контактную информацию по контрагенту из табличной части КонтактнаяИнформация из справочника Контрагенты;
* Будем считать что контрагент является и поставщиком и покупателем. Поэтому в третью секцию выводить Товар, Количество проданного товара и Количество поступившего
товара из документов Поступление и Реализация;
* При формировании текста запроса учитывать следующие особенности:
- использовать один запрос;
- для получения контактной информации использовать ЛЕВОЕ СОЕДИНЕНИЕ, чтобы получить сведения о контрагентах и без контактной информации;
- товар в запросе должен быть объединен в одну колонку как для продажи так и для поступления;
- для получения количества проданного и поступившего товара использовать ПОЛНОЕ СОЕДИНЕНИЕ в подзапросе по товару;
- При полном соединении не должны присутствовать значения Null;
- Правильно использовать группировки и агрегатные функции в подзапросе;
- для соединения с подзапросом установить связь со справочником Контрагенты используя ВНУТРЕННЕЕ СОЕДИНЕНИЕ;
- Результат запроса можно обрабатывать только на свертку через выгрузку в таблицу значений;
6. Создать примеры в справочниках и документах. Протестировать формирование табличный документа.
7. Для реализации и поступления тестировать на нескольких документах. Товары в табличной части должны отличаться.
При решении задач учитывайте, что необходимо максимально использовать параметры виртуальных таблиц регистров. Использование отбора в секции ГДЕ вместо параметров виртуальной таблицы будет считаться ошибкой.
### Подсказка: [результат выполнения домашнего задания](Examples/homework-6-4-example.md)
## Критерии оценки
Домашнее задание проверяется экспертом.
Успешным выполнением считается появление статуса "Решение верно" для всех задач из диапазона 4.1. - 4.8

View File

@@ -1,29 +1,63 @@
# Задание к занятию "Временные таблицы и пакетные запросы"
## Задача "Скидки для Реализации"
Все задачи обязательны к выполнению.
Любые вопросы по решению задач задавайте в чате учебной группы.
## Цель задания
1. Научиться использовать временные таблицы и пакеты запросов
## Чеклист готовности к домашнему заданию
- [ ] Установить платформу 1С:Предприятие версии 8.3.22 или больше.
## Инструкция к заданию
1. Изучите структуру конфигурации в конфигураторе. Какие есть справочники, документы, регистры. Как они друг с другом связаны.
2. Реализуйте алгоритм расчета себестоимости при продаже товаров.
3. Запустите пользовательский режим и для задач 5.1 - 5.3 составьте текст запроса, удовлетворяющий условиям.
4. Проверьте текст запроса через встроенный механизм проверки.
## Задача 1 "Расчет себестоимости товаров"
### Описание задачи
Создать простой механизм подстановки скидки в табличную часть документа Реализация. Сумму рассчитывать с учетом скидки.
Необходимо реализовать возможность хранения и расчета себестоимости для остатков товаров
### Требования к результату
Прикрепить .dt выгруженной базы с данными.
В регистре сведений Остатки товаров добавлен ресурс Сумма. В документах Покупка и Продажа реализован алгоритм заполнения этого ресурса при проведении.
### Процесс выполнения
1. Используйте базу, полученную по итогам предыдущего задания.
2. Добавить в регистр накопления Остатки товаров ресурс Сумма - Число (15, 2), Неотриательное.
3. Добавить в обработку проведения документа Покупка заполнение ресурса Сумма при проведении. Сумма заполняется соответствующим значением из табличной части.
4. Переработать обработку проведения документа Продажа:
- Перед выполнением запроса к базе данных необходимо записать пустой набор движений в регистр Остатки товаров.
- В запросе необходимо получить остатки на дату документа по количеству и сумме.
- Если товара не хватает, то не даем проводить документ. Пользователю выводим соообщение с информацией о том какого товара в каком количестве не хватает. Сообщение должно быть привязано к ячейке таблицы, в которую введено количество недостающего товара.
- При формировании движений необходимо рассчитывать себестоимость как "СуммаОстаток / КоличествоОстаток * Количество".
- Необходимо учитывать, что в документе может быть несколько строк с одним и тем же товаров.
- Необходимо учитывать проблему копеек при расчете себестоимости, то есть если количество товара в документе равно остатку, то списываемую сумму не вычисляем математически, а просто списываем полный остаток.
- В ресурс Сумма записываем рассчитанную себестоимость товара, который продаем.
1. Создать простой справочник Номенклатурная группа без иерархии.
2. В справочник номенклатура добавить реквизит Номенклатурная группа.
3. Создать документ "Скидки номенклатуры". В шапку вывести дату и номер документа.
4. Добавить табличную часть документа с реквизитами - Объект - составного типа (Номенклатурная группа, Номенклатура), Процент скидки - тип числовой.
5. Добавить периодический регистр сведений Скидки номенклатуры с измерением Объект (тип как в документе) и ресурсом Процент скидки.
6. Делать движения в регистр при проведении документа Скидки номенклатуры;
7. В табличную часть документа Реализация добавить реквизит Автоматическая скидка.
8. В табличную часть добавить команду Применить скидку. В этом случае реализовать:
* Если для номенклатуры из табличной части документа, установлена скидка в регистре сведений на дату документа, то заполнять ее в поле
Автоматическая скидка и пересчитывать сумму с учетом скидки;
* Если для номенклатуры не установлена скидка, а установлена для номенклатурной группы то применять скидку для номенклатурной группы.
Имеется ввиду значение скидки для реквизита Номенклатурная группа Номенклатуры в табличной части документа;
* Поиск скидок осуществлять через временные таблицы пакетного запроса с использованием менеджера временных таблиц;
## Задача 2 (со звёздочкой) "Решение задач 5.1 - 5.3 самоучителя запросов"
### Подсказка: [результат выполнения домашнего задания](Examples/homework-6-5-example.md)
### Описание задачи
Составьте тексты запросов, удовлетворящих условиям задач в тренажере.
### Требования к результату
В поле статуса каждой задачи должно быть указано "Решение верно".
### Процесс выполнения
1. Запустите базу в пользовательском режиме.
2. Подготовьте текст запроса, удовлетворяющий заданию, в поле "Решение" для задание 5.1 - 5.3
- Условие задания выводится справа от поля "Решение"
- Для подготовки текста запроса можно воспользоваться конструктором запросов
3. Проверьте решение с помощью команды "Проверить"
4. Перейдите к следующей задаче с помощью команды "Далее >>"
- Можно перейти к произвольному заданию нажав на название текущего задания
## Критерии оценки
Домашнее задание проверяется экспертом.
Успешным выполнением считается появление статуса "Решение верно" для всех задач из диапазона 5.1. - 5.3 и корректная работа алгоритма работы с себестооимостью.

View File

@@ -1,23 +1,50 @@
# Задание к занятию "Основы СКД"
## Задача "Отчет Продажи по контрагентам"
Все задачи обязательны к выполнению.
Любые вопросы по решению задач задавайте в чате учебной группы.
## Цель задания
1. Научиться формировать отчеты с использованием СКД
## Чеклист готовности к домашнему заданию
- [ ] Установить платформу 1С:Предприятие версии 8.3.22 или больше.
## Инструкция к заданию
1. Изучите структуру конфигурации в конфигураторе. Какие есть справочники, документы, регистры. Как они друг с другом связаны.
2. Реализуйте отчет
## Задача 1 "Отчет Маржинальность продаж товаров за период"
### Описание задачи
Создать отчет Продажи по контрагентам на СКД.
Необходимо реализовать возможность хранения и расчета себестоимости для остатков товаров
### Требования к результату
Прикрепить файл внешнего отчета и выгрузку информационной базы (.dt)
В регистре сведений Остатки товаров добавлен ресурс Сумма. В документах Покупка и Продажа реализован алгоритм заполнения этого ресурса при проведении.
### Процесс выполнения
1. Используйте базу, полученную по итогам предыдущего задания. Убедитесь, что в регистре Остатки товаров и Продажи есть движения, и что в регистре Остатки товаров корректно рассчитана себестоимость. При необходимости перепроведите документы.
2. Создайте новый отчет и включите его в подсистему Дополнительные задания.
3. Создайте основную схему компоновки данных отчета.
4. Реализуйте запрос, который будет получать информацию о себестоимость продаж товаров и количестве проданного из виртуальной таблицы Обороты регистра накопления Остатки товаров и информацию о сумме продаж из виртуальной таблицы Обороты регистра накопления Продажи
5. Добавьте вычисляемые поля Прибыль и Маржинальная рентабельности. Прибыль расчитывается как "СуммаПродаж - Себестоимость". Маржинальная рентабельность рассчитывается как "Прибыль / СуммаПродаж * 100" и учитывается в процентах. В формуле реализуйте проверку на 0 в делителе.
6. Настройте ресурсы:
- Прибыль, Себестоимость, Сумму продаж и Количество можно просто суммировать
- Маржинальную рентабельность необходимо рассчитывать по формуле "Сумма(Прибыль) / Сумма(СуммаПродаж) * 100"
7. Добавьте параметр Период с типом Стандартный период. Настройке расчет параметров НачалоПериода и КонецПериода по выражению от Периода и ограничте их использование.
8. На закладке настройки:
- Добавьте группировку по Номенклатуре с учетом Иерархии
- Добавьте в состав пользовательских настроек параметр Период
- Добавьте в выбранные поля Количество, Себестоимость, СуммуПродаж, Прибыль и Маржинальную рентабельность.
- С помощью условного формления выделите красным фоном строки отчета, где маржинальная рентабельность менее 20%, а так же ограничьте количество символов после запятой в колонке Маржинальная рентабельность двумя.
1. Создать внешний отчет.
2. В свойстве отчета Основная схема компоновки данных нажать на кнопку Открыть схему компоновки данных.
3. Добавить источник запрос и в нем реализовать получение данных из табличной части документа реализация. Данные по реализации получать за определенный период.
4. В отчет вывести группировку по полю Контрагент.
5. Для контрагентов вывести общую сумму продажи.
6. Для каждого контрагента показать строки по номенклатуре.
7. В этих строках отобразить поле: Номенклатура, и для каждой номенклатуры вывести количество, среднюю цену и сумму продажи.
### Пример внешнего вида отчета
![Пример внешнего вида отчета](img/homework-6-6-1.png)
### Подсказка: [результат выполнения домашнего задания](Examples/homework-6-6-example.md)
## Критерии оценки
Домашнее задание проверяется экспертом.
Успешным выполнением считается корректно реализованный отчет "Маржинальность продаж товаров за период"

BIN
img/homework-6-6-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.