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