2020-06-16 14:00:41 +02:00
# Задание к занятию "Конструктор запросов"
2020-06-16 13:59:49 +02:00
2020-06-18 07:37:39 +02:00
## Задача "Обновление цен в документе Реализация"
2020-06-16 13:59:49 +02:00
### Описание задачи
Добавить команду и соответственно кнопку "Обновить цены" в командную панель табличной части документа Реализация. При нажатии на кнопку присходит обновление цен номенклатуры в табличной части на дату документа.
### Требования к результату
2021-01-24 11:44:52 +02:00
Выгрузка информационной базы (.dt) с конфигурацией из задания https://github.com/netology-code/1c-homeworks/blob/master/homework-5-5.md в котором реализовать алгоритм обновления цен в табличной части документа Реализация.
2020-06-16 13:59:49 +02:00
### Процесс выполнения
1. Взять конфигурацию из файла https://github.com/netology-code/1c-homeworks/blob/master/homework-5-5.md.
2020-06-16 14:08:35 +02:00
2. Периодичность регистра сведений Цены номенклатуры должна быть установлена в значение в Пределах дня.
3. В форме документа Реализация - создать команду ОбновитьЦены и перетащить в командную панель табличной части.
2020-06-16 13:59:49 +02:00
4. Перекрыть действие команды и выбрать пункт "Создать на клиенте и процедуру на сервере".
5. В процедуре на сервере реализовать процесс обновления цен следующим образом:
* Добавить проверку на заполненность табличной части Товары;
2020-06-18 07:46:51 +02:00
* Сформировать массив элементов, который содержит в себе перечень всей номенклатуры из табличной части;
2020-06-16 14:07:42 +02:00
* Из контекстного меню выбрать Конструктор запроса с обработкой результата, в котором выбрать Тип обработки = Обход результата;
2020-06-16 13:59:49 +02:00
* На закладке Таблицы и поля конструктора добавить в Таблицы ЦеныНоменклатуры.СрезПоследних;
* В параметрах виртуальной таблицы укажите параметр периода и условие Номенклатура в (&СписокНоменклатуры);
2020-06-16 14:07:42 +02:00
* Выбираем поля - Номенклатура и Цена и нажимаем на кнопку Ок;
2020-06-18 07:48:18 +02:00
* Для запроса устанавливаем значения параметров такие как дата объекта и заполненный массив элементов номенклатуры табличной части;
2020-06-16 14:07:42 +02:00
* Выполняем запрос и проверяем чтобы результат был не пустой. Иначе возврат;
2020-06-16 13:59:49 +02:00
* Если запрос не пустой - делаем выборку и обходим в цикле все записи результата выполнения запроса;
* В табличной части документа находим строки и в цикле подставляем цену из текущей записи результата запроса.
2020-06-16 14:07:42 +02:00
Поиск строк табличной части осуществляем через НайтиСтроки(). В качестве параметра заполняем структуру значением номенклатуры из
2020-06-16 13:59:49 +02:00
записи результата запроса.
* Если цена новая отличается от старой то пересчитываем сумму найденной строки;