Получить количество записей в регистре сведений 1с
Я пользуюсь функцией регистра сведений СоздатьНаборЗаписей, добавляю в этот набор записи, а потом пользуюсь процедурой Записать. Народ, кто-нибудь знает, какое максимальное кол-во записей я могу добавить в набор, чтобы он записался в регистр?
В большой и толстой книжке написано что дохера и больше (неограничено). Но на практике лучше кусками записывать.
это зависит от многих параметров. а) свободной памяти б) операционной системы в) свободного места на дсике г) файловой системы д) того - файловый у тебя вариант или клиент-серверный. е) если даже клиент-серверный - то например в ДБ2 - циклическое ли логирование.
Это не проблема регистра сведений. У самого недавно был документ (правда надо было 1,5 миллиона записать) Не хватака памяти зависела от ресурсов машины. На сервере записалось
в регистре бухгалтерии проблема потом прочитать большое количество записей. бери по 1000, не ошибешься
Открой Диспетчер задач, перейди на вкладочку Быстродействие, потом запусти свою задачу. Если видишь, что линия использования памяти упирается в потолок, то значит не хватает памяти на твоем компе. Аналогично проверяешь нехватку памяти на сервере. Дальше думаешь как модифицировать алгоритм.
2 кроме того - вопрос был про максимальное количество в РС а не максимальное количество за один раз. в 32-битке тоже запишется больше 4 Гб.
Помню на регистр бухгалтерии в 8.1 было какое-то ограничение не больше 100 тыс записей (может в новый релизах платформы отсутствует данное ограничение). Но как выше говорили пиши кусками и вообще нужно стараться избегать подобных алгоритмов по возможности потому что неправильно данные объемы гонять "разово".
да именно так. если рассматривать сколько в целом можно записей, то думаю это уже из вопроса по ограничениям например самого скуля (файловую бд не рассматриваем так как вопрос критичных параметров и файла некорректно с моей точки зрения впринципе).
я не ушлая, я ж говорю, что создала наборзаписей, в цикле делаю Добавить, в конце цикла в наборе оказалось 1 млн 800 тыс записей, после него я делаю наборзаписей.Записать(ложь)
Иногда существует проблема определения количества записей в том или ином справочнике, в документе или в регистре 1С:Предприятия. Как узнать количество используемых значений аналитики или общее количество записей в регистре поможет обработка «Количество записей таблицы». Обработка пригодится для расчёта времени выполнения запроса или кода, связанного с выборкой данных из таблиц 1С, или для определения других статистических показателей. С помощью этой обработки можно ответить на вопросы: сколько записей ежемесячно делается в журнале проводок, какие виды документов создаются в системе, все ли значения перечислений или элементов справочников используются в измерении регистра?
Для примера на рисунке сверху показано общее количество записей журнала проводок (бухгалтерский учёт) за октябрь 2013 года.
Алгоритм использования обработки следующий:
1) Открываем внешнюю обработку с помощью меню Файл → Открыть…
2) Выбираем группу метаданных, которая нам нужна.
3) Указываем таблицу информационной базы, количество элементов которой мы хотим определить.
4) Выбираем уникальное поле, по которому будет рассчитываться количество различных элементов выбранной таблицы. Если выбрать поле «» (для регистров) или «Ссылка» (для справочников и документов), то будет учитываться общее количество записей в регистре, справочнике или документе.
5) Указываем период, за который осуществляется выборка. Период можно указать только для периодических регистров и для всех документов.
6) В конце нажимаем на кнопку «Выполнить» и в поле «Количество записей» появляется рассчитанное число записей указанной таблицы по указанному полю за конкретный период.
Если вам понравилась эта обработка, то вы можете скачать её здесь. Нажмите на кнопке «Абонемент» и загрузите её себе на компьютер.
Иногда существует проблема определения количества записей в том или ином справочнике, в документе или в регистре 1С:Предприятия. Как узнать количество используемых значений аналитики или общее количество записей в регистре поможет обработка «Количество записей таблицы». Обработка пригодится для расчёта времени выполнения запроса или кода, связанного с выборкой данных из таблиц 1С, или для определения других статистических показателей. С помощью этой обработки можно ответить на вопросы: сколько записей ежемесячно делается в журнале проводок, какие виды документов создаются в системе, все ли значения перечислений или элементов справочников используются в измерении регистра?
Для примера на рисунке сверху показано общее количество записей журнала проводок (бухгалтерский учёт) за октябрь 2013 года.
Алгоритм использования обработки следующий:
1. Открываем внешнюю обработку с помощью меню Файл ? Открыть…
2. Выбираем группу метаданных, которая нам нужна.
3. Указываем таблицу информационной базы, количество элементов которой мы хотим определить.
4. Выбираем уникальное поле, по которому будет рассчитываться количество различных элементов выбранной таблицы. Если выбрать поле «» (для регистров) или «Ссылка» (для справочников и документов), то будет учитываться общее количество записей в регистре, справочнике или документе.
5. Указываем период, за который осуществляется выборка. Период можно указать только для периодических регистров и для всех документов.
6. В конце нажимаем на кнопку «Выполнить» и в поле «Количество записей» появляется рассчитанное число записей указанной таблицы по указанному полю за конкретный период.
Регистры сведений в 1С — это прикладные объекты конфигурации для хранения данных в структурированном виде (в разрезе измерений). Например, в регистре сведений можно хранить курсы валют в разрезе валют, цены номенклатуры в разрезе номенклатур, ФИО физических лиц в разрезе физических лиц и т.д.
При проектировании разработчик указывает необходимость хранения данных в разрезе времени и минимальную периодичность, с которой записи будут храниться в регистре:
Регистры сведений, для которых указана периодичность, называются периодическими.
Изменение данных в регистре может осуществляться как вручную, так и при помощи документов. Режим записи в регистр определяет разработчик на этапе проектирования:
Физически регистр сведений представляет собой таблицу, в которой хранятся следующие данные:
- измерения — описывают разрезы, в которых хранится информация;
- период — поле, используемое для разворота данных по времени. Поле добавляется автоматически при указании свойства «Периодичность», отличного от «Непериодический»;
- регистратор — поле, используемое для хранения документа, с которым связана запись. Поле добавляется автоматически при указании свойства «Режим записи» в значение «Подчинение регистратору»;
- ресурсы — непосредственно хранят информацию для комбинации измерений;
- реквизиты — дополнительная произвольная информация, относящаяся к конкретной записи регистра.
Для всех регистров сведений обеспечивается контроль уникальности записей, т.е. в регистре не может быть двух одинаковых записей. Одинаковыми считаются записи, у которых совпадают значения измерений, период (если регистр периодический) и регистратор (если регистр подчинен регистратору).
Добавление записей
Программно добавить записи в регистр сведений можно при помощи:
- объекта НаборЗаписей ;
- объекта МенеджерЗаписи .
Объект МенеджерЗаписи можно использовать только для работы с независимыми регистрами. Причем можно обрабатывать только одну запись. Объект предназначен в основном для интерактивной работы, но программно с ним также можно работать. На системном уровне МенеджерЗаписи использует объект НаборЗаписей .
Общая схема добавления записей в регистр сведений при помощи объекта НаборЗаписей выглядит так:
- создание объекта НаборЗаписей ;
- наложение отборов на измерения, период (если регистр периодический) и регистратора (если регистр подчинен регистратору);
- добавление и заполнение значений полей записей;
- запись набора записей.
Общая схема добавления записей в регистр сведений при помощи объекта МенеджерЗаписи выглядит так:
- создание объекта МенеджерЗаписи ;
- заполнение значений полей записи;
- запись записи.
Изменение записей
Изменять существующие записи регистров сведений возможно при помощи объектов НаборЗаписей и МенеджерЗаписи . Ограничения объекта МенеджерЗаписи были описаны выше.
Общая схема редактирования записей регистров сведений:
- создание объекта НаборЗаписей или МенеджерЗаписи ;
- наложение отборов;
- чтение записей базы данных, соответствующих наложенным отборам;
- редактирование прочитанных записей;
- запись отредактированных записей.
Чтение записей
Чтение информации из базы данных рекомендуется выполнять при помощи запросов. Данный способ обеспечивает гибкое применение отборов и группировок, а также возможность выбора записей из нескольких таблиц.
Для периодических регистров сведений есть возможность получить наиболее поздние записи, период которых меньше указанной даты — срез последних, и наиболее ранние записи, период которых больше указанной даты — срез первых. Для получения среза первых и среза последних запросом необходимо использовать одноименные виртуальные таблицы, в параметрах которых сразу можно задать дату среза и отборы. Отборы, если они необходимы, рекомендуется накладывать именно в параметрах виртуальных таблиц, т.к. это позволяет ускорить выполнение запроса.
Кроме чтения запросом возможно использование методов объектной модели.
Для непериодических регистров сведений:
- Выбрать(Отбор, Порядок) — выбирает записи с указанным отбором;
- ВыбратьПоРегистратору(Регистратор) — выбирает все записи указанного регистратора;
- Получить(Отбор) — получает ресурсы записи с отбором по всем измерениям.
Для периодических регистров сведений:
- Выбрать(НачалоИнтервала, КонецИнтервала, Отбор, Порядок) — выбирает записи с указанным отбором, у которых период находится между НачалоИнтервала и КонецИнтервала ;
- ВыбратьПоРегистратору(Регистратор) — выбирает все записи указанного регистратора;
- Получить(Период, Отбор) — получает ресурсы записи с отбором по всем измерениям и периоду;
- ПолучитьПервое(НачалоПериода, Отбор) — получает ресурсы наиболее ранней записи, соответствующей указанным периоду и отбору;
- ПолучитьПоследнее(КонецПериода, Отбор) — получает ресурсы наиболее поздней записи, соответствующей указанным периоду и отбору;
- СрезПервых(НачалоПериода, Отбор) — получает таблицу наиболее ранних записей, соответствующую указанным периоду и отбору;
- СрезПоследних(КонецПериода, Отбор) — получает таблицу наиболее поздних записей, соответствующую указанным периоду и отбору.
Удаление записей
Для удаления записи (записей) в независимом регистре сведений необходимо:
Для удаления записей в подчиненном регистре сведений необходимо:
- создать набор записей;
- наложить отбор на регистратора;
- записать набор записей без предварительного чтения.
Очистка регистра сведений
Для удаления всех записей в независимом регистре сведений достаточно записать набор записей этого регистра без установки отборов:
Запись в регистр сведений, подчиненный регистратору, возможна только при установке отбора по регистратору, поэтому для очистки таких регистров необходимо:
- получить перечень ссылок всех регистраторов регистра сведений;
- последовательно записать пустой набор записей с отбором по регистраторам из первого пункта.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Регистр сведений 1С 8 — объект метаданных, предназначенный для хранения справочной информации в разрезе определенных разработчиком измерений.
Типичный пример использования регистра сведений — хранение информации о курсе валют в разрезе валюты и периода.
Рассмотрим подробнее свойства и настройки регистра сведений.
Настройка и свойства регистра сведений 1С 8
Два главных свойства регистра сведения — Периодичность и Режим записи.
Это уникальные свойства регистра сведений, которых больше нет ни у одного объекта метаданных. Рассмотрим их подробнее.
Периодичность регистра сведений 1C
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Данное свойство позволяет добавить к списку измерений дополнительное измерение — Период. С его помощью можно решить большое количество задач: хранение информации в базе данных, учитывая актуальность на определенную дату. Прикладных примеров использования периодов множество: хранение значение валюты на каждый день, хранение цены номенклатуры и т.д.
Периодичность может принимать следующие значения:
- Непериодический
- В пределах секунды
- В пределах дня
- В пределах месяца
- В пределах квартала
- В пределах года
А одна из главных особенностей периодического регистра сведений — возможность получать готовые значения «Среза первых» и «Среза последних». Эта информация позволяет очень быстро получить из базы данных информацию о последнем (первом) установленном значении на определенную дату.
Режим записи регистра сведений
В 1С 8.2 и 8.3 это свойство может быть либо в значении «Независимый», либо — «Подчинение регистратору». В первом случае записи можно будет произвести как программно, так и из формы списка регистра сведений. Во втором случае обязательно указание документа-регистратора записи. Это накладывает определенные ограничения, но в то же время открывает новые возможности.
Свойства измерения регистра сведений
Также следует обратить внимание на палитру свойств измерений регистра сведений 1С 8.3. Особенно на флаги Ведущее и Основной отбор:
- Ведущее — свойство измерения, подразумевающее под собой информацию о том, что без значения этого измерения запись регистра не имеет смысл. На деле это означает что система при удалении значения из измерения удаляет еще и запись регистра с «Ведущим» измерением. Может быть установлено только одно измерение.
- Основной отбор — если регистр независимый, по этим измерениям будет устанавливаться регистрация изменений для плана обмена. Аналогично использование Основной отбор по периоду включает основной отбор для период для периодических регистров.
О других объектах системы 1С можно прочитать в разделе конфигурирование 1С.
Программная запись в регистр сведений 1С
Добавить новые записи в регистр сведений можно двумя способами — с помощью менеджера записи и с помощью набора записей. Первый случай подойдет для одиночной записи, второй — для двух и и более записей.
Использование менеджера записи:
НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»);
НоваяЗапись.Период = Дата(31,12,2016);
НоваяЗапись.Курс = 100;
НоваяЗапись.Кратность = 1;
НоваяЗапись.Записать();
Использование набора записей регистра сведений 1С:
НовыйНаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
//если вы не установите отбор — удалятся все записи регистра сведений
НовыйНаборЗаписей.Отбор.Валюта.Установить(Доллар, Истина);
НовыйНаборЗаписей.Отбор.Период.Установить(Дата(31,12,2016), Истина);
//формируем непосредственно запись набора
НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить();
НоваяЗаписьНабора.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»);
НоваяЗаписьНабора.Период = Дата(31,12,2016);
НоваяЗаписьНабора.Курс = 100;
НоваяЗаписьНабора.Кратность = 1;
НовыйНаборЗаписей.Записать();
Для полной программной очистки всех записей регистра сведений можно использовать нашу обработку.
Видеолекция по регистрам сведений в 1С для начинающих:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Читайте также: