Каталог решений - Подбор свободного кода справочника Номенклатура без захвата одного и того же кода несколькими операторами.

Подбор свободного кода справочника Номенклатура без захвата одного и того же кода несколькими операторами.

Подбор свободного кода справочника Номенклатура без захвата одного и того же кода несколькими операторами.

В наличии

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

Категория:

Описание

Моё решение:

//==================================================================================
Процедура ВводНового(ПризнКопирования)             
    Спр = СоздатьОбъект("Справочник.Номенклатура"); 
    ФП = СоздатьОбъект("Текст");
    ТабКод = СоздатьОбъект("ТаблицаЗначений");
    ТабКод.НоваяКолонка("КодНом","Число");
    Файл = ФС.НайтиПервыйФайл(КаталогИБ()+"*.nomer"); 
    Пока   ПустаяСтрока(Файл) = 0 цикл
        ТабКод.НоваяСтрока();
        ТабКод.КодНом     = Число(СокрЛП(Лев(Файл,СтрДлина(СокрЛП(Файл))-6))); 
        Файл              = ФС.НайтиСледующийФайл();
    КонецЦикла;
    Если ТабКод.КоличествоСтрок() > 0  Тогда 
        ТабКод.ВыбратьСтроки();
        Пока ТабКод.ПолучитьСтроку() = 1 Цикл 
            КН = Число(ТабКод.КодНом); 
        КонецЦикла;  
    Иначе
        КН = 0;
    КонецЕсли;
    Для К = КН + 1 ПО 99999 Цикл 
        Если (Спр.НайтиПоКоду(К) = 0)Тогда 
            Код=К; 
            Прервать; 
        КонецЕсли; 
    КонецЦикла;
    ФП.Записать(КаталогИБ()+Код+".nomer"); 
КонецПроцедуры
//=========================================================================================================================

В конец процедур ПриЗаписи() и ПриЗакрытии()  вставляем:

ФС.УдалитьФайл(КаталогИБ()+Код+".nomer");
has been added to your cart:
Оформление заказа