При работе в распределенных информационных базах (РИБ) часто возникает ситуация, когда документы, созданные в разных узлах, получают одинаковые номера в печатных формах и налоговых отчетах. Несмотря на то что в самой базе документы различаются префиксами (например, «МС-0001» и «ЦБ-0001»), при выводе на печать или в книгу продаж система автоматически отсекает префиксы, оставляя просто «0001». Это приводит к серьезным проблемам при проверках налоговой инспекцией, так как система «АСК НДС» не может сопоставить такие документы. Разберем подробно, как решить эту проблему программными и административными методами.
Проанализируем ситуацию с точки зрения законодательства. Согласно Постановлению Правительства №1137, нумерация счетов-фактур должна быть порядковой и возрастающей. Если у компании есть обособленные подразделения, то через дробь должен указываться цифровой код подразделения. В случае с РИБ, если каждый узел базы фактически представляет собой отдельную точку продаж или подразделение, отсутствие уникального идентификатора в печатном номере делает документы неразличимыми для автоматизированных систем ФНС. Когда два разных покупателя предъявляют к вычету счета-фактуры с одинаковым номером и датой, но разным содержанием от одного продавца, это гарантированно вызывает требование о представлении пояснений.
Прежде чем приступать к программированию, проверим штатные возможности конфигураций на базе БСП (УТ 11, ERP, КА). В современных версиях 1С предусмотрены механизмы управления выводом префиксов. Выполним следующие действия:
Если стандартные настройки не помогают (например, префикс узла РИБ не считается префиксом подразделения), нам потребуется вмешательство в код. Основная логика «очистки» номера обычно сосредоточена в общем модуле ПрефиксацияОбъектовКлиентСервер или ПрефиксацияОбъектовСлужебный.
Рассмотрим процедуру ПолучитьНомерНаПечать. Именно она отвечает за то, что пользователь видит в печатной форме. Нам нужно создать расширение, чтобы не снимать конфигурацию с поддержки. Проанализируем пример кода для расширения:
&Вместо("ПолучитьНомерНаПечать")
Функция Мой_ПолучитьНомерНаПечать(Знач Номер, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПрефиксОрганизации = Ложь)
// Вызываем стандартную обработку, но меняем параметры
// Если мы хотим оставить префикс узла РИБ, передаем Ложь в параметр удаления
Результат = ПродолжитьВызов(Номер, Ложь, УдалитьПрефиксОрганизации);
Возврат Результат;
КонецФункции
Этот подход позволит сохранить префиксы узлов (например, «БС», «ЦБ») в печатных формах УПД и счетов-фактур. Однако помните, что для Книги продаж может потребоваться отдельная корректировка, так как данные туда могут попадать напрямую из регистров.
Иногда программисты сталкиваются с тем, что модули типа СверкаДанныхУчетаНДС закрыты для редактирования (поставляются без исходного кода). Однако важно понимать архитектуру: записи в Книгу продаж попадают из регистров накопления, таких как НДС Продажи. Выясним причину: если в регистре номер уже хранится без префикса, то исправлять нужно момент проведения документа. Если же в регистре номер полный, а в отчете — короткий, значит, преобразование происходит в самом отчете или его схеме компоновки данных (СКД).
Для исправления отображения в Книге продаж выполним следующие шаги:
Номер (который может быть обработан программно) можно вывести НомерДокумента или аналогичное поле, содержащее строку целиком.КнигаПродаж, где перехватим запрос к данным и принудительно отключим функцию обрезки префиксов.Чтобы номера в Книге продаж выглядели профессионально и не вызывали лишних вопросов у аудиторов, рекомендуем придерживаться следующих правил:
Подведем итог: проблема задвоения номеров в РИБ решается либо через настройку Цифровых кодов организаций в справочниках (рекомендуется), либо через перехват функции ПолучитьНомерНаПечать в расширении. Это обеспечит уникальность номеров в Книге продаж и избавит бухгалтерию от необходимости писать пояснения в налоговую.