Хитрая нумерация документов в 1С 8.2

08.02.13

Задачи пользователя - Перенумераторы

У многих встает вопрос а как бы ввести документ "задним числом", но чтобы с номерами все было красиво. Решение достаточно очевидное + есть его реализация.

Скачать исходный код

Наименование Файл Версия Размер
ДобавитьПрефиксОрганизации.txt
.txt 2,14Kb
199
.txt 2,14Kb 199 Скачать

Небольшая заметочка на заданную тему. В моем конкретном случае документы вводились много и часто "задним числом". Для решения проблеммы выработали следующие правила нумерации:

(Префикс)(Месяц)(День)/(Порядковый номер внутри дня)

Все это хозяйство прописывается в учетной политике, чтобы потом не было ни у кого претензий.

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

Буду рад если это кому то поможет. 

На примере БП 2.0  подписку на событие "ПриУстановкеНовогоНомера" отрабатывет следующая процедура  

Процедура ПриУстановкеНовогоНомераДокумента(Источник, СтандартнаяОбработка, Префикс) Экспорт

ОбщегоНазначения.ДобавитьПрефиксОрганизации(Источник, Префикс);

ОбщегоНазначения.ДобавитьПрефиксУзла(Префикс); 

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

Нам нужно добавить немного кода в процедуру ДобавитьПрефиксОрганизации.  Для ленивых код в файле на примере Бухгалтерия Предприятия 2.0. 

 P.S. Внимание! Решение не полностью универсальное и верно только при создании новых документов. При изменении даты ранее сохраненного  документа с номером ничего не произойдет - он останется старым. Решения пути два - либо пользователь сам следит за теми документами в которых меняется дата, либо нужно создавать подписку на событие "ПередЗаписью" и в ней контролировать соответствие префикса номера и даты документа. 

P.P.S. Механизм нумерации в БП 3 изменился и приведенный код работать там не будет.

Пишу это, чтобы потом ни у кого не было претензий и недоразумений, как правильно мне указали товарищи в комментариях.

См. также

Нумерация документов с префиксом по дате (настройка префикса документов)

Перенумераторы Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Предприятие 8. Транспортная логистика, экспедирование и управление автотранспортом КОРП 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

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

4500 руб.

11.02.2019    52239    415    190    

53

Префиксация номеров документов в 1С:УНФ/БП/УТ 11 (структурное подразделение: склад/магазин/подразделение)

Перенумераторы Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение для отображения в номере документа структурной единицы (склад/магазин/подразделение), к которой относится данный документ. Визуально по номеру документа легко понять, к какому складу/магазину/подразделению относится документ. Для УНФ (Управление нашей фирмой), для БП (бухгалтерия предприятия), для УТ 11(управление торговлей) Пользователь самостоятельно выбирает, в каких документах и по каким полям префикс нужно добавлять. Нумерация документов не участвующих в префиксации не затрагивается!

6000 руб.

18.05.2022    9734    22    0    

17

Сбилась нумерация счетов-фактур выданных? Решение

Перенумераторы Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Абонемент ($m)

Иногда при записи документа выходит ошибка: "Значение поля "Номер" неуникально". Это происходит, если каким-то образом корректировался номер документа. Если для других документов можно просто перенумеровать документы за период, то для счетов-фактур выданных, которые уже "ушли" к контрагентам, номер мы менять не можем. Поэтому было разработано данное расширение, которое помогает решить проблему и запустить автонумерацию.

2 стартмани

13.03.2024    346    1    Klinov    0    

1

Сквозная нумерация для всех документов

Перенумераторы Платформа 1С v8.3 Конфигурации 1cv8 Молдова Абонемент ($m)

Начальство захотело уникальный номера документов в рамках одного года вне зависимости от вида? Вызывайте психиатров.

1 стартмани

26.02.2024    394    0    Teut_Vlad    2    

1

Номер на печать -> в системный номер для счетов-фактур выданных. БП 3.0

Перенумераторы Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Простая внешняя обработка для перезаписи системного номера счета-фактуры выданного в БП 3.0.

16.01.2024    879    21    RustIG    0    

6

Обработка номеров (кодов) объектов

Перенумераторы Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

15.01.2024    260    5    mrsmrv    0    

1

Уникальный номер документа на 100 лет

Перенумераторы Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

Начало нового года это то время, когда можно реализовать задачу по изменению нумерации документов! Задача в 1С:ERP по созданию уникальности номера документа была реализована через использование первых двух знаков в префиксе документа.

5 стартмани

06.01.2024    6416    2    user739527    13    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Некто A. Petti 64 06.02.13 03:44 Сейчас в теме
Это уже такое бородатое ноу-хау. Еще помнится году в 1999 такое на 7.5 клиенту делал.
Только слэш я бы не ставил. Не красиво :) Лучше дефис после префикса.
Yuri1988; bforce; KonstB; charushkin; +4
2. KonstB 180 06.02.13 09:13 Сейчас в теме
(1) Некто A. Petti, да уж... старье
+
3. serg_info 116 06.02.13 09:45 Сейчас в теме
(1) (2) Полностью с Вами согласен. И всем это известно, кто давно в автоматизации. Тут показано как просто это делается в 1С 8.2 типовых (ну не было в 7-ке механизма событий без использования внешних компонент). При этом 1С сама занимается автонумерацией внутри дня. Да и я знаю что решение не полностью универсальное. Ну опять же очевидное, при изменении даты документа с номером ничего не произойдет - он останется старым. Наверное можно что-то еще накопать из менее очевидного.

Статья была призвана показать где и как такой тип нумерации делается.
+
21. @Sonya 27 13.11.13 08:18 Сейчас в теме
(3) а в нумерации нужных документов не нужно установить периодичность День? Как она сама будет нумеровать в пределах дня? извините, если глупый вопрос.
+
22. @Sonya 27 13.11.13 08:46 Сейчас в теме
(21) Поняла, внутри префикса идет уникальная нумерация)
+
19. ValeryZ 29 13.02.13 12:15 Сейчас в теме
(1) А я вот формат делал такой, еще на семерках:
ПФ-ГГММДД.nnn

ПФ- префикс фирмы,
ГГММДД - год+месяц+число
.nnn - нумер с ведущими нулями.

Вполне так классно было, сразу ясно, когда выписано: КГ-091204.027

Даже налоговые документы так оформляли, пока ГНИ не указала, что номера должны идти по ихним правилам :(
+
4. ditiatko 39 06.02.13 14:17 Сейчас в теме
А как решается изменение дня в уже записанном документе?
+
10. Totoro 568 07.02.13 15:21 Сейчас в теме
Без ответа на (4) это только часть механизма, который может привести к плачевным последствиям. Особенно если дату поменять на другой год ...
Да и в новых типовых на БСП номер по другому формируется.
+
11. serg_info 116 07.02.13 18:23 Сейчас в теме
(10) Я не говорил, что задача решена целиком. В (3) я сам написал, что есть такая проблема. Но красивого и короткого решения тут не получится. Навскидку, чтобы не корячить много кода и форм документов нужно делать подписку на событие "ПриЗаписи" и в нем проверять соответствие префикса номера и даты документа. И тут возникнет дилема, а отправлен ли данный документ покупателю и можно ли менять его номер вообще....
Тут скорее вопрос не в программировании был, а в том чтобы подсказать как можно организовать нумерацию документов, чтобы не было проблемм с вводом документов задним числом не более того.
Totoro; +1
13. Totoro 568 07.02.13 20:54 Сейчас в теме
(11) Поэтому и нужно предупредить читателей в статье (а некоторые пока не очень опытны в программировании), что может возникнуть такая проблема, пусть и не описывая конкретное решении (через подписку или через изменение формы).
+
12. serg_info 116 07.02.13 18:26 Сейчас в теме
(10) Да, видимо, пора уже глянуть на БП 3. Уже и формирование номеров по другому сделали. Посмотрю что да как там и отпишусь как это реализовать там. Спасиб за информацию.
+
5. software1c 5 06.02.13 14:37 Сейчас в теме
Ничего в этой нумерации хитрого нет.... Накладные - да, Счет-фактуры и Кассовые ордеры - НЕТ!
+
6. dryms 249 06.02.13 14:49 Сейчас в теме
У нас так договоры нумеруются(они документами оформляются). Но может кому-нибудь такая информация пригодится поэтому +
+
7. friday1 06.02.13 19:44 Сейчас в теме
а с фига ли извините за вопрос счета фактуры так не могут нумероваться?))
и второе, почему то у меня в 3.0 не заходит в эту подписку на событие, хоть прибей ее(
+
16. BabySG 10.02.13 14:41 Сейчас в теме
(7) friday1, счет-фактуры так не могут нумероваться по причине постановления 1137, где указано, что располагается за символом "/"
+
17. friday1 10.02.13 15:48 Сейчас в теме
(16) BabySG, ну про / это понятно, а я говорю про тирэ))
/ должны нумероватсья счета фактуры обособленнок, это то мы в курсе:)
автор, посмотри пожалуста на 3.0)
очень надо для себя:)
заранее благоадарен)
+
18. serg_info 116 12.02.13 12:13 Сейчас в теме
(17) В БП 3 нумерация происходит по следующей подписке на событие
ПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазыИОрганизации
Далее рассмотрим ее код
// Устанавливает префикс источника подписки в соответствии с префиксом информационной базы и префиксом организации.
// Источник подписки должен содержать
// обязательный реквизит шапки "Организация", тип: "СправочникСсылка.Организации"
//
// Параметры:
//  Источник - Источник события подписки.
//             Любой объект из множества [Справочник, Документ, План видов характеристик, Бизнес процесс, Задача]
// СтандартнаяОбработка - Булево - флаг стандартной обработки подписки
// Префикс - Строка - префикс объекта, который нужно изменить
//
Процедура УстановитьПрефиксИнформационнойБазыИОрганизации(Источник, СтандартнаяОбработка, Префикс) Экспорт
	
	УстановитьПрефикс(Источник, Префикс, Истина, Истина);
	
КонецПроцедуры
Показать


Идем в процедуру УстановитьПрефикс....
И там дописываем для нужных организаций и типов документов расширенную префиксацию вида ммгг

Как-то так. Лепить еще один файл для скачки лениво.
+
20. bluntschi 27.03.13 06:08 Сейчас в теме
(16) BabySG, а как можно подпилить тогда это для счет фактур выданных?
+
8. Чертова Кошка 06.02.13 22:19 Сейчас в теме
в ноябре пропустила 1 сч-ф, корячилась в рукопашную. Вашу бы информацию мне тогда....
+
9. gosizo 38 07.02.13 13:05 Сейчас в теме
возьмем на заметку
+
14. internetname 08.02.13 12:48 Сейчас в теме
Может пригодиться
+
15. Borisych 503 09.02.13 03:36 Сейчас в теме
// Проверим номер документа на сответствие принятой нумерации (вида АТРmmdd/xxx)
// Если номер не соответствует - определим следующий в пределах дня и используем его
   Если Лев(Номер,СтрДлина(Организация.Префикс)+5) <> НомерДокументаПоДате(Дата) Тогда
   		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
		               |	ПОДСТРОКА(СчетФактураВыданный.Номер, 9, 3) КАК Индекс,
		               |	СчетФактураВыданный.Дата КАК ДатаПоследнегоДокумента
		               |ИЗ
		               |	Документ.СчетФактураВыданный КАК СчетФактураВыданный
		               |ГДЕ
		               |	СчетФактураВыданный.Дата >= &ДатаНачала
		               |	И СчетФактураВыданный.Дата <= &ДатаОкончания
		               |	И СчетФактураВыданный.Организация = &Организация
		               |	И СчетФактураВыданный.Ссылка <> &Ссылка
		               |	И ПОДСТРОКА(СчетФактураВыданный.Номер, &ИндексНачалаНомера, 5) = &MMdd
		               |
		               |УПОРЯДОЧИТЬ ПО
		               |	Индекс УБЫВ";
		
		Запрос.УстановитьПараметр("ДатаНачала", 		НачалоДня(Дата));
		Запрос.УстановитьПараметр("ДатаОкончания", 		КонецДня(Дата));
		Запрос.УстановитьПараметр("Организация", 		Организация);
		Запрос.УстановитьПараметр("Ссылка", 			Ссылка);
		Запрос.УстановитьПараметр("ИндексНачалаНомера", СтрДлина(Организация.Префикс)+1);
		Запрос.УстановитьПараметр("MMdd", 				Прав(НомерДокументаПоДате(Дата),5));

		Результат = Запрос.Выполнить();
		Если Результат.Пустой() Тогда
			Номер = НомерДокументаПоДате(Дата, 1);
		Иначе 
			Выборка = Результат.Выбрать();
			Выборка.Следующий();
			Номер = НомерДокументаПоДате(Дата, Число(Выборка.Индекс)+1);
			//Если Выборка.ДатаПоследнегоДокумента+1 <= КонецДня(Дата)  Тогда
			//	Дата = Выборка.ДатаПоследнегоДокумента+1;
			//КонецЕсли;
		КонецЕсли;
	КонецЕсли;
// rarus gand 2009.03.13 8:50:37 }

// rarus gand 2009.03.03 14:12:23 {
// Возвращаемое значение:
// 1. Если указан ИнкрементДня, то номер документа вида: "ММДД/ххх"
// 2. Если не указан, то 	   префикс номера документа: "ММДД/"
//
Функция НомерДокументаПоДате(ДатаДокумента, знач ИнкрементДня = 0)
	Если ИнкрементДня = 0 тогда
		Возврат Организация.Префикс + Формат(Месяц(ДатаДокумента), "ЧЦ=2; ЧВН=") + Формат(День(ДатаДокумента), "ЧЦ=2; ЧВН=") + "/";
	Иначе 
		Возврат Организация.Префикс + Формат(Месяц(ДатаДокумента), "ЧЦ=2; ЧВН=") + Формат(День(ДатаДокумента), "ЧЦ=2; ЧВН=") + "/" + Формат(ИнкрементДня, "ЧЦ=3; ЧВН=");
	КонецЕсли;
КонецФункции // НомерДокПоДате()
// rarus gand 2009.03.03 14:12:33 }

Показать


давно очень - делали такой вариант
Lacrimosa0000; +1
23. AAZ 5 17.07.14 13:41 Сейчас в теме
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
СтандартнаяОбработка =Ложь;
ОбщегоНазначения.ДобавитьПрефиксОрганизации(ЭтотОбъект, Префикс);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| СчетФактураВыданный.Ссылка,
| СчетФактураВыданный.Номер КАК Номер,
| СчетФактураВыданный.Дата
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Дата МЕЖДУ &Дата1 И &Дата2
| И СчетФактураВыданный.Организация = &Организация
|
|УПОРЯДОЧИТЬ ПО
| Номер УБЫВ";
Запрос.УстановитьПараметр("Дата1", НачалоДня(ЭтотОбъект.Дата)); //Дата
Запрос.УстановитьПараметр("Дата2", КонецДня(ЭтотОбъект.Дата)); //Дата
Запрос.УстановитьПараметр("Организация", ЭтотОбъект.Организация); //Организации
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Порядковый=0;
Если РезультатЗапроса.Следующий() Тогда
Порядковый=Формат(Число(Прав(РезультатЗапроса.Номер,3))+1,"ЧЦ=3; ЧВН=");
Номер=Префикс+Формат(РезультатЗапроса.Дата,"ДФ=гг")+Формат(РезультатЗапроса.Дата,"ДФ=ММ")+Формат(РезультатЗапроса.Дата,"ДФ=дд")+"/"+Строка(Порядковый);
иначе
Номер=Префикс+Формат(ЭтотОбъект.Дата,"ДФ=гг")+Формат(ЭтотОбъект.Дата,"ДФ=ММ")+Формат(ЭтотОбъект.Дата,"ДФ=дд")+"/001";
КонецЕсли;
Если Исправление Тогда
Префикс = "И" + Префикс;
ИначеЕсли ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
ИЛИ ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда

Если Константы.ОтдельнаяНумерацияСчетовФактурНаАванс.Получить() Тогда
Префикс = "А" + Префикс;
КонецЕсли;

КонецЕсли;

ОбщегоНазначения.ДобавитьПрефиксУзла(Префикс);

КонецПроцедуры
+
24. Anyu-n 28 11.11.14 15:19 Сейчас в теме
Обожаю Инфостат, потому что здесь сидят очень умные и находчивые люди! Они доказывают, что любой бред руководителя можно исполнить! Воспользовалась вашей идеей для УТ 10.3! Все счастливы и довольны! Но новая проблема возникла.... нужно сделать такую же "хитрую" нумерацию, но НЕ СНИМАЯ С ПОДДЕРЖКИ конфу УТ 11.1 !!!!! Может есть у кого какие мысли? Думала привязать как-нибудь дополнительные реквизиты, но как.... может кнопку внешней обработки какой... но как вызывать непосредственно из документа перед записью.... короче ужас.... помогите полезной идейкой....
+
25. abdulaev_s 06.05.15 19:21 Сейчас в теме
Добрый день! Нужна ваша помощь по нумерации в 1С 8.3. Как с вами можно связаться?
+
Внимание! Тема сдана в архив