Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объекты конфигурации.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.04 Mб
Скачать

Перечисления

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

Создадим у справочника Номенклатура специ­альный реквизит, тип значения которого образуется новым объектом конфигурации Перечисление.

Это поможет легко определять, чем является элемент справочника Номенклатура: услугой или материалом.

Кроме этого скоррек­тируем процедуру проведения документа Оказание услуги и рассмотрим, как работать с перечислением средствами встроенного языка.

Объект конфигурации Перечисление

Объект конфигурации Перечисление является прикладным и предназначен для описания структуры хранения постоянных набо­ров значений, не изменяемых в процессе работы конфигурации.

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

В реальной жизни этому объекту может соответствовать, на­пример, перечисление вариантов указания цены («включая НДС», «без НДС»).

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

Из этого следует важная особенность перечисления: значения перечисления не «обезличены» для конфигурации, на них могут опираться алгоритмы работы программы.

Реорганизация справочника Номенклатура

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

На закладке Данные добавим два значения перечисления: Ма­териал и Услуга (рис. 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. Добавим в список регистров новый регистр

Нажмем О К и посмотрим на текст, который сформировал