Студопедия — МЕТОДИЧЕСКИЕ УКАЗАНИЯ. Прежде всего, нас интересует информация о том, сколько и каких материалов есть на складах
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

МЕТОДИЧЕСКИЕ УКАЗАНИЯ. Прежде всего, нас интересует информация о том, сколько и каких материалов есть на складах






  1. Создание регистра накопления «ОстаткиМатериалов»

Прежде всего, нас интересует информация о том, сколько и каких материалов есть на складах. Для накопления такой информации мы создадим регистр ОстаткиМатериалов.

Откроем конфигуратор и создадим новый объект конфигурации Регистр накопления. Зададим имя регистра ОстаткиМатериалов. Нажмем Далее и перейдем к созданию структуры регистра.

Создадим измерения регистра:

§ Материал, с типом СправочникСсылка.Номенклатура,

§ Склад, с типом СправочникСсылка.Склады.

Затем создадим ресурс Количество с длиной 15 и точностью 3.

В результате этих действий регистр ОстаткиМатериалов должен иметь следующий вид (рис. 15.1):

Рисунок 15.1 ― Регистр «ОстаткиМатериалов»

Если вы сейчас попытаетесь запустить 1С: Предприятие в режиме отладки, то система выдаст сообщение об ошибке: РегистрНакопления.ОстаткиМатериалов: Ни один из документов не является регистратором для регистра. Это сообщение еще раз подтверждает тот факт, что назначение регистра накопления в том, чтобы аккумулировать данные, поставляемые различными документами.

 

  1. Создание движений документа «ПриходнаяНакладная»

Движения документа ― это записи в регистрах, которые создаются в процессе проведения документа и отражают изменения, производимые документом. Откроем окно редактирования объекта конфигурации Документ ПриходнаяНакладная.

Перейдем на закладку Движения и в списке регистров конфигурации отметим регистр накопления ОстаткиМатериалов (рис. 15.2):

 

Рисунок 15.2 ― Отметим регистр накопления и воспользуемся конструктором движений

 

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

В списке Регистры перечислены регистры, в которых документ может создавать движения. В нашем случае там пока один регистр ОстаткиМатериалов.

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

Рисунок 15.3 ― Конструктор движений

 

Обратите внимание, что по умолчанию конструктор предлагает нам создавать движения прихода (Тип движения регистра Приход, символ + рядом с названием регистра) по регистру ОстаткиМатериалов. Это нас вполне устраивает, ведь документ ПриходнаяНакладная и должен приходовать материалы.

В поле выбора Табличная часть выберем табличную часть нашего документа Материалы. Список реквизитов документа автоматически заполнится реквизитами нашей табличной части. Теперь нажмем кнопку Заполнить выражения.

В нижнем окне сформируется соответствие полей и выражений (рис. 15.4).

 

Рисунок 15.4 ― Выберем табличную часть и нажмем «Заполнить выражения»…

 

Как видите, конструктор движений установил соответствия подходящим образом: в качестве материала в регистр будет записан материал из табличной части документа, в качестве склада склад, указанный в шапке документа, а в качестве количества количество из табличной части документа.

Нажмем кнопку OK и посмотрим, какой текст сформировал конструктор в модуле объекта (листинг 15.1):

 

Листинг 15.1. Процедура ОбработкаПроведения()

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

Внутри обработчика расположен цикл, который предназначен для перебора строк табличной части нашего документа. В цикле обращение к табличной части документа происходит по имени (Материалы), а строки табличной части документа представляют собой коллекцию значений, для перебора которой можно использовать конструкцию Для Каждого … Из … Цикл.

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

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

Затем присваиваем нужные значения всем полям этой записи и после перебора всех строк документа (после завершения цикла) «одним махом» записываем в регистр ОстаткиМатериалов весь набор записей движений документа.

Посмотрим, как это работает. Запустим 1С: Предприятие в режиме отладки и откроем одновременно два окна: список документов ПриходнаяНакладная и список регистра накопления ОстаткиМатериалов.

Откроем документ Приходная накладная №1 и нажмем OK. Обратите внимание, что при проведении приходной накладной появляются соответствующие записи в регистрах накопления (рис. 15.5):

Рисунок 15.5 ― Взаимодействие документа и регистра

 

Аналогичные действия проделаем и с документом Приходная накладная №2.

 

  1. Создание движений документа «ОказаниеУслуги»

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

При использовании конструктора будем внимательны и обратим внимание на то, что документ Оказание услуги должен расходовать материалы. Поэтому перед тем, как нажать кнопку OK, убедимся, что выбран правильный тип движения регистров (нам нужен Расход). Кроме того, при автоматическом заполнении поле Материал не заполнится автоматически. Если мы оставим это так, как есть, то в регистре накопления в строках с типом Движение регистра расход имя номенклатуры фиксироваться не будет. Чтобы избежать этого, надо выбрать поле Материал и в поле Реквизиты документа дважды щелкнуть по строке ТекСтрокаПереченьНомеклатуры.Номенклатура. Таким образом, имя номенклатуры для строк регистра накопления будет выбираться из табличной части документа.

Запустим отладку и создадим документ оказания услуги, который будет расходовать один транзистор Philips за 3 рубля.

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

Сформированные таким образом движения этого документа будут не совсем правильны. Дело в том, что в документе ОказаниеУуслуги, в отличие от документа ПриходнаяНакладная, могут содержаться не только расходуемые материалы, но и услуги. Поэтому в регистр ОстаткиМатериалов будут попадать записи и о расходуемых услугах, что неправильно. Измените текст обработки проведения таким образом, чтобы учитывались движения только материалов, а услуги, которые оказывает предприятие не учитывались.

 

  1. Создание регистра «Стоимость материалов»

Регистр накопления ОстаткиМатериалов был создан для учета только количественного движения материалов. Однако, одного только количественного учета совершенно недостаточно для нужд предприятия.

Очевидно, что необходимо также знать, какие денежные средства были затрачены на приобретение тех или иных материалов, и каковы материальные запасы придприятия в денежном выражении.

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

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

Таким образом, документы ПриходнаяНакладная и ОказаниеУслуги должны будут создавать движения не только в регистре ОстаткиМатериалов, но одновременно и в регистре СтоимостьМатериалов, отражая изменения суммового учета.

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

После создания регистр СтоимостьМатериалов должен выглядеть в дереве конфигурации следующим образом (рис. 15.6):

Рисунок 15.6 ― Регистр «СтоимостьМатериалов»

 

Теперь мы можем приступить к внесению изменений в процедуры проведения документов ПриходнаяНакладная и ОказаниеУслуги.

 

  1. Изменение процедуры проведения документа «Приходная накладная»

Откроем в конфигураторе окно редактирования объекта конфигурации Документ ПриходнаяНакладная и перейдем на закладку Движения. В списке регистров отметим, что документ будет создавать теперь движения и по регистру СтоимостьМатериалов. Запустим конструктор движений и согласимся с тем, что существующая процедура ОбработкаПроведения будет замещена.

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

Для ресурса Стоимость выберем значения реквизита табличной части Сумма (рис. 15.7).

 

Рисунок 15.7 ― Добавим в список регистров новый регистр

 

Нажмем OK и посмотрим на текст, который сформировал конструктор (листинг 15.2).

Листинг 15.2. Процедура ОбработкаПроведения()

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

В нашем случае табличная часть всего одна, поэтому можно объединить эти два цикла в один, закомментировав следующие строки (листинг 15.3):

 

Листинг 15.3. Объединение двух циклов в один

// КонецЦикла;

// Для Каждого ТекСтрокаМатериалы Из Материалы Цикл

 

Запустим 1С: Предприятие в режиме отладки, перепроведем документ ПриходнаяНакладная №1.

Затем откроем Приходную накладную №1 и убедимся, что документ создает желаемые записи в регистрах накопления (рис. 15.8, 15.9).

 

Рисунок 15.8 ― «ПриходнаяНакладная №1»

 

Рисунок 15.9 ― Записи регистра «ОстаткиМатериалов»

 

  1. Изменение процедуры проведения документа «Оказание услуги»

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

Поскольку в документе ОказаниеУслуги у нас отражена только цена номенклатуры, нам понадобится добавить в табличную часть документа еще одно поле, в котором будет указываться стоимость номенклатуры.

Откроем в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги, перейдем на закладку Данные и создадим новый реквизит табличной части документа с именем Стоимость, типом Число, длиной 15 и точностью 2 (рис. 15.10).

 

Рисунок 15.10 ― Изменение документа «ОказаниеУслуги»

 

После этого откроем форму ФормаДокумента документа ОказаниеУслуги и добавим в табличное поле колонку, отображающую новый реквизит Стоимость, расположив ее после колонки Номенклатура (рис. 15.11). Для этого выделим табличное поле и выполним команду контекстного меню Размещение данных. В окне Размещение данных отметим реквизит Стоимость и нажмем ОK. После этого с помощью мыши перетащим колонку Стоимость после колонки Номенклатура.

 

Рисунок 15.11 ― Изменение формы документа «ОказаниеУслуги»

 

Теперь создадим движения документа ОказаниеУслуги таким же образом, как делали это для документа ПриходнаяНакладная.

Откроем в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги и укажем, что он будет создавать движения по регистру накопления СтоимостьМатериалов.

Запустим конструктор движений документа и добавим в список регистров регистр СтоимостьМатериалов. Опишем движения документа следующим образом (обратите внимание, что стоимость вычисляется как произведение стоимости и количества, указанных в табличной части) рис. 15.12:

 

Рисунок 15.12 ― Конструктор движений документа

Нажмем OK и в тексте, сформированном конструктором (листинг 15.4), восстановим изменения, внесенные нами ранее (не записывать движения, если номенклатура не материал) Также объединим два цикла обхода табличной части документа в один (листинг 15.3).

 

Листинг 15.4. Процедура ОбработкаПроведения()

 

Проверим, как теперь работает проведение документа ОказаниеУслуги.

Запустим 1С: Предприятие в режиме отладки и укажем стоимость выбранных материалов в документе ОказаниеУслуги №1 (рис. 15.13).

 

Рисунок 15.13 ― Документ «ОказаниеУслуги №1»

 

Проведем документ ОказаниеУслуги №1 и посмотрим на движения этого документа по регистру СтоимостьМатериалов (рис. 15.14).

 

Рис.15.14 ― Записи регистра «СтоимостьМатериалов»

 

Теперь создадим и проведем еще два документа ОказаниеУслуги. Обратите внимание на то, что эти документы созданы другими датами (рис. 15.15, 15.16).

 

Рисунок 15.15 ― Документ «ОказаниеУслуги №2»

 

Рисунок 15.16 ― Документ «ОказаниеУслуги №3»

 

Движения документов ОказаниеУслуги №2 и №3 должны выглядеть соответственно следующим образом (рис. 15.17, 15.18):

Рисунок 15.17 ― Движения документа «ОказаниеУслуги №2»

Рисунок 15.18 ― Движения документа «ОказаниеУслуги №3»

 

  1. Создание оборотного регистра накопления «Продажи»

Продолжим рассматривать работу документа ОказаниеУслуги. До сих пор мы создавали в регистрах накопления движения только для строк документа, которые содержат материалы. Услуги, содержащиеся в документе, мы никак не учитывали.

Дело в том, что при учете услуг важны совершенно другие критерии, нежели при учете материалов. Прежде всего, бессмысленно говорить о том, сколько услуг было и сколько их осталось, важна только сумма и количество услуг, которые были оказаны за определенный промежуток времени. Кроме этого интересны следующие моменты:

§ какие именно услуги были оказаны (чтобы составить рейтинг услуг);

§ какому именно клиенту оказывались услуги (чтобы предоставить ему скидку от объема оплаченных ранее услуг, например);

§ какой мастер предоставлял услуги (чтобы начислить ему заработную плату).

Очевидно, что существующие регистры накопления совершенно не подходят для решения таких задач. Поэтому создадим еще одно «хранилище» данных оборотный регистр накопления Продажи.

Регистры накопления могут быть регистрами остатков и регистрами оборотов.

Существующие в нашей конфигурации регистры ОстаткиМатериалов и СтоимостьМатериалов являются регистрами остатков.

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

В остальном оборотный регистр ничем не отличается от регистра остатков.

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

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

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

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

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

Если же при расходе материалов поставщик будет указываться наверняка, имеет смысл добавить поставщика в измерения регистра.

Иными словами, по каждому из измерений регистра накопления остатков изменение ресурсов обязательно должно осуществляться в обе стороны: приход и расход.

Для реквизитов регистра этот принцип неважен. По реквизитам регистра ресурсы могут только приходоваться или только расходоваться.

Нарушение этого принципа построения регистров накопления будет вести к непроизводительному использованию ресурсов системы и как следствие замедлению работы и падению производительности.

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

На закладке Данные создадим измерения регистра:

§ Номенклатура, тип СправочникСсылка.Номенклатура,

§ Клиент, тип СправочникСсылка.Клиенты,

§ Мастер, тип СправочникСсылка.Сотрудники.

У регистра будет три ресурса:

§ Количество, тип Число, длина 15, точность 3,

§ Выручка, тип Число, длина 15, точность 2,

§ Стоимость, тип Число, длина 15, точность 2.

Откроем окно редактирования объекта конфигурации Документ ОказаниеУслуги и на закладке Движения укажем, что этот документ будет создавать движения по регистру Продажи.

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

 

  1. Изменение процедуры проведения документа «Оказание услуги»

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

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

Сразу после окончания первого цикла создадим еще один цикл обхода табличной части и команду записи движений регистра Продажи (листинг 15.5).

Листинг 15.5. Добавление цикла обхода табличной части и записи движений регистра «Продажи»

КонецЦикла;

 







Дата добавления: 2014-11-10; просмотров: 877. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Что происходит при встрече с близнецовым пламенем   Если встреча с родственной душой может произойти достаточно спокойно – то встреча с близнецовым пламенем всегда подобна вспышке...

Реостаты и резисторы силовой цепи. Реостаты и резисторы силовой цепи. Резисторы и реостаты предназначены для ограничения тока в электрических цепях. В зависимости от назначения различают пусковые...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

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

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия