Вывод номера счета-фактуры без префикса в 1С:Управление торговлей 11

1С:Бухгалтерия и 1С:Управление торговлей 11 по-разному формируют печатные формы счетов-фактур: Бухгалтерия оставляет только номер, а Управление торговлей оставляет еще и префикс документа. При совместном использовании этих конфигураций такая ситуация часто вызывает недовольство бухгалтеров, которым нужно, чтобы счета-фактуры, распечатанные из разных программ, выглядели одинаково.

Итак, задача — убрать префиксы из номера печатной формы счетов-фактур в 1С:Управление торговлей 11.

В 1С:Управление торговлей нет пользовательских настроек, позволяющих управлять выводом префикса на печать, поэтому придется немного скорректировать конфигурацию.

За формирование номеров в печатных формах отвечает функция НомерНаПечать общего модуля ПрефиксацияОбъектовКлиентСервер:

Функция НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт

//Содержимое функции в данном случае нам не важно

КонецФункции

Функция имеет 3 входящих параметра:

  1. НомерОбъекта — номер документа, который нужно преобразовать.
  2. УдалитьПрефиксИнформационнойБазы — булево, если Истина, удаляет префиксы базы.
  3. УдалитьПользовательскийПрефикс — булево, если Истина, удаляет пользовательские префиксы.

Нас будет интересовать второй параметр — УдалитьПрефиксИнформационнойБазы (хотя, не исключаю, что в некоторых случая понадобится и третий, если вы сталкивались с этим, пожалуйста, напишите в комментариях). Нам нужно при вызове этой функции передать во второй параметр значение Истина.

Для формирования печатной формы счета-фактуры используется обработка ПечатьОбщихФорм. В модуле менеджера этой обработки есть функция НомерСчетаФактурыНаПечать:

Функция НомерСчетаФактурыНаПечать(Номер, ИндексПодразделения, УдалитьПользовательскийПрефикс = Ложь)

НомерНаПечать = "";

Если Номер <> Неопределено Тогда

НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер, Ложь, УдалитьПользовательскийПрефикс); ПозицияРазделителя = СтрНайти(НомерНаПечать, "-");
Префикс = Лев(НомерНаПечать, ПозицияРазделителя);
НомерБезПрефикса = Сред(НомерНаПечать, ПозицияРазделителя + 1);

Если Лев(НомерБезПрефикса, 1) = "И" Тогда

НомерНаПечать = Префикс + Сред(НомерБезПрефикса, 2);

КонецЕсли;

Если ЗначениеЗаполнено(ИндексПодразделения) Тогда

НомерНаПечать = НомерНаПечать + "/" + ИндексПодразделения;

КонецЕсли;

КонецЕсли;

Возврат НомерНаПечать;

КонецФункции

В ней нас интересует строка

НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер, Ложь, УдалитьПользовательскийПрефикс);

Она отвечает за формирование номера и вызывает функцию, описанную выше. Второй параметр этой функции нужно заменить на Истина.

Окончательный вид функции:

Функция НомерСчетаФактурыНаПечать(Номер, ИндексПодразделения, УдалитьПользовательскийПрефикс = Ложь)

НомерНаПечать = "";

Если Номер <> Неопределено Тогда

НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер, Истина, УдалитьПользовательскийПрефикс); ПозицияРазделителя = СтрНайти(НомерНаПечать, "-");
Префикс = Лев(НомерНаПечать, ПозицияРазделителя);
НомерБезПрефикса = Сред(НомерНаПечать, ПозицияРазделителя + 1);

Если Лев(НомерБезПрефикса, 1) = "И" Тогда

НомерНаПечать = Префикс + Сред(НомерБезПрефикса, 2);

КонецЕсли;

Если ЗначениеЗаполнено(ИндексПодразделения) Тогда

НомерНаПечать = НомерНаПечать + "/" + ИндексПодразделения;

КонецЕсли;

КонецЕсли;

Возврат НомерНаПечать;

КонецФункции

 

Вывод номера счета-фактуры без префикса в 1С:Управление торговлей 11: 4 комментария

  1. Олег

    Ввёл все изменения в полном соответствии с материалом на сайте. Изменений не увидел. Остался префикс на выводимых на печать счетах-фактурах. Смущает верхняя строка в параметрах «Функции НомерСчетаФактурыНаПечать» Указан параметр «УдалитьПользовательскийПрефикс = Ложь)» . Всё ли верно?
    Спасибо. С уважением Фёдоров О.А.

    1. Нестандартные решения в 1С Автор записи

      Насчет параметров в заголовке функции — все верно. Это значение (ЛОЖЬ) устанавливается тогда, когда в функцию вообще не был передан этот параметр. Если же в функцию пришло какое-то значение, то используется оно.

      Почему вам не помог описанный способ сказать трудно. Если хотите, наши специалисты могут помочь. Обратитесь по адресу info@chel1c.ru

  2. Игорь

    Что означает параметр УдалитьПользовательскийПрефикс? Есть префикс базы, есть префикс оргнаизации/филиала. А что такое пользовательский префикс и откуда он берётся? Конф. БП3.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *