В платформе 8.3.26 системное перечисление «РежимЗамещения» получит новое значение «Обновление» и сможет применяться, в том числе, для регистров накопления и подчиненных регистров сведений.
Изменения оптимизируют выполнение операций со значительным объемом записей.
Что изменится в работе с регистрами накопления и подчиненными регистрами сведений в 8.3.26
Официальный технологический блог «1С» «Заметки из Зазеркалья» сообщил об изменениях, запланированных на релиз 8.3.26.
Разработчики собираются ускорить масштабные операции записи для регистров сведений и регистров накопления. Для этого анонсируют следующие изменения:
-
Системное перечисление РежимЗамещения в качестве параметра <Замещать> для метода Записать() наборов записей регистров накопления и подчиненных регистров сведений: в методах РегистрСведенийНаборЗаписей.<Имя регистра сведений>.Записать(<Замещать>) и РегистрНакопленийНаборЗаписей.<Имя регистра сведений>.Записать(<Замещать>) в качестве значения параметра <Замещать> наряду со значением типа Булево в платформе 8.3.26 можно будет использовать системное перечисление «РежимЗамещения». Напомним, что у независимых регистров сведений такая возможность уже есть, начиная с версии 8.3.25. Теперь такая же возможность будет применима для наборов записей регистров накопления и подчиненных регистров сведений.
Важно: для регистров накопления и подчиненных регистров сведений значение перечисления РежимЗамещения.Слияние в качестве параметра <Замещать> не применимо. -
Новое значение перечисления РежимЗамещения.Обновление: в дополнение к уже существующим, начиная с версии 8.3.25, значениям перечисления РежимЗамещения.Добавление, РежимЗамещения.Замещение, РежимЗамещения.Слияние, РежимЗамещения.Удаление добавляется новое значение РежимЗамещения.Обновление.
РежимЗамещения.Обновление в отличие от РежимЗамещения.Слияние производит только обновление существующих записей регистра, совпадающих по значениям ключевых полей с записями, содержащимися в наборе записей. Добавление новых записей в регистр не производится, что существенно ускоряет процедуру записи.
Особенности записи через РежимЗамещения для регистров накопления и подчиненных регистров сведений
Начиная с платформы 8.3.26 для регистров накопления и подчиненных регистров сведений будет добавлена возможность записи набора записей в режимах Обновление и Удаление:
- РежимЗамещения.Обновление – производится обновление существующей записи регистра, совпадающей по значениям ключевых полей (Регистратор, НомерСтроки, разделители) с записью набора записей.
Значения остальных установленных полей записи набора переносится в найденную запись регистра. - РежимЗамещения.Удаление – из регистра удаляются записи, совпадающие по значениям ключевых полей с записями набора записей.
После удаления производится переназначение номеров записей у сохранившихся записей регистра, чтобы заполнить образовавшиеся пропуски номеров.
Все сопутствующие действия (пересчет итогов, регистрация изменений обмена данными, полнотекстового поиска, запись изменений истории данных и т. п.) производятся по существующим правилам.
Кроме этого для регистров накопления и подчиненных регистров сведений появится возможность записи набора с параметром РежимЗамещения.Добавление без установленного отбора по регистратору – достаточно указать регистратор в качестве поля набора записей. При этом значение поля НомерСтроки автоматически подставится на основании максимального существующего номера в разрезе регистратора.
Отметим, что в плане по развитию версии 8.3.26 технологической платформы задача по добавлению новых режимов замещения для регистров накопления и подчиненных регистров сведений отсутствует. Таким образом, ее реализация станет приятным сюрпризом для тех, кто захочет использовать новые возможности платформы в своих проектах.
Как и где можно будет применить новые методы работы с регистрами
Разработчики платформы считают, что новая функциональность может быть востребована, прежде всего, в проектах корпоративного уровня и при внедрении высоконагруженных систем. В качестве одного из возможных сценариев использования новых методов разработчики проводят задачу по свертке остатков.
В качестве отправной точки в своих рассуждениях разработчики указывают на то, что смысл свертки остатков в том, что записи регистра накопления за периоды, предшествующие дате свертки, замещаются на записи, которые представляют собой аналог начальных остатков на дату свертки. Соответственно совокупность записей по уникальному набору значений измерений за периоды, предшествующие дате свертки, заменяется на одну запись с тем же набором значений измерений и периодом, соответствующим периоду свертки.
Исходя из этого, использование новых возможностей должно существенно ускорить выполнение данной задачи. С учетом изменений процесс должен выглядеть следующим образом:
«Мы будем рекомендовать использование новых возможностей при разработке прикладных решений для улучшения производительности, в особенности на крупных внедрениях», – говорится в заметке.
Полный текст анонса о новых режимах записи для регистров в 1С:Предприятие 8.3.26
Актуальная версия плана задач по развитию технологической платформы 8.3.26