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-1.md
2020-06-16 15:00:41 +03:00

4.0 KiB

Задание к занятию "Конструктор запросов"

Задача 1 "Добавить команду Обновить цены в документ Реализация"

Описание задачи

Добавить команду и соответственно кнопку "Обновить цены" в командную панель табличной части документа Реализация. При нажатии на кнопку присходит обновление цен номенклатуры в табличной части на дату документа.

Требования к результату

Прикрепить .cf файл из задания https://github.com/netology-code/1c-homeworks/blob/master/homework-5-5.md в котором реализовать алгоритм обновления цен в табличной части документа Реализация

Процесс выполнения

  1. Взять конфигурацию из файла https://github.com/netology-code/1c-homeworks/blob/master/homework-5-5.md.

  2. Периодичность регистра сведений Цены номенклатуры должен быть установлен в Пределах дня.

  3. В форме документа Реализация создать команду ОбновитьЦены и перетащить в командную панель табличной части

  4. Перекрыть действие команды и выбрать пункт "Создать на клиенте и процедуру на сервере".

  5. В процедуре на сервере реализовать процесс обновления цен следующим образом:

    • Добавить проверку на заполненность табличной части Товары;
    • Сформировать список значений который содержить в себе перечень всей номенклатуры из табличной части;
    • Из контекстного меню выбрать Конструктор запроса с обработкой результата в котором выбрать Тип обработки = Обход результата;
    • На закладке Таблицы и поля конструктора добавить в Таблицы ЦеныНоменклатуры.СрезПоследних;
    • В параметрах виртуальной таблицы укажите параметр периода и условие Номенклатура в (&СписокНоменклатуры);
    • Выбираем поля Номенклатура и Цена и нажимаем на кнопку Ок;
    • Для запроса устанавливаем значения параметров как дата объекта и значение списка значений перечня номенклатуры;
    • Выполняем запрос и проверяем чтобы результат был не пустой. Иначе возврат.
    • Если запрос не пустой - делаем выборку и обходим в цикле все записи результата выполнения запроса;
    • В табличной части документа находим строки и в цикле подставляем цену из текущей записи результата запроса. Поиск строк табличной части осуществляем через НайтиСтроки. В качестве параметра заполняем структуру значением номенклатуры из
      записи результата запроса.
    • Если цена новая отличается от старой то пересчитываем сумму найденной строки;