В начало

Автозаполнение актуальной цены

 

            Есть документ «ОказаниеУслуги», есть также регистр сведений «Цены», в котором хранятся актуальные цены на услуги в зависимости от времени их оказания.

            Необходимо обеспечить автоматическое заполнение цены в документе «ОказаниеУслуги» после выбора вида услуг и соответственно пересчет суммы, если документ был проведен ранее.

 

Листинг

&НаСервере

Функция АктуальнаяЦена  (АктуальнаяДата, ЭлементНоменклатуры)

      //Создаем структуру

      Отбор = Новый Структура ("Номенклатура", ЭлементНоменклатуры);

     

      //Получаем АКТУАЛЬНУЮ цену

      ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее (АктуальнаяДата, Отбор);

      Возврат ЗначенияРесурсов.Цена;

КонецФункции

 

 

&НаКлиенте

Процедура ПереченьНоменклатурыНоменклатураПриИзменении (Элемент)

      //Доступ к элементам ТАБЛИЧНОЙ части документа "ОказаниеУслуг"

      Стр = Элементы.ПереченьНоменклатуры.ТекущиеДанные;

     

      //Берем цену на момент создания документа

      //Объект.Дата - дата создания документа

      //Стр.Номенклатура - элемент табличной части документа

      Стр.Цена = АктуальнаяЦена  (Объект.Дата, Стр.Номенклатура);

     

      //Пересчитываем сумму с учетом АКТУАЛЬНОЙ цены

      Стр.Сумма = Стр.Цена * Стр.Количество;

КонецПроцедуры

 

 

ПРИМЕЧАНИЕ: процедуры проверены на 1С: Предприятие 8.2.