Создание функции РозничнаяЦена()
Сначала мы создадим функцию, которая будет возвращать нам актуальную розничную цену номенклатуры. Откроем конфигуратор, в ветке Общие
Общие модули создадим новый объект конфигурации Модуль и назовем его "РаботаСоСправочниками".Разместим в нем следующий текст:
Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт
//создать вспомогательный объект Отбор
Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
//получить актуальные значения ресурсов регистра
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции // РозничнаяЦена(...)
Для получения розничной цены мы будем передавать в функцию два параметра:
· | АктуальнаяДата – параметр типа Дата, который будет определять точку на оси времени, на которую нас интересует значение розничной цены |
· | ЭлементНоменклатуры – ссылка на элемент справочника "Номенклатура", для которого мы хотим получить розничную цену. |
В теле процедуры мы создаем сначала вспомогательный объект Отбор, с помощью которого определяем, что нас будут интересовать записи регистра, в которых измерение "Номенклатура" равно переданной в процедуру ссылке на элемент справочника.
Во второй строке мы обращаемся к менеджеру регистра сведений "Цены" (РегистрыСведений.Цены) и выполняем метод ПолучитьПоследнее(), который возвращает нам значения ресурсов наиболее поздней записи регистра, которая соответствует передаваемой дате ("АктуальнаяДата") и значениям измерений регистра ("Отбор"). [124]
Значения ресурсов возвращаются в структуре, поэтому в следующей строке мы получаем искомую нами розничную цену просто указав имя нужного нам ресурса регистра через точку (ЗначенияРесурсов.Цена).
Теперь проверим, как работает эта функция. [125]