Здравствуйте! Есть ли возможность в алгоритме по условию прервать выполнение кода и продолжить загрузку прайса? Я загружаю огромный прайс и в циклах перебираю артикулы, находя текущий, чтобы выполнить со значением некоторые действия. И алгоритм уже очень длинный и сильно тормозит загрузку (23 часа загружается прайс). Мне нужно, чтобы при нахождении артикула, выполнились действия со значением и алгоритм прервался. Возможно ли это и какими средствами?
Прерывание алгоритма по условию
Прерывание алгоритма по условию
27.11.2019 06:51:47
|
|
|
|
27.11.2019 08:21:47
23 часа????? что ж вы там натворили то.
Ничего не пойму пока не увижу.... Телепатировать не представляется возможным. |
|
|
|
27.11.2019 10:52:00
|
|||
|
|
27.11.2019 11:41:15
Что значит прервать. Прервать это вообще означает полностью прервать чтение дальнейших всех строк.
Прочитается например не 10 а 1. У меня таких случаев не было и тут я не понимаю смысла прерывания. У вас тяжелый алгоритм, который явно нуждается в правильной оптимизации! И вообще зачем 1 миллион грузить в 1С. Вот модуль который прайс в 15 000 000 строк переделывает за 5 минут в другой. Если вам нужно что ограничить то можно использовать алгоритм таблицы целиком - там можно все переработать. А также есть настройка ограничения количества читаемых строк. Если вы хотите пропускать не нужные вам строки, то такие строки по условию должны иметь в алгоритме строку Значение = Неопределено; |
|
|
|
27.11.2019 12:10:33
Загрузка и так идет потоком, файл разбивается на 9 кусков. Я пропускаю заведомо ненужные строки с помощью Значение = Неопределено, этот алгоритм применен к колонке Артикул. А алгоритм стоимости применен к колонке Цена закупки. Каждый из циклов в алгоритме я уже прерываю, если элемент найден. Но в итоге, по остальным циклам программа идет до конца, потому что там нет нужного артикула. Мне не нужно переделывать изначальный файл, он уже содержит минимум необходимых к загрузке данных. А также, каждый день в базу мы заносим новинки из этого прайса, и алгоритм из-за этого удлиняется каждый раз, когда появляется товар с платной доставкой. В идеале, в этом алгоритме нужно было бы создать процедуру, которая ищет и добавляет стоимость, а при нахождении останавливается. Но почему-то Мегапрайс ругается на Процедуру |
|||
|
|
27.11.2019 12:59:21
Алгоритм выполняется в условии. Если условие пропадает то код и не будет отрабатывать. Напишите нормальный код и ничего лишнего работать не будет. Это целиком от вас зависит. Если элемент не найден, то сделайте обработку кода в условии наоборот - если он найден! Если ЭлементНайден Тогда //тут весь ваш код. КонецЕсли; |
|||
|
|
27.11.2019 18:12:20
Будет правильно если вы скинете алгоритм мне в скайп, чтобы я оценил его правильность с точки зрения оптимизации.
|
||||
|
|
|||
Читают тему