Добрый вечер! нужно программно сделать свою нумерацию с определенного номера и при создании нового чтоб создавался новый номер на +1;
Вот пример
Все в цикле
Мойномер="500";
ВыводНомера=Мойномер+1;
Проблема в том что при создании 2 документа пишет что номер уже существует и не создает новый документ. Хотел посмотреть примеры кода так как в интернете очень мало примеров.
Вот пример
Все в цикле
Мойномер="500";
ВыводНомера=Мойномер+1;
Проблема в том что при создании 2 документа пишет что номер уже существует и не создает новый документ. Хотел посмотреть примеры кода так как в интернете очень мало примеров.
По теме из базы знаний
- Перенумерация документов и справочников с учетом префиксов (учет уникальности кодов) для обычных и управляемых форм
- Стандартный механизм нумерации документов и справочников в конфигурациях от 1С (Заметки программиста)
- Динамическая нумерация документов
- Нумерация документов с префиксом по дате (настройка префикса документов)
- Исправление нумерации документов в 1С:ERP
Найденные решения
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| МАКСИМУМ(АвансовыйОтчет.Номер) КАК Номер
|ИЗ
| Документ.АвансовыйОтчет КАК АвансовыйОтчет";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
НомерЧислом = Число(Выборка.Номер);
НовыйНомерЧислом = НомерЧислом + 1;
НовыйНомер = СтрЗаменить(НовыйНомерЧислом, Символы.НПП, "");
ДобавитьНулей = СтрДлина(Выборка.Номер)-СтрДлина(НовыйНомер);
Для Сч = 1 По ДобавитьНулей Цикл
НовыйНомер = "0"+НовыйНомер;
КонецЦикла;
Иначе
НовыйНомер = "00000000500";
КонецЕсли;
Объект.Номер = НовыйНомер;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) тут скорее всего вопрос в том, что номер это строка и прибавление к нему единички не является арифметической операцией.
Надо в число перевести сначала.
Для расчета нового надо найти максимальное число.
Задача несложная, но требующая аккуратности, иначе потом переделывать уже долго и муторно.
Надо в число перевести сначала.
Для расчета нового надо найти максимальное число.
Задача несложная, но требующая аккуратности, иначе потом переделывать уже долго и муторно.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| МАКСИМУМ(АвансовыйОтчет.Номер) КАК Номер
|ИЗ
| Документ.АвансовыйОтчет КАК АвансовыйОтчет";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
НомерЧислом = Число(Выборка.Номер);
НовыйНомерЧислом = НомерЧислом + 1;
НовыйНомер = СтрЗаменить(НовыйНомерЧислом, Символы.НПП, "");
ДобавитьНулей = СтрДлина(Выборка.Номер)-СтрДлина(НовыйНомер);
Для Сч = 1 По ДобавитьНулей Цикл
НовыйНомер = "0"+НовыйНомер;
КонецЦикла;
Иначе
НовыйНомер = "00000000500";
КонецЕсли;
Объект.Номер = НовыйНомер;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот