Как сделать движение регистра сведений
Формирование движений в регистрах и производительность системы 1С:Предприятие 8
Формирование движений в регистрах и производительность системы 1С:Предприятие 8
Сравним два варианта записи движений в регистр накопления.
Есть документ «Поступление» с табличной частью «Товарыс реквизитами табличной части «Товар» и «Количество». Необходимо по каждой строчке из табличной части сделать приход в регистр накопления «Остатки».
Первый вариант, который часто применяется начинающими программистами. Этот метод прост для запоминания т.к. не требует знания механизма запросов.
Формирование движений в регистре с использованием второго варианта происходит значительно быстрее, чем при использовании первого варианта. Замеры производительности при отладке дают прирост скорости от 30 %
Специальные предложения
Это правда достойно отдельной статьи? Если уж на то пошло, то зачем выбирать в запросе регистратор и дату, если у нас и так доступен объект.
На каком основании вы делаете вывод, что запрос быстрее? Данные объекта уже в оперативной памяти, а запрос читает из базы данных.
Запрос в данном случае используется во много для удобной манипуляции данными, например чтобы сгруппировать дубли(чего вы не сделали) или отсечь услуги, например.
Очень жаль, что нельзя ставить минус. Это один из тех примеров, когда минус за статью был бы заслужен.
Вроде автор написал: «Замеры производительности при отладке дают прирост скорости от 30 %». Этого недостаточно?
Проблема не в наличии объекта в оперативной памяти, а в скорости перебора табличной части vs. формирования единой таблицы значений. Не забывайте, что 1С это интерпритатор, т.е. перебор одной коллекции с модификацией другой коллекции в общем случае проиграют производительности против целостной выборки данных и пакетной загрузки. Плюсом к запросу, конечно, идет считывание полей реквизитов табличной части и прочие манипуляции типа уже упомянутого вами удаление дублей.
В целом, если еще избавится от промежуточной таблицы значений, а загружать движения сразу из результата запроса, то вообще было бы отлично.
Проблема в том, что это в корне меняет смысл статьи. Вся разница достигается не за счет «скорости запроса», которая якобы постулируется, а просто за счет того, что перебор делается дольше, чем выгрузка/загрузка. Что по большому счету никак не связано с методом получения данных, мы ведь можем выгрузить/загрузить из табличной части.
Сейчас протестировал:
По сути не отличаются по скорости выполнения. Как следствие статья неочем 🙂
(4) Об чём я и говорил. Спасибо за подтверждение, мне было недосуг.
(5) Вячеслав, это как? Речь ведь об одном документе, точнее, о строках из табличной части, которые к нему относятся. Ты хочешь сказать, что там безотносительно объектной блокировки лочилась вся таблица табчасти? Или ты о движениях?
Гораздо интереснее, если бы вы рассказали, например, об особенностях кэширования результатов запроса, особливо о разнице между выгрузкой в таблицу значений и в ОбходРезультатаЗапроса, и о разнице в применении этих объектов к заполнению движений.
А еще умиляет вот это :
Движения.Остатки.Записать();
Так набор запишется 2 раза 🙂
Это в любом случае неправильно. Явная запись движений может приводить к взаимоблокировкам.
Обработка: управление активностью записей регистров
Активность записей (немного теории)
ДЛЯ РЕГИСТРА НАКОПЛЕНИЯ: Активность записей регистра означает, что они будут использованы при подсчете итогов. Если записи сделать неактивными, то на итоги регистра накопления они влиять не будут. Позже можно включить активность записей, тогда они сразу повлияют на итоги регистра. При переборе записей регистра неактивные записи регистра также включаются в выборку.
ДЛЯ РЕГИСТРА СВЕДЕНИЙ: Содержит признак активности записи. Записи, для которых значение данного свойства установлено в Ложь, не будут учитываться при получении «первых» или «последних» записей регистра, а также при получении сведений на определенный момент времени.
ОБ ОБРАБОТКЕ:
1) Возможно отключение контроля записи;
2) Возможно использование транзакции;
3) Возможно изменение активности конкретных движений по документу (регистратору);
4) Возможно изменении активности записей по определённому регистру (в целом) за период времени;
Скачать файлы
Специальные предложения
Обновление 18.07.12 18:40
Код открыт Не указано
См. также
FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5 Промо
Данная публикация является продолжением описания функционирования обработки «FormCodeGenerator » в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.
21.12.2020 2262 12 huxuxuya 11
Интерактивная справка по объектам 1С (подключаемое расширение)
База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.
29.09.2020 8222 48 sapervodichka 40
Конвейер проверки качества кода
Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.
04.09.2019 27804 22 Stepa86 46
Алгоритмы поиска пути в графе
Реализуем алгоритмы поиска пути в графе на платформе 1С 8.3, такие как алгоритм А*, поиск в ширину, жадный поиск, алгоритм Дейкстры и вконце волновой.
09.07.2019 18862 12 RonX01 10
Вам нравятся запросы в 1С? Промо
Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!
03.07.2019 22375 5 m-rv 88
Работа с публикациями «Инфостарт»
Работа с рублевыми публикациями на сайте «Инфостарт»: ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.
13.09.2018 23106 13 RocKeR_13 16
HTTP Сервисы: Путь к своему сервису. Часть 3
Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.
27.08.2018 41371 63 dsdred 17
Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции
09.08.2018 29850 26 informa1555 26
ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ («001», «Новый товар») Промо
Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.
01.06.2018 31732 88 m-rv 57
Работа с данными выбора
17.07.2018 52777 19 kalyaka 16
Полезные примеры составления схемы компоновки данных #2
Еще один набор примеров как решить частные задачи в СКД
22.05.2018 33260 11 SITR-utyos 13
Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП
Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.
06.12.2017 28214 54 kwazi 6
Заполняем по шаблону (по умолчанию) Промо
Простой в подключении, универсальный и достаточно удобный механизм заполнения реквизитов произвольных документов/справочников значениями по умолчанию. Реализован в расширении, но может быть и непосредственно включен практически в любую конфигурацию на управляемых формах простым копированием одной формы и двух команд. Весь код в статье.
08.02.2018 29680 19 mvxyz 17
Паузы при исполнении кода (Sleep для 1С)
Решил проверить все найденные варианты паузы для 1С. В результате получилась обработка для тестирования и небольшая статья с итогом.
28.11.2017 51247 13 swimdog 44
Макет СКД: наглядное представление того, что, как и куда выводится при типовых настройках.
09.11.2017 23130 77 freelancer 4
Telegram-боты
Описание теории, разбор архитектуры и пример реализации telegram-ботов. Сразу скажу, со структурированием изложения мало что могу поделать. 🙂 редакция от 18.07.2018 Правки последней редакции выделены жирным.
01.09.2017 35107 134 PLAstic 59
Нечеткий поиск одним запросом Промо
Использование механизма полнотекстового поиска в 1С не всегда оправдано, т.к. построение индекса и поддержание его в актуальном состоянии может значительно нагружать систему. Предлагаемая реализация нечеткого поиска методом N-грамм выполняется одним запросом, что позволяет производить поиск в любой таблице и не требует предварительного построения индекса.
28.12.2015 29244 71 vasvl123 9
Умный дом на 1С + ардуино
Конфигурация для автоматизации быта программиста 1C и не только. В данной статье будет рассказано, как можно использовать 1С для задач, не входящих в стандартные рамки этой платформы. Например, управление домом. В качестве периферии для подключения будет использован микроконтроллер (МК) Ардуино, но на нём не будет никакой логической нагрузки, весь процесс будет проходить на сервере 1С. Работа с пинами ввода/вывода происходит напрямую из 1С.
07.08.2017 24074 21 sasha777666 63
Расширения конфигураций 1С: учимся перехватывать методы
В этой статье я на примерах разберу некоторые механизмы расширений конфигураций 1С. А именно «перехваты» методов модуля объекта и «перехваты» событий формы и элементов формы. Данная статья написана с учебными целями, чтобы показать, как при помощи расширений конфигурации можно делать такие доработки, ради которых раньше приходилось снимать конфигурацию с поддержки.
30.05.2017 139728 13 signum2009 48
Регулярные выражения – это просто. Построитель и отладчик регулярных выражений
Предлагается к использованию построитель регулярных выражений. Выполненный в виде внешней обработки, он позволит строить сложно-структурированные выражения на основе параметрического описания, тестировать их, и в результате получить программный код 1С.
13.03.2017 33098 115 romasna 49
1С: Предприятие + корпоративный чат, как наладить оперативные уведомления за 10 минут Промо
Как сделать автоматические уведомления о разных событиях из 1С в корпоративный чат MyChat для сотрудников компании
14.08.2016 49644 36 Demanoidos 60
Распознавание текста с помощью нейросетей Google Cloud Vision и 1С
Возможности Google Cloud Vision в распознавании текста.
08.02.2017 31667 133 kiv1c 18
Графическая схема. Управление при помощи XDTO.
В статье описывается методика программного управления элементами графической схемы при помощи механизма XDTO. Приложена готовая к использованию библиотека функций для создания и удаления графических объектов, а также для связи элементов схемы соединительными линиями.
16.01.2017 23945 107 Alxby 23
Простой редактор плана помещения JavaScript
На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.
23.11.2016 22365 99 igel9780 22
Быстрое определение интервалов в запросе Промо
В статье описывается новый метод определения интервалов между данными различных записей в запросе. В отличие от общеизвестного метода, время работы предлагаемого метода зависит от объема данных ЛИНЕЙНО. Это обеспечивает ему значительный выигрыш по быстродействию на больших объемах данных. В качестве иллюстрации возможностей метода приведен отчет, показывающий гистограмму распределения времени между продажами.
01.10.2015 53844 35 ildarovich 41
Работа с двоичными данными на примере чтения файлов изображений. Новые возможности 8.3.9
14.11.2016 28274 16 Anton64 22
Загрузка файлов на сервер с прогрессом и докачкой
Пример использования новых возможностей платформы 8.3.9 по низкоуровневой работе с двоичными данными для инкрементальной передачи файлов на сервер.
04.10.2016 14270 53 mrstomak 21
Несколько шаблонов для доработки типовых конфигураций
Предлагаю несколько каркасов для создания новых объектов в типовых конфигурациях. Это выжимка из кода нескольких конфигураций, которая позволит быстро и красиво создавать и дорабатывать объекты метаданных с соблюдением идеологии исходной системы
03.10.2016 37989 96 json 25
HTTP-сервис: отчеты [Расширение]
Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+
30.08.2016 28359 143 Stepa86 15
Недокументированное использование стандартных форм Upd.
Вам не хватает возможностей в платформе 1С или у Вас нет времени на углубленное изучение платформы 1С? Рассмотрены возможности использования стандартных форм, вызываемых из платформы.
26.07.2016 29700 82 ZhokhovM 60
Хранение файлов в томах на диске (для УПП 1.3)
Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных
05.06.2016 59940 11 wowik 32
БСП 2.3 и БСП 3.0: Просто про выполнение внешней обработки в фоне (c индикацией прогресса выполнения)
Простое пояснение о том, как сделать внешнюю обработку с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП 2.3.2. UPDATE 20/09/19: добавлен вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0.
18.05.2016 64797 192 rozer 65
Остатки на каждый день в запросе
Запрос формирует остатки товаров на каждый день в пределах выбранного периода.
26.04.2016 63125 19 arakelyan 20
Еще один способ расчета остатков на каждый день в запросе
Предлагается новый способ расчета остатков на каждый день (час, минуту, секунду) в запросе. Способ не требует предварительного формирования таблицы дат и также подходит для расчета курсов валют, цен номенклатуры и других периодических сведений на каждую дату периода. На больших объемах данных предлагаемый способ может превосходить по быстродействию ранее известные методы из-за линейной (в лучшем случае) зависимости трудоемкости от длины периода.
24.04.2016 35983 50 ildarovich 23
Вывод печатных форм с запросом данных в форму «Печать документов» из подсистемы БСП «Печать».
Все не раз видели, как в типовых конфигурациях, построенных на основе БСП (Библиотека стандартных подсистем), печатные формы, построенные на основе Табличного документа, выводятся в специальную форму «ПечатьДокументов». Эта форма входит в состав подсистемы «Печать» из БСП. При разработке своих печатных форм, иногда необходимо запросить у пользователя дополнительные данные необходимые для печати. Тут встает вопрос, как в этом случае вывести печатную форму в форму «Печать документа». В этой статье я рассмотрю, как реализовать вывод печатной формы в упомянутую форму из подсистемы «Печать», в случае если мы хотим перед выводом печатной формы запросить у пользователя дополнительные данные. Здесь будут рассмотрены два случая: когда реализуется печатная форма с использованием подсистемы «Дополнительные отчеты и обработки» и когда печатная форма добавляется в конфигурацию в режиме конфигуратора, т.е. вносятся изменения в типовую конфигурацию.
29.03.2016 96343 189 lopatin 14
Как сделать движение регистра сведений
Рассылка
Курс лекций
Статьи
Программы
Ссылки
Данные в регистры добавляются только при проведении документов. Сведения из регистров используются для формирования отчетов. Классическая схема использования регистров в 1С:Предприятие выглядит следующим образом: Документы => Регистры => Отчеты Предположим, что регистр «Остатки товаров» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара. Регистр: Остатки товаров С помощью методов встроенного языка мы можем легко получить ответы на вопросы: В табличном виде регистр ОстаткиТоваров представляется следующим образом: В системе 1С:Предприятие возможно использование регистров двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: в регистрах остатков всегда хранится информация о конечном состоянии средств, а в регистрах оборотов, образно выражаясь, — как это состояние было достигнуто. Если из регистра нужно быстро получать остаток чего-либо на текущий момент, тогда нужно сделать регистр остатков. Если из регистра нужно быстро получать приход или расход чего-либо за период, тогда нужно сделать оборотный регистр. Рассмотрим в качестве примера отслеживание взаиморасчетов с покупателями товаров, которые производит или продает предприятие. Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр «Взаиморасчеты», в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр «Взаиморасчеты» — это регистр остатков. Однако, легко получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя. Можно проанализировать все движения, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит. В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре — назовем его «Объем закупок» — в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, неделя, месяц и так далее. Теперь, при совершении хозяйственных операций, необходимо будет изменять не только состояние регистра «Взаиморасчеты», но и регистр «Объем закупок». В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре «Объем закупок» будет постоянно накапливаться информация об общем объеме закупок клиента. | ||
Оборотный регистр Доходы Измерения: Клиент, Товар Ресурсы: Доход Реквизиты: нет Периодичность: День | Регистр остатков Товары Измерения: Товар, Склад Ресурсы: Количество, Стоимость Реквизиты: нет | |
Хранит доходы от продаж за день в разрезе клиентов и товаров. | Хранит остатки товаров на каждом складе в количественном и суммовом выражении. |
Запись движений в регистр остатков
(только при проведении документа) р.Доходы.ДвижениеПриход(Покупатель,КупленныйТовар,СуммаПокупки)
Методы ДвижениеПриходВыполнить и ДвижениеРасходВыполнить
Пример:
Регистр.Доходы.Клиент = Покупатель;
Регистр.Доходы.Товар = КупленныйТовар;
Регистр.Доходы.Доход = СуммаПокупки;
Регистр.Доходы.ДвижениеПриходВыполнить();
Запись движений в оборотный регистр
(только при проведении документа)
Пример: Регистр.Товары.Движение (ПоступившийТовар, ТекСклад, КолвоПоНакладной, СуммаПоНакладной)
2. Метод ДвижениеВыполнить
Пример:
Регистр.Товары.Товар = ПоступившийТовар;
Регистр.Товары.Склад = ТекСклад;
Регистр.Товары.Количество = КолвоПоНакладной;
Регистр.Товары.Стоимость = СуммаПоНакладной;
Регистр.Товары.ДвижениеВыполнить();
Примечание: Если сумма или количество в движении будет отрицательным, то это движение будет расходом, иначе приходом.
Обращение к итогам регистра
1-й способ.
РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегТовары. ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
. Сообщить(«Товар » + Строка(РегТовары.Товар) +
. » на складе » + Строка(РегТовары.Склад) +
. » кол-во: » + Строка(РегТовары.Количество) +
. » стоимость: » + Строка(РегТовары.Стоимость) +
КонецЦикла;
2-й способ. Выгрузка итогов в таблицу значений
РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
ТабЗнач = СоздатьОбъект(«ТаблицаЗначений»);
РегДоходы.ВыгрузитьИтоги(ТабЗнач);
ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Сообщить(«Товар » + Строка(ТабЗнач.Товар) +
. » на складе » + Строка(ТабЗнач.Склад) +
. » кол-во: » + Строка(ТабЗнач.Количество) +
. » стоимость: » + Строка(ТабЗнач.Стоимость) +
КонецЦикла;
Обращение к итогам оборотного регистра
РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
//установить период выборки «30 ноября 2001 года»
РегДоходы.ИспользоватьПериод(2001,11,30);
1. Метод Итог
Пример:
//получить доход за день по данному клиенту и данному товару
Доход = РегДоходы.Итог(ТекКлиент, ТекТовар, «Доход»);
2. Метод Итоги
Пример:
//получить доход за день по данному клиенту и данному товару
РегДоходы.Итоги(ТекКлиент, ТекТовар);
Доход = РегДоходы.Доход;
3. Метод СводныйИтог
Могут быть указаны не все измерения. Фиксируются только указанные измерения.
Пример:
//получить сводные итоги за день
ДоходПоКлиенту = РегДоходы.СводныйИтог(ТекКлиент,,»Доход»);
ДоходПоТовару = РегДоходы.СводныйИтог(,ТекТовар,»Доход»);
4. Метод СводныеИтоги
Могут быть указаны не все измерения. Фиксируются только указанные измерения.
Пример:
//получить сводные итоги за день по клиенту
РегДоходы.СводныеИтоги(ТекКлиент,); //указано только одно измерение
ДоходПоКлиенту = РегДоходы.Доход;
//получить сводные итоги за день по товару
РегДоходы.СводныеИтоги(,ТекТовар); //указано только одно измерение
ДоходПоТовару = РегДоходы.Доход;
Обращение к итогам регистра остатков
Пример:
//получить остаток данного товара на данном складе
Колво = РегТовары.Остаток (ТекТовар, ТекСклад, «Количество»);
//получить стоимость данного товара на данном складе
Стоимость = РегТовары.Остаток (ТекТовар, ТекСклад, «Стоимость»);
Пример:
//получить остаток данного товара на данном складе по кол-ву и по сумме
РегТовары.Остатки (ТекТовар, ТекСклад);
Колво = РегТовары.Количество;
Стоимость = РегТовары.Стоимость;
3. Метод СводныйОстаток
Могут быть указаны не все измерения. Фиксируются только указанные измерения.
Пример:
//получить остаток данного товара на всех складах
КолвоТовара = РегТовары.СводныйОстаток (ТекТовар,,»Количество»);
СтоимостьТовара = РегТовары.СводныйОстаток (ТекТовар,,»Стоимость»);
//получить стоимость всех товаров на данном складе
СтоимостьПоСкладу = РегТовары.СводныйОстаток (,ТекСклад,»Стоимость»);
4. Метод СводныеОстатки
Пример:
//получить сводные остатки по товару
РегТовары.СводныеОстатки(ТекТовар,); //указано только одно измерение
КолвоТовара = РегТовары.Количество;
СтоимостьТовара = РегТовары.Стоимость;
//получить стоимость всех товаров на данном складе
РегТовары.СводныеИтоги(,ТекСклад); //указано только одно измерение
СтоимостьПоСкладу = РегТовары.Стоимость;
Обращение к движениям регистра
РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
. Сообщить(«Дата движения » + Строка(РегТовары.ТекущийДокумент.ДатаДок));
. Сообщить(«Клиент: » + РегТовары.Клиент);
. Сообщить(«Товар: » + РегТовары.Товар);
. Сообщить(«Сумма: » + РегТовары.Доход);
КонецЦикла;
Фильтрация движений и итогов
1. Метод УстановитьФильтр
Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
.
КонецЦикла;
//выбрать все товары на данном складе
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
.
КонецЦикла;
2. Метод УстановитьЗначениеФильтра
Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьЗначениеФильтра(«Склад», ТекСклад);
//далее идет выборка движений или итогов
3. Метод ВыбратьДвиженияДокумента
4. Метод ВыбратьДвиженияСОстатками
Применяется только для регистра остатков.
Временный расчет регистров
Временный расчет регистров требуется, если нужно выбрать итоги или движения на определенную дату. По умолчанию итоги регистров выдаются на Точку актуальности.
РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
//установка флага временного расчета для регистров
РегТовары.ВременныйРасчет(1);
РегДоходы.ВременныйРасчет(1);
1. Метод РассчитатьРегистрыНа
Рассчитать все регистры с установленным флагом временного расчета на начало события.
(на начало даты или на момент до проведения документа)
2. Метод РассчитатьРегистрыПо
Рассчитать все регистры с установленным флагом временного расчета на конец события.
(на конец даты или на момент после проведения документа)
Запрос к регистру
В запросах к регистрам применяются функции НачОст, КонОст, Приход, Расход. В запросах к оборотным регистрам обязательно указывается Период.
ТекстЗапроса = »
|Период С ДатаНач По ДатаКон;
|Товар = Регистр.Доходы.Товар;
|Клиент = Регистр.Доходы.Клиент;
|Доход = Регистр.Доходы.Доход;
|Условие (Товар = ТекТовар);
|Группировка Клиент;
|Функция ПриходПоКлиенту = Приход(Доход);
|»;