Расширение 1С замедлило проведение документов: причины и что делать
Расширения 1С добавляют функции без правки типовой конфигурации, поэтому её можно обновлять штатно. Но расширение тормозит базу, если тяжело работает при записи документов, и ломается, если новый релиз изменил то, что оно перехватывает. Проверяйте его на копии базы, а рабочую базу держите на сервере с запасом.
Почему расширение 1С замедляет базу или перестаёт работать 🔍
В пятницу вечером в базу подключили расширение, которое при проведении реализации сверяет цены с прайсом. В понедельник в девять утра менеджеры проводят заказы, и проведение, которое шло сразу, висит минутами. Склад ждёт проведённых документов, бухгалтер ждёт склад.
Расширение работает как задумано, но делает запрос к базе на каждую строку документа. На тестовой копии с двумя строками этого не видно, а в боевых заказах десятки позиций, и проведение растягивается. Поэтому тормоза начинаются не в день установки, а в первый час настоящей нагрузки.
Чаще всего за этим стоит одна из пяти причин:
- ✓запрос в цикле внутри обработчика записи или проведения документа;
- ✓перехват метода через &Вместо без вызова ПродолжитьВызов(), из-за чего типовая логика не выполняется;
- ✓два расширения перехватывают один метод, и результат зависит от порядка их подключения;
- ✓новый релиз типовой изменил процедуру или реквизит, на который ссылалось расширение;
- ✓серверу не хватает памяти или скорости диска, а расширение добавило нагрузки сверх запаса.
Пятую причину часто принимают за вину расширения. База и раньше работала на пределе, расширение подтолкнуло её за край. Отличить просто: отключите расширение на копии базы, и если скорость не вернулась, виновато окружение.
Ставка здесь не абстрактная. Пока проведение висит, склад не отгружает, а бухгалтерия не закрывает период. Если сбой пришёлся на закрытие месяца или на последние дни перед сдачей отчётности, отдел теряет рабочие часы, а компания рискует пропустить срок.
Как исправить: найти виновное расширение и проверить сервер 🛠
Отключите расширения по одному на копии базы
Рабочую базу для экспериментов не трогайте. Сделайте копию и пройдите по шагам:
- ✓Разверните копию на отдельном сервере или на машине администратора.
- ✓В Конфигураторе откройте «Конфигурация → Расширения конфигурации» и снимите флаг активности со всех расширений.
- ✓Проведите документ, на котором тормозило, и засеките время.
- ✓Включайте расширения по одному и повторяйте проведение. Скачок времени покажет виновника.
- ✓Для найденного расширения включите технологический журнал или замер производительности и найдите самые долгие запросы.
Если нашёлся запрос в цикле, его заменяют одним запросом на весь документ. Обычно это небольшая правка, а не переписывание расширения. Своего программиста нет? Сопровождение 1С и сисадмин у нас стоят 3800 руб/час.
Убедитесь, что тормозит не сервер
Если база тормозит и без расширений, смотрите железо: оперативную память сервера 1С, скорость диска, число одновременных сеансов. Скорость связки «процессор, память, диск, платформа» измеряет тест Гилёва, а ориентиры по ресурсам под платформу собраны в системных требованиях 1С. Прогоните тест в часы обычной нагрузки и в тихое время. Если результат заметно проседает при пользователях, расширение ни при чём, серверу тесно.
Что делать, если ошибка повторяется после каждого обновления
Бухгалтерия обновила типовую конфигурацию, и расширение с отчётом снова не открывается: «Поле объекта не обнаружено». В прошлый релиз правили то же самое. Теперь опять.
Расширение привязано к конкретным именам реквизитов и процедур. Разработчик типовой конфигурации иногда меняет их в новых релизах, поэтому расширение, которое лезет во внутренности типовой, ломается раз за разом. Каждый раз вы оплачиваете ту же правку, а пользователи ждут.
В свойствах расширения указано назначение: «Исправление», «Адаптация» или «Дополнение». Исправления и адаптации глубже всего залезают в чужой код, и именно они чаще слетают при обновлениях. Дополнение, которое добавляет новые объекты и почти не трогает типовые, переживает релизы спокойнее.
Чтобы разорвать цикл:
- ✓Перепишите расширение так, чтобы оно использовало подписки на события и программные интерфейсы библиотеки стандартных подсистем, а не перехват внутренних процедур.
- ✓Перед обновлением запускайте в Конфигураторе проверку конфигурации вместе с расширением: битые ссылки видны раньше, чем их увидят пользователи.
- ✓Обновляйте сначала тестовую копию и прогоняйте на ней ключевые операции: проведение, печать, главный отчёт.
- ✓Для готовых расширений договоритесь с автором письменно, что он адаптирует их под новые релизы и в какой срок.
Если расширение ломается каждый раз, возможно, доработку стоит сделать иначе. Сравнение способов ниже.
Расширение, изменение конфигурации или внешняя обработка: что выбрать
Расширение подходит, когда задача типовая: нужное поле, проверка при вводе, дополнительная печатная форма. Для разовой выгрузки хватит внешней обработки. Конфигурацию с поддержки снимают, когда ничего другого не остаётся.
| Способ доработки | Обновление типовой конфигурации | Слабое место | Когда брать |
|---|---|---|---|
| Расширение конфигурации | Типовая остаётся на поддержке и обновляется штатно | Ломается, если релиз изменил перехваченный метод или реквизит | Новое поле, проверка при вводе, печатная форма, доработка логики документа |
| Изменение конфигурации | Конфигурацию снимают с поддержки, каждый релиз объединяют вручную | Дорогое сопровождение, обновления откладывают | Только когда расширение не умеет нужного |
| Внешняя обработка или отчёт | Не зависит от обновлений, лежит вне конфигурации | Не меняет логику документов, подключается отдельно | Разовая выгрузка, загрузка данных, нестандартный отчёт |
| Готовое расширение от автора | Как у любого расширения, плюс автор адаптирует его под релиз | Код может быть закрыт, качество не видно до проверки | Типовая задача, которую уже решали до вас |
Например, расширение, которое добавляет в заказ покупателя поле «Менеджер по доставке» и проверяет его заполнение, касается минимума типового кода и редко ломается. Расширение, которое переопределяет расчёт себестоимости, лезет глубоко и слетает чаще.
Перед тем как ставить готовое расширение, выясните четыре вещи: для каких версий платформы и конфигурации оно сделано, открыт ли исходный код, кто и как долго его поддерживает, есть ли пробная версия. Закрытый код не приговор. Но если расширение начнёт тормозить, причину без автора вы не найдёте.
Как предотвратить сбои: тестовая копия и порядок в расширениях ✅
Эти правила работают без сложной автоматизации:
- ✓Держите тестовую копию рабочей базы и обновляйте её перед каждым релизом и каждым новым расширением.
- ✓Ведите список расширений: название, зачем подключено, кто автор, когда установлено и на какой релиз рассчитано. Через год никто не вспомнит, откуда взялось половина из них.
- ✓После установки замерьте время ключевых операций, например проведения, главного отчёта и закрытия месяца, и сохраните замеры. Без них нечем доказать, что стало хуже.
- ✓Оставляйте включёнными безопасный режим и защиту от опасных действий для расширений из внешних источников.
- ✓Не запускайте тестовую базу на тех же ресурсах, где идёт боевая работа: тяжёлый тест съест память у живых пользователей.
Последний пункт упирается в инфраструктуру. Тестовой базе нужен отдельный сервер, а покупать железо ради нескольких прогонов в год невыгодно. Здесь подходит виртуальный сервер для 1С: тест идёт на своих ресурсах и не конкурирует с живыми пользователями. Скорость зависит и от параметров кластера: числа рабочих процессов, лимитов памяти, расположения баз. Их выставляет администратор, и настройка сервера 1С может повлиять на время проведения так же сильно, как код самого расширения.
Где держать базу с расширениями и сколько это стоит 💰
Знакомая картина: база стоит на старом сервере в шкафу в офисе, обновления откладывают, тестовой копии нет. Каждое новое расширение превращается в лотерею: подключили в пятницу, узнали в понедельник.
Аренда сервера 1С решает это на уровне инфраструктуры. База переезжает на оборудование с запасом по памяти и диску, а копия для проверки расширений живёт рядом и не отнимает ресурсы у рабочей. Железо под пик нагрузки покупать не нужно: число пользователей меняется, и вместе с ним меняется счёт.
Варианты по размеру задачи:
- ✓Аренда сервера 1С для малого и среднего бизнеса: база на нашем сервере, работа через интернет, от 1 100 ₽/мес за пользователя.
- ✓Если расширений много, а нагрузка высокая, ресурсы лучше не делить с соседями: выделенный сервер в аренду.
- ✓Для 1С:ERP, где документы тяжелее и любое расширение в проведении заметнее, есть сервер под 1С:ERP.
Чем это отличается от своего сервера: железо не нужно покупать и обслуживать, а кластер и параметры под нагрузку настраивает системный администратор, а не «кто-то из бухгалтерии разобрался». Сопровождение 1С и работа сисадмина стоят 3800 руб/час, цена известна заранее.
Начать можно с малого: перенесите на арендованный сервер копию базы и прогоните на ней расширение, в котором сомневаетесь. Рабочая база при этом не пострадает, а ответ о том, тормозит ли оно, вы получите в тихое время, а не в понедельник в девять утра.
❓ Частые вопросы
Почему после подключения расширения 1С стала медленнее?
Чаще всего расширение выполняет тяжёлый код при записи или проведении документа, например запрос к базе на каждую строку. Другая причина: серверу и раньше не хватало ресурсов. Отключите расширение на копии базы и сравните время проведения: если скорость не вернулась, проблема в сервере.
Можно ли обновлять типовую конфигурацию, если подключены расширения?
Можно, расширения для того и существуют: типовая остаётся на поддержке и обновляется штатно. Риск в другом: если новый релиз изменил процедуру или реквизит, к которым обращается расширение, оно перестанет работать. Поэтому сначала обновляйте тестовую копию и проверяйте ключевые операции, а потом рабочую базу.
Чем расширение лучше изменения конфигурации?
Расширение не требует снимать типовую конфигурацию с поддержки, поэтому релизы устанавливаются без ручного объединения изменений. Изменённую конфигурацию приходится сверять с каждым обновлением вручную, и поддержка дорожает. Менять конфигурацию имеет смысл, только если расширение не умеет нужного, например при глубокой переделке учётной логики.
Сколько стоит аренда сервера 1С для базы с расширениями?
Сервер 1С в аренде стоит от 1 100 ₽ в месяц за пользователя. Итоговая сумма зависит от числа пользователей: цена считается за каждого. Сопровождение 1С и работа системного администратора оплачиваются отдельно, по 3800 руб/час. Копию базы для проверки расширений можно развернуть на отдельном виртуальном сервере.
Как проверить готовое расширение для 1С перед покупкой?
Узнайте, для каких версий платформы и конфигурации оно сделано, открыт ли исходный код и кто поддерживает его при новых релизах. Затем подключите расширение на копии базы, а не на рабочей, проведите типовые документы и сравните время операций с замерами до установки.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

