Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПИС.-All in one =). 1С.doc
Скачиваний:
32
Добавлен:
13.11.2018
Размер:
9.75 Mб
Скачать

3.8.1. Создание периодического регистра сведений Цены

Откройте конфигуратор и создайте новый объект конфигурации Регистр сведений. Назовите его Цены. Установите периодичность этого регистра в пределах секунды.

Перейдите на закладку Данные и создайте измерение регистра Номенклатура с типом СправочникСсылка.Номенклатура. Укажите, что это измерение будет ведущим (рис 69).

Рис. 69. Создайте измерение Номенклатура и укажите, что оно будет ведущим

Свойство Ведущее имеет смысл использовать лишь тогда, когда измерение имеет тип ссылки на объект базы данных. Установка свойства Ведущее будет говорить о том, что запись регистра сведений представляет интерес, пока существует этот объект. При удалении объекта все записи регистра сведений по этому объекту тоже будут автоматически удалены. Кроме того, в форме списка справочника появляется кнопка командной панели "Перейти". По ней возможен переход к записям регистра, отобранным по значению выбранного элемента справочника.

После этого создайте новый ресурс Цена, тип Число, длина 15, точность 2, неотрицательное.

Запустите 1С:Предприятие в режиме отладки и посмотрите, как работает периодический регистр сведений Цены.

Задайте стоимость услуг ООО "Мастер" следующим образом (рис. 70):

Рис. 70. Регистр сведений Цены

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

Рис. 71. Регистр сведений Цены

Теперь посмотрите, как можно использовать заданные вами цены в документе ОказаниеУслуги.

3.8.2. Создание функции РозничнаяЦена()

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

Поместите в него следующий текст:

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

// Создать вспомогательный объект Отбор

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

// Получить актуальные значения ресурсов регистра

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

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

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

3.8.3. Автоматическое заполнение цены в документе ОказаниеУслуги

Найдете в конфигураторе документ ОказаниеУслуги и откройте его форму ФормаДокумента. Откройте свойства поля ввода, расположенного в колонке Номенклатура, и внизу списка найдите событие При изменении. Нажмите на кнопку с лупой и в открывшейся заготовке обработчика события напишите следующий текст:

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

// Получить текущую строку табличной части

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

// Установить цену

СтрокаТабличнойЧасти.Цена =

РаботаСоСправочниками.РозничнаяЦена(Дата,Элемент.Значение);

// Пересчитать сумму строки

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Запустите 1С:Предприятие в режиме отладки и откройте регистр сведений Цены. Для транзистора Philips добавьте следующим числом новую цену (рис. 72):

Рис. 72. Регистр сведений Цены

Теперь откройте документ Оказание услуги №1. Как вы помните, этим документом вы как раз "израсходовали" один такой транзистор.

Установите дату документа равной той дате, когда было задано первое значение цены транзистора, и повторите выбор транзистора в колонке Номенклатура табличной части документа. Автоматически установится первое значение цены (рис. 73).

Теперь измените дату документа на следующий день и снова повторите выбор транзистора. Будет установлено новое значение цены (рис. 74).

Таким образом, в документе появляется актуальная на момент создания документа цена услуги.

Рис. 73. Заполнение документа Оказание услуги

Рис. 74. Заполнение документа Оказание услуги