Переход с ветки 2.4 на 2.5 в конфигурациях «1С:Комплексная автоматизация» и «1С:ERP» является одним из самых масштабных обновлений за последние годы. Версия 2.5.7.226 привносит кардинальные изменения в архитектуру учета — в частности, меняются механизмы учета НДС и взаиморасчетов. Рассмотрим подробнее, с какими трудностями сталкиваются специалисты при обновлении, и разберем по шагам, как устранить наиболее критические ошибки.
Одной из первых проблем, с которой мы можем столкнуться при выполнении постобработки данных, является исключение в процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию документа СверкаВзаиморасчетов. Ошибка проявляется следующим образом: система сообщает, что транзакция, открытая внутри обработчика, осталась активной. Это происходит из-за некорректного выхода из цикла в коде типовой конфигурации.
Для исправления ситуации проанализируем модуль менеджера документа СверкаВзаиморасчетов. Нам необходимо принудительно фиксировать транзакцию перед оператором Продолжить, если условие готовности к заполнению не выполняется. Разберем пример кода, который следует добавить через расширение:
// В процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию
// ... (фрагмент кода вокруг строки 6865)
Если Не ГотовКЗаполнению Тогда
ЗафиксироватьТранзакцию; // Добавляем фиксацию перед переходом к следующей итерации
Продолжить;
КонецЕсли;
// ...
Использование расширения в данном случае является наиболее безопасным методом, так как оно позволяет сохранить поддержку конфигурации и оперативно применить патч на рабочей базе.
Многие пользователи жалуются на «мертвое» зависание системы при попытке проведения документов или во время работы фоновых заданий после обновления. Выясним причину этого поведения. Проблема локализована в общем модуле ОперативныеВзаиморасчетыСервер, в процедуре ЗаполнитьОперативныеВзаиморасчеты.
Система попадает в бесконечный цикл из-за того, что индексы оплаты и отгрузки не инкрементируются должным образом при определенных данных в регистрах. Рассмотрим фрагмент проблемного участка:
Пока Индексы.ИндексОплаты + Индексы.ИндексОтгрузкиПоставки < ЗаписейОбработать Цикл
// В определенных условиях (например, при наличии нулевых сумм или битых аналитик)
// алгоритм не может сопоставить записи, и условие выхода никогда не достигается.
КонецЦикла;
Для решения этой проблемы рассмотрим два пути. Во-первых, если ситуация критическая и требует немедленного вмешательства в режиме отладки, программисты иногда вручную корректируют значения в структуре Индексы, чтобы завершить цикл. Однако правильным системным решением будет установка официального исправления (патча) от 1С или очистка записей с нулевыми остатками в регистрах взаиморасчетов перед запуском обновления. Также стоит обратить внимание на типовую обработку «Заполнение регистров взаиморасчетов», которую необходимо запустить после завершения всех этапов обновления.
Часто после перехода на 2.5.7 бухгалтеры сообщают, что данные до определенного периода (например, до конца 3 квартала 2021 года) исчезли из ведомостей и актов сверки. На самом деле данные не удалены, но они перестали отображаться из-за введения новой сущности — Объект расчетов.
Проанализируем ситуацию: в версии 2.5 учет строится вокруг справочника ОбъектыРасчетов. Если постобработчики не завершили свою работу или в старых данных были ошибки (например, отрицательные остатки по конкретным накладным при общем нулевом балансе по договору), связи не создаются. Чтобы восстановить видимость данных, выполним следующие действия:
ОбъектыРасчетов. Если таковые имеются, их необходимо переформировать, используя типовые механизмы пересчета взаиморасчетов.Версия 2.5.7 радикально меняет логику работы с НДС. Старая сущность НДС заменена на новую, что может привести к невозможности перезаписи элементов некоторых справочников. Рассмотрим ситуацию, когда элемент не записывается из-за ссылки на старый тип НДС. В этом случае бывает достаточно программно перезаписать значение сущности НДС на аналогичное, но принадлежащее новой структуре.
Кроме того, в новой версии значительно расширено количество регистров, отвечающих за места хранения. Это часто приводит к «отвалу» самописных отчетов и внешних печатных форм. Если ваши отчеты перестали показывать остатки, проанализируйте изменения в метаданных: многие данные переехали из старых регистров накопления в новые, более детализированные. Перевод прав доступа также требует внимания — из-за новых объектов метаданных типовые роли могли измениться, и пользователям потребуется перенастройка профилей групп доступа.
Поскольку процесс обновления крайне ресурсоемок, проанализируем требования к серверу базы данных. При выполнении постобработчиков происходит массовая перезапись документов и движений. Рассмотрим основные риски:
TempDB может потребоваться до 1-2 Тб пространства.Подводя итог, можно сказать, что переход на 2.5.7.226 требует от специалиста не только навыков кодинга для правки ошибок в постобработчиках, но и глубокого понимания новой архитектуры объектов расчетов. Будьте готовы к индивидуальным правкам данных через групповые обработки, если типовые механизмы не справятся с историческими ошибками учета в вашей базе.