gifts2017

Автонумерация документов

Опубликовал Лейман Александр (aleksandr_leiman) в раздел Обработки - Обработка документов

Универсальная процедура автонумерации - решение, учитывающее ручные исправления номеров документов.

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Автонумерация документов.txt
.txt 4,62Kb
24.11.10
147
.txt 4,62Kb 147 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Владислав Чинючин (vcv) 24.11.10 08:33
Док.ВыбратьДокументы(НачалоНомера,КонецНомера);                        
Пока Док.ПолучитьДокумент()=1 Цикл
	ПредНомер=Число(Док.НомерДок);
	Прервать;
КонецЦикла;   
НовыйНомер=ПредНомер+1;
НомерДок=Формат(НовыйНомер,"Ч(0)"+ДлинаНомера+".0");
...Показать Скрыть

А как же стандартная нумерация 1С вида <Префикс><Номер>? Получается вместо одной типовой нумерации <Префикс><Номер> получаем другую <Номер><?><Субномер>?
И быстродействие определения номера документов с нумераторами под вопросом.
В цикле "Метаданные.Документ(Док.Вид()).Нумератор", когда можно было один раз закешировать в списке значений. Обращение к метаданным не самая быстрая операция.
Тридцатьтри обращения к "Метаданные.Документ(Конт.Вид())" и "Конт.ДатаДок" - однозначный незачет по стилю.
Переделаешь по уму (это касается первого замечания, все остальные просто небольшие придирки) - минус заберу обратно :)
2. Лейман Александр (aleksandr_leiman) 24.11.10 22:19
(1)
Благодарю за оперативный комментарий.

попытаюсь ответить.

Например, кадровик вводит приказы по предприятию.
№ 000001 прием на работу от 01.11.2010
№ 000002 кадровые изменеия от 05.11.2010
№ 000003 увольнение от 10.11.2010
и тут выясняется, что от 01.11.2010 нужен еще один приказ о приеме на работу
вводится приказ № 00002а от 01.11.2010 (нумерация же должна идти по-порядку!)
в итоге при вводе следующего приказа встроенная нумерация присваевает ему
и всем последующим № 00002а (нумератор сбивается)
при использовании указанной функции нумерация продолжается
(новому приказу присваивается № 000004 и т.д.)

Поскольку в бух учете префиксы не используются, то на этом исправления закончены.

Для РИБ и ТиС где префиксы будут, следует немного изменить функцию глоб модуля.
(см. скорректированный текст)
и следует иметь ввиду, что ссылка на функцию
НомерДок=ДатьНовыйНомер(Контекст);
в процедуре "Ввод нового" в форме документа должна располагаться после
"глЗаполнитьШапку" (для конф. ТиС)
в итоге данная функция работает вместо стандартной присвоения номера
с правильным заполнением префиксов (можно проверить)

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

Быстродействие обращения к объекту "Метаданные" здесь вполне приемлимое, поскольку цикл
здесь очень короткий и сразу прерывается.

Что касается стиля, согласен недочеты есть, буду работать



3. Владислав Чинючин (vcv) 25.11.10 08:15
попытаюсь ответить.
Например, кадровик вводит приказы по предприятию.
№ 000001 прием на работу от 01.11.2010
№ 000002 кадровые изменеия от 05.11.2010
№ 000003 увольнение от 10.11.2010

Особенности нумерации нужно было объяснить в описании. Или доработать, что бы можно было использовать типовую нумерацию с префиксами.
Поскольку в бух учете префиксы не используются, то на этом исправления закончены.

Ню-ню. А поскольку ты ни разу в жизни не видел вскрытого человека, сердца, печенки и прочей требухи не существует?
Для РИБ и ТиС где префиксы будут, следует немного изменить функцию глоб модуля

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

Это все должно быть в описании, а не в комментариях, и не приложенном файле.
Быстродействие обращения к объекту "Метаданные" здесь вполне приемлимое, поскольку цикл здесь очень короткий и сразу прерывается.

"Очень короткий" возможно в вашем конкретном случае. А при приличном документообороте (у меня вот порядка 1000 документов в день и мне еще далеко до чемпионов в этой номинации) цикл может оказаться совсем не маленький.
4. Яков Коган (Yashazz) 26.11.10 14:59
Без префиксов это не стоит ничего и мало кому нужно.

Э-эх, выложу я когда-нибудь свою подсистему нумерации...
5. Grigorj Smirnov (Grigorj) 16.09.11 14:41
Yashazz пишет:

Э-эх, выложу я когда-нибудь свою подсистему нумерации...


Не стоит откладывать благие намеренья...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа