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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

КонецЕсли;

КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

КонецЕсли;

КонецЕсли;

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

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

 

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники

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

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

один × 5 =