Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/75: Рейтинг темы: голосов - 75, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 42
1

Оптимизация Цикла

17.02.2013, 19:10. Показов 14128. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добрый день

ситуация такая, ассортимент товаров очень велик и постоянно увеличивается
на каждый товар заводится карточка
на сегодняшний день, открытие новой карточки занимает 24 секунды, долго

покопался и нашел цикл, пробегающий по уже всем существующим кодам товара для установления нового, уникального

//________________________________

Процедура ВводНового()
ПеремКода=0; //<<------------------------------ ПеремКода
Справ=СоздатьОбъект("Справочник.Номенклатура");
А=0;
Пока А=0 Цикл
Если (Число(Код)<0) Или (Справ.НайтиПоКоду(Код)=1) Тогда
ПеремКода=ПеремКода+1;
Код=Число(ПеремКода);
Иначе
А=1;
КонецЕсли;
КонецЦикла;

//_________________________________

в общем, именно "пробегание" по всем уже существующим кодам и затягивает процесс.
если выставить начальное значение ПеремКода=10000; то создание карточки занимает десятую долю секунды

решение некрасивое, топорное и через некоторое время к этому вопросу придется снова вернутся, чтобы выставить ещё более высокую цифру.....

хотелось бы узнать мнение опытных товарищей, нет ли какого-нибудь более изящного решения ускорить прохождение цикла, которое бы закрыло вопрос окончательно, например, как узнать наивысший код в справочнике, не перебирая его весь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2013, 19:10
Ответы с готовыми решениями:

Оптимизация цикла for
Исходные данные: имеется цикл for, прерывание которого невозможно(должен выполнить все итерации)....

Оптимизация цикла for
Скажите, пожалуйста, как оптимизируется первый цикл? И чем он отличается от второго? Первый цикл:...

Оптимизация цикла
Есть такой код: % Генерация точек в объеме N=20 for i=(1:N) ...

Оптимизация цикла for()
Доброго времени суток, форумчане! При нажатии на кнопку: private void button1_Click(object...

22
0 / 0 / 0
Регистрация: 31.01.2008
Сообщений: 89
12.03.2013, 18:27 21
Author24 — интернет-сервис помощи студентам
Рискну посоветовать запрос с функцией МАКСИМУМ и числовым значением кода.
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
12.03.2013, 23:06 22
касательно одновременной записи одинаковых кодов :
При автонумерации в семерке ,если не ошибаюсь, есть еще одна табличка - она содержит еще не записанные, но уже занятые номера. Так что для полной гарантии - прямой запрос с блокировкой таблицы временных номеров при вводе туда нового номера. а остальные пусть подождут - мало у кого время ожидания захвата таблиц меньше минуты. Что это за таблица с времянками можо глянуть через профайлер при вызове процедуры установитьновыйномер() для незаписанного документа/элемента справочника.

а по проблеме - прямой запрос в руки (там все скулевое работает, в отличие от восьмерки <_< ), и опять-же - учитываем занятые незаписанные номера.
0
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 42
13.03.2013, 13:59 23
Цитата Сообщение от puh14
касательно одновременной записи одинаковых кодов :
При автонумерации в семерке ,если не ошибаюсь, есть еще одна табличка - она содержит еще не записанные, но уже занятые номера. Так что для полной гарантии - прямой запрос с блокировкой таблицы временных номеров при вводе туда нового номера. а остальные пусть подождут - мало у кого время ожидания захвата таблиц меньше минуты. Что это за таблица с времянками можо глянуть через профайлер при вызове процедуры установитьновыйномер() для незаписанного документа/элемента справочника.

а по проблеме - прямой запрос в руки (там все скулевое работает, в отличие от восьмерки <_< ), и опять-же - учитываем занятые незаписанные номера.
к своему стыду должен признаться что не работал ещё с профайлером, посоветуйте какую-нибудь статью, чтобы я не мучал вас вопросами куда тыкать, что нажимать и почему у меня ничего не получается <_<
0
13.03.2013, 13:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2013, 13:59
Помогаю со студенческими работами здесь

Оптимизация цикла for в таймере
всем привет, подскажите кто-нибудь, как мне оптимизировать работу таймера?интервал 1000 мл.сек, в...

Оптимизация условия цикла while
Доброго времени суток, друзья! Я еще совсем новичок в С++. Подскажите плз как оптимизировать...

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

Оптимизация цикла (перебор 5000000 элементов)
Можно ли как-то оптимизировать данный цикл? for (i=10000000; i&lt;15000000; i++) { for (k = i, j =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru