При интеграции управленческих баз (например, 1С:Управление торговлей или 1С:УНФ) с «1С:Бухгалтерией 3.0» (БП 3.0) часто возникает ситуация, когда номера счетов-фактур в бухгалтерской базе приобретают вид ХХХ000000001. В то же время печатные формы в управленческой базе выводятся без префиксов — просто как «1», «2» и так далее. При формировании регламентированного отчета «Книга продаж» в БП 3.0 префиксы и нули сохраняются, что может привести к расхождениям с данными контрагентов и вопросами со стороны налоговых органов.
В этой статье мы подробно разберем, почему так происходит, и рассмотрим несколько способов приведения номеров в Книге продаж к печатному виду, от простого использования скрытых реквизитов до программной корректировки механизмов системы.
Проанализируем работу механизмов 1С. В конфигурации БП 3.0 существует глобальная функция, которая отвечает за преобразование внутреннего номера документа в «красивый» номер для печати. Ранее она называлась ПолучитьНомерНаПечать, в современных релизах это НомерНаПечать из общих модулей (например, ПрефиксИндексацияКлиентСервер).
Логика работы этой функции по умолчанию ориентирована на стандартные разделители. Она ищет в номере символ тире «-». Если он найден, система считает всё, что слева от него, префиксом, а всё, что справа — цифровой частью, из которой удаляются лидирующие нули. Если в вашем номере типа ХХХ000000001 тире отсутствует, система может не распознать ХХХ как префикс и выведет номер «как есть».
Однако для Книги продаж ситуация сложнее: данные в отчет попадают не напрямую из заголовка документа, а из специального вспомогательного регистра сведений. Рассмотрим подробнее способы решения этой проблемы.
Это самый эффективный способ, не требующий внесения изменений в программный код. В справочнике Организации существует служебный реквизит ПрефиксБП20, который по умолчанию скрыт с форм. Он был введен для обеспечения преемственности нумерации при переходе с версии 2.0 на 3.0. Если этот реквизит заполнен, система при формировании номеров для Книги продаж будет пытаться найти указанную строку в начале номера и удалить её.
Разберем процесс по шагам:
ПрефиксБП20 (в пользовательском интерфейсе может называться «Префикс БП 2.0»).ХХХ).Важный нюанс: Простого изменения реквизита организации недостаточно для того, чтобы Книга продаж мгновенно изменилась. Как мы выяснили выше, данные берутся из регистра. Поэтому необходимо выполнить перепроведение всех счетов-фактур за отчетный период. Только в момент проведения документа обновляются записи в регистре сведения Журнал учета счетов-фактур, и номер преобразуется с учетом нового префикса.
Если способ со скрытым реквизитом по каким-то причинам не подходит (например, префиксы разные или сложная логика их формирования), проанализируем возможность программного вмешательства. В современных конфигурациях 1С крайне не рекомендуется менять типовой код. Вместо этого используем механизм расширений.
Нам необходимо перехватить функцию преобразования номера. Посмотрим на пример кода, который можно внедрить в расширение (общий модуль ПрефиксИндексацияКлиентСервер или аналогичный):
&Вместо("НомерНаПечать")
Функция Мой_НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь)
// Вызываем стандартную обработку
Результат = ПродолжитьВызов(НомерОбъекта, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс);
// Добавляем свою логику удаления специфического префикса ХХХ
Если Лев(Результат, 3) = "ХХХ" Тогда
Результат = Сред(Результат, 4);
// Удаляем оставшиеся лидирующие нули
Пока Лев(Результат, 1) = "0" И СтрДлина(Результат) > 1 Цикл
Результат = Сред(Результат, 2);
КонецЦикла;
КонецЕсли;
ВозвращаемоеЗначение Результат;
КонецФункции
Однако следует учитывать, что для отчета «Книга продаж» часто используются параметры, где УдалитьПрефиксИнформационнойБазы принудительно установлен в Ложь. Поэтому может потребоваться также корректировка запроса в модуле менеджера отчета КнигаПродаж, чтобы флаг удаления префикса был активен.
Если вы не хотите перепроводить документы (например, период закрыт для редактирования, но Книгу продаж нужно сформировать корректно), можно прибегнуть к прямой правке регистра. Данные для колонки «Номер» Книги продаж берутся именно оттуда.
Проанализируем ситуацию: записи в регистре Журнал учета счетов-фактур содержат поле Номер. Вы можете воспользоваться внешней обработкой, которая переберет записи этого регистра за нужный период и обрежет префиксы в строковом поле номера.
Пример логики для обработки:
НаборЗаписей = РегистрыСведений.ЖурналУчетаСчетовФактур.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(НачалоКвартала, КонецКвартала);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
// Предположим, префикс всегда 3 символа
Если Найти(Запись.Номер, "ХХХ") > 0 Тогда
Запись.Номер = СтрЗаменить(Запись.Номер, "ХХХ", "");
// Убираем нули
Пока Лев(Запись.Номер, 1) = "0" Цикл
Запись.Номер = Сред(Запись.Номер, 2);
КонецЦикла;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
Внимание: Этот метод является «силовым». При любом последующем перепроведении документа типовой механизм 1С снова запишет в регистр полный номер с префиксом. Поэтому данный способ подходит только для разовой подготовки отчетности.
Рассмотрим, почему корректная нумерация так важна. Система автоматизированного контроля АСК НДС-2 сопоставляет данные вашей декларации с данными деклараций ваших покупателей. Если покупатель занес счет-фактуру в свою книгу покупок с номером «1» (как указано в бумажном экземпляре), а вы в книге продаж отразили его как ХХХ000000001, автоматическая сверка может выдать расхождение.
Поэтому мы рекомендуем:
Мы проанализировали проблему появления префиксов в Книге продаж БП 3.0 и нашли решение. Оптимальным вариантом является заполнение реквизита ПрефиксБП20 в справочнике Организации с последующим групповым перепроведением документов. Это позволит сохранить базу на поддержке и обеспечит корректное формирование отчетности в соответствии с требованиями налогового законодательства. Для контроля изменений в разделах отчета после перепроведения и подготовки корректировок можно использовать отчет для сравнения первичной и корректирующей деклараций по НДС.