Каталог решений - Формирование движений в регистрах и производительность системы 1С:Предприятие 8

Формирование движений в регистрах и производительность системы 1С:Предприятие 8

Формирование движений в регистрах и производительность системы 1С:Предприятие 8

В наличии

Формирование движений в регистрах и производительность системы 1С:Предприятие 8

Категория:

Описание

Формирование движений в регистрах и производительность системы 1С:Предприятие 8

 

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

Сравним два варианта записи движений в регистр накопления.

            Есть документ «Поступление»  с табличной частью «Товарыс реквизитами табличной части  «Товар» и  «Количество». Необходимо по каждой строчке из табличной части сделать приход в регистр накопления «Остатки».

 

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

 

Процедура ОбходомСтрок()

            Для Каждого Стр из Товары Цикл

                        Движение = Движения.Остатки.ДобавитьПриход();

                        Движение.Период = Дата;

                        Движение.Регистратор = Ссылка;

                        Движение.Товар = Стр.Товар;

                        Движение.Количество = Стр.Количество;

            КонецЦикла;

Движения.Остатки.Записать();

КонецПроцедуры

 

 

            И второй вариант, требующий знания механизма запросов .

 

Процедура Запросом()

 Запрос = Новый Запрос;

 Запрос.Текст = "ВЫБРАТЬ

                                       |       ПриходТовары.Товар,

                                       |       ПриходТовары.Количество,

                                       |       ПриходТовары.Ссылка КАК Регистратор,

                                       |       ПриходТовары.Ссылка.Дата КАК Период

                                        |ИЗ

                                        |      Документ.Приход.Товары КАК ПриходТовары

                                        |ГДЕ

                                        |      ПриходТовары.Ссылка = &Ссылка";

                                              

Запрос.УстановитьПараметр("Ссылка",Ссылка);

ТЗ = Запрос.Выполнить().Выгрузить();

Движения.Остатки.Загрузить(ТЗ);

Движения.Остатки.Записать();     

КонецПроцедуры

 

 

Формирование движений в регистре с использованием второго варианта происходит значительно быстрее, чем при использовании первого варианта. Замеры производительности при отладке дают прирост скорости от 30 %

has been added to your cart:
Оформление заказа