Имя: Пароль:
1C
1С v8
Программные клики в 1с.
,
0 Креатив
 
23.09.21
11:14
В продолжении ветки ЗУП 3.1. Перерасчёт всех сотрудников оптом в увольнении списком.
Как в 1С эмулировать нажатие кнопок/ссылок (запускать выполнение команд).
Пользователям лень заходить в расшифровку каждой строчки, нажимать на пересчитать и ок.
1 Смотрящий
 
23.09.21
11:16
(0) Спроси их про деньги. Им их не лень получать ?
2 ДенисЧ
 
23.09.21
11:19
(0) Нарисуй им кнопку "пересчитать расшифровку всех строк"
3 GANR
 
23.09.21
11:23
(0) Совершенно ненужная вещь. Нужно просто сделать кнопку, которая массово пересчитает все, что они поштучно кликают как говорит (2).
4 Креатив
 
23.09.21
11:26
(2)(3)Если вы про программное дублирование кода пересчёта, то такая мысль была. Но как только 1С поменяет алгоритм расчёта(законодательство изменится), придётся снова всё переделывать.
5 Жан Пердежон
 
23.09.21
11:27
(4) а дублировать то зачем?
6 Мимохожий Однако
 
23.09.21
11:29
(4) Они не про это
7 Kassern
 
23.09.21
11:32
(0) как то так тебе надо?))
Процедура ЭмуляцияДляПрокрастинации()
ТвояКнопка(неопределено) //вот так можешь юзать кнопку)
КонецПроцедуры
8 Креатив
 
23.09.21
11:33
(5)(6)Я посмотрю, где расположены процедуры и функции по расчёту. Если окажется, что в форме строки документа, то я пока не представляю, как их запустить.
9 Креатив
 
23.09.21
11:34
(8)+ из основной формы документа.
10 Kassern
 
23.09.21
11:34
(0) а если уж совсем хочешь по хардкору, то....))
Shell= Новый COMОбъект("Wscript.Shell");
Shell.SendKeys(...
11 Мимохожий Однако
 
23.09.21
11:36
(9) Включи отладчик, сделай точку останова на команды пользователей по кнопкам и все эти команды запихни в одну кнопку с перебором строк
12 Bigbro
 
23.09.21
11:46
я делал как в (10) когда надо было кнопки посылать.
13 mikecool
 
23.09.21
11:48
в конфигураторе: сервис - запустить для записи журнала действий пользователя + (10)
)))
14 mikecool
 
23.09.21
11:48
сейчас придет Гений и выдаст мегарешение с использованием стиральной машины
15 Креатив
 
23.09.21
12:05
(11)Загвоздка в том, что формы две.  Основная и форма строки, которая расшифровывает каждую строчку в отдельности. И в ней происходит расчёт.
16 Kassern
 
23.09.21
12:10
(15) вы думаете, что там с принципами ООП все плохо? Полюбому расчет из какого то общего модуля происходит и к нему можно программно постучаться
17 Креатив
 
23.09.21
12:12
(16)Проверю.
18 Креатив
 
23.09.21
12:37
(16)Ситуация ещё хуже, чем я думал. Большинство действий производится в модуле формы строки. Есть отсылки к общим модулям при расчёте среднего и чего-то ещё. Плюс ещё создаётся документ уволнение(без последующей записи) и там какие-то манипуляции происходят.
Получается то же дублирование. Тупиковый путь.
19 Креатив
 
23.09.21
12:40
Попробую осуществить следующий план.
1. В основной форме вызвать команду расшифровки, открывающую форму строки с добавлением своего параметра.
2. В форме строки при открытии проверять наличие параметра. И выполнять команды расчёта и нажатия кнопки ок.
20 GANR
 
23.09.21
16:17
(4) Для меня выработался закон трёх "не":
- не копипастить (дублировать)
- не использовать первый попавшийся
- не вставлять бизнес-логику в код
21 МнеТолько Спросить
 
23.09.21
16:29
(18)Могу я уточнить где проблема? В открытии\создании формы? Или в запуске процедур этой формы?
22 fisher
 
23.09.21
16:37
(20) > не вставлять бизнес-логику в код
А куда, если не спрашивать гусар?
23 Жан Пердежон
 
23.09.21
16:55
(22) очевидно, что в данные!
ВЫПОЛНИТЬ(СправочникБизнесЛогики.Код);
24 Жан Пердежон
 
23.09.21
17:01
(18) только хотел написать, что ты еще ЗУП не видел, но это, судя по всему, он и есть. Там вся бизнес-логика в экранных формах зашита. Любая автоматизация - привет копи-паста.
В моём личном топе это была Худшая типовая конфа №1. Была, пока не вышла 1С УХ.
25 Кирпич
 
23.09.21
19:08
26 Креатив
 
24.09.21
09:51
(21)Случись, что нужная процедура/функция не является экспортной и финиш.
(25)Кликеры - это последний вариант. Нужен уж очень навороченный, который может распознавать элементы форм.
27 Kassern
 
24.09.21
09:55
(26) напиши свой на питоне, чтобы все распознавал. Помню как то мини бота писал, который кликал там где мне надо и когда надо) Там ничего сложного нет, По клавише запускаешь код, программма может сделать скрин выбранного участка, далее без проблем сравнить с нужной картинкой, если совпадение до определенного уровня, тогда тыкнуть как тебе надо)
28 Kassern
 
24.09.21
09:57
(26) "то нужная процедура/функция не является экспортной" ну так сделай ее таковой, или перенеси всю эту бизнес логику в какую нить обработку внешнюю. А далее можешь ее прикрутить в 1с в виде кнопки. По нажатию, получаешь данные документа и заполняешь как тебе надо.
29 Мультук
 
гуру
24.09.21
09:58
(24)
Полностью согласен.
Есть впечатление, что ЗУП писала команда вообще "оторванная" от других команд (БП, УТ).
30 Креатив
 
24.09.21
10:10
(27)На питоне не катит. Если и писать, то ВК для 1С, чтобы понимала элементы форм 1С. Только вот я сижу на сдельно-почасовой оплате. И если буду заниматься такими делами, то очень быстро закончится еда.
(28)Тот же копипаст. 1С следовало пойти этим путём. Тогда использовать было бы одно удовольствие.
31 maximkasuper
 
24.09.21
11:13
(25) Сделайте через расширение формы. С поддержки снимать не надо, но при этом есть доступ ко всем методам формы.
32 Креатив
 
06.10.21
11:44
(31)Прямого доступа не вижу. В расширение методы добавлять нужно?
33 ADirks
 
06.10.21
11:57
(29) на ЗУПе у них традиционно самая лучшая и привилегированная команда
привилегированная - потому что траву им подтаскивают без перерыва, и самую годную
самая лучшая - потому что поддерживать и развивать это чудо могут только наиболее крутые перцы
2 + 2 = 3.9999999999999999999999999999999...