Сброс неверной нумерации объектов

07.11.15

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

Кратко о выправлении нумерации объектов

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

Наименование Файл Версия Размер
Сброс нумерации объектов
.epf 12,65Kb
1273
.epf 12,65Kb 1273 Скачать

Как-то на работе возникла проблема с нумерацией документов. Пользователь ввёл номер нового документа вручную, причём вместо "000000675" указал "00_000675". После этого все последующие документы стали нумероваться с префиксом "00_". При этом ни банальное пересохранение объекта с номером "правильного" формата, ни пометка на удаление, ни удаление его из базы не помогли исправить ситуацию. Пришлось разбираться с механизмом автонумерации 1С.

Прежде всего я, естественно, обратился к ресурсам ИТС (благо фирма предоставляет такую возможность). Максимум, что я смог найти по своей тематике, - это две статьи Автонумерация и Особенности работы механизма автонумерации. Данные в них, мягко говоря, не свежие и где-то даже противоречащие реальности (например, там утверждается, что для восстановления нумерации достаточно удалить объекты), но общие представления о механизме дают. Из них стало понятно, что одним из решений вставшей проблемы является установка настройки конфигурации "Режим автонумерации объектов" в значение "Освобождать автоматически". Но, во-первых, это неприменимо в случае использования типовой конфигурации "на поддержке", а, во-вторых, противоречит продвигаемому 1С "новому" режиму нумерации. Поэтому я продолжил рыть дальше.

Как выяснилось, типовых механизмов работы с автонумерацией, как-то обработки, отчёты и прочее, нет. Но, слава Нуралиеву, нам предоставили методы встроенного языка: ОбновитьНумерациюОбъектовУстановитьНовыйКод и УстановитьНовыйНомер

ОбновитьНумерациюОбъектов, согласно СП, "выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но не записанные номера, становятся невалидными, т.к. не гарантируется их уникальность." Соотнеся это описание со статьями по этой тематике и тестовыми данными, становится понятно, что в базе хранится таблица выданных номеров, которые независимо от того, существуют объекты, для которых они были записаны в таблицу или нет, повторно быть выданы уже не могут, если не осуществить "сброс". Как раз процедура ОбновитьНумерациюОбъектов и применяется для "выправления" нумерации объектов. Главное, перед запуском не забудьте удалить из базы объекты с "неправильными" номерами. Это может быть как реальное удаление, так и перезапись их с предварительным присвоением "правильных" номеров.

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

В 1С нет возможности напрямую получить текущий максимальный номер объекта метаданных. Решить эту проблему можно двумя способами:

  • использовать запрос;
  • получить следующий номер, используя методы УстановитьНовыйКод или УстановитьНовыйНомер.

При формировании запроса система считывает данные базы данных. Можно отсортировать объекты по коду/номеру по убыванию, т.о. верхним в списке окажется обладатель максимального номера. Тут существуют следующие "загвоздки":

  • результат не будет содержать данные о занятых номерах, а только о записанных;
  • сортировка не всегда выводит наверх "максимальные" с точки зрения системы номера (например, объект с номером "0_01" в результате запроса будет расположен ниже номера "0001", но при вводе нового объекта ему будет присвоен номер с префиксом "0_").

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

К публикации прикреплена обработка обновления нумерации. В ней:

  • кнопка "Обновить" запускает выполнение метода Обновить нумерацию объектов;
  • список объектов содержит результат динамически формируемого запроса;
  • на результат запроса накладывается отбор согласно свойствам объектов метаданных: по владельцу, родителю или периоду;
  • поле "номер содержит" накладывает отбор на данные кода или номера;
  • флаг в колонке "Макс." указывает на то, какой номер на момент обновления будет считаться максимальным, все вышерасположенные объекты получат номер согласно указанному максимальному;
  • при установке флага "Макс." во всех вышерасположенных строках автоматически рассчитывается новый номер, но запись происходит только после нажатия кнопки "Обновить";
  • добавление объектов в список недоступно, но возможно ручное перераспределение строк, т.о. для выправления нумерации необходимо переместить объекты с номерами, требующими коррекции в позицию над строкой с установленным флагом "Макс.".

Буду рад комментариям и замечаниям. 

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

См. также

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

Перенумераторы Платформа 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    51882    414    190    

52

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

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

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

6000 руб.

18.05.2022    9569    21    0    

16

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

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

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

2 стартмани

13.03.2024    234    1    Klinov    0    

1

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

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

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

1 стартмани

26.02.2024    324    0    Teut_Vlad    2    

1

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

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

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

16.01.2024    712    14    RustIG    0    

4

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

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

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

1 стартмани

15.01.2024    215    4    mrsmrv    0    

1

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

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

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

5 стартмани

06.01.2024    6350    1    user739527    13    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. seermak 665 07.11.15 14:11 Сейчас в теме
+ за подробность и старание)))
avmironov; Aleksey3A; uttist_1c; Necronicus3602; cleaner_it; Serg_1C(M); +6 Ответить
3. magobato 113 19.12.15 14:03 Сейчас в теме
14. progr-2008 118 11.04.18 16:03 Сейчас в теме
(1)А есть такая обработка для обычных форм?
2. Angel_19 6 18.12.15 10:22 Сейчас в теме
Блин, это только для управляемых форм?
4. magobato 113 19.12.15 14:16 Сейчас в теме
(2) Angel_19, да, обработка работает только в управляемом интерфейсе. в крайнем случае, если позволяет платформа, можете запустить конфигурацию в режиме тонкого клиента и после этого воспользоваться обработкой.
5. Светлый ум 406 11.04.16 15:50 Сейчас в теме
Для документов пришлось сделать так:
//соответственно нехватает скриншота с настройкой как переключать между типами, пришлось лезть в конфигуратор

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
		
	//Элементы.ВидМетаданных.СписокВыбора.Добавить("Справочники");
	Элементы.ВидМетаданных.СписокВыбора.Добавить("Документы");
	//Элементы.ВидМетаданных.СписокВыбора.Добавить("БизнесПроцессы");
	//Элементы.ВидМетаданных.СписокВыбора.Добавить("Задачи");
	//Элементы.ВидМетаданных.СписокВыбора.Добавить("ПланыВидовРасчета");
	//Элементы.ВидМетаданных.СписокВыбора.Добавить("ПланыВидовХарактеристик");
	//Элементы.ВидМетаданных.СписокВыбора.Добавить("ПланыОбмена");
	//Элементы.ВидМетаданных.СписокВыбора.Добавить("ПланыСчетов");
	
	ВидМетаданных	= Элементы.ВидМетаданных.СписокВыбора[0].Значение;
Показать
ShotgunUUZ; Ivan_SH; +2 Ответить
6. jobkostya1c_ERP 100 12.08.16 10:20 Сейчас в теме
А я проще сделал, обработка с двумя реквизитами - (ссылку на плохую счет-фактуру и "НовыйНомер") и тремя кнопками код ниже:
//1. Шаг Прочитать некорректный и макс номер
Процедура КнопкаВыполнитьНажатие(Кнопка)
	СФОбъект = СсылкаНаОбъект.ПолучитьОбъект();
	//СФОбъект.Номер = ""; // 12 цифр
	Сообщить("До функции УстановитьНовыйНомер() СФ "+СФОбъект.Номер);
	СФОбъект.УстановитьНовыйНомер();
	Сообщить("после применения функции Некорректный номер "+СФОбъект.Номер);
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	СчетФактураВыданный.Ссылка,
	|	СчетФактураВыданный.Номер КАК Номер,
	|	СчетФактураВыданный.Дата
	|ИЗ
	|	Документ.СчетФактураВыданный КАК СчетФактураВыданный
	|
	|УПОРЯДОЧИТЬ ПО
	|	Номер УБЫВ";
	Выборка = Запрос.Выполнить().Выбрать();
	Выборка.Следующий();
	Сообщить("Максимальный номер "+Выборка.Номер);
	// Вставить содержимое обработчика.
КонецПроцедуры

// Шаг 2 установить новый  номер
Процедура ОсновныеДействияФормыДействие(Кнопка)
	СФОбъект = СсылкаНаОбъект.ПолучитьОбъект();
	//СФОбъект.Номер = ""; // 12 цифр
	СФОбъект.УстановитьНовыйНомер();
	Сообщить("Новый номер "+СФОбъект.Номер);
	СФОбъект.Номер = СокрЛП(ЭтотОбъект.НовыйНомер);
	СФОбъект.Записать();
	Сообщить("СФ стала"+СсылкаНаОбъект);
КонецПроцедуры

// Шаг 3 ОбновитьНумерациюОбъектов("ИмяДок") гл контекст
Процедура КоманднаяПанель1ОбновитьНумерациюОбъектов(Кнопка)
	парамОбъектМетаданных = СсылкаНаОбъект.Метаданные();
	ОбновитьНумерациюОбъектов(парамОбъектМетаданных);
	Сообщить("Для объекта метаданных "+парамОбъектМетаданных+" обновлена нумерация. Все ранее выданные, но незаписанные в базу стали недействительными!");
КонецПроцедуры

Показать

Как Вам такой подход. Главное, что все заработало.
ILM; acanta; Mr.Fermer; Olga12; +4 Ответить
7. sly2k 21.08.17 15:08 Сейчас в теме
лично у меня простой подход - вызываю ОбновитьНумерациюОбъектов() без парамтеров, предварительно в ручную подправив неправильные номера в уже существующих документах. То что он вызывается в данном случае без фильтра по объектам совершенно не мешает правильно пронумерованным объектам.
tps_01; alex-l19041; jobkostya1c_ERP; +3 Ответить
8. zvv77 22.10.17 17:38 Сейчас в теме
На серверной базе может понадобится еще и чистка кэша из папки кластера в srvinfo с предварительной остановкой Агента сервера.
st4rk; dexxxqqq; msergeev79; Ujine1313; vis_tmp; +5 Ответить
9. BBDragon 05.11.17 10:50 Сейчас в теме
Странно, а у меня нумерация не исправляется. Кэш на сервере чистил, Агент сервера предварительно остановив. Как я ни делаю - следующий номер остается неправильным
10. user856012 13 05.11.17 11:02 Сейчас в теме
(9)
Как я ни делаю - следующий номер остается неправильным
Или что-то не так делаете, или в базе реально существует объект с номером, предшествующим "неправильному". Тогда никакой "сброс" не поможет, надо сначала найти этот объект и исправить его номер.
BBDragon; +1 Ответить
11. BBDragon 05.11.17 12:19 Сейчас в теме
Я поясню. В октябре сбили нумерацию счетов-фактур в УТ 11.3, вручную изменив номер и он теперь стал начинаться с 2 нулей, а не с 3 как было. Последний такой номер, присвоенный вручную был 8956, т.е. вместо 00ЦБ-0008956, сделали 00ЦБ-008956. Я изменил этот номер вручную на правильный формат 00ЦБ-0008956 и перезапустил обработку - не помогло(
Единственное, если раньше он показывал, что следующий номер будет 00ЦБ-008957, то теперь на единицу меньше - 00ЦБ-008956.
Перенумерация с помощью обработки "Универсальный подбор и обработка объектов" также не дала результатов (префикс там тоже пробовал менять). Существующие СФ она перенумеровывает, а новой опять присваивается номер с двумя нулями, а не с тремя. Пробовал вручную парочку новых СФ сформировать и прописать правильный номер - опять не помогает. Как все-таки можно изменить этот параметр "Следующее значение"?
12. user856012 13 05.11.17 12:30 Сейчас в теме
(11)
Единственное, если раньше он показывал, что следующий номер будет 00ЦБ-008957, то теперь на единицу меньше - 00ЦБ-008956.
Заставляет предположить, что где-то сидит счет-фактура с номером 00ЦБ-008955.

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

Проверить это несложно: создать 00ЦБ-008956, можно еще для уверенности 00ЦБ-008957, потом их удалить и сбросить автонумерацию. Если после этого программа будет предлагать 00ЦБ-008958 - значит, обработка не сработала, нумерация не сбросилась.

Ну, а если вернется к предложению 00ЦБ-008956 - наверняка существует 00ЦБ-008955, надо его искать и удалять.
Necronicus3602; BBDragon; +2 Ответить
13. BBDragon 05.11.17 13:09 Сейчас в теме
Да, есть такая.. Их там вообще куча в 3-ем квартале еще..

00ЦБ-005763 10.07.2017 0:00:00
00ЦБ-006915 01.08.2017 23:59:59
00ЦБ-007515 15.08.2017 23:59:59
00ЦБ-007606 08.08.2017 23:59:59
00ЦБ-008170 11.09.2017 23:59:59
00ЦБ-008225 12.09.2017 23:59:59
00ЦБ-008598 01.07.2017 14:50:19
00ЦБ-008606 14.07.2017 17:42:48
00ЦБ-008607 14.07.2017 17:42:50
00ЦБ-008609 21.07.2017 23:59:59
00ЦБ-008611 21.07.2017 23:59:59
00ЦБ-008616 05.07.2017 18:15:46
00ЦБ-008618 05.07.2017 18:15:48
00ЦБ-008619 05.07.2017 18:15:50
00ЦБ-008620 05.07.2017 18:15:52
00ЦБ-008621 05.07.2017 18:15:54
00ЦБ-008785 06.07.2017 9:04:44
00ЦБ-008790 20.07.2017 23:59:59
00ЦБ-008791 31.07.2017 23:59:59
00ЦБ-008796 18.08.2017 23:59:59
00ЦБ-008799 19.08.2017 23:59:59
00ЦБ-008807 12.09.2017 23:59:59
00ЦБ-008808 04.09.2017 23:59:59
00ЦБ-008810 29.09.2017 23:59:59
00ЦБ-008817 16.06.2017 17:06:20
00ЦБ-008818 14.06.2017 19:50:18
00ЦБ-008819 23.06.2017 16:46:35
00ЦБ-008820 22.06.2017 23:59:59
00ЦБ-008821 21.06.2017 0:00:00
00ЦБ-008885 10.10.2017 23:59:59
00ЦБ-008924 22.07.2017 22:12:17
00ЦБ-008925 18.07.2017 23:59:59
00ЦБ-008926 12.07.2017 20:00:28
00ЦБ-008927 07.07.2017 17:38:37
00ЦБ-008928 23.08.2017 23:59:59
00ЦБ-008930 28.09.2017 23:59:59
00ЦБ-008931 26.09.2017 23:59:59
00ЦБ-008932 25.09.2017 23:59:59
00ЦБ-008933 14.09.2017 23:59:59
00ЦБ-008934 13.09.2017 23:59:59
00ЦБ-008935 12.09.2017 23:59:59
00ЦБ-008937 10.09.2017 14:33:46
00ЦБ-008938 07.09.2017 23:59:59
00ЦБ-008939 06.09.2017 23:59:59
00ЦБ-008941 06.09.2017 23:59:59
00ЦБ-008942 20.07.2017 23:59:59
00ЦБ-008947 11.10.2017 0:00:00
00ЦБ-008948 04.10.2017 23:59:59
00ЦБ-008949 02.10.2017 23:59:59
00ЦБ-008951 14.09.2017 23:59:59
00ЦБ-008952 13.09.2017 23:59:59
00ЦБ-008953 15.07.2017 12:00:52
00ЦБ-008954 19.08.2017 23:59:59
00ЦБ-008955 12.09.2017 23:59:59

При этом в 4 квартале уже есть счета-фактуры с такими же номерами, только с 3 нулями в начале (8924-8955). В общем решил не трогать 3 квартал, оставить как есть, с 2 нулями, надо теперь лишь нумерацию в 4 квартале поправить, чтобы не было дублирующих номеров. Ибо в СФ на печати лидирующие нули уходят и получается что счет-фактуры к 2 разным реализациям имеют одинаковый номер.
15. quietbuh 12.07.18 12:44 Сейчас в теме
Объясните пожалуйста на пальцах в какой последовательности нужно выполнять чтобы исправить нумерацию. Не получается, все равно создает след. кривой номер.
16. magobato 113 12.07.18 16:24 Сейчас в теме
(15) последовательность в конце статьи указана. По сути:
выбираете тип объекта.
система подбирает объекты
флагом Макс. указываете на тот номер, который хотите чтобы считался максимальным
нажимаете на "обновить".

Но тут возможен следующий момент, т.к. объекты подбираются и сортируются запросом, то происходит это не всегда корректно (в статье об этом написано).
Если это так, то перед нажатием на кнопку "обновить" следует самостоятельно в списке отыскать все объекты с кривыми номерами и ручками поправить номера или удалить эти объекты из ИБ.
17. churlena 08.10.18 02:40 Сейчас в теме
Спасибо за обработку! Мне очень помогла в критический момент)
18. k992007 25 17.10.18 17:05 Сейчас в теме
19. aljir 3 08.04.19 12:02 Сейчас в теме
Спасибо за обработку!
20. GlukAl 20.05.19 11:44 Сейчас в теме
в модуле справочника написать
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
	Если ЭтоНовый() Тогда УстановитьНовыйКод("0"); КонецЕсли;
КонецПроцедуры

и не важно, что пользователи вводили в поле код ранее
нумерация для новых элементов будет с 0000
21. sergathome 4 30.07.19 14:24 Сейчас в теме
Автор, огромное спасибо. Сподвиг меня на победу над этой дурой - нумерацией. Хакерский ход возможен, однако. Задача: 1C-Бухгалтерия 3.0, бухша завела реализацию задним числом и настаивает на сохранении номера, хотя её номер сбивает нахрен всю нумерацию (было, условно, 00БП-0000, бухша сделала 00БП-00/1, требуется вернуть 00БП-0000). Дополнительная вводная - нумерация реализации в бухгалтерии ведётся за год (!) это важно. Как действует 1С при захвате номера - она подаёт запрос к таблице документа и вычисляет максимум самым простецким способом, при выполнении ОбновитьНумерациюОбъектов этот запрос ловится профайлером (если кому интересно) - так можно узнать имя таблицы документа. Далее, как известно из https://its.1c.ru/db/metod8dev#content:1798:hdoc, номер относится к периоду посредством
_NumberPrefix - начало периода уникальности номера. Поле определено, если в конфигурации для документа задана поддержка уникальности номера в пределах периода; поле представляет из себя дату в обычном формате SQL, где к году прибавлено 2000, например что- типа 4019-01-01. Изменив эту дату, например на 4010-01-01, мы выкинем номер из периода 2019 года. И восстановим нумерацию, не прибегая к смене "аварийного" номера...
Скрипт для MS SQL (для Бухгалтерии):
-- Переносит максимальный номер в другой год, освобождая тем самым предыдущую серию номеров
-- Например, если был введен номер 00БП-00635/1, то к номеру 00БП-003335 вернуться просто так не удастся,
-- этот скрипт выкидывает самый старший номер в другой период. 
-- Формат хранения дат - год+2000, слава великому 1С!
UPDATE dbo._Document372
SET _NumberPrefix = '4010-01-01' -- этот период устанавливается
WHERE _Number IN (SELECT
MAX(T1._Number)
FROM dbo._Document372 T1
WHERE _NumberPrefix > '4018-01-01') -- период отбора
Показать
delphiman4@gmail.com; Somebody1; user847462; krlexa; amiralnar; smallbuk; Pipapalamm; +7 Ответить
22. iGracefull2 30.09.19 07:43 Сейчас в теме
(21) Аналогичная задача, но на файловой базе:( Нужно сохранить доки с неправильной нумерацией, при этом, задать последующуюу верную нумерацию. То есть Шли номера 0000000841, 0000000842, 0000000843, затем вручную вбили корявый номер 00000843.1, далее нумерация подцепила и пошла автоматом в 00000843.2, однако бухам надо, что бы был 0000000844. Есть варианты как это поправить, не сломав нумерацию старую?
23. magobato 113 30.09.19 13:17 Сейчас в теме
(22) Навряд ли получится. Чтобы "играться" периодами как в (21) нужен прямой доступ к таблицам, а в файловом варианте это проблематично.
По идее, нумерация не собьется, если неправильный номер номинально меньше правильного. Например в базе правильный номер Б1, вводится неправильный - А1, тогда система всё равно продолжит нумерацию с префиксом "Б" и следующий номер будет Б2.
Поэтому, как вариант решения данной проблемы - использование префиксов.
25. sergathome 4 30.09.19 16:04 Сейчас в теме
(23) Чем хренова такая модель нумерации, так это тем, что она противоречит "интуитивно понятной". Когда идёт нумерация 001, 002 и тп, то кажется логичным, при требовании "вклиниться" в такую нумерацию использовать дробь вида 001/1, к примеру. Однако использование нецифрового символа приводит к тому, что платформа начинает считать кусок номера 001/ префиксом со всеми вытекающими, и, мало того, поскольку символ находится в кодировочной таблице дальше цифр, такая серия кодов оказывается старше любой "нормальной" :( 1C традиционно самоустранилась типа это "особенность платформы" и идите в ж. Однако на практике не всё так просто, да.
38. Linx-p 09.07.20 10:39 Сейчас в теме
(23)
(24)
Для редактирования файловіх баз пользовался утилитой Tool_1CD
24. sergathome 4 30.09.19 15:57 Сейчас в теме
(22) загрузить базу на сервер, исправить и выгрузить назад. Никакие другие махинации в вашем случае не помогут ибо 00000843.1 будет всегда гарантированно больше любого "нормального" номера.
27. Pipapalamm 23.12.19 13:26 Сейчас в теме
(21) Спасибо! Эта штука дико помогла.
26. iGracefull2 04.10.19 15:19 Сейчас в теме
В общем-то так и случилось. Что бы я не делал, 843.1 был всегда последним номером. Пришлось кустарить периодический регистр нумерации объектов и присваивать номера оттуда. Так как сбили нумерацию порядка 3 разных типов документов и намерены дальше сбивать. Костыль, но что поделать
28. compaud 13.01.20 08:54 Сейчас в теме
Я либо что то делаю не так, либо не работает.

Документы создаются с номером МСУТ-1234667 к примеру
Т.е. продолжается нумерация с прошлого года.

Те что на скрине введены вручную
Прикрепленные файлы:
29. magobato 113 13.01.20 12:56 Сейчас в теме
(28) попробуйте вручную найти документы с неправильными номерами за текущий период, к сожалению отбор не всегда корректно работает, т.к. правила сортировки в механизмах платформы и запроса несколько отличаются. Измените неправильные номера на правильные вручную и после этого сделайте сброс нумерации с помощью обработки.
30. compaud 13.01.20 14:56 Сейчас в теме
31. Novichok777 25 15.01.20 09:32 Сейчас в теме
Спасибо за статью.
Хочу поделиться своим способом исправления нумерации (проверял под ERP, думаю, что подойдет всем):

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

2. Далее делаем новую обработку с одной кнопкой. На нее вешаем две строки (они должны выполняться на сервере для управляемых форм):
ОбновитьНумерациюОбъектов(Метаданные.Документы.РеализацияТоваровУслуг); //укажите свой документ вместо РеализацияТоваровУслуг
ОбновитьНумерациюОбъектов(Метаданные.НумераторыДокументов.ДокументыРеализацииТоваров); //Эта строка ОБЯЗАТЕЛЬНА. Укажите свой нумератор, который указан в конфигураторе к вашему типу документа

3. Выходим из базы. Заходим в базу и нумерация работает правильно.

Удачи и всего наилучшего.
deepushka; user1490769; Demetry2000; 4erv; 2ncom; Lllypuk; ar.bus; dammit666; Dragonim; testnv0; akmich; chinkovs; Rega; user1628996; scarface13; Diktis; LomayaZakat; Alexs_7574; freeek; Konstpro42; user797186; st4rk; andr_andrey; solaru; dexxxqqq; sapervodichka; misledgore; adison; Alex Y; +29 Ответить
32. Alex Y 177 22.01.20 02:24 Сейчас в теме
(31) Отлично отработал алгоритм! Спасибо.
39. dexxxqqq 17.07.20 00:05 Сейчас в теме
(31) Огромное спасибо! Помогло. Со счетами делал без второй строчки (без нумератора), а на реализации сработал только ваш вариант. Думал про нумератор, но не знал как к нему обращаться.
33. unknown181538 151 12.02.20 12:27 Сейчас в теме
Долго не мог въехать, почему у меня не работает ОбновитьНумерациюОбъектов()
Если для документа задан нумератор, то нужно вызывать не для документа, а для нумератора
ОбновитьНумерациюОбъектов(Метаданные.НумераторыДокументов.СчетаФактурыВыданные);

Это не относится к обработке автора, я ее не качал.
34. magobato 113 13.02.20 08:38 Сейчас в теме
(33)
ать, почему у меня не работает ОбновитьНумерациюОбъектов()
Если для документа задан нумератор, то нужно вызывать не для документа, а для нумератора
ОбновитьНумерациюОбъектов(Метаданные.НумераторыДокументов.СчетаФактур

Спасибо за информацию, нужно будет протестить и дописать в статью. Хотя, уже столько времени прошло, что может уже и часть того, что написано неверно
35. marinelle 18.02.20 14:44 Сейчас в теме
Добрый день. Может есть решение для УПП 1.3 платформа 8.3.15.1830, в которой ведется 10 юр.лиц? Соответственно все документы с префиксами. И нужно исправить только по одной организации нумерацию. Завис неправильный префикс. Процедура ОбновитьНумерациюОбъектов() не помогает (тип документа Платежный ордер на списание денежных средств). Нумератора у документа нет. Все номера исправлены на корректные, перепроведены документы. Но... не помогло...
36. chng 11.03.20 09:10 Сейчас в теме
(35) После исправления номеров, сделайте новый и ручками присвойте ему со следующий по порядку "ваш правильный" номер, после этого делайте сброс. Нас спасла именно такая последовательность, т.е. пока не создали новый документ и вручную не прописали ему правильный номер, тоже не срабатывало. Перепроводить думаю лишнее, мы при перенумерации просто записывали документ.

АВТОРУ!
(3) Огромное спасибо за статью, помогла понять суть и решить проблему из-за которой уже патроны в обойму набивать стали... :-)))
freeek; kako1toxren; +2 Ответить
37. kako1toxren 27.04.20 23:50 Сейчас в теме
(36) Столкнулся с проблемой перенумерации документов Реализация товаров и услуг в УТ 10.3. Ваш комментарий помог в решении проблемы. Спасибо.
40. just86 31.07.20 00:26 Сейчас в теме
Столкнулся с такой же проблемой. Изменили нумерацию в налоговой, была НФБУ-000000000031, потом НФБУ-00032, сейчас создает НФБУ-00000008.

Ни один способ из выше предложенных не сработал.
41. user1135816 4 23.04.21 15:46 Сейчас в теме
(40) так у вас код разной длины. определитесь с длиной кода а потом с правильной нумерацией
42. sternu 28.05.21 12:15 Сейчас в теме
Спасибо автору за изложение материала! Сбили нумерацию в документах Реализации товаров и услуг в перепиленной УПП 1.3, номер исправили, но злопамятная база запомнила "кривой" номер. В моем случае помогло выполнение метода ОбновитьНумерациюОбъектов()
43. yavezde 03.06.21 17:15 Сейчас в теме
А что если таких документов неверных очень много... нельзя ли без их исправления что-то сделать?
44. user1201514 15.12.21 15:19 Сейчас в теме
Как выяснилось, типовых механизмов работы с автонумерацией, как-то обработки, отчёты и прочее, нет.

Есть и всегда была на диске ИТС. Пользуюсь когда нужно без проблем.
45. user1201514 15.12.21 15:21 Сейчас в теме
Называется универсальный подбор и обработка документов. Там есть обработка перенумерации объектов.
46. user1201514 15.12.21 15:21 Сейчас в теме
Можно и префиксы редактировать и номера сбрасывать
47. user1056127 18.04.23 07:00 Сейчас в теме
А можно пояснить, метод "ОбновитьНумерациюОбъектов" реально меняет номера? Или просто присваивает им какой-то статус в метаданных. Короче проблема как у всех, сбилась нумерация в УТ, нужно было ввести номер задним числом, а для этого номер сдвинулся в сторону старших разрядов, но добавилось "/1" в конце, потом вернулись к старой нумерации "вручную", но естесно ничего из этого не вышло (блин камень в сторону 1с неужели так трудно ввести конкретный метод на управляемых формах встроенный?). В итоге номера примерно такие 0056, 56/1, 0057, 0058
А вопрос касаемо этой обработки - если исходя из моих пожеланий оставить все как есть, но начать снова выдавать номера 0059 итд, она поможет это сделать или я как покорный падаван должен убрать плохой номер по мнению разработчиков 1с (что собственно глупо, кто для кого нужен 1с для меня или я для них)? Ну и если поможет, то какой порядок действий (честно не совсем понятно для моей ситуации).
48. user1590646 19.06.23 15:32 Сейчас в теме
Если вы пытаетесь сделать правильный номер для документа под определенным префиксом с переодичностью в пределах года, то сначала сделайте вот что:
1. Замените в существующих документах номер на правильный, либо удалите документы с неправильным номером.
2. Создайте новый документ с правильным номер, при этом дата документа должна быть самой большой, т.е. документ должен быть самым новым среди документов с тем же префиксом.
3. Делайте обновить нумерацию

Я около получаса бился в ненависти к 1с, пока не указал в документе с правильным номером самую большую дату
49. пользователь 20.07.23 09:44
Сообщение было скрыто модератором.
...
Оставьте свое сообщение