gifts2017

Перенумератор (Справочники, Документы+Нумераторы)

Опубликовал Евгений Григорьев (grigr) в раздел Обработки - Обработка документов

Универсальная перенумеровка объектов ИБ - Справочников и Документов

Универсальная перенумеровка объектов ИБ - v 1.7
Справочников (в том числе и подчиненных) и Документов (сквозная с учетом Нумератора)

Работает в любой конфе, где есть что перенумеровывать ;)
(где есть документы (и не важно какие там есть журналы) или справочники).

Обработка префиксов и ведущих нулей, справится с числовой и текстовой нумерацией.

------------------------------------------------------------------

Доработано в v 1.6 (от 10/09/09) - по Вашим просьбам

Отсортированы функции модуля, ко всем интерфейсным элементам добавлено описание, работа в транзакции.

Сделан отбор для документов по общему реквизиту, для подчиненных справочников по родителю.

------------------------------------------------------------------

Доработано в v 1.7 (от 14/09/09) - по Вашим просьбам

Исправлены ошибки

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

Наименование Файл Версия Размер Кол. Скачив.
Перенумеровка.ERT
.ERT 206,00Kb
25.08.14
882
.ERT 206,00Kb 882 Бесплатно

См. также

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

Комментарии

1. Евгений Григорьев (grigr) 30.08.09 15:34
Может и баян, но писалось под себя
использую давно в самых разнообразных случаях ;)
2. dummy 30.08.09 17:31
первая из стопиццоттыщ перенумераторов, которая позволяет отбирать документы по префиксу номера... ну или я просто не натыкался на такие.
3. Сергей (Che) Коцюра (CheBurator) 30.08.09 17:55
(2) а что, универсальная обработка подбора объектов - этого не позволяет? - не далее как в четверг перенумеровывал справочник, выбирая элементы принадлежащие ЦБ - по вхождению в номер префикса "ЦБ" - и заметьте! без программирования... - учите матчасть!
4. Евгений Григорьев (grigr) 31.08.09 06:13
(3) она слишком универсальная и не всегда подходит ;)
5. Александр Рытов (Арчибальд) 31.08.09 12:28
Боян же братия...
Мне понравилось:
1. Методичность автора в процессе разработки (набор комментариев)
2. Четкий дизайн.
6. Евгений Григорьев (grigr) 01.09.09 13:32
(5) тогда уж скорей "+"
---------------------
(3) универсальная не даст обработать по нумератору, подрезать номера, добавить нули и т.д.
---------------------
хочу заметить обработка работает в очень специфичных конфах в отличие от прочих: где нет документов или справочников, только общий журнал и т.п.
7. rasswet (rasswet) 02.09.09 10:47
тоже понравился код и дизайн. молодец)
8. Yulya Vlady (yulya_vlady) 02.09.09 11:13
Хорошая обработка! Быстро и без проблем решила мою проблему. Надо было перенумеровать документы разных видов с одним нумератором в ЗиК.
Спасибо! Очень вовремя!
9. a exeel (aexeel) 02.09.09 15:21
Если уж речь зашла об универсальности, то я бы сделал следующие доработки:
1. интерфейс — 3 закладки: подбор, данные, настройки;
2. данные должны выбираться запросом: на DBF разницы, конечно, нет, а вот на SQL (особенно на больших объемах) — существенная;
3. заключить изменения данных в транзакцию (одну или несколько, по настройкам);
4. в попытке/исключении учесть разделенный режим работы (ошибку записи из-за блокировок т.е.), либо проверку на монопольный режим при запуске;
5. не изменять номер/код, если он совпадает со вновь присвоенным;
6. расширить отбор документов общими реквизитами (например, выбирать по одной фирме).

Очень хотелось бы увидеть режим эмуляции и отчет на выходе, что на что изменилось.

Восторгов по поводу кода не разделяю. Структурированность не сильная. + Мое мнение — обработчики событий (формулы элементов диалога) должны быть отделены от базового функционала.
10. KereberoS (KereberoS) 02.09.09 21:02
Согласен с (9). Не скачивал, но по скриншотам вижу, что интерфейс перегружен. Я вообще не представляю, как можно пользоваться черным ящиком, не видя требуемых для перенумерации данных. Грамотно написанные обработчики событий делают прогу более универсальной и более стабильной
11. Евгений Григорьев (grigr) 03.09.09 05:32
еще добавлю обработка учитывает текстовый номер или числовой (многие другие на числовых спотыкаются, когда пытаются им префикс добавить)
-------------------------
(7)(8) и вам спасибо
-------------------------
(9)(10) вам тоже спасибо, но вы по моему просите совсем другую программу...
это простой перенумератор, делать его супер универсальным ради самой универсальности действительно не вижу большого смысла!
у меня была идея - разместить весь функционал на одной рабочей площадке.
перегружать программу уймой настроек, отборами, доп фильтрами (которые мне ни разу не понадобились), вкладками я не собираюсь.
(9.2) sql баз у меня к сожалению нет, соответственно переписывать не буду, к тому же перенумеровка не такая уж и частая процедура, и не такая уж и долгая разок можно и подождать
(9.3,5) вы правы транзакцию нужно сделать, а так же проверять на существование уже существующего кода/номера
(9.4) вы действительно запустите мою обработку на рабочей базе в раздельно режиме, не сделав копии??? вот это Доверие - Спасибо ;) (я бы сам не запустил)
(9.6) чем отбор по префиксу не устраивает?
(9.7) режим эмуляции делать не буду (делайте копию базы), а отчет на выходе вполне хорошая идея
(9.8.) "обработчики событий (формулы элементов диалога) должны быть отделены от базового функционала" - поясните пожалуйста, зачем?

(10) "не видя требуемых для перенумерации данных" - там есть окно где представлены все обрабатываемые данные, попользуйтесь и увидите
"Грамотно написанные обработчики событий делают прогу более универсальной и более стабильной" - вы же не скачивали, как вы оценили грамотность?
;)
12. a exeel (aexeel) 03.09.09 10:35
(11) >>sql баз у меня к сожалению нет, соответственно переписывать не буду
Тогда слово "универсальный" из описания я бы исключил)

>>вы действительно запустите мою обработку на рабочей базе в раздельно режиме, не сделав копии
Опять же "универсальность"… далеко не у всех есть возможность выгнать бухгалтеров на сколько-то часов из базы

>>…должны быть отделены от базового функционала" - поясните пожалуйста, зачем?
Про контекстонезависимость слышал? Я стараюсь придерживаться данных принципов. В v8, кстати, в т.ч. под это дело выделен модуль обработки.
13. Yackov . (Yackov) 03.09.09 16:51
Вот тебе 30й плюс..молодца!)))
14. Евгений Григорьев (grigr) 04.09.09 05:52
(13) спасибо. да уж, за неделю больше 30 "+" одной обработкой - очень не плохо
(12.11) не исключу, т.к. она в sql работать будет ;) как и во всех остальных
впрочем вы можете доработать под свои нужды
(12.12) вы собираетесь несколько сот тысяч объектов перенумеровывать, что бы на несколько часов ее загрузить??? опять же даже если так, все бухгалтера просто не смогут нормально работать!
(12.13) аааа понял. только тут ведь Один модуль. так и быть отсортирую функции обработчика от интерфейсных.
15. Евгений Григорьев (grigr) 04.09.09 05:54
Друзья. эта обработка - маленькая удобная тележка.
грузить ее функционалом самосвала с грузоподъемностью тележки я не хочу.
так что, что-то я добавлю, что-то нет... Всем Спасибо
16. Анна я (zemochka) 08.09.09 04:52
молодец. очень вовремя она мне подруку попала))
17. Евгений Григорьев (grigr) 10.09.09 11:56
доработано в v 1.6 (от 10/09/09) - по Вашим просьбам

отсортированы функции модуля, ко всем интерфейсным элементам добавлено описание, работа в транзакции
сделан отбор для документов по общему реквизиту, для подчиненых справочников по родителю
18. Евгений Григорьев (grigr) 10.09.09 11:58
скриншоты попозже обновлю (не так там много изменений)
19. Сергей (Che) Коцюра (CheBurator) 10.09.09 12:25
ндя... 90% процентов - делается с помощью штатной универсальной обработки. Из востребованного в универсальной обработке, по-моему, только работы с нумератором нет...
20. Евгений Григорьев (grigr) 10.09.09 14:37
(19) ну да - каждому свое... только почему-то ею не многие пользуются (или не хотят пользоваться) ;)
21. Сергей (Che) Коцюра (CheBurator) 10.09.09 14:40
Правильно, потому что при нормальной работе - всякую перенумерацию - прог только должен делать... у меня на старой работе и сейчас - такие задачи по оперативным документам - возникали ну настолько редко... что я даже ПЕРЕНУМЕРАТОРЫ НЕ ПИСАЛ!!!!
22. Артур Аюханов (artbear) 10.09.09 16:26
(21) Ага, я так ни разу перенумератор за свою жизнь не написал, все время чужими пользуюсь, правда, очень и очень редко, в основном, у новых клиентов :)
23. Евгений Григорьев (grigr) 10.09.09 16:41
(21,22) я на продажу делал ;)
а вот теперь со всем делюсь
24. Сергей (Che) Коцюра (CheBurator) 10.09.09 18:44
25. Евгений Мартыненков (JohnyDeath) 10.09.09 22:11
(21), (22) не уж-то на вашей работе расходнички задним числом не делают? ;)
26. Сергей (Che) Коцюра (CheBurator) 10.09.09 22:31
(25) неа.. не делают.. ;-) а вот наклдную перетащить вперед на 10 дней - это могут.. потому что блин типа Ипшник не может товар покупать в рассрочку при оплате налом... ;-)
27. Марита бух (Марита Х) 20.09.09 12:25
28. lefthander (lefthander) 22.09.09 17:24
+ Спасибо. То что нужно. :-)
29. Илья Курганников (host_kms) 28.09.09 03:38
ЗафиксироватьТранзакцию();
{D:\DOWNLOADS\PERENUMEROVKA.ERT(633)}: Ошибка при выполнении процедуры ЗафиксироватьТранзакцию.
Пытаюсь перенумеровать справочник "Номенклатура", 12000 элементов, длина кода 8, текстовый.
Где-то собака зарылась!
30. Евгений Григорьев (grigr) 28.09.09 15:01
(29) с транзакциями там фигово (это скорее всего на будущее), нужно алгоритм избавить от конструкции "Попытка Исключение", тогда долнжо будет нормально работать.
не включай транзакции и будет тебе счастье, но медленно ...
31. Вячеслав Ефимов (eslava) 23.05.10 14:41
У меня пишет ошибка открытия файла и подвешивает 7.7. У меня Vista может в этом дело!?
32. Евгений Григорьев (grigr) 23.05.10 16:37
(31) может и Висте... на лицо баг самой 1С
а другие-то обработки открываются?
33. Вячеслав Ефимов (eslava) 24.05.10 11:04
:(
Другие открываются нормально. Была с одной обработкой проблема, но решилась путём запуска её дллов от администратора.
34. Евгений Григорьев (grigr) 24.05.10 12:49
Если честно понятия не имею в чем дело ;( нет там ни каких ДЛЛ.
попробуй загрузить заново, попробуй в конфигураторе открыть...
35. Аннамара Пергамент (pannamara) 20.09.11 05:06
Благодарствую))) разработчику
36. soroka (EugeneR1c) 26.09.11 09:35
Благодарю за обработку.
37. xDee (xDee) 13.10.11 12:00
ЗафиксироватьТранзакцию();
{D:\NIX\PERENUMEROVKA.ERT(633)}: Ошибка при выполнении процедуры ЗафиксироватьТранзакцию.
Пытаюсь перенумеровать справочник "Номенклатура", 8000 элементов, длина кода 8, текстовый.
Точно такая же ошибка.
38. Евгений Григорьев (grigr) 13.10.11 16:45
(37) алгоритм не совершенный (есть косяки, а выискивать смысла большого не вижу). лечится просто:
1. неиспользуйте транзакции, т.к. внутри есть конструкция Попытка/Исключение - именно она валит транзакцию
2. отключите на время перенумеровки в конфигураторе контроль уникальности в справочнике, тогда все будет ОК
39. xDee (xDee) 13.10.11 23:04
2. отключите на время перенумеровки в конфигураторе контроль уникальности в справочнике, тогда все будет ОК
Именно так и поступил, и все пошло, еще раз СПАСИБО!
40. ddd ddd (alexsiswx) 14.10.11 16:15
Буду пробовать. Но с нетерпением буду смотреть и анализировать код.
41. Александр Лыткин (TrinitronOTV) 27.10.11 15:15
soroka пишет:

Благодарю за обработку.

я тоже присоединяюсь, огромное спасибо
42. Наталия Пепе (pepe_n) 01.11.11 10:13
43. Татьяна Смирнова (smtan-2011@mail.ru) 11.11.11 14:40
очень здоровская обработка спасибо!
44. Sergey Ivanov (sergb1979) 18.11.11 09:38
Доработал ее добавив возможность перенумерации всей базы.
Очень удобно перед объедидением нескольких баз
45. Светлана Кончакова (Ariko-sv) 05.12.11 10:15
Обработка супер!!! Как я раньше без нее могла. И справочники и документы. Я кассу вручную нумеровала, а на это почти целый день уходит, а сейчас нескольок секунд. Спасибо!!!
46. Олег Иванов (ogeniv) 12.01.12 13:55
Отличная обработка, спасибо!
47. Константин Коробов (MoonAriman) 27.01.12 16:54
Спасибо! Но очень медленно... Особенно обязательное заполнение списка к перенумерации. У меня 20000 номенклатуры, она просто умрет от таких визуальных приблуд.
48. Евгений Григорьев (grigr) 27.01.12 19:17
(47) MoonAriman, отключить визуализацию можете и сами ;)
так же рекомендую (как уже писал раньше), на время процедуры массовой перенумерации отключите контроль уникальности и проводите процедуру в режиме транзакции!
50. Вячеслав Ефимов (eslava) 18.07.12 10:06
При включенной галке макс. длинна номера обработка проверяет код в справочнике если он больше указанного значения, то из кода удаляются лишние нули?
51. Галина Орехова (orehova123) 06.09.12 23:49
плюсую! сохранение префиксов документов - как раз то, что нужно (оххх, когда же народ уйдет с 7.7? :) )
52. Евгений Григорьев (grigr) 07.09.12 07:21
(50) eslava,
да все верно. ее можно использовать для укорачивания номеров или добивания нулями до нужной длинны (правда могут возникнуть дубли в номерах: 00100 и 0100 - станут одинаковыми)

(51) orehova123,
когда уйдет? у меня есть учетные конфы на ТИС, зачем с них уходить-то? есть и на УТ под 8.0 - все работает.
53. Алекс Ю (AlexO) 25.07.13 00:47
Обработка весьма неплохая.
Немного разобрался и доработал.
Первое - пункт "Заменить у существующих префиксов на..." следует читать как "Заменить выбранную подстроку
в префиксах документов на введенную в поле "Строка префиксов документов"."
Разбил на транзакции по 100 элементов.
Флаг "Добить нулями" в исходной реализации не имеет смысла - если его отключить, то никакой перенумерации не будет вовсе.
Т.е. перенумерация заложена только с набиванием нулей перед числовой составляющей кода.
54. Алекс Ю (AlexO) 25.07.13 00:54
(38) grigr,
2. отключите на время перенумеровки в конфигураторе контроль уникальности в справочнике, тогда все будет ОК

Думаю, чтобы как раз этого не делать/сократить выборку с невыполнимой транзакцией - поможет запуск отдельных транзакций на каждые 100 элементов.
55. Алекс Ю (AlexO) 25.07.13 00:56
(44) sergb1979,
Доработал ее добавив возможность перенумерации всей базы.

Что значит - перенумерация всей базы? А сейчас - не по всей нумерует?
56. Алекс Ю (AlexO) 25.07.13 01:01
(52) grigr,
(правда могут возникнуть дубли в номерах: 00100 и 0100 - станут одинаковыми)

Не станут, в обработке есть механизм обработки дублей, который работает так:
если какие-то номера в процессе перенумерации оказались неуникальными - то
- попытка вернуть обрабатываемым объектам их первоначальные "неуникальные" номера;
- если это не удается - присваивается вспомогательный номер вида "максимально возможный (99999) - позиция элемента в текущем списке".
Т.е. в любом случае но выходе получим разные номера :)
57. Sergey Ivanov (sergb1979) 25.07.13 16:57
(55) AlexO, Сейчас только по выбранному типу Справочника
58. Алекс Ю (AlexO) 27.07.13 14:50
(57) sergb1979,
А зачем перенумеровывать ВСЕ справочники одновременно?!
59. Евгений Григорьев (grigr) 04.09.13 23:13
(56) AlexO, бывают всякие ситуации - алгоритм не совершенен и он дает иногда на один номер 2 элемента
если возникла такая ошибка, то транзакция упадет и часть справочника не будет перенумерована

а добить нулями иногда нужно именно без перенумервки
60. Алекс Ю (AlexO) 07.10.13 12:47
(59) grigr,
а добить нулями иногда нужно именно без перенумервки

Отбора ВНУТРИ номеров все равно нет - велика вероятность, что попадет на существующий номер.
Кстати, видимо ошибка "Ошибка при выполнении процедуры ЗафиксироватьТранзакцию." обычно из-за попытки создать уже существующий номер.
Но, опять же, отключение контроля уникальности - не всегда избавит от кривых номеров.
Лучше так:
- перенумеровать с неким уникальным префиксов (например, "F")
- перенумеровать уже окончательно - все номера будут заранеее уникальны.
61. Алекс Ю (AlexO) 07.10.13 16:18
(3) CheBurator,
а что, универсальная обработка подбора объектов - этого не позволяет?

И как типовой перенумеровать номера 15, 0015 и 00015?
62. Сергей (Che) Коцюра (CheBurator) 07.10.13 21:30
(61) вопрос непонятен.
приведите исходное множество документов с исходными номерами и итоговый желаемый результат - я попытаюсь сказать - можно перенумеровать или нет.
а так - конечно можно
вместо трех документов 15,0015,000015 будут документы 15,16,17 с нужными префиксами...
???
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа