Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Создание записей в регистре сведений




Создание записей в регистре сведений

Выполним команду для открытия списка регистра Цены на номен- клатуру. Чтобы добавить новую запись в регистр сведений, нажмем кнопку Создать.

Зададим стоимость услуг ООО «На все руки мастер» следующим образом (рис. 9. 7).

При этом период зададим задним числом, так как он должен быть меньше или равен дате создания документа об оказании услуг, в нашем случае 08. 07. 2013.


 

Рис. 9. 7. Цены на услуги в регистре сведений «Цены»

 

После этого зададим розничные цены на материалы (рис. 9. 8).

 

 

Итак, мы с вами имеем очень полезную возможность в нашей программе – установка цен на услуги и материалы. Поскольку цены хранятся с привязкой к дате, мы можем заранее установить новые цены и быть уверены в том, что новые цены вступят в действие не раньше указанного для них времени.


 

Автоматическая подстановка цены


Занятие 9



в документ при выборе номенклатуры

Наша задача заключается в следующем. Цена номенклатуры у нас теперь хранится в отдельном регистре сведений. Когда мы создаем или изменяем документ ОказаниеУслуги и добавляем в табличную часть какую-либо номенклатуру, нам хочется, чтобы одновременно с этим в документ подставлялась бы сразу и актуальная цена этой номенклатуры, полученная из регистра сведений и соответствующая дате документа.

Для этого нам нужно сделать две вещи.

Сначала написать некую функцию, которая будет возвращать нам актуальную цену номенклатуры, а затем вызвать эту функцию в тот момент, когда в документ добавляется номенклатура, и подставить в документ цену номенклатуры, которую вернет эта функция.

Поскольку такой сервис понадобится нам, скорее всего, не только в этом, но и в других документах, которые содержат в табличной части номенклатуру, мы поместим функцию в некоторое общедо- ступное место – в общий модуль.

 

В режиме «Конфигуратор»

Функция, возвращающая цену номенклатуры

Сначала мы создадим функцию РозничнаяЦена(), которая будет возвращать нам актуальную розничную цену номенклатуры, и поместим ее в общий модуль конфигурации.

Откроем конфигуратор, в ветке Общие } Общие модули добавим новый объект конфигурации Общий модуль и назовем его Рабо- таСоСправочниками.

В палитре этого свойств модуля мы видим, что у модуля по умолчанию установлен флажок Сервер. Это означает, что экземпляры этого модуля будут скомпилированы только на стороне сервера.

Кроме этого, установим флажок Вызов сервера для того, чтобы экспортные процедуры и функции этого модуля можно было вызывать с клиента (рис. 9. 9).


 

Поместим в него следующий текст (листинг 9. 1).

листинг 9. 1. Функция «РозничнаяЦена()»

 

Поясним эту функцию.

Для получения розничной цены мы будем передавать в функцию два параметра:

„ АктуальнаяДата – параметр типа Дата, определяет точку на оси времени, в которой нас интересует значение розничной цены;

„ ЭлементНоменклатуры – ссылка на элемент справочника Номен- клатура, для которого мы хотим получить розничную цену.

В теле функции мы сначала создаем вспомогательный объект Отбор.

Это структура, содержащая отбор по измерениям регистра. С его помощью определяем, что нас будут интересовать записи регистра, в которых измерение регистра Номенклатура равно переданной в функцию ссылке на элемент справочника.

Имя ключа структуры («Номенклатура») должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры (ЭлементНоменклатуры) задает отбираемое по данному измерению значение.


Во второй строке мы обращаемся к менеджеру регистра сведений Цены (РегистрыСведений. Цены) и выполняем метод ПолучитьПос- леднее(), который возвращает нам значения ресурсов самой поздней записи регистра, соответствующей передаваемой в функцию дате (АктуальнаяДата) и значениям измерений регистра (Отбор).

Метод ПолучитьПоследнее возвращает структуру, содержащую значения ресурсов, которая сохраняется в переменной ЗначенияРе- сурсов. Вообще говоря, у регистра может быть несколько ресурсов. В нашем регистре ресурс один, но все равно будет возвращена структура, содержащая единственный элемент.

Поэтому в следующей строке мы получаем искомую нами розничную цену, просто указав имя нужного нам ресурса регистра через точку (ЗначенияРесурсов. Цена), и возвращаем ее при выполнении функции.

Теперь эту функцию нужно вызвать в некоторый момент работы документа.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...