21.5. Автоматическое заполнение цены в документе ОказаниеУслуги

При создании документа ОказаниеУслуги нам необходимо обеспечить автоматическое заполнение поля Цена после того, как пользователь выберет услугу. Причем цена услуги должна определяться исходя из даты создаваемого документа.

124. В окне Конфигуратора выберите на дереве объект Документы, выберите ОказаниеУслуги, выберите Формы, ФормаДокумента, М2, выберите колонку "Номенклатура" и внизу списка найдем событие "При изменении".

Нажмем на кнопку с лупой и в открывшейся заготовке обработчика события напишем следующий текст:

Пример 21.2.

ПроцедураПереченьНоменклагурыНоменклатураПриИзменении(Элемент) 
//получить текущую строку табличной части
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
//установить цену
СтрокаТабличнойЧасти.Цена = РозничнаяЦена(Дата, Элемент.Значение);//пересчитать
сумму строки
РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры


Первая строка обработчика вам уже знакома - мы получаем текущую строку табличной части документа, так как она нам понадобится в дальнейшем.

Во второй мы устанавливаем полученную цену в документе, вызывая нашу процедуру «РозничнаяЦена». Первым параметром мы передаем дата документа, на которую необходимо получить цену, а вторым параметром мы передаем ссылку, которую отображает элемент управления формой, вызвавший это событие (Элемент.Значение), т.е. ссылку на элемент справочника «Номенклатура».

В заключение мы вызываем нашу процедуру «РассчитатьСумму» из общего модуля «РаботаСДокументами» для того, чтобы она пересчитала итоговую сумму в строке нашего документа.

125 . Выберите Отладка | Начать отладку, на появившийся вопрос редактируемая конфигурация отличается от конфигурации базы данных. Обновить конфигурацию базы данных? выберите Да, в окне Реорганизация информации выберите Принять.

126. Откройте регистр: выберите Операции | Регистр сведений, выберите Цены.

127. Для транзистора Philips добавьте новую цену 7 руб. от 1 декабря.

128. Теперь откроем документ ОказаниеУслуги Этим документом мы как раз «израсходовали» один такой транзистора Установите дату документа 30 ноября, когда было задано первое значение цены транзистора, выберите транзистор Philips в колонке «Номенклатура» табличной части документа, цена должна автоматически стать 5 руб

129. Теперь измените дату документа на 1 декабря и снова повторим выбор транзистора. Будет установлено новое значение цены: 7 руб.

Рисунок 21.4. Регистр сведений Цена

Регистр сведений Цена

Рисунок 21.5. Документ Оказание услуги

Документ Оказание услуги

Рисунок 21.6. Документ Оказание услуги

Документ Оказание услуги