Как отключить контроль и ускорить массовое распроведение документов в 1С:Комплексная автоматизация?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет
← На главную

При работе с системой 1С:Комплексная автоматизация (1С:КА) пользователи часто сталкиваются с проблемой чрезвычайно медленного проведения или распроведения большого количества документов, особенно если речь идет о прошлых периодах. Ситуация, когда распроведение всего 200 реализаций за месяц занимает 8 часов, является неприемлемой и требует немедленного решения. Давайте разберем, почему это происходит и какие шаги мы можем предпринять для значительного ускорения процесса.

Основная причина такого замедления кроется в том, что 1С:КА пытается выполнить ряд операций и проверок при каждом изменении документа, даже если регламентные задания кажутся отключенными. Эти операции включают пересчет итогов, проверку контролей и актуализацию различных регистров, что при массовом перепроведении документов создает огромную нагрузку на систему.

Причины замедления при распроведении документов

Прежде чем перейти к решениям, рассмотрим основные причины, которые приводят к столь низкой скорости:

  1. Регистр сведений "Задания к закрытию месяца" и "Задания к расчету себестоимости". Эти регистры играют ключевую роль в учете и закрытии периодов. При распроведении документа система фиксирует необходимость пересчета данных за затронутые периоды. При массовых операциях накапливается огромное количество записей в этих регистрах, и система постоянно пытается их обработать или сигнализирует о необходимости пересчета, что сильно замедляет процесс.
  2. Регистр накопления "Расчеты с клиентами по срокам" и "онлайн взаиморасчеты". Этот регистр критически важен для анализа дебиторской задолженности. В 1С:КА и 1С:ERP, особенно если включен режим "онлайн взаиморасчетов", система стремится мгновенно пересчитывать эти данные при каждом изменении документов взаиморасчетов (к которым относится и распроведение реализаций). Если в базе много таких документов, это становится одной из главных причин торможения.
  3. Контроль остатков товаров. При распроведении документов 1С:КА может проверять наличие товаров на складах или отсутствие отрицательных остатков. Каждое распроведение требует дополнительной проверки складских позиций, что, очевидно, увеличивает общее время операции.
  4. Фоновые и регламентные задания. Несмотря на то, что регламентные задания могут быть отключены в явных настройках, некоторые операции могут выполняться как фоновые задания, запускаемые неявно при определенных действиях пользователя. В файловых базах регламентные задания иногда могут исполняться клиентскими сеансами, если они не заблокированы явным образом.

Как отключить/оптимизировать контроль и ускорить распроведение

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

  1. Очистка регистра "Задания к закрытию месяца"

    Если при попытке закрытия месяца кнопка "Выполнить операции" неактивна или процесс закрытия занимает очень много времени, это часто связано с накопившимися записями в регистре сведений ЗаданияКЗакрытиюМесяца. Мы можем очистить этот регистр, чтобы система не тратила ресурсы на его постоянную актуализацию при распроведении документов:

    1. Перейдем в меню "Все функции" (обычно доступно через "Сервис и настройки" -> "Функции для технического специалиста" или "Все функции...").
    2. Найдем и откроем регистр сведений "Задания к закрытию месяца".
    3. Мы увидим список записей, которые система считает незавершенными или требующими пересчета. Внимательно проанализируем эти записи. Если мы уверены, что распроведение документов из прошлого года не требует мгновенного пересчета всех этих заданий, особенно если планируется повторное закрытие месяца после завершения всех операций, мы можем временно удалить записи из этого регистра.
    4. Важно: убедитесь, что вы понимаете последствия удаления данных. Это действие следует выполнять крайне осторожно и желательно на копии базы или с предварительным созданием резервной копии. После завершения массовых операций и повторного проведения документов, система заново сгенерирует необходимые записи при следующем закрытии месяца.

    На форуме нам подсказывали, что нужно "по всем аналитикам сбросить задания к расчету на начало твоего периода" – это как раз и относится к работе с такими регистрами.

  2. Отключение контроля остатков

    Контроль остатков является важным механизмом для предотвращения отрицательных остатков, но он значительно замедляет массовые операции. Мы можем временно отключить его несколькими способами:

    1. Временно для текущего пользователя

      В 1С:КА и 1С:ERP существует специальная настройка, которая позволяет отключить контроль остатков только для текущего пользователя. Это удобно, если массовые операции выполняет один человек:

      Перейдем в раздел "НСИ и администрирование" -> "Финансовый результат и контроллинг" -> "Учет товаров". Там нам нужно будет найти и установить флажок или соответствующую настройку для отключения контроля остатков. Точное название может варьироваться, но обычно оно связано с "контролем остатков при проведении" или "контролем обеспечения".

    2. Глобально или по складу

      Контроль остатков также можно отключить более широко:

      • Для организации: В "Настройках учета товаров" можно найти параметр "Контролировать остатки товаров организаций" и временно снять с него флажок.
      • Для конкретного склада: Откроем карточку нужного склада и снимем флажок "Контролировать обеспечение". Это поможет, если проблемы возникают с товарами на конкретных складах.
    3. Программно (для разработчиков)

      В некоторых сложных случаях, особенно при создании собственных обработок для массового распроведения, может потребоваться программное отключение контроля. Это реализуется через использование параметра сеанса ПараметрСеанса.ПроводитьБезКонтроляОстатковТоваровОрганизаций. Это позволяет обойти такие методы, как ПроведениеСерверУТ.ВыполнитьКонтрольРезультатовПроведения, что дает максимальный прирост скорости при программной обработке:

      
      // Временно отключаем контроль остатков
      ПараметрыСеанса.ПроводитьБезКонтроляОстатковТоваровОрганизаций = Истина;
      
      // Здесь выполняем массовое распроведение документов
      
      // Важно: после завершения операции, включите контроль обратно
      ПараметрыСеанса.ПроводитьБезКонтроляОстатковТоваровОрганизаций = Ложь;
      

      Этот подход требует внесения изменений в конфигурацию или создания расширения.

  3. Перевод взаиморасчетов в "оффлайн" режим (с осторожностью)

    Если основной причиной замедления является регистр "Расчеты с клиентами по срокам" и режим "онлайн взаиморасчетов", мы можем временно перевести расчеты в "оффлайн" режим. Однако следует помнить, что 1С активно продвигает "онлайн" режим как более точный и актуальный, и его отключение может повлечь за собой особенности в учете и отчетности, требующие ручной актуализации. Этот шаг следует предпринимать с большой осторожностью и только при крайней необходимости, понимая все риски.

    Настройка находится в "НСИ и администрирование" -> "Продажи" -> "Настройки продаж" -> "Настройки взаиморасчетов с клиентами". Здесь мы можем выбрать режим расчетов. После выполнения массовых операций обязательно верните режим "онлайн", чтобы не нарушить текущий учет.

  4. Блокировка регламентных и фоновых заданий

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

    1. В серверной базе

      Если вы используете клиент-серверный вариант базы, мы можем заблокировать регламентные задания через консоль администрирования сервера 1С. Найдем свойства информационной базы и установим флажок "Заблокировать регламентные задания". Критически важно не забыть снять эту блокировку после завершения всех массовых операций, иначе обычная работа системы будет нарушена.

    2. В файловой базе

      Для файловых баз мы можем заблокировать фоновые задания при запуске. Добавим параметр /AllowExecuteScheduledJobs –off в строку запуска 1С. Это позволит предотвратить выполнение любых фоновых операций:

      
      "C:\Program Files\1cv8\8.3.Х.ХХХХ\bin\1cv8.exe" ENTERPRISE /F "C:\Path\To\Your\Base" /AllowExecuteScheduledJobs -off
      

      После завершения работ обязательно либо удалите этот ключ, либо измените его на –on, чтобы восстановить нормальное функционирование фоновых заданий.

    3. Отключение ненужных заданий

      Просмотрим список регламентных заданий в разделе "НСИ и администрирование" -> "Администрирование" -> "Поддержка и обслуживание" -> "Регламентные операции" -> "Регламентные и фоновые задания". Мы можем отключить те задания, которые не являются критически важными для текущего момента, или изменить их расписание так, чтобы они не запускались во время выполнения массовых операций.

  5. Работа в копии базы

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

  6. Аппаратное обеспечение

    Хотя основная проблема лежит в настройках программного обеспечения, мы не должны исключать влияние аппаратных ресурсов. Если база данных очень большая (более 15 ГБ) или количество одновременно работающих пользователей превышает 10, перевод в клиент-серверный режим и обновление серверного оборудования (более мощный процессор, больший объем оперативной памяти, использование SSD-дисков) могут значительно улучшить общую производительность системы.

Сосредоточив наши усилия на очистке регистра ЗаданияКЗакрытиюМесяца, временном отключении контроля остатков и блокировке регламентных заданий, а также, при необходимости, на временном переводе взаиморасчетов в "оффлайн" режим, мы сможем значительно ускорить процесс массового распроведения документов в 1С:Комплексная автоматизация и избежать потери ценного рабочего времени.

← На главную