Формирование отчетов и создание бухгалтерского учета
Лабораторная №3. Формирование отчетов и создание бухгалтерского учета.
4. Проведение документа по нескольким регистрам
4.1 Создание регистра СтоимостьМатериалов
Регистр СтоимостьМатериалов будет иметь всего одно измерение Материал с типом СправочникСсылка.Номенклатура и один ресурс Стоимость с длиной 15 и точностью 2.
4.2 Изменение процедуры проведения документа ПриходнаяНакладная
Откройте в конфигураторе окно редактирования объекта конфигурации Документ ПриходнаяНакладная и перейдите на закладку Движения. В списке регистров отметьте что документ будет создавать теперь движения и по регистру СтоимостьМатериалов. Запустите конструктор движений, и согласитесь с тем, что существующая процедура ОбработкаПроведения будет замещена.
После этого откроется окно конструктора движений, которое будет содержать созданные ранее движения документа по регистру ОстаткиМатериалов. Добавьте в список регистров, по которым формируются движения, еще один регистр СтоимостьМатериалов. Выберете для него ту же табличную часть Материалы и заполните выражения.
Для ресурса Стоимость выберете значения реквизита табличной части Сумма:
Нажмите ОК и посмотрите на текст, который сформировал конструктор:
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// регистр ОстаткиМатериалов Приход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаМатериалы.Количество;
КонецЦикла;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// регистр СтоимостьМатериалов Приход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Стоимость = ТекСтрокаМатериалы.Сумма;
КонецЦикла;
// записываем движения регистров
Движения.ОстаткиМатериалов.Записать();
Движения.СтоимостьМатериалов.Записать();
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Конструктор создал два цикла обхода табличной части документа отдельно, для каждого регистра. Так происходит потому, что в общем случае документ может иметь несколько табличных частей, и информация, содержащаяся в каждой из них, может предназначаться для своего отдельного регистра.
В нашем случае табличная часть всего одна, поэтому можно объединить эти два цикла в один следующим образом (изменения выделены жирным):
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// регистр ОстаткиМатериалов Приход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаМатериалы.Количество;
//КонецЦикла;
//Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// регистр СтоимостьМатериалов Приход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Стоимость = ТекСтрокаМатериалы.Сумма;
КонецЦикла;
// записываем движения регистров
Движения.ОстаткиМатериалов.Записать();
Движения.СтоимостьМатериалов.Записать();
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Запустите 1С:Предприятие в режиме отладки и перепроведите документ Приходная накладная. Затем откройте его и убедитесь, что документ создает желаемые записи в регистрах накопления.
1. Перечисление
В данной конфигурации нет никакого признака, по которому мы могли бы сказать, чем является конкретный элемент справочника Номенклатура: материалом или услугой. To, что все элементы справочника разложены по некоторым группам, не может являться надежным критерием оценки: группы можно удалить, переименовать, сгруппировать элементы по другим принципам. Поэтому требуется некоторый признак, позволяющий однозначно определять принадлежность элемента справочника к материалам или услугам, независимо от изменения иерархической структуры справочника.
1.1 Объект конфигурации Перечисление
Объект конфигурации Перечисление является прикладным объектом и предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации. На основе объекта конфигурации Перечисление платформа создает в базе данных информационную структуру, в которой может храниться набор некоторых постоянных значений.Набор всех возможных значений, которые содержит перечисление, задается при конфигурировании системы, и пользователь не может изменять их, удалять или добавлять новые.
Реорганизация справочника Номенклатура
Откройте конфигуратор и создайте новый объект конфигурации Перечисление с именем ВидыНоменклатуры. На закладке Данные добавьте два значения перечисления: Материал и Услуга:
Затем добавьте в справочник Номенклатура новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры.
Запустите 1С:Предприятие в режиме отладки и задайте для каждого элемента справочника Номенклатура соответствующее значение реквизита ВидНоменклатуры:
2. Оборотный регистр накопления
При учете услуг учитываются другие критерии, чем при учете материалов. Важны только сумма и количество услуг, которые были оказаны за определенный промежуток времени.
2.1 Создание оборотного регистра накопления Продажи
Создайте новый объект конфигурации регистр накопления Продажи, вид регистра Обороты.
На закладке Данные создайте измерения регистра:
- Номенклатура, тип СправочникСсылка.Номенклатура
- Клиент, тип СправочникСсылка.Кпиенты
- Мастер, тип СправочникСсылка.Сотрудники
и ресурсы:
- Количество, тип Число, длина 15, точность 3
- Выручка,тип Число, длина 15, точность 2
На закладке Движения объекта конфигурации Документ ОказаниеУслуги укажите, что этот документ будет создавать движения по регистру Продажи.
Запустите 1С:Предприятие в режиме отладки и откроем формы списка регистров накопления "Продажи".
2.2 Изменение процедуры проведения документа ОказаниеУслуги
Откройте в конфигураторе модуль объекта конфигурации документ ОказаниеУслуги (Оказание услуги Открыть модуль объекта) и найдите в нем процедуру обработчика события ОбработкаПроведения. Создайте еще один цикл обхода табличной части и команду записи движений регистра (добавления выделены жирным шрифтом):
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда
Продолжить;
КонецЕсли;
// регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
//КонецЦикла;
//Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
// регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость*ТекСтрокаПереченьНоменклатуры.Количество;
КонецЦикла;
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
//регистр Продажи
КонецЦикла;
// записываем движения регистров
Движения.ОстаткиМатериалов.Записать();
Движения.СтоимостьМатериалов.Записать();
Движения.Продажи.Записать();
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Теперь в тело созданного цикла вставьте команды создания движений регистра Продажи:
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда
Продолжить;
КонецЕсли;
// регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
//КонецЦикла;
//Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
// регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость * ТекСтрокаПереченьНоменклатуры.Количество;
КонецЦикла;
Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
//регистр Продажи
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Клиент = Клиент;
Движение.Мастер = Мастер;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
Движение.Выручка = ТекСтрокаПереченьНоменклатуры.Сумма;
КонецЦикла;
// записываем движения регистров
Движения.ОстаткиМатериалов.Записать();
Движения.СтоимостьМатериалов.Записать();
Движения.Продажи.Записать();
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
У оборотного регистра отсутствует свойство ВидДвижения, поскольку отражение вида движения (приход или расход) имеет смысл лишь при учете остатков.
Запустите 1С:Предприятие в режиме отладки и перепроведите все документы Оказание услуги и просмотрите регистр Продажи.
3. Объект конфигурации Отчет
Объект конфигурации Отчет является прикладным объектом и предназначен для описания средств и алгоритмов, при помощи которых пользователь сможет получать необходимые ему выходные данные. Алгоритм формирования выходных данных описывается при помощи визуальных средств или с использованием встроенного языка В реальной жизни объектам конфигурации Отчет соответствуют всевозможные таблицы выходных данных, сводных данных диаграммы и пр.
3.1 Создание отчета Материалы
Создайте новый объект конфигурации Отчет Материалы. Перейдите на закладку Макеты и воспользуйтесь конструктором выходной формы.
В списке База данных представлен состав объектов базы данных; на основе их данных существует возможность построить отчет. Если раскрыть ветку РегистрыНакопления то в этой ветке присутствуют еще несколько виртуальных таблиц, которые формирует система.
Раскройте виртуальную таблицу ОстаткиМатериалов.ОстаткиИОбороты, так как в отчете должна быть информация как об остатках материалов, так и об их поступлении и расходовании.
Выберете поля таблицы в нужном порядке двойным щелчком мыши. Сначала Склад и Материал, затем КоличествоНачальныйОстаток, КоличествоПриход, Количетсво.Оборот, КоличествоРасход и в заключение КоличествоКонечныйОстаток.
На закладке Итоги укажите группировочное поле Материал (для Материала установите тип итогов Элементы и иерархия) и Склад. В суммируемое поле перенесите Все поля (>>) и установите флаг Общие итоги.
Нажмите ОК. Система автоматически сформирует формы и откроет их на экране.
Запустите 1С:Предприятие в режиме отладки и сформируйте отчет Материалы.
Отчет содержит суммы по приходу и расходу материалов, а также по остаткам материалов.
Добавьте Поле Материал и сформируйте отчеты по различным Типам сравнения и значений. (наименование материала, цена и т.д.).
Также сформируйте отчеты по наличию материалов на складах (Поле - Склад).
Сформируйте отчет по Приходу материалов. Для этого в форме Настройка удалите все ненужные поля и оставьте КоличествоПриход. Удалите склад из области строк и поместите в область колонок . На вкладке Порядок укажите тип сортировки по убаыванию. Сформируйте отчет.
4. Создание объекта конфигурации План видов характеристик ВидыСубконто
План видов характеристик содержит описания объектов аналитического учета субконто.
Откройте конфигуратор и создайте новый объект конфигурации План видов характеристик. Задайте имя ВидыСубконто.
Создайте объект конфигурации Справочник и присвойте имя Субконто. Затем на закладке Владельцы укажите, что этот справочник подчинен плану видов характеристик ВидыСубконто:
Вернитесь в План видовхарактеристик. Задайте тип значения характеристик. Для этого нажмите на кнопку с многоточием на вкладке Основные и создайте составной тип данных, в который будут входить типы:
· |
СправочникСсылка.Клиенты, |
· |
СправочникСсылка.Номенклатура, |
· |
СправочникСсылка.Субконто: |
Затем укажите, что дополнительные значения характеристик будут находиться в справочнике Субконто. После этого перейдите на закладку Прочее и начните ввод предопределенных значений плана видов характеристик.
Создайте предопределенный вид субконто: Материалы, с кодом 00001 и типом СправочникСсылка.Номенклатура, и затем создайте вид субконто: Клиенты, с кодом 00002 и типом СправочникСсылка.Клиенты:
5. Объект конфигурации План счетов
Объект конфигурации План счетов является прикладным объектом и предназначен для описания структуры хранения информации о совокупности синтетических счетов предприятия, которые предназначены для группировки данных о его хозяйственной деятельности. План счетов в системе 1С:Предприятие поддерживает иерархию субсчетов: к каждому счету первого уровня может быть открыто несколько субсчетов, которые в свою очередь могут иметь свои субсчета и так далее.
По любому счету или субсчету может вестись аналитический учет в разрезе субконто, описанных в плане видов характеристик. Связь между планом счетов и планов видов характеристик задается разработчиком на этапе конфигурирования.
5.1 Создание объекта конфигурации План счетов Основной
Откройте конфигуратор и создадим новый объект конфигурации План счетов. Присвойте имя Основной.
На закладке Данные создайте признак учета Количественный. Перейдите на закладку Субконто и укажите, что субконто для этого плана счетов будут находиться в плане видов характеристик ВидыСубконто. Максимальное количество субконто на счете установим равным двум. Также создайте признак учета субконто Количественный и откройте закладку Прочее.
Нажмите кнопку Предопределенные и создайте четыре предопределенных счета:
· |
Товары, код 41, активный, с количественным учетом в разрезе материалов: |
· |
Расчеты с поставщиками, код 60, активно/пассивный |
· |
Дебиторская задолженность, код 62, активно/пассивный, с учетом в разрезе клиентов |
Капитал, с кодом 90, активно/пассивный. В результате план счетов будет выглядеть следующим образом. |
6. Объект конфигурации Регистр бухгалтерии
Объект конфигурации Регистр бухгалтерии является прикладным объектом и предназначен для описания структуры накопления данных, учет которых ведется исходя из некоторого плана счетов. На основе объекта конфигурации Регистр бухгалтерии платформа создает в базе данных информационную структуру, в которой будут накапливаться данные о хозяйственных операциях, отображаемых в бухгалтерском учете.
Значительное отличие от регистра накопления заключается в том, что регистр бухгалтерии имеет жесткую связь с используемым планом счетов. Поэтому каждая запись регистра бухгалтерии содержит дополнительные поля, определяемые настройкой используемого плана счетов.
6.1 Создание регистра бухгалтерии Управленческий
Откройте конфигуратор и создайте новый объект конфигурации Регистр бухгалтерии. Присвойте имя Управленческий. Укажите, что с ним будет связан план счетов Основной. Установите флаг Корреспонденция. Этот флаг будет говорить о том, что создаваемый регистр поддерживает корреспонденции. Это означает, что каждая запись регистра имеет дебетовую и кредитовую часть, что позволит получать информацию не только об остатках и оборотах по счетам , но и о корреспонденциях между счетами.
Регистры, не поддерживающие корреспонденцию, используются тогда, когда не нужно использовать принцип двойной записи, регламентированный в бухгалтерском учете, и, соответственно, контролировать баланс хозяйственных средств и их источников.
Теперь перейдите на закладку Данные и создайте два ресурса:
- |
Сумма, длина 15, точность 2, балансовый, |
- Количество, длина 15, точность 3, небалансовый, признак учета количественный, признак учета субконто количественный. |
Откройте окно редактирования документов ПриходнаяНакладная, отметьте что эти документы будут создавать движения и по регистру бухгалтерии Управленческий (закладка "Движения").
Запустите 1С:Предприятие в режиме отладки и откройте регистр бухгалтерии Управленческий.
6.2 Создание движений документа ПриходнаяНакладная
В окне редактирования объекта конфигурации Документ ПриходнаяНакладная, на закладке Движения запустите конструктор движений документа.
В список регистров добавьте регистр РегистрБухгалтерии.Управленческий. В качестве источника данных выберем табличную часть документа ПриходнаяНакладная Материалы. Счет дебета установите равным ПланыСчетов.Основной.Товары (41), а счет кредита ПланыСчетов.Основной.РасчетыСПоставщиками (60).
Нажмите кнопку "Заполнить выражения". У вас должен получиться следующий результат:
Нажмите ОК и посмотрите, какой текст платформа добавила в обработчик проведения документа ПриходнаяНакладная.
Запустите 1С:Предприятие в режиме отладки, откройте документы ПриходнаяНакладная и перепроведите. Посмотрите, какие движения сформировал документ в регистре бухгалтерии Управленческий.
7. Создание отчета ОборотноСальдоваяВедомость
Для того чтобы сформировать этот отчет, откройте конфигуратор и создайте новый объект конфигурации Отчет с именем ОборотноСальдоваяВедомость. На закладке Макеты откройте конструктор выходной формы, и посмотрите, что предлагает платформа для выбора.
Бухгалтерский отчет Оборотно-сальдовая ведомость представляет собой таблицу, в строках которой перечислены все имеющиеся в плане счетов счета, а в колонках начальное сальдо, оборот и конечное сальдо по дебету и кредиту каждого счета.
Поэтому для построения такого отчета, понадобятся две исходные таблицы: объектная (ссылочная) таблица плана счетов Основной и виртуальная таблица регистра бухгалтерии Управленческий.ОстаткиИОбороты:
Из таблицы Основной выберете поля Код и Наименование, а из таблицы УправленческийОстаткиИОбороты, выберете следующие поля:
· |
СуммаНачальныйРазвернутыйОстатокДт, |
· |
СуммаНачальныйРазвернутыйОстатокКт, |
· |
СуммаОборотДт, |
· |
СуммаОборотКт, |
· |
СуммаКонечныйРазвернутыйОстатокДт, |
· |
СуммаКонечныйРазвернутыйОстатокКт: |
Перейдем на закладку Связи и укажите, что из таблицы Основной выбираются все записи, а из таблицы регистра -только те, которые соответствуют условию связи:
Затем на закладке Объединения/Псевдонимы задайте псевдонимы полей регистра: СальдоНачДт, СальдоНачКт, ОборотДт, ОборотКт, СальдоКонДт и СальдоКонКт:
После этого на закладке Порядок укажите, что результат запроса должен быть отсортирован по возрастанию поля Код, а на закладке Итоги укажите, что должны быть сформированы общие итоги, представляющие собой суммарные значения полей регистра:
На закладке Отчет сбросьте флаг Использовать построитель отчета.
Нажмите ОК, запустите 1С:Предприятие в режиме отладки и сформируйте отчет.
Формирование отчетов и создание бухгалтерского учета