В процессе работы с конфигурацией 1С:Управление торговлей 10.3 пользователи часто сталкиваются с ситуацией, когда система «замирает» на длительное время при попытке ввода документа на основании, например, при создании Установки цен номенклатуры из Поступления товаров и услуг. Рассмотрим, почему это происходит и как мы можем диагностировать и устранить данную проблему.
Зависания в файловой версии 1С при работе с базами объемом от 2-5 ГБ и выше — распространенная проблема. Файловый режим .1CD не рассчитан на интенсивную конкурентную работу. Основные причины тормозов включают:
Для начала нам нужно локализовать проблемный участок кода. В 1С для этого существует инструмент «Замер производительности». Если выполнение процедуры занимает 82 секунды, как в нашем примере, значит, проблема кроется в выполнении запроса к базе данных.
Давайте проанализируем процедуру ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании. Основная нагрузка приходится на следующий программный блок:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Дата", РабочаяДата);
Запрос.УстановитьПараметр("ДокументОснование", ДокументПоступление);
Запрос.УстановитьПараметр("ПодчиненныеТипыЦен", ПодчиненныеТипыЦен);
Запрос.Текст = "ВЫБРАТЬ ... ИЗ ... ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних ...";
РезультатЗапроса = Запрос.Выполнить();
Здесь мы видим обращение к виртуальной таблице СрезПоследних. При большом объеме регистра ЦеныНоменклатуры, этот запрос требует значительных ресурсов для пересчета актуальных цен для каждой строки документа.
Разберем, что мы можем предпринять для оптимизации работы системы:
Консоль запросов. Попробуйте максимально упростить его, убрав соединения. Замерьте время выполнения. Постепенно возвращайте части кода, чтобы понять, какой именно узел (ЛЕВОЕ СОЕДИНЕНИЕ или ГРУППИРОВКА) вызывает наибольшие задержки..1CD.Технологический журнал для фиксации событий DBPOSTPROC и DBMSSQL. Это позволит увидеть, какие именно запросы блокируют работу системы в момент «зависания».Многие полагают, что «снятие с замка» (снятие конфигурации с поддержки) замедляет работу. Это не совсем так. Скорость работы падает из-за качества самих доработок. Если вы планируете изменять конфигурацию:
Внешние печатные формы и Внешние обработки вместо внесения правок в основную конфигурацию. Это облегчит обновление и уменьшит размер метаданных основной базы.Помните: файловая 1С не предназначена для больших нагрузок. Если вы перепробовали все методы оптимизации кода, включая переписывание запросов, и проблема сохраняется — единственным верным решением для развития вашего бизнеса станет переход на серверную архитектуру.