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