Как ускорить проведение документов в 1С 7.7?

Опубликовано Опубликовано в рубрике 1C Программирование, Разное

Прежде всего нужно исчерпать все штатные возможности.

Как показала практика, дополнительные штатные индексы 1С (например, флажок «Быстрая обработка движений» в регистре) не дают выигрыша в скорости проведения документов, т.к. на запись большего количества индексов уходит больше времени.

А вот обратить внимание на состояние данных стоит самым внимательным образом. Например, регистры должны закрываться. Вот пример из практики.

В программе оформляются документы «Реализация» с видом операции «Прочая розничная реализации», которые формируют задолженность с видом долга «Долг за товары».

Они закрывается безналом (Строка выписки приход).Но в основном от покупателей идут оплаты ПКО с видом операции «Розничная выручка».

Такой ПКО не закрывает имеющиеся реализации.

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

Что получается когда документы оформляются таким образом? Каждый месяц появляются новые незакрытые документы «Реализация», программа при открытии периода переносит задолженности по ним на следующий месяц, затем к ним добавляется такое же количество незакрытых документов в текущем месяце и т.п. В результате таблица итогов становится огромной, и даже простая выгрузка итогов регистра в таблицу значений (что предусмотрено модулями проведения документов) занимает несколько секунд.

Закрыв регистры вы получите значительный прирост в производительности учетной системы.

Если Вы сможете организовать работу с помощью корректировочных документов и отказаться от временного расчета регистров — получите еще больший выигрышь по скорости проведения документов, ведь в новой системе будут задействованы все документы оперативного учета.

Если у Вас есть лавинообразные блокировки при проведении документов — попробуйте ВК TerminalSleep от romix, скачать ее можно по ссылке.

Необходимо обратить внимание на алгоритмы проведения документов. В типовых конфигурациях (российских) стараются писать читабельный, универсальный и достаточно быстрый код. Но если Вы видите запросы в цикле, непонятные выгрузки-загрузки, сложные преобразования — изучите их и оптимизируйте код. Неоптимальный код может нагрузить даже мощный сервер и вызвать блокировки таблицы журнала документов. Время массово проводимых документов должно быть минимальным.

Если у Вас есть регистры со множеством измерений — имеет смысл пересмотреть их структуру. Если есть необходимость иметь много измерений — можно сократить их количество, сделав составное измерение с видом «Справочник.Служебный». Справочник будет содержать старые значения измерений регистра в виде реквизитов.

Если документ при проведении или записи лишь измененяет какой-то признак, то стоит задуматься о другом способе хранения этого признака. Например, не стоит записывать или проводить документ, если нужно изменить его этап. Этап лучше хранить в собственной таблице или в служебном справочнике. Тогда вместо огромного количества запросов Вы можете обойтись одним (!) запросом, который будет изменять лишь одну (!) индексированную запись в таблице. Старайтесь не пользоваться документами для хранения служебных данных (например, контакт с контрагентом и проч.). Запись и проведение документа вызывает больше блокировок и выполняется дольше, нежели запись одного элемента справочника (можете посмотреть профайлером).

Первоисточник: http://1c911.by