Хитрая нумерация документов с периодичностью "в течение дня" (внесение изменений в типовой механизм)

21.12.11

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

Нумерация документов в виде гг/ММ/дд + НомерВТеченииДня

Задача:
нумеровать выбранные документы по шаблону: ППггММддNNN,

где ПП - префикс организации (если установлен),
гг - год двумя цифрами,
ММ - месяц двумя цифрами,
дд - день  двумя цифрами,
NNN - номер документа в течении дня (три знака) 

Реализовано на примере УТ 8.1 (10.3):

Использована, уже имеющаяся в УТ, подписка на событие "ПриУстановкеНовогоНомераДокумента". Данная подписка вызывает процедуру Общего модуля.ОбщегоНазначения:

Процедура ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера(Источник, СтандартнаяОбработка, Префикс) Экспорт
 ОбщегоНазначения.ДобавитьПрефиксОрганизации(Источник, Префикс);
 ОбщегоНазначения.ДобавитьПрефиксУзла(Префикс);
 ОбщегоНазначения.ДобавитьПрефиксДаты(Источник, Префикс);  // Добавлена
КонецПроцедуры

В которую, добавлена строка вызывающая процедуру ДобавитьПрефиксДаты(Источник, Префикс), добавленая в общий модуль:  

Процедура ДобавитьПрефиксДаты(ДокументОбъект, Префикс) Экспорт
 
 Если  ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.РеализацияТоваровУслуг")
  ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ПоступлениеТоваровУслуг")
  ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ВозвратТоваровОтПокупателя") Тогда
  
  Префикс = Префикс + "" + Формат(ДокументОбъект.Дата,"ДФ=""ггММдд""") ;
  
 КонецЕсли;
Конецпроцедуры

Также необходимо установить периодичность документа "в пределах дня". А в случае если документ не входил в типовую конфигурацию необходимо:

1. проверить, входит ли данный документ в число источников для данной подписки на событие
2. проверить, чтобы в свойствах формы документа значение свойства "Автонумерация" имело значение "Не использовать".

 

P.S. В случае если вам необходимо добавить "хитрую нумерацию" только для одного или двух документов, можно не использовать подписку на событие, а прописать в модуле конкретного документа процедуру ПриУстановкеНовогоНомераДокумента()  и непосредственно в ней описать весь алгоритм.

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С 8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

1 стартмани

20.03.2026    1056    InFlach    0    

6

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

Интервальные регистры в 1С:ЗУП 3.1 заменяют тяжелые срезы последних, ускоряя отчеты по кадровым данным через интервалы ДатаНачала–ДатаОкончания. Разбираем отличия, примеры кода, плюсы и способы синхронизации.

12.03.2026    2566    AlexeyPROSTO_1C    4    

20

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

Как в ЗУП работает механизм расстановки времени в регистрах сведений с помощью подписки на события?Рассматривается логика сдвигов для разных типов документов (прием, увольнение, отпуск) и дается инструкция по подключению нового регистра к этому механизму.

03.03.2026    1243    YA_1100893639    1    

7

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

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

11.08.2025    7652    user1988284    0    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DrAku1a 1795 22.12.11 02:59 Сейчас в теме
А если вдруг документов в течение дня будет больше 999 ???
5. tamaks 125 23.12.11 10:07 Сейчас в теме
(1) DrAku1a, Если количество документов одного типа в течении одного дня будет более 999, то могут быть несколько варианты решения.
Т.к. в типовой версии количество знаков отведенных под номер равно 11, то нужно либо изменить маску (например "ППггММддNNN" заменить на "ПггММддNNN", отдав под префикс организации один символ), либо увеличить количество символов для номера (например вместо 11 указать 12).
2. gutentag 253 22.12.11 11:17 Сейчас в теме
Интерсно. Спасибо!
3. Yashazz 4917 22.12.11 18:36 Сейчас в теме
*почти trollface
А перенумератор для этого дела есть, если вдруг понадобится?
6. tamaks 125 23.12.11 10:14 Сейчас в теме
(3) Yashazz, Как полагаю такой механизм нумерации может потребоваться либо для какой-либо новой конфигурации, либо (если конфигурации уже используется и по ней есть документы) такой учет должен быть введен например с нового отчетного периода, например с нового года, что должно быть отражено главным бухгалтером в учетной политике фирмы. При таких условиях, возникновение вопросов у налоговых органов, будет сведено к минимуму. В связи с этим "перенумератор" мне не требовался.
13. andre solovij 27.06.13 14:07 Сейчас в теме
Добрый День!!!А не подскажите, как в этом месте Вашего программного кода сделать так, что можно было менять нумерации и по подразделениям
Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.РеализацияТоваровУслуг")
ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ПоступлениеТоваровУслуг")
ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ВозвратТоваровОтПокупателя") @И ПодразделенияНайтиПоКоду(000000006);@

Тогда
4. xaker1C 23.12.11 05:35 Сейчас в теме
7. ir_en 27.12.11 17:42 Сейчас в теме
Огромное спасибо, ваша публикация дала понимание, как мне наконец-то сделать в ЗУП нумерацию с разными постфиксами для кадровых документов с разными сроками хранения.
8. IgoriKr 28.12.11 17:57 Сейчас в теме
Данный механизм нумерации решили принять при регистрации платежей с 6-ти филиалов, очень удобно, спасибо
9. sc_digital 2 05.02.12 19:35 Сейчас в теме
спасибо за материал, как раз не могла нумерацию реализации с префиксом год/месяц/номер сделать! счет-фактуру сделала, разобралась, а реализацию не могла никак. Спасибо!
10. mamadakki 16.06.12 00:21 Сейчас в теме
скажите пожалуйста если я внесу изменения в типовую конфигурацию столкнусь ли я с трудностями в ее обновлении?
11. ik_80 14.11.12 22:46 Сейчас в теме
да, столкнетесь. раз вы внесли изменения в конфигуратор, то у вас уже не типовая программа
12. Bell 37 26.01.13 01:39 Сейчас в теме
Похожий алгоритм использую почти 8 лет. Разница, только в том, что при вводе нового документа заполняются пропущенные (удаленные) номера. А если их нет, то пишется новый (старший) номер.
Для отправки сообщения требуется регистрация/авторизация