T
Tomash
добрый день
ситуация такая, ассортимент товаров очень велик и постоянно увеличивается
на каждый товар заводится карточка
на сегодняшний день, открытие новой карточки занимает 24 секунды, долго
покопался и нашел цикл, пробегающий по уже всем существующим кодам товара для установления нового, уникального
//________________________________
Процедура ВводНового()
ПеремКода=0; //<<------------------------------ ПеремКода
Справ=СоздатьОбъект("Справочник.Номенклатура");
А=0;
Пока А=0 Цикл
Если (Число(Код)<0) Или (Справ.НайтиПоКоду(Код)=1) Тогда
ПеремКода=ПеремКода+1;
Код=Число(ПеремКода);
Иначе
А=1;
КонецЕсли;
КонецЦикла;
//_________________________________
в общем, именно "пробегание" по всем уже существующим кодам и затягивает процесс.
если выставить начальное значение ПеремКода=10000; то создание карточки занимает десятую долю секунды
решение некрасивое, топорное и через некоторое время к этому вопросу придется снова вернутся, чтобы выставить ещё более высокую цифру.....
хотелось бы узнать мнение опытных товарищей, нет ли какого-нибудь более изящного решения ускорить прохождение цикла, которое бы закрыло вопрос окончательно, например, как узнать наивысший код в справочнике, не перебирая его весь
ситуация такая, ассортимент товаров очень велик и постоянно увеличивается
на каждый товар заводится карточка
на сегодняшний день, открытие новой карточки занимает 24 секунды, долго
покопался и нашел цикл, пробегающий по уже всем существующим кодам товара для установления нового, уникального
//________________________________
Процедура ВводНового()
ПеремКода=0; //<<------------------------------ ПеремКода
Справ=СоздатьОбъект("Справочник.Номенклатура");
А=0;
Пока А=0 Цикл
Если (Число(Код)<0) Или (Справ.НайтиПоКоду(Код)=1) Тогда
ПеремКода=ПеремКода+1;
Код=Число(ПеремКода);
Иначе
А=1;
КонецЕсли;
КонецЦикла;
//_________________________________
в общем, именно "пробегание" по всем уже существующим кодам и затягивает процесс.
если выставить начальное значение ПеремКода=10000; то создание карточки занимает десятую долю секунды
решение некрасивое, топорное и через некоторое время к этому вопросу придется снова вернутся, чтобы выставить ещё более высокую цифру.....
хотелось бы узнать мнение опытных товарищей, нет ли какого-нибудь более изящного решения ускорить прохождение цикла, которое бы закрыло вопрос окончательно, например, как узнать наивысший код в справочнике, не перебирая его весь