Имя: Пароль:
1C
 
Я открываю 100500 форм (УФ) в коде, но они не закрываются, пока работает скрипт [решено в 21]
🠗 (Волшебник 11.12.2021 11:21)
0 Гений 1С
 
гуру
10.12.21
18:48
Я их принудильно закрываю через Форма.Закрыть(), Форма.Открыта() показывает ложь, но на экране все эти формы видны (каскадом).
Формы использую для рассчетов, проще эмулировать действия пользователей, чем вытягивать из них код, там очень навороченный код...
1 Ёпрст
 
10.12.21
18:52
(0) Это тебе кара за лень.
2 Гений 1С
 
гуру
10.12.21
18:53
(1) это не лень, а повторное использование кода форм
3 Garykom
 
гуру
10.12.21
18:54
(0) ОбработкаОжидания используй и дай закрыться ненужным формам
4 Ёпрст
 
10.12.21
18:55
Максимум, отдать событие закрытия формы кому то еще, наружу твоего алгоритма. А унтри, пока оно все не отработает, так и будешь их видеть
5 Garykom
 
гуру
10.12.21
18:56
(4) именно
только хак через (3)
6 Ёпрст
 
10.12.21
18:57
Ну и весь твой навороченый код, поди вызывает методы общего модуля. Что мешает вызывать то же самое в своей поделке -загадка.
7 Garykom
 
гуру
10.12.21
18:58
(6) копипастить вероятно не хочет
поэтому использует эмуляцию ввода в открытых формах
8 Ёпрст
 
10.12.21
18:59
Интересно тока, вот за это слайд шоу, с мельканием открываемых форм..кто-то еще платит?))
9 Вафель
 
10.12.21
19:03
Физическое закрытие происходит после окончания процедуры
10 Garykom
 
гуру
10.12.21
19:11
(9) именно
и процедуру можно завершить, сделав в конце ОбработкаОжидания() разовую через полсекунды
и заново она запустится с пропуском лишнего для продолжения
11 acht
 
10.12.21
19:52
Не подсказывайте.
Вы ломаете работодателю ггггени бизнес по продаже билетов на фрикшоу.
12 Конструктор1С
 
10.12.21
19:55
(0) вот это говнище. И написал это говнище конечно же кто-то другой, не ты,не?
13 H A D G E H O G s
 
10.12.21
20:02
(0) Все нормально зарывается, у тебя просто кривой обработчик при закрытии скорее всего.
14 H A D G E H O G s
 
10.12.21
20:06
(8) Это слайдшоу я проходил каждый месяц, когда запускал тесты перед сборкой релиза КТ-2000 и один из них должен был открыть все окна конфы. Поэтому, да, платили.
Хехех, у меня поначалу был обломок спички, которым я фиксировал Ентер, чтобы он гасил всякие типовые окна по кнопке по умолчанию, а ошибки писались бы в ЖР, но это надо было идти на обед, так как окно должно было быть активным, поэтому потом я накропал Дельфи приложуху, которая в фоне гасила бы эти окна.
Вот такие Волочаевские дни были.
15 Ненавижу 1С
 
гуру
10.12.21
20:09
(2) ну не буквально же... Теперь учи разделение на слои модели и представлений
16 Ненавижу 1С
 
гуру
10.12.21
20:14
Подозреваю что идёт расчёт цен и/или скидок
17 H A D G E H O G s
 
10.12.21
20:27
Или обеспечение потребностей.
18 H A D G E H O G s
 
10.12.21
20:28
Хотяяя нет.
Где Г1С и где обеспечение.
Ставлю на цены и прочую розницу.
19 Гений 1С
 
гуру
10.12.21
20:30
(9) а вот и нет, окна остались открытыми, что весьма странно
20 Гений 1С
 
гуру
10.12.21
20:31
(16) (17) (18) пролетаете, не угадали
21 Гений 1С
 
гуру
10.12.21
20:56
Всё пардон, вопрос снимается. Были кривые руки.
По некоторым веткам выходило раньше, чем заходило в закрытие.
А в одном случае при вызове метода закрытия формы (не закрыть, а другого), там внутри не вызывалось закрытие.

Использовал конструкцию типа:

            Если ФормаП.Открыта() Тогда
                ФормаП.Закрыть();
            КонецЕсли;
22 Ненавижу 1С
 
гуру
10.12.21
21:07
(20) ну не томи уже. Жги давай
23 Гений 1С
 
гуру
10.12.21
21:12
(22) не, коммерческая тайна, сорри
24 Толич
 
10.12.21
21:13
Сергей. Пишите свой алгоритм. Сей метод с тыщью окОн, как по мне - тупик.

Я в ЗУПе делал подобное, чтобы пользоваться средней ценой с проверками несколько лет назад, но руки дошли и все нафиг переписал. Костыли.
25 Гений 1С
 
гуру
10.12.21
21:20
(24) вот когда мне заплатят, тогда я и сделаю, клиент пока не готов вкладывать миллиарды в переписывание отраслевой.
26 ДедМорроз
 
10.12.21
21:31
(14) у меня при тестировании оставались открытыми только криво подмененные формы,когда в приоткрытии одной формы идет отказ и открывается другая - поймать ее сложно.
Все остальные закрывались на ура через обработчики ожидания.
27 Ненавижу 1С
 
гуру
10.12.21
21:44
(25) ты так часто это повторяешь, что бюджет не позволяет сделать нормальное решение. Может на Хабре статью тиснешь?
"Почему лучше дешёвый копрокод чем ничего"
28 Гений 1С
 
гуру
10.12.21
22:45
(27) дёшево не значит плохо, это значит сердито. Примеры решений на моём сайте, читай
29 luter-89
 
10.12.21
22:54
Обработчик ожидания + асинх
30 Ненавижу 1С
 
гуру
10.12.21
23:15
(28) твой сайт это КНДР. Цензура оверхед. Давай в открытые источники
31 Конструктор1С
 
11.12.21
03:29
(28) в твоём случае "дешево" значит "пустили козла в огород"
32 Kassern
 
11.12.21
09:32
(0) "эмулировать действия пользователей" - надеюсь у вас все по канону:

Shell= Новый COMОбъект("Wscript.Shell");
Shell.SendKeys("{ENTER}");
33 Kassern
 
11.12.21
09:33
вот еще думать над алгоритмами и в код смотреть, спросили, что тыкает юзвер и SendKeys все это дело, профит...
34 Вафель
 
11.12.21
09:35
(33) это называется написать робота. Вполне терпимое решение
35 Kassern
 
11.12.21
09:53
(34) такое себе решение для 1с, когда есть возможность обратиться к экспортным процедурам и выполнить нужный код. Сейчас вас послушают и вместо
Объект.ТЧ.Добавить(); будут писать Shell.SendKeys("{INSERT}");
36 Гений 1С
 
гуру
11.12.21
12:17
(30) что, моя цензура хуже, чем на мисте? попробуй тут писать то, что ты у меня пишешь, ггг
37 Ненавижу 1С
 
гуру
12.12.21
02:20
(36) регулярно тут пишу (и не только я) за твои овноподелки
38 Гений 1С
 
гуру
13.12.21
11:56
(37) видишь ли у меня на гении коммерческий сайт. Я должен там поддерживать деловой этикет. Как-то так.