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

Что произойдет если прочитать данные в набор записей регистра накопления с установкой отбора

  • автор:

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

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

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

Структура

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Агрегаты

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

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

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

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

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

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

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

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

Раздел 12. Механизмы оперативного учета

774. В каких режимах может проводиться документ, если свойство «Оперативное проведение» установлено в значение «Запретить»?

Только в режиме «Неоперативный»

775. В каких режимах может проводиться документ, если свойство «Оперативное проведение» установлено в значение «Разрешить»?

Как в режиме «Оперативный», так и в режиме «Неоперативный»

776. В какой момент времени могут формироваться записи в регистре накопления?

При записи документа

При заполнении документа

При проведении документа

777. В каком режиме работы клиентского приложения доступны интерактивные полные возможности платформы по расчету итогов регистров накопления?

В режиме 1С:Предприятие при запуске в управляемом приложении

778. В рамках объектной модели при выборе движений по регистру накопления методом Выбрать() отбирать записи нельзя:

По значениям ресурсов

779. В рамках объектной модели при получении остатков по регистру накопления методом Остатки() отбирать итоги можно:

По значениям измерений

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

В пределах дня

В пределах квартала

В пределах месяца

Непериодический

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

Не может быть выбрана

782. Выберите верное утверждение по отношению к полю Регистратор

Поле Регистратор может содержать не пустую ссылку только на документ регистратор

783. Выберите верное утверждение по отношению к регистрам накопления

Для одного регистра накопления может использоваться несколько таблиц агрегатов

784. Выберите верное утверждение существования записей в регистре накопления

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

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

785. Выберите верное утверждение:

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

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

786. Выберите обязательное условие по отношению к полю Активность при записи данных в регистр накопления

Активность не может устанавливаться для каждой записи индивидуально в рамках документа-регистратора

787. Выберите обязательное условие по отношению к полю Период при записи данных в регистр накопления

Период не должен быть пустым

788. Выберите обязательное условие по отношению к Регистратору при записи данных в регистр накопления

Документ-регистратор должен быть записан

789. Где определяется структура агрегатов?

В Конфигураторе

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

Для получения простых оборотов совместно с остатками

791. Для получения информации об оборотах накопленных средств можно использовать:

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

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

792. Для получения информации об остатках накопленных средств можно использовать:

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

793. Для чего может использоваться набор записей регистра накопления?

Для добавления записей регистра накопления по определенному регистратору

Для изменения записей регистра накопления по определенному регистратору

Для считывания набора записей по определенному регистратору

Для удаления записей регистра накопления по определенному регистратору

794. Зачем существует регистр накопления оборотный, если в регистре накопления остатков есть возможность получения оборотов?

Для использования в тех случаях, когда информация по остаткам не требуется

Для расширения возможностей анализа оборотных данных

Для ускорения процесса разработки

795. Информация, хранящаяся в регистре накопления:

Всегда привязана к оси времени

796. Итоги для регистров накопления остатков:

Могут храниться, но ограничены периодом рассчитанных итогов. Если их не рассчитывали, то и не хранятся. Управлять рассчитанными итогами можно в режиме 1С:Предприятие

797. Как изменить состояние флажка в колонке «Использование» в расширенном окне управления итогами?

Изменение состояния флажка осуществляется только при перепостроении агрегатов с признаком использования авто

798. Как необходимо определить структуру регистра, если требуется хранить остатки товаров в разрезе Организаций по складам, но склады используются не во всех организациях?

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

799. Как определить виды документов, которые могут регистрироваться в качестве границы последовательности «СебестоимостьПродаж»?

Только документы, являющиеся регистраторами регистров, указанных в свойстве «Движения, влияющие на последовательность», а именно «ПриходнаяНакладная», «РасходнаяНакладная»

800. Как определить виды документов, которые могут регистрироваться в последовательности документов «СебестоимостьПродаж»?

• Только документы, указанные в свойстве «Входящие документы», а именно «РасходнаяНакладная»

801. Как определить тип данных поля Регистратор?

• Тип определяется на закладке «Регистраторы» в окне редактирования объекта конфигурации

802. Как осуществляется заполнение агрегатов при изменении данных?

• При обновлении агрегатов

803. Как осуществляется расчет оптимальных агрегатов?

• Автоматически в режиме 1С:Предприятие на основании данных регистра накопления 804. Как происходит считывание данных из информационной базы при программном создании набора записей регистра накопления?

• Данные считываются с помощью метода «Прочитать»

805. Как система 1С:Предприятие 8 может хранить итоги для оборотного регистра накопления?

Либо в таблице итогов, либо в агрегатах

806. Как система определяет обороты для регистра накопления с видом остатки?

Оборотные данные для таких регистров не хранятся в системе, а вычисляются в момент обращения к системе за такими данными

807. Какая часть активных записей может не отображаться в таблицах итогов регистров накопления?

Данные измерений

Данные реквизитов

808. Какая часть активных записей никогда не отображаться в таблицах итогов регистров накопления?

Данные реквизитов

809. Какая часть не активных записей может не отображаться в таблицах итогов регистров накопления?

Данные измерений

Данные реквизитов

Данные ресурсов

12.70 Какие варианты пересчета итогов доступны в режиме 1С: Предприятие 8?

Пересчет итогов по произвольному количеству регистров

12.70 Какие варианты пересчета итогов доступны в режиме 1С: Предприятие 8?

Пересчет итогов происходит всегда автоматически в зависимости от настроек, сделанных в конфигураторе

810. Какие варианты пересчета итогов доступны в режиме 1С:Предприятие 8?

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

811. Какие действия достаточно совершить, чтобы гарантировать правильность расчета себестоимости продаж за январь 2002 г.?

• Перепровести последовательно по хронологии документы «Расходная накладная 00002», затем «Расходная накладная 00003» и «Расходная накладная 00014»

812. Какие объекты предназначены для хранения показателей oпeративного учета?

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

813. Какие типы регистров накопления возможны в системе 1С:Предприятие 8?

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

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

814. Какие типы форм существуют у регистра накопления?

Форма набора записей регистра накопления

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

815. Какие условия предметной области могут повлиять на установку свойства «Оперативное проведение» документа в значение «Разрешить»?

Когда документ ориентируется на проведение в реальном (настоящем) времени

816. Каким образом изменится состав списка последовательности «СебестоимостьПродаж» и ее границы при проведении документа «Приходная накладная 00001 от 10.01.2002 12:00:00»?

Измерения в последовательности не используются, таблица последовательности приведена полностью

Состав списка последовательности не изменится, а граница последовательности установится на документ «Приходная накладная 00001 от 10.01.2002 12:00:00»

817. Каким образом изменится состав списка последовательности «СебестоимостьПродаж» и ее границы при проведении документа «Приходная накладная 00002 от 13.02.2002 12:00:00»?

Измерения в последовательности не используются, таблица последовательности приведена полностью

Ни состав списка последовательности, ни значение границы не изменятся

818. Каким образом изменится состав списка последовательности «СебестоимостьПродаж» и ее границы при проведении документа «Расходная накладная 00003 от 16.01.2002 12:00:01»?

Измерения в последовательности не используются, таблица последовательности приведена полностью

Ни состав списка последовательности, ни значение границы не изменятся

819. Каким образом изменится состав списка последовательности «СебестоимостьПродаж» и ее границы при проведении документа «Расходная накладная 00015 от 21.01.2002 12:00:00»?

Измерения в последовательности не используются, таблица последовательности приведена полностью

Документ зарегистрируется в списке последовательности, но не повлияет на границу последовательности

820. Каким образом изменится состав списка последовательности «СебестоимостьПродаж» и ее границы при проведении документа «РасходнаяНакладная 00001 от 11.01.2002 12:00:00»?

Измерения в последовательности не используются, таблица последовательности приведена полностью

Ни состав списка последовательности, ни значение границы не изменятся

821. Какими данными и с какой целью обеспечивает пользователя «Граница последовательности документов»?

Моментом времени, начиная с которого перепроведение документов последовательности в хронологическом порядке, восстановит правильность (актуальность) учета, контролируемого последовательностью

822. Какими объектами являются регистры накопления?

Объектами конфигурации

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

Количество измерений при использовании агрегатов до 30

824. Какое максимальное количество измерений можно определять для регистра накопления с видом Остатки?

Количество измерений платформой не ограничивается

825. Какое ограничение на размер набора записей существует в регистре накопления?

Набор записей ограничен 999999999 записями

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

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

827. Какой тип можно определить для поля «регистратор»?

828. Назовите основное назначение объекта «Последовательность документов»?

Автоматизация контроля над хронологическим порядком проведения документов тех видов, которые указаны в последовательности

829. Опишите действия системы при попытке провести документ?

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

830. Опишите действия системы при попытке провести документ?

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

831. Опишите действия системы при попытке провести документ?

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

832. Опишите действия системы при попытке провести документ?

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

833. Опишите действия системы при попытке провести документ?

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

834. Опишите действия системы при попытке провести документ?

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

835. Отказ от использования итогов в контексте какого-либо пользователя (при записи данных в регистр накопления используется специальный метод системы):

действует на всю информационную базу

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

отказаться от использования итогов (повышается параллельность записи наборов записей)

отказаться от использования текущих итогов (повышается параллельность записи наборов записей)

837. При определении вида регистра накопления следует учитывать:

Зависимость показателей, хранящихся в ресурсах, от периода определения

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

Наличие возможных записей с видом движения «Приход» и «Расход»

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

Хотя бы один ресурс

839. Режим разделения итогов в регистрах накопления и бухгалтерии (выберите наиболее полный правильный ответ):

позволяет повысить параллельность записи данных в регистры

840. Уникальность записей в таблице движений регистра накопления определяется:

Полями «Регистратор» и «Номер строки»

841. Установка в объекте конфигурации регистра накопления (или бухгалтерии) флага «разрешить разделение итогов» означает:

в таблице итогов регистра (физической) появился дополнительный разделитель

842. Чем определяется набор записей регистра накопления?

Регистратором

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

Набор останется пустым

844. Что может отображаться в таблицах итогов регистров накопления?

Данные измерений

Данные ресурсов

845. Что представляет собой набор записей регистра накопления?

Коллекцию записей регистра накопления в памяти

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

Будет выдана ошибка при попытке установить отбор по измерению

847. Что происходит с записями регистра накопления в информационной базе при сохранении набора записей?

Сохранение и удаление старых записей зависит параметра «Замещать» в методе Записать

12.7 Для каких видов регистров накопления используются агрегаты?

● Агрегаты используются только для регистра накопления с видом Обороты

12.8 В каком режиме производится расчет агрегатов?

Агрегаты рассчитываются в пользовательском режиме

12.10 Оперативный режим проведения документов используется:

Не зависит от вида регистра

12.32 При работе с регистром накопления с видом «Остатки» выключение итогов приводит к тому, что:

можно получить остатки на любой момент времени, но скорость их получения увеличится

12.33 При пересчете текущих итогов пользователем:

будут пересчитаны все текущие итоги

12.33 При пересчете итогов пользователем:

будут пересчитаны все итоги

12.36 При работе с регистром накопления выключение текущих итогов приводит к тому, что:

можно получить остатки на любой момент времени, но скорость получения оперативных остатков увеличиться

12.65 В каких режимах может проводиться документ, если свойство «Оперативное проведение» установлено в значение «Запретить»?

Можно проводить прошлым периодом

Можно проводить будущим периодом

• Можно проводить текущим периодом

12.68 При включенном в конфигураторе режиме «Оперативное проведение разрешить»?

Документ можно проводить либо предыдущей датой, либо с текущей датой и текущим временем

12.73 В каких режимах может проводиться документ, если свойство «Оперативное проведение» установлено в значение «Запретить»?

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

12.67 При повторном проведении документа в регистре:

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

12.75 Каким образом связана информация о наборе записей регистра с регистратором?

Дата документа регистратора никак не связана с периодом регистра

12.76 С какими регистрами может быть использован объект Последовательность?

С любыми регистрами

12.31 Выберите правильное утверждение:

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Особенности использования регистров накопления

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

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

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

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

Подробнее о регистрах накопления см. Объект 1С «Регистры накопления»

Виды регистров накопления:
  1. регистры накопления остатков (хранит итоговые значения ресурсов — остатки);
  2. регистры накопления оборотов (хранит только изменения этих ресурсов — обороты).

В 1С возможно использование:

  • итогов, либо
  • использование агрегатов (более гибкий вариант).

Как остаточные, так и оборотные регистры накопления физически состоят из двух таблиц:

  1. таблицы движений;
  2. таблицы итогов.

Движения — это записи в регистрах, которые отражают изменения в учете, производимые документом. Как правило, движения создаются при проведении документа.

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

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

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

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

Особенности использования регистров накопления:

  1. Итоги для регистров накопления остатков могут храниться, но ограничены периодом рассчитанных итогов. Если их не рассчитывали, то и не хранятся. Управлять рассчитанными итогами можно в режиме 1С:Предприятие.
  2. При работе с регистром накопления с видом «Остатки» выключение итогов приводит к тому, что можно получить остатки на любой момент времени, но время их получения увеличится. В случае включенных итогов, остатки доступны с периодичностью «Месяц».
  3. При пересчете текущих итогов пользователем будут пересчитаны все текущие итоги. Собственно пересчет итогов — это процедура перезаполнения таблиц итогов, т.к. со временем естественным путем в ней накапливаются строки с нулевыми значениями, что снижает быстродействие системы.
  4. При пересчете итогов пользователем будут пересчитаны все итоги.
  5. При записи данных в регистр накопления существует возможность:
  6. отказаться от использования итогов (повышается параллельность записи наборов записей);
  7. отказаться от использования текущих итогов (повышается параллельность записи наборов записей).

Что произойдет если прочитать данные в набор записей регистра накопления с установкой отбора

Описание:

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

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

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

В системе 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С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *