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

1. user1582372 22.02.22 13:15 Сейчас в теме
Добрый вечер! нужно программно сделать свою нумерацию с определенного номера и при создании нового чтоб создавался новый номер на +1;
Вот пример

Все в цикле
Мойномер="500";
ВыводНомера=Мойномер+1;

Проблема в том что при создании 2 документа пишет что номер уже существует и не создает новый документ. Хотел посмотреть примеры кода так как в интернете очень мало примеров.
По теме из базы знаний
Найденные решения
2. ActionBlog 22.02.22 13:40 Сейчас в теме
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
	 |	МАКСИМУМ(АвансовыйОтчет.Номер) КАК Номер
	 |ИЗ
	 |	Документ.АвансовыйОтчет КАК АвансовыйОтчет";
	 
	 
 Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
	 
Если Выборка.Следующий() Тогда
	НомерЧислом = Число(Выборка.Номер);
	НовыйНомерЧислом = НомерЧислом + 1;
	НовыйНомер = СтрЗаменить(НовыйНомерЧислом, Символы.НПП, "");
	ДобавитьНулей = СтрДлина(Выборка.Номер)-СтрДлина(НовыйНомер);
	Для Сч = 1 По ДобавитьНулей Цикл
		НовыйНомер = "0"+НовыйНомер;	
	КонецЦикла;
Иначе	
	НовыйНомер = "00000000500";
КонецЕсли;
	 
Объект.Номер = НовыйНомер;
Показать
Bessondo; user1582372; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. starjevschik 23.02.22 10:08 Сейчас в теме
(1) тут скорее всего вопрос в том, что номер это строка и прибавление к нему единички не является арифметической операцией.
Надо в число перевести сначала.
Для расчета нового надо найти максимальное число.
Задача несложная, но требующая аккуратности, иначе потом переделывать уже долго и муторно.
2. ActionBlog 22.02.22 13:40 Сейчас в теме
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
	 |	МАКСИМУМ(АвансовыйОтчет.Номер) КАК Номер
	 |ИЗ
	 |	Документ.АвансовыйОтчет КАК АвансовыйОтчет";
	 
	 
 Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
	 
Если Выборка.Следующий() Тогда
	НомерЧислом = Число(Выборка.Номер);
	НовыйНомерЧислом = НомерЧислом + 1;
	НовыйНомер = СтрЗаменить(НовыйНомерЧислом, Символы.НПП, "");
	ДобавитьНулей = СтрДлина(Выборка.Номер)-СтрДлина(НовыйНомер);
	Для Сч = 1 По ДобавитьНулей Цикл
		НовыйНомер = "0"+НовыйНомер;	
	КонецЦикла;
Иначе	
	НовыйНомер = "00000000500";
КонецЕсли;
	 
Объект.Номер = НовыйНомер;
Показать
Bessondo; user1582372; +2 Ответить
3. soft_wind 22.02.22 13:46 Сейчас в теме
(1) еще как вариант, просто с определенного номера задайте Новый префикс связанный с типом документа или еще как,
как например префикс Организации.
задавайте его в событии ПриУстановки нового номера!
все будет считаться автоматом.
4. mqlochink 7 23.02.22 08:35 Сейчас в теме
"номер уже существует и не создает новый документ" - значит ваш определённый номер не самый большой?

Нужно копать в процедуре При установке нового номера, посмотреть отладчиком.
6. пользователь 23.02.22 10:24
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот