Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание периодического регистра сведений Цены
риступим к созданию периодического регистра сведений, который будет хранить развернутые во времени розничные цены материалов и стоимости услуг, оказываемых нашим OOO «На все руки мастер». Откроем конфигуратор и создадим новый объект конфигурации Регистр сведений. Назовем его «Цены». Установим периодичность этого регистра в пределах секунды. Перейдем на закладку «Данные» и создадим измерение регистра «Номенклатура» с типом СправочникСсылка.Номенклатура. Укажем, что это измерение будет ведущим. Создадим измерение «Номенклатура» и укажем, что оно будет ведущим...
Свойство «Ведущее» имеет смысл использовать лишь тогда, когда измерение имеет тип ссылки на объект базы данных. Установка свойства «Ведущее» будет говорить о том, что запись регистра сведений представляет интерес, только пока существует этот объект. При удалении объекта, все записи регистра сведений по этому объекту тоже будут автоматически удалены. Кроме того, в форме списка справочника появляется кнопка командной панели «Перейти», по которой возможен переход к записям регистра, отобранным по значению выбранного элемента справочника. После этого создадим новый ресурс «Цена», тип Число, длина 15, точность 2, неотрицательное. Теперь запустим 1С: Предприятие в режиме отладки и посмотрим, как работает наш периодический регистр сведений Цены. Зададим стоимость услуг нашего 000 «На все руки мастер» следующим образом:
После этого зададим розничные цены на материалы:
Итак, мы с вами имеем очень полезную возможность в нашей программе - возможность установки цен на услуги и материалы. Поскольку цены хранятся с привязкой к дате, мы можем заранее установить новые цены и быть уверенными в том, что новые цены вступят в действие не раньше указанной для них даты. Теперь посмотрим, как можно использовать заданные нами цены в Документе «ОказаниеУслуги».
Создание функции РозничнаяЦена()
начала мы создадим функцию, которая будет возвращать нам актуальную розничную цену номенклатуры. Откроем конфигуратор, в ветке Общие - Общие модули создадим новый объект конфигурации Модуль и назовем его «РаботаСоСправочниками». Разместим в нем следующий текст:
Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт //создать вспомогательный объект Отбор Отбор = Новый Структура(" Номенклатура", ЭлементНоменклатуры); //получить актуальные значения ресурсов регистра ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор); Возврат ЗначенияРесурсов.Цена; КонецФункции Для получения розничной цены мы будем передавать в функцию два параметра: • АктуальнаяДата - параметр типа Дата, который будет определять точку на оси времени, на которую нас интересует значение розничной цены. • ЭлементНоменклатуры - ссылка на элемент справочника «Номенклатура», для которого мы хотим получить розничную цену. В теле процедуры мы создаем сначала вспомогательный объект Отбор, с помощью которого определяем, что нас будут интересовать записи регистра, в которых измерение «Номенклатура» равно переданной в процедуру ссылке на элемент справочника. Во второй строке мы обращаемся к менеджеру регистра сведений «Цены» (РегистрыСведений.Цены) и выполняем метод ПолучитьПоследнее(), который возвращает нам значения ресурсов наиболее поздней записи регистра, которая соответствует передаваемой дате («АктуальнаяДата») и значениям измерений регистра («Отбор»). Значения ресурсов возвращаются в структуре, поэтому в Теперь проверим, как работает эта функция.
|