v8: Способы повышения производительности 1С 80 Ключевые слова: производительность
Ускорение работы с коллекциями значений
По возможности используйте вместо списков значений и структур соответствия - это единственная индексированная коллекция в 1С.
Для операций свертки и сортировки таблицы значений выгоднее использовать построитель запросов, чем встроенные методы Свернуть, Сортировать: Книга знаний: v8: Ускорение типовой свертки таблиц значений в 1С80
Допишите сюда другие известные вам способы ускорения производительности.
Совместная работа большого количества пользователей
Для терминального режима имеет смысл попробовать способ избавления от 100% загрузки процессора при блокировках: Книга знаний: Исправление ошибки 1С:Предприятие 7.7/8.0 - 100% загрузка процессора при ожидании блокировки
Вынесение кода проведения документа на серверСамый первый способ
Для этого весь код проведения документа нужно вынести на сервер.
Модуль документа:
Процедура ОбработкаПроведения()
ПровестиДокументNNNНаСервере(Ссылка, Отказ);
КонецПроцедуры
Общий модуль с флажком только "Сервер":
Функция ПровестиДокументNNNНаСервере(Ссылка, Отказ)
...
КонецФункции
Более деликатный способ
Проведение из документа переносится на сервер.
Естественно, нужно в случае трезвенки передать мутабельное значение объекта на сервер.
Модуль документа:
Процедура ОбработкаПроведения(Отказ, РежимПроведения) Экспорт
#Если Клиент Тогда
ПровестиНаСервере(обМутабельноеЗакодировать(ЭтотОбъект), РежимПроведения, Отказ);
Возврат;
#КонецЕсли
//Далее исходный код обработки проведения, выполняться будет только на сервере
...
КонецПроцедуры
Общий модуль только с галкой "Сервер":
Процедура ПровестиНаСервере(Объект, РежимПроведения, Отказ)
обМутабельноеРаскодировать(Объект).ОбработкаПроведения(Отказ, РежимПроведения);
КонецПроцедуры
Способы передачи мутабельного значения объекта на сервер здесь: Книга знаний: v8: Сериализация объекта в строку через XML
Метод вынесения проведения на сервер тестировался на примере конфигурации УПП, документа ПеремещениеТоваров.
До вынесения документ проводился 14 секунд (работа кода - 3.5 сек, запись движений - 8.5 сек).
После вынесения - 4.5 секунд (работа кода - 2.5 сек, запись движений - 2 сек).
|