При создании документа ОказаниеУслуги нам необходимо обеспечить автоматическое заполнение поля Цена после того, как пользователь выберет услугу. Причем цена услуги должна определяться исходя из даты создаваемого документа.
124. В окне Конфигуратора выберите на дереве объект Документы, выберите ОказаниеУслуги, выберите Формы, ФормаДокумента, М2, выберите колонку "Номенклатура" и внизу списка найдем событие "При изменении".
Нажмем на кнопку с лупой и в открывшейся заготовке обработчика события напишем следующий текст:
Пример 21.2.
ПроцедураПереченьНоменклагурыНоменклатураПриИзменении(Элемент) //получить текущую строку табличной части СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные; //установить цену СтрокаТабличнойЧасти.Цена = РозничнаяЦена(Дата, Элемент.Значение);//пересчитать сумму строки РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры
Первая строка обработчика вам уже знакома - мы получаем текущую строку табличной части документа, так как она нам понадобится в дальнейшем.
Во второй мы устанавливаем полученную цену в документе, вызывая нашу процедуру «РозничнаяЦена». Первым параметром мы передаем дата документа, на которую необходимо получить цену, а вторым параметром мы передаем ссылку, которую отображает элемент управления формой, вызвавший это событие (Элемент.Значение), т.е. ссылку на элемент справочника «Номенклатура».
В заключение мы вызываем нашу процедуру «РассчитатьСумму» из общего модуля «РаботаСДокументами» для того, чтобы она пересчитала итоговую сумму в строке нашего документа.
125 . Выберите Отладка | Начать отладку, на появившийся вопрос редактируемая конфигурация отличается от конфигурации базы данных. Обновить конфигурацию базы данных? выберите Да, в окне Реорганизация информации выберите Принять.
126. Откройте регистр: выберите Операции | Регистр сведений, выберите Цены.
127. Для транзистора Philips добавьте новую цену 7 руб. от 1 декабря.
128. Теперь откроем документ ОказаниеУслуги Этим документом мы как раз «израсходовали» один такой транзистора Установите дату документа 30 ноября, когда было задано первое значение цены транзистора, выберите транзистор Philips в колонке «Номенклатура» табличной части документа, цена должна автоматически стать 5 руб
129. Теперь измените дату документа на 1 декабря и снова повторим выбор транзистора. Будет установлено новое значение цены: 7 руб.