1. Создать в ветке Общие → Общие модули дерева конфигурации глобальныймодульс именем «РаботаСоСправочниками». Установить флаг Глобальный. В модуле разместить текст:
Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры)
Экспорт
//создать вспомогательный объект Отбор
Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
//получить актуальные значения ресурсов регистра
ЗначенияРесурсов = РегистрыСведений.Цены.
ПолучитьПоследнее(АктуальнаяДата, Отбор); Возврат ЗначенияРесурсов.Цена; КонецФункции
2. Изменить документ «ОказаниеУслуги»: на закладке «Формы» в нижней части окнаоткрыть его форму «ФормаДокумента». Встать курсором на поле ввода «Номенклатура» и открыть Свойства правой кнопкой мыши. Внизу списка найти «При изменении», нажать на кнопку с лупой и в открывшейся заготовке вставить следуюшее содержимое обработчика:
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
//получить текущую строку табличной части
СтрокаТабличнойЧасти= ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
|
|
//установить цену
СтрокаТабличнойЧасти.Цена = РозничнаяЦена(Дата,Элемент.Значение);
//пересчитать сумму строки
РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
3. Отладить изменения. Открыть регистр сведений «Цены». Записать на бумаге первое значение цены дренажного шланга. Добавить запись:
Период | Номенклатура | Цена (руб.) |
23.02.09 | Дренажный шланг |
4. Открыть документ «Оказание услуги №1». Записать на бумаге значение цены. Установить дату документа равной той дате, когда было задано первое значение цены шланга, и повторить выбор шланга в колонке «Номенклатура» табличной части документа. Сравнить значение установившейся цены с записанной на бумаге. Цена должна измениться! Изменить дату «Оказания услуги №1» на 23.02.09 и снова повторить выбор дренажного шланга. Обратить внимание, как меняется цена в зависимости от даты.