Проблема отсутствия истории КПП в конфигурации «1С:Управление производственным предприятием» (УПП) является классической. В отличие от современных решений на базе ERP или «Бухгалтерии предприятия 3.0», архитектура УПП не предполагает периодичности для реквизитов справочника Контрагенты. Когда ваш покупатель или поставщик меняет КПП (например, при переезде в другой регион или постановке на учет в качестве крупнейшего налогоплательщика), перед бухгалтером и программистом встает дилемма: просто изменить код в карточке или заводить новый элемент справочника. Разберем подробно оба подхода и выберем оптимальный.
Если мы просто зайдем в карточку контрагента и впишем новый КПП поверх старого, мы столкнемся с серьезными проблемами при необходимости перепечатать документы за прошлые периоды или сдать корректировочную отчетность по НДС. Проанализируем основные риски:
Рассмотрим самый безопасный с точки зрения типового функционала, но трудозатратный способ — заведение нового элемента в справочнике Контрагенты. Рассмотрим, как это сделать правильно:
При этом подходе создается полная копия карточки с тем же ИНН, но новым КПП. Главная сложность здесь заключается в переносе остатков. Посмотрим на алгоритм действий:
КорректировкаДолга с видом операции «Перенос задолженности».Минусы этого метода: необходимость ручной сборки актов сверки по двум карточкам и риск «сломать» партионный учет или автоматическое закрытие заказов. Этот метод подходит, если обороты с контрагентом невелики или сделки носят разовый характер.
Если контрагент — ваш ключевой партнер с огромным количеством заказов и авансов, создание дублей в справочнике приведет к хаосу. В этом случае мы рекомендуем внедрить механизм истории КПП. Разберем по шагам, как это реализовать программисту.
Шаг 1. Создание регистра сведений. Создадим новый периодический регистр сведений (периодичность — «День»). Назовем его, например, ИсторияКППКонтрагентов.
Контрагент (тип СправочникСсылка.Контрагенты).КПП (тип Строка, длина 9).Шаг 2. Изменение логики получения реквизитов. Теперь нам нужно заставить систему обращаться к этому регистру вместо реквизита в карточке. Основная точка входа в УПП для получения данных для печати — это общий модуль УчетНДС или ФормированиеПечатныхФорм (в зависимости от релиза), а именно функция СведенияОЮрФизЛице.
Рассмотрим пример кода, который можно интегрировать в функцию получения сведений:
Функция ПолучитьКППНаДату(ВыбКонтрагент, ДатаСведений) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ИсторияКППКонтрагентовСрезПоследних.КПП
|ИЗ
| РегистрСведений.ИсторияКППКонтрагентов.СрезПоследних(&ДатаСведений, Контрагент = &Контрагент) КАК ИсторияКППКонтрагентовСрезПоследних";
Запрос.УстановитьПараметр("ДатаСведений", ДатаСведений);
Запрос.УстановитьПараметр("Контрагент", ВыбКонтрагент);
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
Возврат Выборка.КПП;
Иначе
Возврат ВыбКонтрагент.КПП; // Возвращаем основной, если истории нет
КонецЕсли;
КонецФункции
Шаг 3. Правка декларации по НДС. Проанализируем формирование книги продаж и покупок. В запросах, которые собирают данные для этих отчетов, необходимо заменить обращение к полю Контрагент.КПП на соединение с нашим новым регистром сведений СрезПоследних на дату совершения операции. Это гарантирует, что в декларацию попадут верные данные за любой прошлый период.
Если ваш покупатель стал крупнейшим, его новый КПП будет начинаться на 99. Выясним важный юридический нюанс: в первичных документах (счетах-фактурах) допускается указание как КПП по месту нахождения, так и КПП крупнейшего. Однако на практике крупные компании жестко требуют использования именно кода «99». Поэтому доработка с историей становится еще более актуальной, так как ИНН у организации не меняется, и с точки зрения учета это все тот же контрагент.
Подведем итог нашего анализа. Если вы столкнулись со сменой КПП у контрагента в УПП:
ИсторияКППКонтрагентов — это наиболее профессиональное решение, которое сохранит чистоту учета и обеспечит корректность печати старых документов.Помните, что архитектурные ограничения старых конфигураций 1С — это не препятствие, а повод для грамотной оптимизации системы под нужды вашего бизнеса.