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