Для ускорения выполнения операций со значительным объемом записей, в версии платформы 8.3.26 будут доработаны режимы записи у подчиненных регистров сведений и регистров накопления. Данный режим позволит добиться повышения производительности на крупных внедрениях.
Особенность записи данных в регистры, подчиненные регистраторам, заключается в том, что данные по каждому регистратору нужно записывать отдельно, причем целиком. Кроме того, все заменяемые данные сначала удаляются, а затем записываются новые.
Существует два сценария работы, которые приводят к необходимости долгого ожидания исполнения операции:
- Загрузка большого количества данных, пришедших из другой программы. Когда документов много, загрузка данных может занимать десятки часов.
- Перепроведение документа с большим количеством данных при фактическом изменении пары строк. Пользователь изменил одну строку и ожидает, что запись произойдет быстро. А программа его ожидания не оправдывает.
Существующий режим замещения Добавление
Появится возможность записи набора записей без установленного отбора по регистратору. Значения НомерСтроки перед записью автоматически проставляются в записи набора на основании полученных из существующих записей регистра максимальных номеров записи в разрезе регистратора.
Если раньше время записи новых данных зависело от количества объектов, то теперь все новые данные будут записаны одной порцией. Это позволит сократить время добавления данных на порядки.
Новый режим замещения Обновление
Позволит обновить существующие записи регистра сведений, совпадающие по значениям ключевых полей с записями набора записей. Добавление новых записей в регистр не производится, что существенно ускоряет процедуру записи.
Если пользователь изменил лишь часть данных, например, одну строку, то неизмененные данные набора не будут удаляться и записываться заново.
Существующий режим замещения Удаление
Из регистра удаляются записи, совпадающие по значениям ключевых полей с записями набора записей. После удаления производится переназначение номеров у сохранившихся записей регистра, чтобы заполнить образовавшиеся пропуски номеров.
Если пользователь удалит строку в документе, модификация соответствующего этим строкам набора данных будет заключаться только в их удалении. Вместо того, чтобы перезаписывать весь набор данных целиком.
Все сопутствующие действия (пересчет итогов, регистрация изменений обмена данными, полнотекстового поиска, запись изменений истории данных и т. п.) производятся по существующим правилам.
Пример сценария использования: Свертка остатков
Смысл свертки остатков в том, что записи регистра накопления за периоды, предшествующие дате свертки, замещаются на записи, которые представляют собой аналог начальных остатков на дату свертки. Соответственно, совокупность записей по уникальному набору значений измерений за периоды, предшествующие дате свертки, заменяется на одну запись с тем же набором значений измерений и периодом, соответствующим периоду свертки.
Используя новую функциональность, процедуру свертки можно значительно ускорить. В общих чертах это выглядит так (подробный пример будет приведен в документации):
- После вычисления интегральных значений ресурсов в разрезе измерений «сворачиваемые» записи удаляются из регистра путем записи в режиме замещения;
- Сформированные новые «интегральные» записи добавляются в набор записей без замещения.
Получается N операций записи в режиме замещения наборов записей для удаления сворачиваемых записей, где N – число регистраторов, к которым относятся сворачиваемые записи, и одна запись набора в режиме добавления для записи «свернутых» остатков.
По вопросам обновления, поддержки или развития систем 1С обращайтесь через форму консультации! Подписывайтесь также на Новости из мира 1С в Telegram.
консультация эксперта
самые свежие новости 1 раз в месяц