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-2.md

62 lines
7.9 KiB
Markdown
Raw Normal View History

2020-06-23 13:59:23 +02:00
# Задание к занятию "Условия и подзапросы"
## Задача № 1 "Отбор номенклатуры при обновлении цен в документе Реализация"
### Описание задачи
2020-06-26 13:09:26 +02:00
Изменить процедуру для команды "Обновить цены" документа Реализация. Перечень номенклатуры получать не передачей элементов массива, а используя вложенный запрос к табличной части текущего документа.
2020-06-23 13:59:23 +02:00
### Требования к результату
Прикрепить .cf файл из прошлого задания в котором внести изменения для получения перечня элементов номенклатуры вложенным запросом к табличной части документа Реализация.
### Процесс выполнения
2020-06-23 14:00:27 +02:00
1. Использовать файл *.cf конфигурацию из прошлого задания.
2020-06-23 13:59:23 +02:00
2. В форме документа Реализация для серверной процедуры команды Обновить цены внести следующие изменения:
* Убрать заполнение массива элементов номенклатуры;
* Для запроса получения цен убрать заполнение параметра СписокНоменклатуры;
* В конструкторе запроса в параметрах виртуальной таблицы в поле условие удалить предыдущее условие и вместо него -
- вызвать конструктор запроса в поле условие;
2020-06-26 13:09:26 +02:00
- построить запрос к табличной части документа Реализация с выборкой одного поля Номенклатура.Ссылка;
2020-06-23 13:59:23 +02:00
- В операторе ГДЕ указать параметр для отбора определенной ссылки документа реализация;
- Нажать на ОК. Полученый текст запроса использовать для условия отбора измерения Номенклатура;
* Для запроса добавить установку параметра документа реализации текущей ссылкой, при этом проверять чтобы ссылка была не пустая;
* Если ссылка пустая то Возврат;
3. Проверить заполнение цен для всех товаров из табличной части документа Реализация нажатием на кнопку Обновить цены.
2020-06-26 15:15:51 +02:00
## Задача № 2 "Заполнение строк табличной части по отбору в документе Реализация"
### Описание задачи
2020-06-26 15:16:32 +02:00
Добавить команду "Заполнить строки" в табличной части документа Реализация. При заполнении добавить возможность отбора по номенклатурной группе и диапазону цен. Заполнять номенклатуру и цены из регистра Цены номенклатуры.
2020-06-27 10:26:24 +02:00
### Требования к результату
Прикрепить .cf файл с внесенными изменениями по реализации заполнения табличной части документа Реализация из регистра сведений Цены номенклатура по отбору.
### Процесс выполнения
2020-06-28 16:11:06 +02:00
* В Конфигураторе добавить обработку ЗаполнениеНоменклатуры. В обработке -
2020-06-27 10:26:24 +02:00
- создать форму и реквизиты формы ГруппаТовара - тип справочник Номенклатура с возможностью выбора только групп,
2020-06-27 10:27:42 +02:00
ЦенаС, ЦенаПо - тип такой же как у реквизита Цена в регистре сведений Цены номенклатуры;
2020-06-27 10:26:24 +02:00
- Разместить реквизиты на форме;
- Добавить команду Заполнить и соответственно кнопку на форму. При нажатии на кнопку вызвать команду Закрыть с правильным кодом возврата диалога в качестве параметра;
2020-06-28 16:11:06 +02:00
- Перекрыть событие ПриЗакрытии() и создать серверную функцию ПриЗакрытииНаСервере(). В процедуре ПриЗакрытии() вызовом функции ПриЗакрытииНаСервере получить значение в
переменную;
2020-06-28 16:12:05 +02:00
- В функции ПриЗакрытииНаСервере - создать запрос. Текст запроса выбирает последние цены на дату документа Реализация из регистра сведений Цены номенклатуры. Условие в срезе
текста запроса формировать динамически в зависимости от значений реквизитов - ГруппаТовара, ЦенаС, ЦенаПо. При этом возможны варианты - заполнена или не заполнена группа
2020-06-28 16:11:06 +02:00
номенклатуры. ЦенаС, ЦенаПо могут быть равны нулю или больше нуля.
2020-06-27 10:26:24 +02:00
Так же в зависимости от этих условий устанавливать необходимые параметры запроса.
2020-06-28 16:11:06 +02:00
Создать структуру с элементами Номенклатура, Цена. В цикле заполнить массив структур из результата выборки запроса. Вернуть в процедуру ПриЗакрытии() заполненный массив
структур.
- В процедуре ПриЗакрытии() вызвать команду ОповеститьОВыборе() с передачей массива структур в качестве параметра.
* Для командной панели табличной части документа Реализация добавить команду ЗаполнитьСтроки и соответственно кнопку;
* Перекрыть событие для команды ЗаполнитьСтроки в котором реализовать открытие формы обработки ЗаполнениеНоменклатуры. В команде ОткрытьФорму() передавать в качестве владельца
форму текущего документа;
* Для формы документа перекрыть событие ОбработкаВыбора на клиенте и реализовать заполнение табличной части документа из полученного массива структур в параметре
ВыбранноеЗначение. Заполнять значения для реквизитов Номенклатура и Цена;
2020-06-27 10:55:20 +02:00
* Протестировать - заполнить в регистр сведений строки и проверить заполнение строк ТЧ документа Реализация нажатием на кнопку ЗаполнитьСтроки и установкой различных вариантов значений реквизитов формы обработки ПодборРН.
2020-06-27 10:26:24 +02:00