Переход на редакцию 2.5 конфигурации «1С:Комплексная автоматизация» — это не просто очередное обновление, а серьезная технологическая миграция. Архитектура системы претерпела значительные изменения в части механизмов распределения затрат, партионного учета и взаиморасчетов. Рассмотрим подробнее, с какими сложностями сталкиваются специалисты при переходе, и разберем практические способы их решения.
Проанализируем ситуацию с ресурсами. Практический опыт показывает, что редакция 2.5 значительно требовательнее к аппаратной части, чем 2.4. Основная нагрузка ложится на дисковую подсистему и оперативную память сервера СУБД. Выясним причину: в новой редакции механизмы закрытия месяца активно используют временные таблицы SQL для массовых вычислений себестоимости. Это приводит к взрывному росту tempdb. Зафиксированы случаи, когда база размером 100 Гб при выполнении регламентных операций требовала расширения tempdb до 500-600 Гб.
Рекомендации по оптимизации производительности:
tempdb на максимально быстрых NVMe SSD дисках.При переносе данных из «УПП 1.3» или «КА 1.1» в «КА 2.5» часто используются типовые правила обмена. Разберем типичную ошибку при загрузке правил в Конвертацию данных 2.0. При попытке импорта может возникнуть ошибка неуникальности кода параметра УчетПартийТолькоБУ. Посмотрим на причину: в макете правил от разработчика этот параметр часто дублируется дважды.
Для исправления необходимо открыть XML-файл правил в любом текстовом редакторе, найти тег <Параметр Имя="УчетПартийТолькоБУ".../> и удалить дублирующую строку. После этого загрузка в КД 2.0 пройдет корректно.
Одним из самых крупных изменений стал переход на «Архитектуру взаиморасчетов онлайн». Теперь в документах (например, в Авансовом отчете) вместо прямой ссылки на Заказ поставщику или Поступление товаров и услуг используется обязательный реквизит ОбъектРасчетов, имеющий тип СправочникСсылка.ОбъектыРасчетов.
Если вы переносите данные программно или через обмен, этот справочник не всегда заполняется автоматически, что блокирует проведение документов. Рассмотрим код для генерации Уникального идентификатора платежа (УИП), который необходим для корректного формирования объектов расчетов:
Функция ПолучитьУникальныйИдентификаторПлатежа(Объект) Экспорт
Префикс = ПолучитьПрефиксДляУИП(Объект.Ссылка);
Дата = Формат(Объект.Дата, "ДФ=yyMM");
Номер = СтрЗаменить(Объект.Номер, "-", "");
Код = Строка(Префикс) + Строка(Дата) + Строка(Номер);
УИН = ПолучитьУникальныйИдентификаторПлатежаСКонтрольнымРазрядом(Код);
Возврат УИН;
КонецФункции
При загрузке данных через Универсальный обмен рекомендуется создать ПКО для справочника ОбъектыРасчетов и вызывать программное создание объекта в обработчике ПриЗагрузке, если он отсутствует в базе-приемнике.
Часто при переходе на 2.5 процесс обновления «зависает» на отложенных обработчиках. Популярная ошибка возникает в регистре сведений СуммыДокументовВВалютахУчета. Проанализируем ситуацию: система сообщает о зацикливании процедуры ОбработатьДанныеДляПереходаНаНовуюВерсию из-за дублей записей по регистратору.
Способ решения:
Приобретение товаров и услуг).Групповое изменение реквизитов).При миграции документов из старых систем может возникнуть несоответствие типа налогообложения. Например, в документе есть суммы НДС, но установлен статус ПродажаНеОблагаетсяНДС. В 2.5 это блокирует проведение. Разберем пример кода обработки для массового исправления таких документов с использованием фоновых заданий:
&НаСервере
Процедура ИсправитьНалогообложениеНаСервере()
МетаданныеДок = Метаданные.Документы;
Для каждого Док Из МетаданныеДок Цикл
Если Не (ОбщегоНазначения.ЕстьРеквизитОбъекта("НалогообложениеНДС", Док)
И ОбщегоНазначенияУТ.ЕстьРеквизитТабЧастиОбъекта("СуммаНДС", Док, "Товары")) Тогда
Продолжить;
КонецЕсли;
Выборка = Документы[Док.Имя].Выбрать();
Пока Выборка.Следующий() Цикл
ИтогНДС = Выборка.Товары.Итог("СуммаНДС");
НужныйТип = ?(ИтогНДС > 0, Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС,
Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС);
Если Выборка.НалогообложениеНДС <> НужныйТип Тогда
ОбъектДок = Выборка.Ссылка.ПолучитьОбъект();
ОбъектДок.НалогообложениеНДС = НужныйТип;
Попытка
ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
Исключение
ЗаписьЖурналаРегистрации("ОшибкаНДС", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
При переносе истории документов за прошлые периоды вы неизбежно столкнетесь с тем, что документы не проводятся из-за временных отрицательных остатков. В 2.5 контроль стал более жестким. Посмотрим, как можно временно отключить этот механизм программно для процесса загрузки. Рассмотрим использование ПараметрыСеанса в общем модуле ПроведениеСерверУТ:
// Вставьте условие в начало процедуры ВыполнитьКонтрольРезультатовПроведения
Если ПараметрыСеанса.ПроводитьБезКонтроляОстатковТоваровОрганизаций Тогда
Возврат; // Пропускаем контроль для административной загрузки
КонецЕсли;
Важно: Не забудьте вернуть контроль после завершения миграции, так как работа в 2.5 без контроля остатков приведет к некорректному расчету себестоимости (появлению «пустых» партий).
Завершая наш анализ, разберем стратегию выбора версии. Фирма «1С» ввела понятие LTS (Long Term Support) для редакции 2.5. Рассмотрим различия:
Выясним, когда переходить: оптимальным моментом считается переход через 3-6 месяцев после выхода первого релиза новой ветки, когда основная масса ошибок (так называемые «патчи») уже исправлена разработчиками.