Как перейти на 1С:Комплексная автоматизация 2.5 и решить технические ошибки при обновлении

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

Переход на редакцию 2.5 конфигурации «1С:Комплексная автоматизация» — это не просто очередное обновление, а серьезная технологическая миграция. Архитектура системы претерпела значительные изменения в части механизмов распределения затрат, партионного учета и взаиморасчетов. Рассмотрим подробнее, с какими сложностями сталкиваются специалисты при переходе, и разберем практические способы их решения.

Анализ производительности и требования к оборудованию

Проанализируем ситуацию с ресурсами. Практический опыт показывает, что редакция 2.5 значительно требовательнее к аппаратной части, чем 2.4. Основная нагрузка ложится на дисковую подсистему и оперативную память сервера СУБД. Выясним причину: в новой редакции механизмы закрытия месяца активно используют временные таблицы SQL для массовых вычислений себестоимости. Это приводит к взрывному росту tempdb. Зафиксированы случаи, когда база размером 100 Гб при выполнении регламентных операций требовала расширения tempdb до 500-600 Гб.

Рекомендации по оптимизации производительности:

  1. Удвойте объем оперативной памяти (минимум до 256 Гб для крупных баз).
  2. Разместите базу tempdb на максимально быстрых NVMe SSD дисках.
  3. Настройте параметр Max Degree of Parallelism (MAXDOP) на SQL-сервере. Установка значения 1 часто предотвращает зацикливания и таймауты при расчете партий.

Исправление ошибок в правилах обмена данных (КД 2.0)

При переносе данных из «УПП 1.3» или «КА 1.1» в «КА 2.5» часто используются типовые правила обмена. Разберем типичную ошибку при загрузке правил в Конвертацию данных 2.0. При попытке импорта может возникнуть ошибка неуникальности кода параметра УчетПартийТолькоБУ. Посмотрим на причину: в макете правил от разработчика этот параметр часто дублируется дважды.

Для исправления необходимо открыть XML-файл правил в любом текстовом редакторе, найти тег <Параметр Имя="УчетПартийТолькоБУ".../> и удалить дублирующую строку. После этого загрузка в КД 2.0 пройдет корректно.

Новая архитектура взаиморасчетов: Объекты расчетов

Одним из самых крупных изменений стал переход на «Архитектуру взаиморасчетов онлайн». Теперь в документах (например, в Авансовом отчете) вместо прямой ссылки на Заказ поставщику или Поступление товаров и услуг используется обязательный реквизит ОбъектРасчетов, имеющий тип СправочникСсылка.ОбъектыРасчетов.

Если вы переносите данные программно или через обмен, этот справочник не всегда заполняется автоматически, что блокирует проведение документов. Рассмотрим код для генерации Уникального идентификатора платежа (УИП), который необходим для корректного формирования объектов расчетов:


Функция ПолучитьУникальныйИдентификаторПлатежа(Объект) Экспорт
    Префикс = ПолучитьПрефиксДляУИП(Объект.Ссылка);
    Дата = Формат(Объект.Дата, "ДФ=yyMM");
    Номер = СтрЗаменить(Объект.Номер, "-", "");
    Код = Строка(Префикс) + Строка(Дата) + Строка(Номер);
    УИН = ПолучитьУникальныйИдентификаторПлатежаСКонтрольнымРазрядом(Код);
    Возврат УИН;
КонецФункции

При загрузке данных через Универсальный обмен рекомендуется создать ПКО для справочника ОбъектыРасчетов и вызывать программное создание объекта в обработчике ПриЗагрузке, если он отсутствует в базе-приемнике.

Ошибка зацикливания при обновлении информационной базы

Часто при переходе на 2.5 процесс обновления «зависает» на отложенных обработчиках. Популярная ошибка возникает в регистре сведений СуммыДокументовВВалютахУчета. Проанализируем ситуацию: система сообщает о зацикливании процедуры ОбработатьДанныеДляПереходаНаНовуюВерсию из-за дублей записей по регистратору.

Способ решения:

  1. Найдите в журнале регистрации документ, на котором происходит сбой (обычно это Приобретение товаров и услуг).
  2. Временно разрешите редактирование в режиме перехода (через обработку Групповое изменение реквизитов).
  3. Отмените проведение проблемного документа и проведите его заново. Это переформирует движения в новом формате и позволит обработчику обновления завершить работу.

Массовое исправление налогообложения НДС

При миграции документов из старых систем может возникнуть несоответствие типа налогообложения. Например, в документе есть суммы НДС, но установлен статус ПродажаНеОблагаетсяНДС. В 2.5 это блокирует проведение. Разберем пример кода обработки для массового исправления таких документов с использованием фоновых заданий:


&НаСервере
Процедура ИсправитьНалогообложениеНаСервере()
    МетаданныеДок = Метаданные.Документы;
    Для каждого Док Из МетаданныеДок Цикл
        Если Не (ОбщегоНазначения.ЕстьРеквизитОбъекта("НалогообложениеНДС", Док)
            И ОбщегоНазначенияУТ.ЕстьРеквизитТабЧастиОбъекта("СуммаНДС", Док, "Товары")) Тогда
            Продолжить;
        КонецЕсли;
        
        Выборка = Документы[Док.Имя].Выбрать();
        Пока Выборка.Следующий() Цикл
            ИтогНДС = Выборка.Товары.Итог("СуммаНДС");
            НужныйТип = ?(ИтогНДС > 0, Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС, 
                                     Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС);
            
            Если Выборка.НалогообложениеНДС <> НужныйТип Тогда
                ОбъектДок = Выборка.Ссылка.ПолучитьОбъект();
                ОбъектДок.НалогообложениеНДС = НужныйТип;
                Попытка
                    ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
                Исключение
                    ЗаписьЖурналаРегистрации("ОшибкаНДС", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
                КонецПопытки;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры

Обход контроля остатков при первоначальной загрузке

При переносе истории документов за прошлые периоды вы неизбежно столкнетесь с тем, что документы не проводятся из-за временных отрицательных остатков. В 2.5 контроль стал более жестким. Посмотрим, как можно временно отключить этот механизм программно для процесса загрузки. Рассмотрим использование ПараметрыСеанса в общем модуле ПроведениеСерверУТ:


// Вставьте условие в начало процедуры ВыполнитьКонтрольРезультатовПроведения
Если ПараметрыСеанса.ПроводитьБезКонтроляОстатковТоваровОрганизаций Тогда
    Возврат; // Пропускаем контроль для административной загрузки
КонецЕсли;

Важно: Не забудьте вернуть контроль после завершения миграции, так как работа в 2.5 без контроля остатков приведет к некорректному расчету себестоимости (появлению «пустых» партий).

Выбор релиза: LTS против функциональных релизов

Завершая наш анализ, разберем стратегию выбора версии. Фирма «1С» ввела понятие LTS (Long Term Support) для редакции 2.5. Рассмотрим различия:

Выясним, когда переходить: оптимальным моментом считается переход через 3-6 месяцев после выхода первого релиза новой ветки, когда основная масса ошибок (так называемые «патчи») уже исправлена разработчиками.

← На главную