1с регистры накопления измерения ресурсы реквизиты

Регистр накопления

Регистры накопления — это прикладные объекты конфигурации. Они составляют основу механизма учета движения средств (финансов, товаров, материалов и т. д.), который позволяет автоматизировать такие направления, как складской учет, взаиморасчеты, планирование.

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

Структура

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

Измерения регистра описывают разрезы, в которых хранится информация, а в ресурсах регистра накапливаются нужные числовые данные. Например, для регистра ТоварныеЗапасы, который имеет следующую структуру:


Регистр накопления

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


Регистр накопления

Поскольку регистр накопления служит для накопления числовых значений, каждая запись выполняет изменение хранимых ресурсов — движение. Движения, в общем случае, могут либо добавлять некоторые приращения к хранимым ресурсам, либо отнимать их. Если должно выполняться увеличение хранимых ресурсов, — такое движение называется движением прихода («+»), если уменьшение хранимых ресурсов — движением расхода («-»).

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


Регистр накопления

Связь с регистратором

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


Регистр накопления

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

Состав документов, которые могут создавать записи в регистре накопления, задается разработчиком в процессе создания прикладного решения:


Регистр накопления

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

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

Уникальность записей

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

Регистры остатков и регистры оборотов

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

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


Регистр накопления

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

Агрегаты

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

Форма списка и форма набора записей

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

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

Функциональные возможности регистра накопления

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

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

Смотрите также:

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

/// Как прочитать записи регистра накопления в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПрочитатьЗаписиРегистраНакопленияНаСервере()
 
    // Получим все записи регистра накопления ЗаказыКлиентов
    // по организации ООО "Ромашка" за 1 квартал 2014 года,
    // упорядочив их по возрастанию даты.
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ЗаказыКлиентов.Период,
        |   ЗаказыКлиентов.Регистратор,
        |   ЗаказыКлиентов.НомерСтроки,
        |   ЗаказыКлиентов.Активность,
        |   ЗаказыКлиентов.Контрагент,
        |   ЗаказыКлиентов.Номенклатура,
        |   ЗаказыКлиентов.Количество
        |ИЗ
        |   РегистрНакопления.ЗаказыКлиентов КАК ЗаказыКлиентов
        |ГДЕ
        |   ЗаказыКлиентов.Активность = Истина И
        |   ЗаказыКлиентов.Организация = &ВыбОрганизация И
        |   ЗаказыКлиентов.Период МЕЖДУ &НачДата И &КонДата
        |УПОРЯДОЧИТЬ ПО
        |   ЗаказыКлиентов.Период";
 
    Запрос.УстановитьПараметр("ВыбОрганизация",
        Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""")
    );
    // начальная дата - 1 января 2014 года
    Запрос.УстановитьПараметр("НачДата", '20140101000000');
    // конечная дата - 31 марта 2014 года 23 часа 59 минут 59 секунд
    Запрос.УстановитьПараметр("КонДата", '20140331235959');
 
    РезультатЗапроса = Запрос.Выполнить();
 
    Записи = РезультатЗапроса.Выбрать();
 
    Пока Записи.Следующий() Цикл
        Сообщить(
            "[" + Записи.Период + "] " +
            Записи.Номенклатура + " " +
            Записи.Количество + " шт." +
            " (" + Записи.Регистратор + ")"
        );
    КонецЦикла;
 
КонецПроцедуры
 
/// Как получить обороты по регистру накопления в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПолучитьОборотыПоРегиструНапопленияНаСервере()
 
    // За получение оборотов по регистру накопления за произвольный период
    // с заданной периодичностью в различных разрезах аналитики отвечает
    // виртуальная таблица Обороты,
    // у неё есть следующие параметры:
    // 1. Начало периода (включая)
    // 2. Конец периода (включая)
    // 3. Периодичность (например, Период, Запись, Год, Месяц...)
    // 4. Условие (например, Организация = &ВыбОрганизация)
 
    // Пример №1
    Сообщить("Пример №1");
 
    // Посчитаем сколько и каких продуктов было заказано за 1 квартал
    // 2014 года в организации ООО "Ромашка".
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ЗаказыКлиентовОбороты.Номенклатура,
        |   ЗаказыКлиентовОбороты.Организация,
        |   ЗаказыКлиентовОбороты.КоличествоОборот
        |ИЗ
        |   РегистрНакопления.ЗаказыКлиентов.Обороты(
        |       ДАТАВРЕМЯ(2014, 01, 01, 00, 00, 00),
        |       ДАТАВРЕМЯ(2014, 03, 31, 23, 59, 59),
        |       Период,
        |       Организация = &ВыбОрганизация
        |   ) КАК ЗаказыКлиентовОбороты
        |УПОРЯДОЧИТЬ ПО
        |   ЗаказыКлиентовОбороты.Номенклатура";
 
    Запрос.УстановитьПараметр("ВыбОрганизация",
        Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""")
    );
 
    РезультатЗапроса = Запрос.Выполнить();
 
    Записи = РезультатЗапроса.Выбрать();
 
    Пока Записи.Следующий() Цикл
        Сообщить(
            "За 1 кв. 2014 года заказали " + 
            Записи.КоличествоОборот + " шт. " +
            Записи.Номенклатура
        );
    КонецЦикла;
 
    // Пример №2
    Сообщить("Пример №2");
 
    // Посчитаем сколько бананов было заказано за каждый месяц
    // в 1 квартале 2014 года в организации "Ромашка".
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ЗаказыКлиентовОбороты.Период,
        |   ЗаказыКлиентовОбороты.Номенклатура,
        |   ЗаказыКлиентовОбороты.Организация,
        |   ЗаказыКлиентовОбороты.КоличествоОборот
        |ИЗ
        |   РегистрНакопления.ЗаказыКлиентов.Обороты(
        |       &НачПериод,
        |       &КонПериод,
        |       Месяц,
        |       Организация = &ВыбОрганизация И
        |       Номенклатура = &ВыбНоменклатура
        |   ) КАК ЗаказыКлиентовОбороты
        |УПОРЯДОЧИТЬ ПО
        |   ЗаказыКлиентовОбороты.Период";
 
    Запрос.УстановитьПараметр("НачПериод", '20140101000000');
    Запрос.УстановитьПараметр("КонПериод", '20140331235959');
    Запрос.УстановитьПараметр("ВыбОрганизация",
        Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""")
    );
    Запрос.УстановитьПараметр("ВыбНоменклатура",
        Справочники.Номенклатура.НайтиПоНаименованию("Банан")
    );
 
    РезультатЗапроса = Запрос.Выполнить();
 
    Записи = РезультатЗапроса.Выбрать();
 
    Пока Записи.Следующий() Цикл
        Сообщить(
            "За " + Формат(Записи.Период, "ДФ=ММММ") +
            " заказали " + Записи.КоличествоОборот + " шт. " +
            Записи.Номенклатура            
        );
    КонецЦикла;
 
КонецПроцедуры
 
/// Как получить остатки по регистру накопления в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПолучитьОстаткиПоРегиструНакопленияНаСервере()    
 
    // За получение остатков по регистру накопления в разрезе
    // аналитики отвечает виртуальная таблица Остатки,
    // у неё есть следующие параметры:
    // 1. Период, на который считаем остатки, исключая саму дату.
    //    Если нужны остатки на дату включительно - используем
    //    тип Граница (см. пример ниже).
    // 2. Условие (например, Организация = &ВыбОрганизация)
 
    // Получим остатки бананов на основном складе в организации
    // ООО "Ромашка" на 31 марта 2014 года (включительно)
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ЗапасыЕдыОстатки.Склад,
        |   ЗапасыЕдыОстатки.Номенклатура,
        |   ЗапасыЕдыОстатки.Организация,
        |   ЗапасыЕдыОстатки.КоличествоОстаток
        |ИЗ
        |   РегистрНакопления.ЗапасыЕды.Остатки(
        |       &ВыбДата,
        |       Склад = &ВыбСклад И
        |       Номенклатура = &ВыбНоменклатура
        |   ) КАК ЗапасыЕдыОстатки";
 
    Запрос.УстановитьПараметр("ВыбДата", 
        Новый Граница('20140331235959', ВидГраницы.Включая)
    );
    Запрос.УстановитьПараметр("ВыбСклад",
        Справочники.Склады.НайтиПоНаименованию("Основной")
    );
    Запрос.УстановитьПараметр("ВыбНоменклатура",
        Справочники.Номенклатура.НайтиПоНаименованию("Банан")
    );    
 
    РезультатЗапроса = Запрос.Выполнить();
 
    Записи = РезультатЗапроса.Выбрать();
 
    Пока Записи.Следующий() Цикл
        Сообщить(
            "Остатки " + " " + Записи.Номенклатура +
            " на складе " + Записи.Склад + " на дату " +
            "31.03.2014 (включительно) " +
            " составляют " + Записи.КоличествоОстаток + " шт.");
    КонецЦикла;
 
КонецПроцедуры
 
/// Как получить сразу остатки и обороты по регистру
/// накопления в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПолучитьСразуОстаткиИОборотыПоРегиструНакопленияНаСервере()
 
    // За получение остатков и оборотов за произвольный период
    // с заданной периодичностью в разрезе аналитики отвечает
    // виртуальная таблица ОстаткиИОбороты, у неё есть параметры:
    // 1. Начало периода (включая)
    // 2. Конец периода (включая)
    // 3. Периодичность (например, Период, Год, Месяц...)
    // 4. Метод дополнения периодов (Движение или ДвиженияИГраницыПериода)
    // 5. Условие (например, Организация = &ВыбОрганизация)
 
    // Для примера получим начальный остаток, приход, расход и конечный остаток
    // банана на всех складах за каждый месяц 2014 года для
    // организация ООО "Ромашка".
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ЗапасыЕдыОстаткиИОбороты.Период,
        |   ЗапасыЕдыОстаткиИОбороты.Номенклатура,
        |   ЗапасыЕдыОстаткиИОбороты.Организация,
        |   ЗапасыЕдыОстаткиИОбороты.КоличествоНачальныйОстаток,
        |   ЗапасыЕдыОстаткиИОбороты.КоличествоОборот,
        |   ЗапасыЕдыОстаткиИОбороты.КоличествоПриход,
        |   ЗапасыЕдыОстаткиИОбороты.КоличествоРасход,
        |   ЗапасыЕдыОстаткиИОбороты.КоличествоКонечныйОстаток
        |ИЗ
        |   РегистрНакопления.ЗапасыЕды.ОстаткиИОбороты(
        |       ДАТАВРЕМЯ(2014, 01, 01, 00, 00, 00),
        |       ДАТАВРЕМЯ(2014, 12, 31, 23, 59, 59),
        |       Месяц, ДвиженияИГраницыПериода,
        |       Организация = &ВыбОрганизация И
        |       Номенклатура = &ВыбНоменклатура
        |   ) КАК ЗапасыЕдыОстаткиИОбороты
        |УПОРЯДОЧИТЬ ПО
        |   ЗапасыЕдыОстаткиИОбороты.Период";
 
    Запрос.УстановитьПараметр("ВыбОрганизация",
        Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""")
    );
    Запрос.УстановитьПараметр("ВыбНоменклатура",
        Справочники.Номенклатура.НайтиПоНаименованию("Банан")
    );
 
    РезультатЗапроса = Запрос.Выполнить();
 
    Записи = РезультатЗапроса.Выбрать();
 
    Пока Записи.Следующий() Цикл
      Сообщить(
        Формат(Записи.Период, "ДФ=ММММ") + " [" +
        Записи.Номенклатура + "] " + "нач. остаток " +
        Записи.КоличествоНачальныйОстаток + " приход " +
        Записи.КоличествоПриход + ", расход " +
        Записи.КоличествоРасход + " кон. остаток " +
        Записи.КоличествоКонечныйОстаток
      );
  КонецЦикла;
 
КонецПроцедуры
 
/// Как найти и изменить программно записи в регистр накопления
/// документа (регистратора) в 1с 8.3, 8.2
 
&НаСервере
Процедура КакНайтиИИзменитьЗаписиДокументаНаСервере()
 
    // Предположим у нас есть ссылка на проведенный документ
    // поступления еды № ВМБП-000002
 
    ПоступлениеСсылка =
        Документы.ПоступлениеЕды.НайтиПоНомеру(
            "ВМБП-000002", '20141231'
        );
 
    // Мы значем, что этот документ делает следующие записи
    // в регистр накопления "ЗапасыЕды":
    // Приход [Организация, Склад, Номенклатура]  [Количество]
 
    // Наша задача: найти эти записи и изменить
    // их (например, удвоим количество поступившего товара)
    // и записать вместо старых.
 
    // Используем объектную технику получения записей,
    // ведь мы будем их изменять.
 
    Поступление = ПоступлениеСсылка.ПолучитьОбъект();
 
    // Получим набор записей этого документа в регистр "ЗапасыЕды".
    НаборЗаписей = Поступление.Движения.ЗапасыЕды;
 
    // Прочитаем записи из базы данных.
    НаборЗаписей.Прочитать();
 
    Для Каждого Запись Из НаборЗаписей Цикл
 
        // Выведем старые значения.
        Сообщить(
            "[" + Запись.Организация + ", " +
            Запись.Склад + ", " +
            Запись.Номенклатура + "] " +
            "[" + Запись.Количество + "]"
        );
 
        // Удвоим количество.
        Запись.Количество = 2 * Запись.Количество;
 
    КонецЦикла;
 
    // Добавим новую запись в регистр накопления.
 
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Организация =
        Справочники.Организации.НайтиПоНаименованию("ООО ""Ромашка""");
    НоваяЗапись.Склад =
        Справочники.Склады.НайтиПоНаименованию("Основной");
    НоваяЗапись.Номенклатура =
        Справочники.Номенклатура.НайтиПоНаименованию("Банан");
    НоваяЗапись.Период = ТекущаяДата();
    НоваяЗапись.Количество = 1000;
 
    // Разом запишем набор записей.
    НаборЗаписей.Записать(
        Истина // удалим старые записи и запишем вместо них новые
    );
 
    // Теперь записи регистра ЗапасыЕды по документу № ВМБП-000002,
    // отличаются от тех, что были записаны документом при проведении.
    // Чтобы вернуть их к начальному виду - нужно
    // перепровести документ.
 
КонецПроцедуры
 
/// Как прочитать записи документа в регистр накопления
/// запросом в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПрочитатьЗаписиДокументаЗапросомНаСервере()
 
    // Этот приём используется, если не требуется изменять
    // найденные записи.
 
    // Предположим у нас есть ссылка на проведенный документ
    // поступления еды № ВМБП-000002
 
    ПоступлениеСсылка =
        Документы.ПоступлениеЕды.НайтиПоНомеру(
            "ВМБП-000002", '20141231'
        );
 
    // Мы значем, что этот документ делает записи
    // в регистр накопления "ЗапасыЕды".    
    // Прочитаем эти записи запросом.
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ЗапасыЕды.Период,
        |   ЗапасыЕды.Регистратор,
        |   ЗапасыЕды.НомерСтроки,
        |   ЗапасыЕды.Активность,
        |   ЗапасыЕды.ВидДвижения,
        |   ЗапасыЕды.Склад,
        |   ЗапасыЕды.Номенклатура,
        |   ЗапасыЕды.Организация,
        |   ЗапасыЕды.Количество
        |ИЗ
        |   РегистрНакопления.ЗапасыЕды КАК ЗапасыЕды
        |ГДЕ
        |   ЗапасыЕды.Регистратор = &ВыбРегистратор
        |УПОРЯДОЧИТЬ ПО
        |   ЗапасыЕды.НомерСтроки";
 
    Запрос.УстановитьПараметр(
        "ВыбРегистратор",
        ПоступлениеСсылка
    );
 
    РезультатЗапроса = Запрос.Выполнить();
 
    Записи = РезультатЗапроса.Выбрать();
 
    Пока Записи.Следующий() Цикл        
        Сообщить(
            "[" + Записи.Организация + ", " +
            Записи.Склад + ", " +
            Записи.Номенклатура + "] " +
            "[" + Записи.Количество + "]"
        );
    КонецЦикла;
 
КонецПроцедуры
 
/// Как создать записи регистра накопления без привязки
/// к документу в 1с 8.3, 8.2
 
&НаСервере
Процедура КакСоздатьЗаписиБезДокументаНаСервере()
 
    // В нашей тестовой конфигурации нет документа
    // "ОперацияБух", который присутствует в бухгалтерской базе.
 
    Сообщить("Этот пример нельзя выполнить в этой базе.");
    Возврат;
 
    // Записи регистра накопления обязательно
    // должны быть привязаны к документу, в данном случае
    // этим документом будет документ "ОперацияБух",
    // задуманный как раз для ручных операций.
 
    Операция = Документы.ОперацияБух.СоздатьДокумент();
    Операция.Дата = ТекущаяДата();
    Операция.Организация =
        Справочники.Организации.НайтиПоНаименованию("Милькин В. В. ИП");
    Операция.СуммаОперации = 1000;	
    Операция.Содержание = "Ручная операция по регистру накопления ИПДоходы";	
    Операция.Записать(РежимЗаписиДокумента.Запись);
 
    // Затем получаем его набор записей для регистра ИПДоходы
    НаборЗаписей = Операция.Движения.ИПДоходы;
    Запись = НаборЗаписей.Добавить();
    Запись.Период = Операция.Дата;
    Запись.Организация = Операция.Организация;
    // и т.д. заполняем все нужные поля регистра
    Запись.Сумма = 1000;	
 
    НаборЗаписей.Записать(Истина);
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

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

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

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

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

список регистров в древе метаданных

Содержание

  • Вид регистра накопления
  • Данные регистров накопления
    • Измерения
      • Свойства измерений
    • Ресурсы
    • Реквизиты
    • Стандартные реквизиты
    • Агрегаты
  • Движения по регистрам накопления

Вид регистра накопления

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.

Связаться с нами можно по телефону +7 499 350 29 00.

Услуги и цены можно увидеть по ссылке.

Будем рады помочь Вам!

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

вид регистра накопления в 1С

  • Оборотные регистры накопления позволяют получить только обороты за какой-то определенный промежуток времени. Получение остатков в таком случае не представляется возможным. Регистр накопления с видом «Обороты» создает в системе только одну виртуальную таблицу – оборотов.
  • Регистры накопления с видом «Остатки» дают возможность разработчику получить и остатки и обороты. В данном случае будут создаваться уже три виртуальные таблицы: остатков, оборотов, остатков и оборотов. Примером такого регистра может выступать регистр остатков ТМЦ на складах, движения денежных средств по расчетным счетам организации.

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

Данные регистров накопления

Измерения

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

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

измерения ресурсы и реквизиты

Свойства измерений

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

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

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

свойства измерения

Ресурсы

В качестве ресурсов выступают числовые данные, которые и хранят некую информацию. Именно ее в дальнейшем мы будем получать в различных разрезах. Например, в регистре накопления «Выпуск продукции» ресурсом будет выступать только количество. В таком случае мы сможем получить количество выпущенной продукции на какой-то определенный момент времени, например, по определенному подразделению.

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

Реквизиты

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

Стандартные реквизиты

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

стандартные реквизиты

список

Агрегаты

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

агрегаты регистра накопления

Движения по регистрам накопления

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

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

регистраторы

В самих документах, которые являются регистраторами, список регистров, по которым они совершают движения, расположен на вкладке «Движения». Здесь так же доступен конструктор движений, который поможет в создании таких процедур (проведения и отмены проведения). Сопоставление данных документа и регистра производятся на сравнении типов данных.

список регистров в документе

Регистры

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


Назначение регистров

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

Данные в регистры добавляются только при проведении документов. Сведения из регистров используются для формирования отчетов. Классическая схема использования регистров в 1С:Предприятие выглядит следующим образом:

Документы => Регистры => Отчеты

Измерения и ресурсы

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

Измерения регистра — это то, в каких разрезах требуется хранение информации.

Ресурсы регистра — это количественные или суммовые данные, которые хранятся в регистре.

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

Регистр: Остатки товаров

Измерения: Товар, Склад

Ресурсы: Кол-во, Стоимость

С помощью методов встроенного языка мы можем легко получить ответы на вопросы:

   * остаток конкретного товара на конкретном складе

   * остаток конкретного товара на всех складах

   * стоимость всех товаров на конкретном складе

Движения в регистрах

В табличном виде регистр ОстаткиТоваров представляется следующим образом:

Вид движения Товар Склад Кол-во Стоимость
приход Товар4 Склад1 15 200
расход Товар4 Склад1 10 100
приход Товар4 Склад1 5 50

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

Виды регистров

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

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

Регистры остатков

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

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

Регистры оборотов

Однако, легко получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя. Можно проанализировать все движения, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит.

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

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

Основы программирования

Регистры, используемые в примерах:

Оборотный регистр Доходы

Измерения: Клиент, Товар

Ресурсы: Доход

Реквизиты: нет

Периодичность: День    

Хранит доходы от продаж за день в разрезе клиентов и товаров.

Регистр остатков Товары

Измерения: Товар, Склад

Ресурсы: Количество, Стоимость

Реквизиты: нет

Хранит остатки товаров на каждом складе в количественном и суммовом выражении.

Запись движений в регистр остатков

//только при проведении документа
Регситр.Доходы.ДвижениеПриход(Покупатель,КупленныйТовар,СуммаПокупки)

Методы ДвижениеПриходВыполнить и ДвижениеРасходВыполнить

Пример:

Регистр.Доходы.Клиент = Покупатель;
Регистр.Доходы.Товар = КупленныйТовар;
Регистр.Доходы.Доход = СуммаПокупки;
Регистр.Доходы.ДвижениеПриходВыполнить();

Запись движений в оборотный регистр

(только при проведении документа)

1. Метод Движение

Пример:

Регистр.Товары.Движение (ПоступившийТовар, ТекСклад, КолвоПоНакладной, СуммаПоНакладной)

2. Метод ДвижениеВыполнить

Пример:

Регистр.Товары.Товар = ПоступившийТовар;
Регистр.Товары.Склад = ТекСклад;
Регистр.Товары.Количество = КолвоПоНакладной;
Регистр.Товары.Стоимость = СуммаПоНакладной;
Регистр.Товары.ДвижениеВыполнить();

Примечание: Если сумма или количество в движении будет отрицательным, то это движение будет расходом, иначе приходом.

Обращение к итогам регистра

1-й способ.

РегТовары = СоздатьОбъект("Регистр.Товары");
РегТовары.ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
     Сообщить("Товар " + Строка(РегТовары.Товар) +
                 " на складе " + Строка(РегТовары.Склад) +
                 " кол-во: " + Строка(РегТовары.Количество) +
                 " стоимость: " + Строка(РегТовары.Стоимость) +
КонецЦикла;

2-й способ. Выгрузка итогов в таблицу значений

РегДоходы = СоздатьОбъект("Регистр.Доходы");
ТабЗнач = СоздатьОбъект("ТаблицаЗначений");

РегДоходы.ВыгрузитьИтоги(ТабЗнач);

ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
     Сообщить("Товар " + Строка(ТабЗнач.Товар) +
              " на складе " + Строка(ТабЗнач.Склад) +
              " кол-во: " + Строка(ТабЗнач.Количество) +
              " стоимость: " + Строка(ТабЗнач.Стоимость) +
КонецЦикла;

Обращение к итогам оборотного регистра

РегДоходы = СоздатьОбъект("Регистр.Доходы");
//установить период выборки "30 ноября 2001 года"
РегДоходы.ИспользоватьПериод(2001,11,30);

1. Метод Итог

Пример:

//получить доход за день по данному клиенту и данному товару
Доход = РегДоходы.Итог(ТекКлиент, ТекТовар, "Доход");

2. Метод Итоги

Пример:

//получить доход за день по данному клиенту и данному товару
РегДоходы.Итоги(ТекКлиент, ТекТовар);
Доход = РегДоходы.Доход;

3. Метод СводныйИтог

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:

//получить сводные итоги за день
ДоходПоКлиенту = РегДоходы.СводныйИтог(ТекКлиент,,"Доход");
ДоходПоТовару = РегДоходы.СводныйИтог(,ТекТовар,"Доход");

4. Метод СводныеИтоги

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:

//получить сводные итоги за день по клиенту
РегДоходы.СводныеИтоги(ТекКлиент,); //указано только одно измерение
ДоходПоКлиенту = РегДоходы.Доход;

//получить сводные итоги за день по товару
РегДоходы.СводныеИтоги(,ТекТовар); //указано только одно измерение
ДоходПоТовару = РегДоходы.Доход;
[1C]


Обращение к итогам регистра остатков

[1C] РегТовары = СоздатьОбъект("Регистр.Товары");

1. Метод Остаток

Пример:

//получить остаток данного товара на данном складе
Колво = РегТовары.Остаток (ТекТовар, ТекСклад, "Количество");

//получить стоимость данного товара на данном складе
Стоимость = РегТовары.Остаток (ТекТовар, ТекСклад, "Стоимость");

2. Метод Остатки

Пример:

//получить остаток данного товара на данном складе по кол-ву и по сумме
РегТовары.Остатки (ТекТовар, ТекСклад);
Колво = РегТовары.Количество;
Стоимость = РегТовары.Стоимость;

3. Метод СводныйОстаток

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:

//получить остаток данного товара на всех складах
КолвоТовара = РегТовары.СводныйОстаток (ТекТовар,,"Количество");
СтоимостьТовара = РегТовары.СводныйОстаток (ТекТовар,,"Стоимость");

//получить стоимость всех товаров на данном складе
СтоимостьПоСкладу = РегТовары.СводныйОстаток (,ТекСклад,"Стоимость");

4. Метод СводныеОстатки

Пример:

//получить сводные остатки по товару
РегТовары.СводныеОстатки(ТекТовар,); //указано только одно измерение
КолвоТовара = РегТовары.Количество;
СтоимостьТовара = РегТовары.Стоимость;

//получить стоимость всех товаров на данном складе
РегТовары.СводныеИтоги(,ТекСклад); //указано только одно измерение
СтоимостьПоСкладу = РегТовары.Стоимость;

Обращение к движениям регистра

РегТовары = СоздатьОбъект("Регистр.Товары");

РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
        Сообщить("Дата движения " + Строка(РегТовары.ТекущийДокумент.ДатаДок));
        Сообщить("Клиент: " + РегТовары.Клиент);
        Сообщить("Товар: " + РегТовары.Товар);
        Сообщить("Сумма: " + РегТовары.Доход);
КонецЦикла;

Фильтрация движений и итогов

РегТовары = СоздатьОбъект("Регистр.Товары");

1. Метод УстановитьФильтр

Пример:

//выбрать все движения по данному складу за период
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
...
КонецЦикла;

//выбрать все товары на данном складе
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
...
КонецЦикла;

2. Метод УстановитьЗначениеФильтра

Пример:

//выбрать все движения по данному складу за период
РегТовары.УстановитьЗначениеФильтра("Склад", ТекСклад);

//далее идет выборка движений или итогов

3. Метод ВыбратьДвиженияДокумента

4. Метод ВыбратьДвиженияСОстатками

Применяется только для регистра остатков.

Временный расчет регистров

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

РегТовары = СоздатьОбъект("Регистр.Товары");
РегДоходы = СоздатьОбъект("Регистр.Доходы");

//установка флага временного расчета для регистров
РегТовары.ВременныйРасчет(1);
РегДоходы.ВременныйРасчет(1);

1. Метод РассчитатьРегистрыНа

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

(на начало даты или на момент до проведения документа)

2. Метод РассчитатьРегистрыПо

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

(на конец даты или на момент после проведения документа)

Запрос к регистру

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

ТекстЗапроса = "
|Период С ДатаНач По ДатаКон;
|Товар = Регистр.Доходы.Товар;
|Клиент = Регистр.Доходы.Клиент;
|Доход = Регистр.Доходы.Доход;
|Условие (Товар = ТекТовар);
|Группировка Клиент;
|Функция ПриходПоКлиенту = Приход(Доход);
|"; 

Содержание:

1.       Структура регистра накопления 1С 8.3.

2.       Структура регистра накопления остатки.

3.       Виртуальные таблицы 1С регистра накопления остатки.

Знаете ли вы, что такое регистр накопления в 1С 8.3? Это объект метаданных 1С, используемый для удобства хранения и обработки числовых данных в разрезе требуемой аналитики в 1С 8.3. Их механизм позволяет не только накапливать данные, но и быстро обработать, рассчитать итоги, получить остатки и обороты, а также вывести необходимые результаты пользователю в виде отчетов. Они являются основой в механизме учета движения средств, таких как финансы, товары, материалы. С их помощью можно автоматизировать разные направления деятельности предприятия. Движения в регистрах накопления, т.е. записи с информацией делают при проведении документы, назначенные регистраторами в процессе разработки. 


1.      Структура регистра накопления 1С 8.3.

Элементы регистра накопления: Стандартные реквизиты, Измерения, Ресурсы, Реквизиты.

Стандартными реквизитами регистра накопления являются: период, регистратор, номер строки, активность, вид движения.

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

2.      Структура регистра накопления Остатки.

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

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

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

3.      Виртуальные таблицы 1С регистра накопления Остатки.

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

Рассмотрим отличия этих таблиц:

Виртуальная остаточная таблица для расчета всегда использует таблицу итогов и иногда таблицу движений. У нее есть параметры:

1. Период, на который считаем остатки, исключая саму дату. Если нужны остатки на дату включительно – используем тип Граница.

2. Условие, которое можно наложить на измерение регистра для более быстрого получения выборки данных. Например, Организация = &ВыбОрганизация.

Виртуальная таблица оборотов работает только по данным таблицы движений. То есть для получения оборотов за какой-либо период будут обработаны движения за этот период. У нее есть следующие параметры:

1. 1С Начало периода (включая). Если дата не указана, то данные будут анализироваться с начала ведения учета по этому регистру.

2. Конец периода (включая). Если дата не указана, то данные будут анализироваться на дату формирования выборки данных.

3. Периодичность (например, Период, Запись, Год, Месяц…). Обороты будут анализироваться с указанной периодичностью. Например, если указан Месяц, то обороты будут получены за месяц.

4. Условие (например, Организация = &ВыбОрганизация).

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

1. Начало периода (включая). Если дата не указана, то данные будут анализироваться с начала ведения учета по этому регистру.

2. Конец периода 1С (включая). Если дата не указана, то данные будут анализироваться на дату формирования выборки данных.

3. Периодичность (например, Период, Год, Месяц…). Обороты будут анализироваться с указанной периодичностью.

4. Метод дополнения периодов (Движение или ДвиженияИГраницыПериода).

5. Условие (аналогично другим таблицам).


 

Специалист компании «Кодерлайн» 

Дарья Губернаторова.

Для удобства хранения и обработки информации в программе 1С используются различные Регистры накопления. Все данные вносятся в программу с помощью документов, на основании которых и происходит запись в регистр. Использование данного механизма позволяет накапливать данные, обрабатывать их, рассчитывать итоги, выводя остатки и обороты по этим данным пользователю.

Если мы откроем любую конфигурацию 1С Предприятие, в дереве метаданных увидим раздел «Регистры накопления».

Рис.1 Регистры накопления
Рис.1 Регистры накопления

Если в пользовательском режиме мы зайдем в раздел «Все функции», то там тоже можем увидеть ветку «Регистры накопления».

Рис.2 Все функции
Рис.2 Все функции

Регистр накопления – это таблица, накапливающая информацию из движения документов (приход/расход, обороты). Откроем для примера регистр накопления «Зарплата к выплате». Мы видим, что строки «Начисление зарплаты» и «Отпуск» отмечены знаком «+», т.е. увеличивают данные регистра, а «Ведомость в банк» (документ, которым произведена выплата) отмечен знаком «-», т.е. уменьшает данные регистра по каждой записи, в данном случае – по физическому лицу (сотруднику).

Рис.3 Таблица
Рис.3 Таблица

Если мы откроем документ, например, «Ведомость в банк», и посмотрим его движения по регистрам (кнопка «Показать проводки и другие движения документа»), то увидим записи производимые документом в связанные с ним регистры.

Рис.4 Ведомость в банк
Рис.4 Ведомость в банк
Рис.5 Движение документа
Рис.5 Движение документа

Аналогично происходят записи в регистры накопления по приходу и расходу товара, материалов, по учету НДС и другие примеры. Используя данные таких таблиц, программе гораздо проще составить отчет по запросу пользователя.

Рассмотрим, как устроены регистры накопления изнутри, на примере программы «1С:Бухгалтерия 3.0».

Настройки регистра накопления

Мы можем разрабатывать свои регистры накопления при необходимости. Но для этого сначала разберемся в его настройках. Рассмотрим настройки регистра накопления на том же примере с зарплатой к выплате. Откроем регистр «ЗарплатаКВыплате». На закладке «Основные» мы видим имя регистра и его вид.

Рис.6 Настройки регистра накопления
Рис.6 Настройки регистра накопления

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

На закладке «Подсистема» отмечается подсистема, где задействован регистр.

Рис.7 Закладка «Подсистема»
Рис.7 Закладка «Подсистема»

На закладке «Данные» описывается структура регистра. Измерения – записи, по которым в дальнейшем мы можем получить остатки или посмотреть обороты. Ресурсы – реквизит для определения числовых данных по регистру. Это может быть сумма, количество (например, количество проданных товаров, сумма проданных товаров, сумма выплаченной или начисленной зарплаты).

Рис.8 Закладка «Данные»
Рис.8 Закладка «Данные»

Раздел «Реквизиты» предназначен для хранения сопутствующей информации и используется на усмотрение пользователя. Существует еще один набор стандартных реквизитов, список которых не изменяется. Кнопка «Агрегаты» активна только для регистров с видом «Обороты».

Рис.9 Раздел «Реквизиты»
Рис.9 Раздел «Реквизиты»

И самый интересный раздел – это «Регистраторы». Здесь определяются документы, которые будут производить записи в регистр, формируя движения по регистрам.

Рис.10 «Регистраторы»
Рис.10 «Регистраторы»

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

Как сделать регистр накопления в 1С

Продолжим рассматривать пример с регистрами по зарплате. Создадим новый регистр накопления (кнопка «Добавить») и назовем его «ДолгСотруднику».

Рис.11 «ДолгСотруднику»
Рис.11 «ДолгСотруднику»

На закладке «Основные» укажем название и вид регистра – «Остатки».

Рис.12 На закладке «Основные» укажем название и вид регистра – «Остатки»
Рис.12 На закладке «Основные» укажем название и вид регистра – «Остатки»

На закладке «Подсистемы» указываем подсистему «ВзаиморасчетыССотрудниками».

Рис.13 На закладке «Подсистемы» подсистема «ВзаиморасчетыССотрудниками»
Рис.13 На закладке «Подсистемы» подсистема «ВзаиморасчетыССотрудниками»

На «Функциональные опции», в которых участвует наш регистр, устанавливаем галочку «ИспользоватьНачислениеЗарплаты» (блок учета заработной платы в конфигурации «Бухгалтерия»).

Рис.14 «Функциональные опции»
Рис.14 «Функциональные опции»

На закладке «Данные» добавим для примера несколько измерений – «Сотрудник» и «Основание» (отражающий документ основание записи).

Рис.15 «Сотрудник» и «Основание»
Рис.15 «Сотрудник» и «Основание»

Для измерения «Сотрудник» указываем тип – СправочникСсылкаСотрудники, а для «Основания» – ОпределяемыйТипДокументОснованияЗарплатыКВыплате.

Рис.16 Типы для измерения «Сотрудник» и «Основания»
Рис.16 Типы для измерения «Сотрудник» и «Основания»

На закладке «Регистраторы» перечислим документы, которые будут производить запись в наш регистр. В нашем примере сделаем акцент на документе «Ведомость на выплату зарплаты в банк» и далее будем следить за движениями регистра, сделанными этим документом.

Рис.17 Ведомость на выплату зарплаты в банк
Рис.17 Ведомость на выплату зарплаты в банк

Регистр готов.

Рис.18 Регистр готов
Рис.18 Регистр готов

Для того чтобы наш регистр работал, необходимо выполнить некоторые настройки в самом документе движения. Откроем в дереве метаданных документ «ВедомостьНаВыплатуЗарплатыВБАнк». На закладке «Движения» мы видим наш новый регистр «ДолгСотруднику». Далее с помощью кнопки «Конструктор движений» нам нужно сопоставить, в какие поля, какие данные из документа должны фиксироваться.

Рис.19 «Конструктор движений»
Рис.19 «Конструктор движений»

Открываем наш регистр.

Рис.20 Открываем наш регистр
Рис.20 Открываем наш регистр

Тип движения в нашем примере «Расход» (т.к. выплачивая зарплату, мы уменьшаем задолженность сотруднику). И в таблицу с реквизитами надо прописать (сопоставив) реквизиты документа. Выбрать их можно двойным щелчком на соответствующей строке. Заполнив, нажимаем «Ок».

Рис.21 Тип движения в нашем примере «Расход»
Рис.21 Тип движения в нашем примере «Расход»

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

Рис.22 Модуль обработки
Рис.22 Модуль обработки

Обновим данные конфигурации и запустим программу в пользовательском режиме.

Запись в регистр накопления 1С 8.3

Проведем документ «Ведомость в банк» и посмотрим, какие движения по регистрам он сформировал (кнопка Кнопка – «Показать проводки и другие движения документа»). Мы видим, что у нас появилась закладка с движениями по нашему регистру «Долг сотруднику» — строка «Расход».

Рис.23 Запись в регистр накопления
Рис.23 Запись в регистр накопления

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

Как изменить регистр накопления в 1С 8.3? Корректировка регистров накопления 1С

Иногда возникает необходимость обнулить или подкорректировать записи регистров накопления. Для этого в «1С:Бухгалтерия» можно воспользоваться документом «Операция введенная вручную» (в разделе меню «Операции»). Создав новую операции, перейдем по кнопке «Еще» к пункту «Выбор регистров».

Рис.24 Корректировка регистров накопления
Рис.24 Корректировка регистров накопления

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

Рис.25 Регистр для корректировочной записи
Рис.25 Регистр для корректировочной записи

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

Рис.26 Закладка с выбранным регистром
Рис.26 Закладка с выбранным регистром

Сформировать отчет по регистрам накопления, мы можем, воспользовавшись «Универсальным отчетом» (раздел «Отчеты»), выбрать вариант отчета – по регистрам накопления, и указать нужный для анализа регистр. В отчете мы видим, что в нем отразилась наша корректировочная запись по регистру «Учет доходов для исчисления НДФЛ».

Рис.27 Корректировочная запись по регистру «Учет доходов для исчисления НДФЛ»
Рис.27 Корректировочная запись по регистру «Учет доходов для исчисления НДФЛ»

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

Рис.28 Записи отдельно по каждому регистру
Рис.28 Записи отдельно по каждому регистру

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

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

регистры накопления в 1С

Рассмотрим основные вкладки регистра накопления «Движение товаров»:

Вкладка «Основные»

регистры накопления в 1С

Как и для регистров сведений, в поле «Имя» вносится уникальное имя регистра, в поле «Синоним» — название, которое будет видно пользователям. Особое внимание следует обратить на поле «Вид регистра». Регистры накопления бывают нескольких видов:

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

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

Вкладка «Подсистемы»

регистры накопления в 1С

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

Вкладка «Данные»

регистры накопления в 1С

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

Измерения предназначены для определения «разреза» информации. Измерения могут иметь любой тип данных. По измерениям можно проводить отборы в записях регистра.  В нашем регистре в качестве измерений указаны «Номенклатура», «Характеристика», «Склад», «Назначение», «Распоряжение». Так же важен порядок в котором указаны измерения, измерения которые чаще используются необходимо указывать первыми.

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

Реквизиты – дополняющая информация. Для регистра он не несёт никакой важно информации и никак не повлияет на его записи, но может быть полезен в качестве справочной информации. В нашем регистре это реквизиты «Корректировка» и «Дата распоряжения»

В нижней части окна расположена кнопка «Стандартные реквизиты», именно в ней мы можем увидеть «Период», «Регистратор», «Номер строки», «Активность».

регистры накопления в 1С

Вкладка «Регистраторы»

регистры накопления в 1С

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

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

регистры накопления в 1С

Вкладка «Формы»

регистры накопления в 1С

На данной вкладке можно создать «Форму записи» и «Форму списка» регистра. Создавать формы не обязательно, т.к. если форма не указана, но в режиме 1С.Предприятие открыть регистр, то программа самостоятельно сформирует для него стандартную форму.

Вкладка «Права»

регистры накопления в 1С

На данной вкладке необходимо выбрать роли и установить для них права. Стоит учитывать, как необходимость «чтения» пользователями данных из регистра, так и возможность добавления записей в регистр. Не опытные программисты часто забывают назначать права при создании новых регистров сведений, что ведёт к ошибкам «Недостаточно прав» у пользователей.

Вкладка «Прочее»

регистры накопления в 1С

На данной вкладке стандартно располагаются кнопки доступа к «Модулям».  Так же здесь расположен флаг «Разрешить разделение итогов» — механизм позволяющий включить более высокую параллельность при работе с регистром (чтение, запись).

Наш регистр в режиме 1С. Предприятие имеет следующий вид:

регистры накопления в 1С

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

регистры накопления в 1С

Как оптимизировать работу с программой?

У вас нет специалистов 1С в штате или вы не хотите отвлекать их от более стратегических задач? Тогда мы предлагаем оставить сопровождение или доработку 1С компании «ПРОГРАММЫ93»!

Почему клиенты обращаются именно к нам?

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

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

  • Среди наших сотрудников не только специалисты 1С, но и опытные бухгалтера и юристы, поэтому мы подходим всесторонне к вопросу документооборота и отчетности.

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

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

Понравилась статья? Поделить с друзьями:
  • 1с реквизит формы документа вывести в форму списка
  • 1с скопировать реквизиты одного документа в другой
  • 1с событие при изменении дополнительного реквизита
  • 1с управляемые формы в обработке к реквизиту формы
  • 1с управляемые формы как получить реквизит с формы