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