
- •Объект конфигурации Регистр сведений
- •Создание функции Розничная цена()
- •Для получения розничной цены будем передавать в функцию два параметра:
- •Перечисления
- •Объект конфигурации Перечисление
- •Реорганизация справочника Номенклатура
- •Конструктор (листинг 3.1).
- •Изменение процедуры проведения документа Оказание услуги
- •Создание оборотного регистра накопления Продажи
- •Изменение процедуры проведения документа Оказание услуги
Перечисления
Часто требуется некоторый признак, позволяющий однозначно определять принадлежность элемента справочника к материалам или услугам, независимо от изменения иерархической структуры справочника.
Создадим у справочника Номенклатура специальный реквизит, тип значения которого образуется новым объектом конфигурации Перечисление.
Это поможет легко определять, чем является элемент справочника Номенклатура: услугой или материалом.
Кроме этого скорректируем процедуру проведения документа Оказание услуги и рассмотрим, как работать с перечислением средствами встроенного языка.
Объект конфигурации Перечисление
Объект конфигурации Перечисление является прикладным и предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации.
На основе объекта конфигурации Перечисление платформа создает в базе данных информационную структуру, в которой может храниться набор некоторых постоянных значений.
В реальной жизни этому объекту может соответствовать, например, перечисление вариантов указания цены («включая НДС», «без НДС»).
Набор всех возможных значений, которые содержит перечисление, задается при конфигурировании системы, и пользователь не может изменять их, удалять или добавлять новые.
Из этого следует важная особенность перечисления: значения перечисления не «обезличены» для конфигурации, на них могут опираться алгоритмы работы программы.
Реорганизация справочника Номенклатура
Откроем конфигуратор и создадим новый объект конфигурации Перечисление с именем ВидыНоменклатуры.
На закладке Данные добавим два значения перечисления: Материал и Услуга (рис. 2.1).
Рис. 2.1. Данные перечисления ВидыНоменклатуры
Добавим в справочник Номенклатура новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры (рис. 2.2).
Рис. 2.2. Данные справочника Номенклатура
Запустим 1С:Предприятие в режиме отладки и зададим для каждого элемента справочника Номенклатура соответствующее значение реквизита ВидНоменклатуры (рис. 2.3).
Рис. 2.3. Данные справочника Номенклатура
Используем новые данные, полученные благодаря использованию перечисления ВидыНоменклатуры.
Изменение процедуры проведения документа Оказание услуги
Доработаем документ таким образом, чтобы в регистре появлялись только записи, относящиеся к расходу материалов.
Эта доработка позволит получить нужные данные в регистре ОстаткиМатериалов.
Скорректируем движения документа, исключив из обработки те строки табличной части, в которых находятся услуги.
Для этого в обработчик события ОбработкаПроведения, расположенный в модуле документа ОказаниеУслуги, добавим следующий текст (текст следует добавить в начало цикла обхода табличной части документа после строки, листинг 2.1)
Для Каждого ТекСтрокаПереченьНоменклатуры
Из ПереченьНоменклатуры Цикл
Листинг 2.1. Движения документа ОказаниеУслуги
Добавленный текст исключает из выполнения операторов цикла те строки документа, в которых номенклатура не является материалом.
К значению перечисления Материал обращаемся, используя менеджер перечисления ВидыНоменклатуры (Перечисления.ВидыНоменклатуры) и указывая в качестве его свойства имя нужного значения перечисления.
Запустим 1С:Предприятие в режиме отладки и проверим работу процедуры проведения документа Оказание услуги.
О
ткроем
документ Оказание
услуги
№ 1 и внесем
в него следующие изменения (изменен
не только состав
номенклатуры
в табличной части, но
и время документа),
рис. 2.4.
Рис. 2.4. Измененный документ Оказание услуги № 1
Перед тем как провести документ, откроем список регистра Остатки материалов, содержащий движения этого документа.
Для этого выполним команду Перейти ► Остатки материалов из командной панели списка документа.
Проведем документ и убедимся, что в движения по регистру Остатки материалов включаются только строки, содержащие материалы (рис. 2.5).
Р
ис.
2.5. Записи регистра Остатки материалов
Проведение документа по нескольким регистрам
Назначение документа проведение документа
по нескольким регистрам
Одного только количественного учета недостаточно для нужд предприятия.
Очевидно, что необходимо также знать, какие денежные средства были затрачены на приобретение тех или иных материалов, и каковы материальные запасы предприятия в денежном выражении.
Руководство предприятия приняло решение, чтобы весь суммовой учет материалов велся бы теперь по средней стоимости.
То есть при закупке материалов они должны учитываться в ценах приобретения, а при расходе - по средней стоимости, которая рассчитывается исходя из общей суммы закупок данного материала и общего количества этого материала, находящегося в предприятии.
Поскольку подобная информация имеет другую структуру, нежели количественный учет, для хранения данных об общей стоимости тех или иных материалов будем использовать еще один регистр накопления СтоимостьМатериалов.
Таким образом, документы ПриходнаяНакладная и ОказаниеУслуги должны будут создавать движения не только в регистре ОстаткиМатериалов, но одновременно и в регистре СтоимостьМатериалов, отражая изменения суммового учета.
Создание регистра Стоимость материалов
Регистр СтоимостьМатериалов будет иметь одно измерение - Материал с типом СправочникСсылка.Номенклатура и один ресурс - Стоимость с длиной 15 и точностью 2.
После создания регистр СтоимостьМатериалов должен выглядеть в дереве конфигурации следующим образом (рис. 3.1).
Рис. 3.1. Регистр СтоимостьМатериалов
Внесем изменения в процедуру проведения документов. Начнем с документа Приходная Накладная.
Изменение процедуры проведения документа Приходная накладная
Откроем в конфигураторе окно редактирования объекта конфигурации Документ ПриходнаяНакладная и перейдем на закладку Движения. В списке регистров отметим, что документ будет создавать движения и по регистру СтоимостьМатериалов.
Запустим конструктор движений и согласимся с тем, что существующая процедура ОбработкаПроведения будет замещена.
Откроется окно конструктора движений, которое будет содержать созданные ранее движения документа по регистру ОстаткиМатериалов.
Добавим в список регистров, по которым формируются движения, еще один - СтоимостьМатериалов.
Выберем для него ту же табличную часть Материалы и заполним выражения.
Для ресурса Стоимость выберем значения реквизита табличной части Сумма (рис. .3.2).
Рис. 3.2. Добавим в список регистров новый регистр
Нажмем О К и посмотрим на текст, который сформировал