Как нумеровать счета-фактуры в течение дня и для чего это нужно

28.05.15

Разработка - Механизмы типовых конфигураций

В материале описывается, что нужно сделать в конфигурации, чтобы автоматическая нумерация документов выполнялась с применением префикса, включающего в себя дату выставления документа.
Приведен пример нумерации «Выданного счета-фактуры» в пределах дня для типовой конфигурации «Бухгалтерия предприятия», версии 2.0.

Когда в организацию-посредника информация по точным датам отгрузки приходит с разными сроками задержки, а покупателям накладные со счетами-фактурами надо выставлять в момент совершения этой самой отгрузки, только уже «задним числом», то говорить о последовательной нумерации документов совсем не приходится.

Перейти к сути...

Справедливости ради надо отметить, что согласно пп. 1 п. 5 ст. 169 НК РФ счет-фактура должна иметь порядковый номер, который указывается в строке 1. Если опустить различные уточнения по поводу дробей и признаков аванса, больше никаких требований нет. Более того, ошибки, не препятствующие идентификации продавца, покупателя, наименования товаров (работ, услуг), их стоимости, а также налоговой ставки и суммы налога, предъявленной покупателю, не являются основанием для отказа в принятии к вычету сумм налога (абз. 2 п. 2 той же статьи).

И зачем так серьезно относиться к нумерации этих документов? Читай тут: спокойный сон дороже.

Этот материал, для тех, кто во всём хочет навести порядок.

Если организация может позволить себе, в случае понимания или лояльного отношения со стороны покупателей, выставлять первичные документы с некоторой допустимой задержкой, то нумерацию счетов-фактур можно восстанавливать последовательно разными методами, например, вручную, дополнительными обработками, коих много на просторах сайта или сразу создавать документы после получения всей необходимой информации.

Но бывают случаи, когда счета-фактуры надо выставлять сразу, при получении информации. В таких ситуациях может помочь нумерация документов последовательно в течение дня. То есть в номер документа добавляется признак даты выставления, а дальше нумерация идет последовательно с этим признаком (не забудьте внести эти правила в учетную политику).

Для таких случаев важна точность полученной информации и не особенно важна последовательность: внутри дня номера все равно будут последовательны (главное чтобы день не поменялся!).

Нумеровать документы в 1С таким образом можно вручную, специальными обработками (например, такой) или исправить конфигурацию, чтобы нумерация ставилась автоматически. Плюсы и минусы каждого варианта считать Вам, поговорим об автоматике.

Итак, алгоритм достаточно прост, надо только формировать более сложный префикс для нужных документов и все.

Возьмем за основу конфигурацию «Бухгалтерия предприятия 2.0»,

Документы будем нумеровать с префиксом «ПППГГММДД», где

  • ППП – основной префикс, строящийся по правилам типовой конфигурации,
  • ГГ – две последние цифры года выставления документа,
  • ММ – две цифры месяца выставления,
  • ДД – две цифры дня в месяце из даты документа.

Оставшееся от полной длины номера количество символов – это длина номера документа внутри дня (например, если общая длина номера документа – 12 символов, а наш префикс использует 9, тогда максимальный номер счета-фактуры за день – 999).

Ограничимся одним только документом «Счет-фактура выданный».

Примечание:

  • В приведенном примере используется объект конфигурации «Нумератор». Вообще, этот объект применяют, когда надо получить сквозную нумерацию для разных типов документов (в нашем случае при внедрении их было три). Если использовать только один тип документа, то пункты 1.2, 2 и 3 можно пропустить.
  • Если необходимо использовать другие документы, которые должны нумероваться в течение дня вместе со счетами-фактурами в сквозном порядке (например, существовавший когда-то в конфигурации документ «КорректировочныйСчетФактураВыданный»), тогда для них нужно выполнить шаги с номерами 1.2, 3, 6, 7.1.
  • Если конфигурация не находится на поддержке (полностью своя), то нет надобности в пункте 1.
  1. Сначала нам необходимо настроить правила поддержки конфигурации и некоторых объектов в значение «Объект редактируется с сохранением поддержки» (без подчиненных объектов). См. Меню-Конфигурация-Поддержка-НастройкаПоддержки, правая кнопка мыши на нужном объекте. Это будут такие объекты, как
    1. Сама конфигурация (мы будем создавать новые объекты),
    2. «Документ.СчетФактуруВыданный» (будем править Нумератор),
    3. «Событие.ПриУстановкеНовогоНомераДокумента» из ветки «Общие.Подписки на события» (будем убирать «СчетФактуруВыданный» из стандартного метода нумерации).

  2. Создадим новый нумератор для нашего случая с именем «СчетаФактурыВыданные». Внимание! Длина номера в текущей конфигурации  БУ 2.0 равна 12! Пусть не вводит в заблуждение число 11 с картинки (это было сделано давно, когда длина номера для документов была такой и в нашей конфигурации она остается такой до сих пор).

  3. У объекта типа «Документ.СчетФактураВыданный» установим свойство «Нумератор» в значение созданного в п.2 нумератора «СчетаФактурыВыданные».

  4. Создадим ОбщийМодуль с именем «ЭтоДопОбработчики».

  5. Вставим в этот модуль процедуру, которая будет следующего содержания:
    // Используется в Событии ПриУстановкеНовогоНомера 
    // для документа СчетФактураВыданный 
    Процедура  ПриУстановкеНовогоНомераДокументаСчетФактураВыданныйПриУстановкеНовогоНомера(Источник, СтандартнаяОбработка, Префикс) Экспорт
    
          ОбщегоНазначения.ДобавитьПрефиксОрганизации(Источник, Префикс);
    
          ОбщегоНазначения.ДобавитьПрефиксУзла(Префикс);
    
          Если ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.СчетФактураВыданный") 
             И Источник.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс Тогда 
    
               Префикс = Префикс + "А"; 
          КонецЕсли; 
    
          Префикс = Лев(Префикс + "0000", 3) + Формат(Источник.Дата, "ДФ=""ггММдд"""); 
    
    КонецПроцедуры
  6. У объекта «Событие.ПриУстановкеНовогоНомераДокумента» из свойства «Источник» уберем «Документ.СчетФактураВыданный».
  7. Создадим новый объект «Событие. ПриУстановкеНовогоНомераДокументаСчетФактураВыданный», отметим
    1. в «Источнике»: «Документ.СчетФактураВыданный»,
    2. в «Обработчике»: созданную нами процедуру на шаге 5 «ЭтоДопОбработчики.ПриУстановкеНовогоНомераДокументаСчетФактураВыданныйПриУстановкеНовогоНомера».

Всё!

 

Процедура внедрения происходила очень давно, так что в случае обнаружения неточностей, "ляпов" или грубых ошибок, сообщите, пожалуйста. Поправлю.

Спасибо за внимание.

нумерация счет-фактура префикс методика

См. также

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Расчет себестоимости в типовых конфигурациях 1С – для многих «черный ящик», работающий по жестко зашитым в него алгоритмам. Реализация этого «черного ящика» может меняться в зависимости от конкретной конфигурации – УПП, БП 3.0, ERP. Но принцип работы везде одинаковый. Расскажем о том, как устроен расчет себестоимости, как его дорабатывать, и какие методы могут быть эффективны и без доработок.

27.12.2024    10945    Begemoth80    32    

83

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    2322    PROSTO-1C    0    

20

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    2431    Vidz    0    

12

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    1385    olja-ljaaa    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. @Sonya 27 29.05.15 16:05 Сейчас в теме
Надобность в такой нумерации бывает, хотя очень удивило в свое время, реализовали подобным способом.
2. apatyukov 910 03.06.15 07:39 Сейчас в теме
ППП – основной префикс, строящийся по правилам типовой конфигурации,
ГГ – две последние цифры года выставления документа,
ММ – две цифры месяца выставления,
ДД – две цифры дня в месяце из даты документа.


ГГ-Излишний , так как контроль уникальности проходит в течении года.
3. rav_ 41 03.06.15 08:24 Сейчас в теме
(2) apatyukov, согласен.
Плюс в том, что по номеру можно легко восстановить дату :), вдруг кому надо.
4. apatyukov 910 03.06.15 08:54 Сейчас в теме
(3) дата и так указывается в первичке :)
5. Diego_Iv 34 04.06.15 09:59 Сейчас в теме
(4) apatyukov,
Наверно, чтобы быстро отследить случаи, когда дата с/ф изменялась задним числом.
6. Zhilyakovdr 147 04.06.15 14:15 Сейчас в теме
//Номер дня в году в номере документа
Префикс = Строка(ДеньГода(Источник.Дата));
Префикс = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(Префикс, 3, "0", "Слева");
УстановитьПрефиксИнформационнойБазыИОрганизации(Источник, СтандартнаяОбработка, Префикс);
7. rav_ 41 04.06.15 14:36 Сейчас в теме
(6) Zhilyakovdr, вполне можно и так.
Цель была указать подход к решению, а не описать шаблон префикса.

Если же обсуждать какой вариант шаблона лучше,
то уловить глазом ошибку в нумерации или поправить номер вручную внутри дня проще,
когда префикс именно такой, как в примере (или в посте 2), чем в Вашем случае,
но это только моё сугубо личное мнение.
8. mip128 18.06.15 11:52 Сейчас в теме
А что если поменяют дату у записанного документа? Или сначала запишут, потом ставят дату?
9. rav_ 41 19.06.15 06:39 Сейчас в теме
(8) mip128,
"А что если поменяют дату у записанного документа?"
В конфигурации БУ 2.0 (именно для нее делалась реализация) при изменении даты интерактивно срабатывает механизм:
Процедура ДатаПриИзменении(Элемент)
	
	РаботаСДиалогами.ПроверитьНомерДокумента(ЭтотОбъект, мТекущаяДатаДокумента);
	...
,
который проверяет периодичность документа и при выходе даты из этого периода очищает номер. Поскольку тут делать ничего не пришлось (все уже было), то этот момент описан не был.

Сразу скажу, что если записывать документ программно, то при заполненной дате и пустом номере
система построит последний правильно, а если программно заполнить номер чем-нибудь "левым", то номер "правильным" не станет. Программно можно делать многое, главное - делать правильно (иначе зачем)!

"Или сначала запишут, потом ставят дату?"
Насколько я понимаю, система сама контролирует наличие даты у документа при его записи (по крайней мере в типовых конфигурациях).

Если всё хочется контролировать самому, то можно заставить систему проверять наличие корректной даты и корректного номера документа в обработчике события модуля документа "ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)" или в подписке на событие "ПередЗаписью" с параметрами обработчика (Источник, Отказ, РежимЗаписи, РежимПроведения) и отказаться от выполняемого действия в случае ошибки. Тогда даже поиски программиста-багоискателя не приведут к ошибке.
Оставьте свое сообщение