1С:Бухгалтерия и 1С:Управление торговлей 11 по-разному формируют печатные формы счетов-фактур: Бухгалтерия оставляет только номер, а Управление торговлей оставляет еще и префикс документа. При совместном использовании этих конфигураций такая ситуация часто вызывает недовольство бухгалтеров, которым нужно, чтобы счета-фактуры, распечатанные из разных программ, выглядели одинаково.
Итак, задача — убрать префиксы из номера печатной формы счетов-фактур в 1С:Управление торговлей 11.
В 1С:Управление торговлей нет пользовательских настроек, позволяющих управлять выводом префикса на печать, поэтому придется немного скорректировать конфигурацию.
За формирование номеров в печатных формах отвечает функция НомерНаПечать общего модуля ПрефиксацияОбъектовКлиентСервер:
//Содержимое функции в данном случае нам не важно
КонецФункции
Функция имеет 3 входящих параметра:
- НомерОбъекта — номер документа, который нужно преобразовать.
- УдалитьПрефиксИнформационнойБазы — булево, если Истина, удаляет префиксы базы.
- УдалитьПользовательскийПрефикс — булево, если Истина, удаляет пользовательские префиксы.
Нас будет интересовать второй параметр — УдалитьПрефиксИнформационнойБазы (хотя, не исключаю, что в некоторых случая понадобится и третий, если вы сталкивались с этим, пожалуйста, напишите в комментариях). Нам нужно при вызове этой функции передать во второй параметр значение Истина.
Для формирования печатной формы счета-фактуры используется обработка ПечатьОбщихФорм. В модуле менеджера этой обработки есть функция НомерСчетаФактурыНаПечать:
НомерНаПечать = "";
Если Номер <> Неопределено Тогда
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер, Ложь, УдалитьПользовательскийПрефикс); ПозицияРазделителя = СтрНайти(НомерНаПечать, "-");
Префикс = Лев(НомерНаПечать, ПозицияРазделителя);
НомерБезПрефикса = Сред(НомерНаПечать, ПозицияРазделителя + 1);
Если Лев(НомерБезПрефикса, 1) = "И" Тогда
НомерНаПечать = Префикс + Сред(НомерБезПрефикса, 2);
КонецЕсли;
Если ЗначениеЗаполнено(ИндексПодразделения) Тогда
НомерНаПечать = НомерНаПечать + "/" + ИндексПодразделения;
КонецЕсли;
КонецЕсли;
Возврат НомерНаПечать;
КонецФункции
В ней нас интересует строка
Она отвечает за формирование номера и вызывает функцию, описанную выше. Второй параметр этой функции нужно заменить на Истина.
Окончательный вид функции:
НомерНаПечать = "";
Если Номер <> Неопределено Тогда
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер, Истина, УдалитьПользовательскийПрефикс); ПозицияРазделителя = СтрНайти(НомерНаПечать, "-");
Префикс = Лев(НомерНаПечать, ПозицияРазделителя);
НомерБезПрефикса = Сред(НомерНаПечать, ПозицияРазделителя + 1);
Если Лев(НомерБезПрефикса, 1) = "И" Тогда
НомерНаПечать = Префикс + Сред(НомерБезПрефикса, 2);
КонецЕсли;
Если ЗначениеЗаполнено(ИндексПодразделения) Тогда
НомерНаПечать = НомерНаПечать + "/" + ИндексПодразделения;
КонецЕсли;
КонецЕсли;
Возврат НомерНаПечать;
КонецФункции
Ввёл все изменения в полном соответствии с материалом на сайте. Изменений не увидел. Остался префикс на выводимых на печать счетах-фактурах. Смущает верхняя строка в параметрах «Функции НомерСчетаФактурыНаПечать» Указан параметр «УдалитьПользовательскийПрефикс = Ложь)» . Всё ли верно?
Спасибо. С уважением Фёдоров О.А.
Насчет параметров в заголовке функции — все верно. Это значение (ЛОЖЬ) устанавливается тогда, когда в функцию вообще не был передан этот параметр. Если же в функцию пришло какое-то значение, то используется оно.
Почему вам не помог описанный способ сказать трудно. Если хотите, наши специалисты могут помочь. Обратитесь по адресу info@chel1c.ru
Что означает параметр УдалитьПользовательскийПрефикс? Есть префикс базы, есть префикс оргнаизации/филиала. А что такое пользовательский префикс и откуда он берётся? Конф. БП3.
Добрый день. Посмотрите эту статью: https://www.online-ufa.ru/content/articles/prefix-1c/ Там наглядно показано, где какие префиксы находятся, и рассказано, как они используются.