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