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