ПРОДАЖА И ВНЕДРЕНИЕ 1С

по всей России

+7 (495) 223-32-11

Заказать обратный звонок

8 (800) 775-90-01

Бесплатно по России

Получить

Скорую 1С помощь

Получить

Проконсультироваться
со специалистом 1С

Консультироваться

Пример реализации автоматич. расчета следующего номера, нумерация

Предположим, у документа Начисление Отпуска слетела нумерация, кто-то влез и ручками исправил номер документа :(

Самый простой способ исправить ситуацию - найти документ с некорректным номером и изменить в нем номер на правильный.

Ну а если найти некорректный документ не удается, а использовать обработки перенумерации нежелательно, тогда:
в модуле документа, у которого слетела нумерация, в процедуре
Код 1C v 7.x
 Процедура ВводНового(Копирование) 
добавить (пример для документа "НачислениеОтпуска" ):

Код 1C v 7.x
 
      
//E_Migachev автоматический расчет следующего номера
//Выберем документы в обратном порядке
ДокНачислениеОтпуска = СоздатьОбъект("Документ.НачислениеОтпуска");
ДокНачислениеОтпуска.ОбратныйПорядок(1);
ДокНачислениеОтпуска.ВыбратьДокументы(НачКвартала(РабочаяДата()-15),КонКвартала(РабочаяДата()+27));
ДокНачислениеОтпуска.ПолучитьДокумент();
//Получим последний числовой номер
новномдк=Строка(число(Сред(ДокНачислениеОтпуска.НомерДок,3,7)));
стрдлинаномдк=СтрДлина(Строка(СокрЛП(Сред(ДокНачислениеОтпуска.НомерДок,3,7))));
новномдк=Число(новномдк)+1;
иткол=стрдлинаномдк-СтрДлина(новномдк);
префиксдк="ОТ";
если иткол>0 тогда
для н=1 по иткол цикл
префиксдк=префиксдк+строка(0);
конеццикла;
конецесли;
докном=префиксдк+новномдк;
//Если документ исправление то нужен префикс И
Если Исправление=1 Тогда
знтри=Прав(ДокНачислениеОтпуска.НомерДок,3);
Если Строка(Лев(знтри,1))="И" Тогда
чзнтри=Число(Прав(знтри,2));
чзнтри=чзнтри+1;
Иначе
чзнтри=1;
КонецЕсли;
Если СтрДлина(чзнтри)=1 Тогда
докном=докном+"-И0"+Строка(чзнтри);
Иначе
докном=докном+"-И"+Строка(чзнтри);
КонецЕсли;
КонецЕсли;
//Присвоим новый номер
НомерДок=докном; //E_Migachev автоматич расчет номера


Заказать обратный звонок

Позвонить
Отправлено! В самое ближайшее время наш менеджер свяжется с Вами.