Как сделать временное прерывание программы, а по нажатию на кнопку продолжить? #554502


#0 by Domovoi
Допусти выполняется кусок программы, в определенном месте программы мне надо будет прервать ее чтобы просмотреть данные, а потом при нажатии на кнопку опять продолжить действие алгоритма. Можно ли это сделать и как?
#1 by iamnub
Ну и вопросы... Мельчаем.
#2 by Domovoi
Так я ж славлюсь тупыми вопросами)
#3 by Domovoi
Я в смысле не точкой останова остановить, а код какой написать, хотя наверно и в этом случае вопрос тупой, но ответ мне нужен)
#4 by skunk
какой?
#5 by golden-pack
ты свой бред трансформируй в логическую цепочку
#6 by Злопчинский
. конечно, главное, чтобы эта хрень не в проведении/транзакции
#7 by ДенисЧ
А что, отладчик ныне не хахялен?
#8 by Kookish
Написать код, который выполняется при нужных тебе условиях, и поставить на нем точку останова. Или все-таки фотку потребовать? :^)
#9 by ДенисЧ
(*) Ахтунг?
#10 by Kookish
( Дебугинг.
#11 by Domovoi
Да я ж написал, что не точка останова, да и столько программируя, наверно я бы не задавал вопрос, если б мне подошел отладчик. Разберем на примере. Допусти у меня цикл с сложными вычислениями, что в голове прокрутить не получается. Я сделал форму проверки для него, набросал несколько ТП, которые отображают результат работы цикла, и проанализировав которые я смогу сказать правильно ли работает или нет. Так вот надо чтобы я запускаю цикл(допустим нажатием кнопки), он проходит итерацию и приостанавливается, так чтобы я мог посмотреть какой результат получился(при этом программа не должна висеть, я должен свободно по ней лазить), а после, когда все проверил, нажать на кнопку и цикл пошел дальше.
#12 by zak555
точка останова с условие ?
#13 by Domovoi
изи      ->НЕ точка останова и не отладчик<- Можно это как-то цветом выделить, а то походу никто даже не читает.
#14 by zak555
лучше кнопкой "приостанавливай" итерацию =)
#15 by Domovoi
Каким кодом или командой приостановить и потом запустить?
#16 by Domovoi
Не подходит, несколько тз сразу надо видеть. Зачем вам моя фотка? Я пацан.
#17 by zak555
итерации выполняется на стороне сервера ?
#18 by Domovoi
Нет. На клиенте.
#19 by Kookish
Ну хоть аватарку забабахай, а то слева у всех есть прикольные картинки, а у тебя нету. В шутка была, что вы так сразу стойку делаете? По теме на ум приходит такое: вычисления разбиваются на этапы, и программа дает возможность выбрать: начать с начала, продолжить с места остановки, выполнить N циклов, молотить до конца. Например, выбираем "один цикл", нажимаем "выполнить". Отрабатывает и останавливается. Промежуточные данные сохраняются где-то в базе. Закрываем окно, открываем - промежуточные данные считываются и определяется текущее состояние вычислений. Дальше предложение: начать сначала, продолжить еще пару циклов, молотить до конца. И так далее...
#20 by zak555
кнопку нажимаешь на клиенте, на сервере будет "пауза" + получение "частичной" инфы ?!
#21 by Domovoi
Я в позу не становлюсь(наверно даже никогда), не понял просто зачем вам моя фотка. А по поводу метода, я это знаю, но не хочется городить велосипед, тем более эта проверка мне временно нужна, когда доделаю все и отлажу я ее уберу. Эмм меня больше волнует вопрос не как остановить, а как потом запустить с этого места. Ну вообще первый этап, да, такой, а потом надо еще запустить дальше.
#22 by Kookish
Хорошо, не городи. Сделай все на глобальных переменных.
#23 by zak555
глобальные переменные в общем модуле ? так нельзя же их делать, будет ошибка {ОбщийМодуль.ОбщийМодуль1.Модуль(1,1)}: Данный модуль может содержать только определения процедур и функций <<?>>Перем Чис; (Проверка: Сервер)
#24 by zak555
использовать глобальные переменные для модуля управляемого приложения не подходит - выполнение должно идти на сервере => только через объект
#25 by zak555
как-то так
#26 by zak555
в какую-нибудь константу забабахать
#27 by Злопчинский
Цикл вынести в отдельную процедуру. все переменные от которых зависит результат - в параметры процедуры, на очередном шаге - слепок с переменных наружу, по кнопочке далее - на вход..
#28 by zak555
а там тип ХранилищеЗначений
#29 by Злопчинский
вообще если в голове алгоритм не прокручивается - то это уже подозрительно...
#30 by Kookish
Человеку надо на один раз. Ради такого случая можно и толстого клиента потерпеть. Или все равно не прокатит?
#31 by Kookish
Что-то вроде я и предложил в .
#32 by zak555
я 8ку не знаю, но предположил если в клиенте запустить "итерации", то кнопку "прерывания" я мышкой не нажму => обработку нужно передать на сервер
#33 by Kookish
Да, это вам не ЦПП, где моя IsKeyPressed... Придется ей самой останавливаться. Или "Да/Нет" выдавать в нужных местах. И вообще, куда делся ТС? Неужели пошел за фоткой? :)
#34 by zak555
*на клиенте
#35 by Domovoi
Йсть ходил, я человек и раз в сутку хочу есть) Сейчас все посмотрю и обдумаю.
#36 by Domovoi
Да нажать то можно, да и не в этом проблема, проблема в том как запустить после того как прервал, с этого этапа. если в клиенте запустить "итерации", то кнопку "прерывания" я мышкой не нажму - это кстати можно сделать на 8. По поводу разбиения кода на процедуры/функции или передачу с параметрами я знаю и применю если ничего не найдем. Меня интересует вставить 1-2 команды, есть ли таковы?
#37 by Domovoi
Это кстати задача, которую вы мне дали) Проверялку делаю.
#38 by Domovoi
Так пусть сама останавливается на каждой итерации, я не против, как потом запустить с места прирывания?
#39 by Злопчинский
ОК! это хорошо! задача все еще актуальна! а по результатам проведени яинвентаризации и сопутствующих вопросов - стопудово нужна... ;-)
#40 by Kookish
Что-ж, удачи. Я таких команд не знаю. До сих пор мне отладчика хватало. Глобальные переменные или сохранение состояния вычислений в базе. Больше ничего на ум не приходит. Но там парой команд не обойдешься.
#41 by Domovoi
Я вот точно не знаю, но вроде в 1с есть метки для программрования, т.е. допустим я пропишу в коде в конце цикла прервать, программа остановиться, а потом кнопкой "След шаг" попытаюсь запустить и прыгну на метку, а метку поставлю после прерывания. Может опять плохо описал, не знаю даже возможно ли такое?
#42 by AaNnDdRrEeYy
писать код с использование меток (goto) это называется спагетти код, потом сам не разберешся че написал
#43 by Злопчинский
тупое заблуждение тупых быдлокодеров
#44 by Злопчинский
прыгать в тело цикла извне минуя заголовок цикла - бяка, да и компилятор/интепретатор такое запретит. Читай 27 и 31
#45 by verba
Сообщить не предлагали? (Если долго с отладчиком по многочисленным модулям таскаться;))
#46 by Domovoi
4 таблицы надо смотреть, через сообщить как-то не очень читабельно будет)
#47 by AaNnDdRrEeYy
еще  большее заблуждения тупейшего быдлокодера
#48 by dimoff
Через обработчик ожидания
#49 by verba
Технология такая: Сначала с помощью сообщить находишь на какой итерации выдается не то, потом с помощью точки останова с условием (выловленный элемент, на котором "не то"), далее выгружаешь запрос в ТЗ в отладчике и видишь всю таблицу. Просто в заголовок отладчика по кнопке рассчитать Пишешь Запрос.Выполнить.Выгрузить
#50 by verba
+ 49, А ну да, F2 на ТЗ, адалее хоть распечатывай данные, что запрос вернул.
#51 by Domovoi
Думал, но пока сделал как 44. Мне чтоб узнать на какой итерации ошибка нужно сначала проанализировать на всех. Синтаксической ошибки нет, есть ошибка после обработки данных, т.е. не тот результат, а когда он таким становиться хрен его знает. Спасибо конечно, но я это знаю, и как вариант меня не устраивает, я писал выше что нужно смотреть несколько таблиц одновременно, да и проще это будет когда в пользовательском режиме.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С