Как сделать нумерацию счетов-фактур по номеру...
-

Как сделать нумерацию счетов-фактур по номеру реализации

11
37258
26.10.2020 Максим Кригер

Содержание:

1.       Счет-фактура для реализации

2.       Работа с конфигуратором 1С 8.3 

 

1.    Счет-фактура для реализации


Нумерация счетов-фактур в 1С 8.3 происходит сквозным способом. Достаточно один раз не создать счет-фактуру для реализации, и нумерация счетов начнет отличаться. В этой статье рассказывается, как выровнять номера реализаций и нумерацию счетов-фактур через расширение конфигурации. Решение подойдет для любых конфигураций уровня 1С ПРОФ на базе 1С 8.3 (1С УТ 11, 1С БП 3.0, КА 2, ERP 2 и т.д.). 

 

2.    Работа с конфигуратором 1С 8.3

 

1) Переходим в конфигуратор 1С.


2) Открываем конфигурацию 1С 8.3, щелкнув по пиктограмме, указанной на картинке (отмечена стрелкой) или же через меню в 1с 8.3 Конфигурация → Открыть конфигурацию.

 

Работа с конфигуратором 1С 8.3


3) Далее нужно создать расширение.

3.1) Заходим в меню 1С 8.3 “Конфигурация”, далее – “Расширения конфигурации”.


конфигуратор 1С 8.3

 

3.2) В меню расширений конфигурации нужно добавить новое расширение. Имя, синоним и префикс можно задать на свое усмотрение.

 

расширения конфигурации 


3.3) Снимаем флаги “Безопасный режим” и “Защита от опасных действий”.

 

Безопасный режим 


4) Добавляем в созданное расширение документ “Счет-фактура выданный”. Для этого выделяем документ, кликаем правой кнопкой мыши и выбираем “Добавить в расширение”.

 

Защита от опасных действий


4.1) Откроется список созданных расширений конфигурации. Нужно выбрать требуемое расширение и нажать кнопку “Выбрать”.


 список созданных расширений


5) Добавляем в созданное расширение реквизит “ДокументОснование” по аналогии с п.4.

 

ДокументОснование 


6) Открываем модуль объекта документа “Счет-фактура выданный” в нашем расширении. Для этого нажимаем на документ правой кнопкой мыши, выбираем “Открыть модуль объекта”.

 

Счет-фактура выданный       

 

7) Вставляем в модуль объекта следующий код:


&После("ПередЗаписью")

Процедура Расш1_ПередЗаписью (Отказ, РежимЗаписи, РежимПроведения)

            Если НЕ ЗначениеЗаполнено(Ссылка) Тогда

                        Номер = ДокументОснование.Номер;

            КонецЕсли;

КонецПроцедуры

        
Разберем данный код.

 

1) В строке кода “Процедура Расш1_ПередЗаписью (Отказ, РежимЗаписи, РежимПроведения)” Расш1 – это префикс вашего расширения, его необходимо заменить на тот префикс, который вы указывали при создании расширения(п.3.2).

 

2) В коде “Если НЕ ЗначениеЗаполнено(Ссылка) Тогда

                        Номер = ДокументОснование.Номер;

            КонецЕсли;” проверяется условие: если документ не записан в базу данных (ссылка на него не заполнена), то номер счет-фактуры берем из документа реализации (ДокументОснование.Номер).

 

Аналогично в этой процедуре можно создать любое другое условие нумерации счетов-фактур.

 

Осталось только обновить конфигурацию 1С 8.3. Для этого нужно нажать на соответствующую пиктограмму.

 

 модуль объекта документа

 

Проверяем результат:

 

пример документа Счет-фактура выданный


Видим, что номер счет-фактуры совпадает с номером реализации в 1С 8.3. Задача решена!

 

Специалист компании «Кодерлайн»

Максим Кригер

 

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

0
Сергей
Спасибо, всё очень подробно!
Имя Цитировать 0
0
Администратор
Здравствуйте! Сергей, спасибо за Ваш комментарий!
Имя Цитировать 0
0
Надежда
Самое огромное Вам спасибо!!! Глобальную проблему прям помогли решить)
Имя Цитировать 0
0
Администратор
Здравствуйте! Спасибо, нам приятно!)
Имя Цитировать 0
0
Александр
Добрый день!
А если была выдана СФ на основании корректировки реализации или на аванс при сквозной нумерации, как тогда выровнять номера по соответствию СФ и Акта реализации.
Имя Цитировать 0
0
Guest
Добрый день! Все получается, спасибо! Но в печатной фоме все равно порядковый номер пишется и в книге продаж тоже. Как исправить? Может я что то не доделала?
Имя Цитировать 0
0
Guest
не будет работать. При создании корректировочной реализации будет номер взят из нее в счет фактуру. А если номер коррек. реализации совпадет с РТиУ, то будет ошибка, что номер счет фактуры не уникальный. Т.е. должен быть один нумератор
Имя Цитировать 0
0
Almi
При создании корректировочной реализации однозначно работать не будет, но если уж делать, то как минимум нужно сделать так:
Код
Если Не Отказ 
   и ЭтоНовый()
   и ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
   
   УстановитьПривилегированныйРежим(Истина);
   
   ЭтотОбъект.Номер = ДокументОснование.Номер; 
   УстановитьПредставлениеНомера();
   
   Запрос = Новый Запрос;  
   Запрос.УстановитьПараметр("Дата",  ЭтотОбъект.Дата);
   Запрос.УстановитьПараметр("Номер", ЭтотОбъект.Номер);
   Запрос.Текст = 
      "ВЫБРАТЬ ПЕРВЫЕ 1
      |   СчетФактураВыданный.Ссылка КАК Ссылка
      |ИЗ
      |   Документ.СчетФактураВыданный КАК СчетФактураВыданный
      |ГДЕ
      |   СчетФактураВыданный.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ГОД) И КОНЕЦПЕРИОДА(&Дата, ГОД)
      |   И СчетФактураВыданный.Номер = &Номер";
   
   РезультатЗапроса = Запрос.Выполнить();
   Выборка = РезультатЗапроса.Выбрать();
   Пока Выборка.Следующий() Цикл
      Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
         НСтр("ru = 'Номер не уникален, уже существует счет-фактура: %1'"),
         Выборка.Ссылка);
      ОбщегоНазначения.СообщитьПользователю(
         Текст,
         ЭтотОбъект,
         ,
         ,
         Отказ);
   КонецЦикла;
   
КонецЕсли;


не благодарите )
Имя Цитировать 0
0
Анатолий Левченко
Цитата
Guest пишет:
Добрый день! Все получается, спасибо! Но в печатной фоме все равно порядковый номер пишется и в книге продаж тоже. Как исправить? Может я что то не доделала?
Думаю, что это всего лишь пример для демонстрации возможностей, а не продуктовое решение ))
А для Вас подскажу. Должно быть вот так (Это для БП3.0):

Номер = ДокументОснование.Номер;
ПредставлениеНомера = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер, Истина, Истина);


Тогда везде и короткий номер будет коректным.
Имя Цитировать 0
0
Станислав
Цитата
Almi пишет:
При создании корректировочной реализации однозначно работать не будет, но если уж делать, то как минимум нужно сделать так:
Код
 Если Не Отказ 
   и ЭтоНовый()
   и ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
   
   УстановитьПривилегированныйРежим(Истина);
   
   ЭтотОбъект.Номер = ДокументОснование.Номер; 
   УстановитьПредставлениеНомера();
   
   Запрос = Новый Запрос;  
   Запрос.УстановитьПараметр("Дата",  ЭтотОбъект.Дата);
   Запрос.УстановитьПараметр("Номер", ЭтотОбъект.Номер);
   Запрос.Текст = 
      "ВЫБРАТЬ ПЕРВЫЕ 1
      |   СчетФактураВыданный.Ссылка КАК Ссылка
      |ИЗ
      |   Документ.СчетФактураВыданный КАК СчетФактураВыданный
      |ГДЕ
      |   СчетФактураВыданный.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ГОД) И КОНЕЦПЕРИОДА(&Дата, ГОД)
      |   И СчетФактураВыданный.Номер = &Номер";
   
   РезультатЗапроса = Запрос.Выполнить();
   Выборка = РезультатЗапроса.Выбрать();
   Пока Выборка.Следующий() Цикл
      Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
         НСтр("ru = 'Номер не уникален, уже существует счет-фактура: %1'"),
         Выборка.Ссылка);
      ОбщегоНазначения.СообщитьПользователю(
         Текст,
         ЭтотОбъект,
         ,
         ,
         Отказ);
   КонецЦикла;
   
КонецЕсли;
 


не благодарите )
Как часто бывает, читать комментарии не менее интересно чем сама статья.

Все хорошо, только пару замечаний:
1. При поиске надо искать не номер, а Представление номера.
2. В запросе получать все необходимые данные (текстовые) для вывода сообщения.
3. Непонятно зачем привилегированный режим. Разве что РЛС включен.
4. При изменении номера РТиУ должен же меняться номер СФ?! Это надо проговорить с бухгалтером.
Имя Цитировать 0
Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.