- •Объект конфигурации Регистр сведений
- •Автоматическое заполнение цены в документе Оказание услуги
- •Р ис. 1.6. Заполнение документа Оказание услуги
- •Реорганизация справочника Номенклатура
- •Конструктор (листинг 3.1).
- •Изменение процедуры проведения документа Оказание услуги
- •Создание оборотного регистра накопления Продажи
- •Изменение процедуры проведения документа Оказание услуги
Автоматическое заполнение цены в документе Оказание услуги
Задача, которая стоит, заключается в следующем.
При создании документа ОказаниеУслуги необходимо обеспечить автоматическое заполнение поля Цена после того, как пользователь выберет услугу.
Цена услуги должна определяться исходя из даты создаваемого документа.
Находим в конфигураторе документ ОказаниеУслуги и открываем его форму ФормаДокумента.
Откроем свойства поля ввода, расположенного в колонке Номенклатура, и внизу списка найдем событие ПриИзменении.
Нажмем на кнопку с лупой и в открывшейся заготовке обработчика события вводим следующий текст (листинг 1.2).
Листинг 1.2. Процедура ПереченъНоменклатурыНоменклатураПриИзменении()
В первой строке обработчика получаем текущую строку табличной части документа, так как она понадобится в дальнейшем.
Во второй строке устанавливаем полученную цену в документе, вызывая нашу процедуру РозничнаяЦена.
Первым параметром передаем дату документа, на которую необходимо получить цену.
Вторым параметром передаем ссылку, которую отображает элемент управления формой, вызвавший это событие (Элемент.Значение), то есть ссылку на элемент справочника Номенклатура.
В заключение вызываем процедуру РассчитатьСумму из общего модуля РаботаСДокументами для того, чтобы она пересчитала итоговую сумму в строке нашего документа.
Проверим работу документа. Запустим 1С:Предприятие в режиме отладки и откроем регистр сведений Цены.
Для транзистора Philips добавим следующим числом новую цену (рис. 1.4).
Р
ис.
1.4. Регистр сведений Цены
Откроем документ Оказание услуги № 1. Этим документом «израсходовали» один транзистор
Рис. 1.5. Заполнение документа Оказание услуги
Установим дату документа равной той дате, когда было задано первое значение цены транзистора, и повторим выбор транзистора в колонке Номенклатура табличной части документа. Автоматически установится первое значение цены (рис. 1.5).
Изменим дату документа на следующий день и повторим выбор транзистора.
Будет установлено новое значение цены (рис. 1.6).
Р ис. 1.6. Заполнение документа Оказание услуги
В документе появляется актуальная на момент создания документа цена услуги.
Перечисления
Часто требуется некоторый признак, позволяющий однозначно определять принадлежность элемента справочника к материалам или услугам, независимо от изменения иерархической структуры справочника.
Создадим у справочника Номенклатура специальный реквизит, тип значения которого образуется новым объектом конфигурации Перечисление.
Это поможет определять, чем является элемент справочника Номенклатура: услугой или материалом.
Скорректируем процедуру проведения документа Оказание услуги и рассмотрим процесс работы с перечислением средствами встроенного языка.
Объект конфигурации Перечисление
Объект конфигурации Перечисление является прикладным и предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации.
На основе объекта конфигурации Перечисление платформа создает в базе данных информационную структуру, в которой может храниться набор некоторых постоянных значений.
Этому объекту может соответствовать, например, перечисление вариантов указания цены («включая НДС», «без НДС»).
Набор всех возможных значений, которые содержит перечисление, задается при конфигурировании системы, и пользователь не может изменять их, удалять или добавлять новые.
