|
v7: Обработка нажатия кнопки на тулбаре | ☑ | ||
---|---|---|---|---|
0
vladmenleo
01.09.23
✎
05:49
|
Здравствуйте! Работаю с классом DWX.ToolBar. Создаю дополнительные кнопки в обработке. Есть процедура ButtonClick(actID) в которой происходит собственно обработка нажатия. Все хорошо, все прекрасно. Но! Когда это все происходит во внешней обработке - все работает. Помещаю обработку в конфигурацию - кнопки отрисовываются, нажимаются, но заход в процедуру не происходит. Выяснил, что в классе вызывается вот такой код num = Wrap.FindMethod(""ButtonClick"") и он возвращает -1 именно при запуске из конфигурации и далее идет проверка If num > -1 Then ну и соответственно вызов не происходит. Что делать, может кто уже сталкивался, или я что не так делаю?
|
|||
1
Bigbro
01.09.23
✎
05:55
|
за всю жизнь на 7ке ни разу не потребовалось программно создавать доп кнопки в обработке (
эмуляцию нажатий клавиш делал - требовалось, а кнопки? почему их не нарисовать стандартно и не греть голову, в чем необходимость? |
|||
2
vladmenleo
01.09.23
✎
06:05
|
(1) Сделан аналог хитрого журнала с множественным отбором. Кнопки соответственно моделируют настоящий https://ru.paste.pics/P8JTW
|
|||
3
Злопчинский
01.09.23
✎
07:36
|
Если уже майстрячить - то майстрячили ТП с ПД...
А такую приблуду вообще первый раз слышу. Если можно - скинь обработку свою на [email protected], Интересно глянуть, может даже обработку перепишут свою одну... Или ссылку дай на класс |
|||
4
АгентБезопасной Нацио
01.09.23
✎
08:06
|
(2) Делай на ПД - там всё работает. Вид, конечно, отличается от стандартного, но все "хитрые отборы" реализуются стандартно.
Этого класса (DWX.ToolBar) тоже не знаю. В конце концов, используй RWidget |
|||
5
vladmenleo
01.09.23
✎
08:06
|
(3) собственно на табличном поле с поставщиком данных и сделано, тулбар это как дополнение. Сбросил на мыло
|
|||
6
vladmenleo
01.09.23
✎
08:09
|
(4) вопрос не про отбор, а про реакцию на нажатие по кнопке. А использовать класс ПоставщикДанных который не стандартный в 1с++, то там нужен офис на сервере
|
|||
7
Злопчинский
01.09.23
✎
08:09
|
(5) ТП я привык что по другому выглядит когда видел
|
|||
8
vladmenleo
01.09.23
✎
08:10
|
(4) класс брал здесь https://www.1cpp.ru/forum/YaBB.pl?num=1359569054/0
|
|||
9
Злопчинский
01.09.23
✎
08:11
|
(6) насколько я знаю там не офис нужен а какая-то часть от него.. вроде.. типа comctrl какой-то, который за пиктограммы отвечает.. вроде...
|
|||
10
vladmenleo
01.09.23
✎
08:12
|
(9) Ну да наверно, тока я не админ на терминальном сервере, и бодаться с админами из-за своих хотелок не буду
|
|||
11
Djelf
01.09.23
✎
08:17
|
(0) Тестовая база https://cloud.mail.ru/public/Db3c/yFJC3S1dA
Обработка нажатия работает и из внешней и из внутренней формы. |
|||
12
Злопчинский
01.09.23
✎
08:23
|
(10) сделай пользюкам на ТЗ и пусть страдают со своими хотелками из-за админов ;-)
|
|||
13
АгентБезопасной Нацио
01.09.23
✎
08:35
|
(9) в новых офисах такого нет. Свободно распространяемого компонента (он на сайте мелкомягких был отдельно) тоже уже нет в доступе. (равно как и OWC)
|
|||
14
vladmenleo
01.09.23
✎
08:41
|
(11) какая-то левая ссылка - не хочу я, чтобы приложение майл.ру имело доступ к моей почте
|
|||
15
vladmenleo
01.09.23
✎
08:42
|
(11) кинь на почту если не трудно [email protected]
|
|||
16
Djelf
01.09.23
✎
08:55
|
(14) Обычное облако... Доступа к почте оно не имеет... Скинул.
|
|||
17
Djelf
01.09.23
✎
09:02
|
+(16) Без dynwrapx.dll, gmail его не пропускает. У меня 1.1.0.0 14848
|
|||
18
vladmenleo
01.09.23
✎
09:04
|
(16) нет ничего :( сделал пустую конфигурацию, загрузил в нее обработку - не отрабатывает нажатие
код простейший Перем ТулБар; // 1.01 Добавлено начало Процедура ButtonClick(actID) Сообщить("ОбработкаНажатияКнопки, actID = " + СокрЛП(actID)); КонецПроцедуры Процедура Добавить() ТулБар.ЗагрузитьКартинкуИзРесурса(1037); // Ид кнопки должен быть в диапазоне 65536 - 66000 ТулБар.ДобавитьКнопку(65563 + 49, 49,"Ввод новой строки","Новая строка (Insert)"); ТулБар.ДобавитьКнопку(65563 + 50, 50,"Изменить (открыть) строку","Изменить (открыть) (Shift+Enter)"); ТулБар.ДобавитьКнопку(65563 + 69, 69,"Открыть объект для просмотра","Просмотр"); ТулБар.ДобавитьКнопку(65563 + 51, 51,"Ввести новую строку скопировав текущую","Копировать строку (F9)"); ТулБар.ДобавитьКнопку(65563 + 57, 57,"Ввести документ использую текущий как основание","Ввести на основании (Alt+F9)"); ТулБар.ДобавитьКнопку(65563 + 52, 52,"Пометить на удаление","Пометить на удаление"); ТулБар.ДобавитьКнопку(65563 + 58, 58,"Установить интервал просмотра документов","Интервал"); // Следующие пункты закомментированы, т.к. нет прав //ТулБар.ДобавитьКнопку(65563 + 70, 70,"Открыть бухгалтерскую операцию","Открыть операцию"); //ТулБар.ДобавитьКнопку(65563 + 67, 67,"Показать движения по документу","Движения документа"); //ТулБар.ДобавитьКнопку(65563 + 68, 68,"Открыть журнал подчиненных документов","Подчиненные документы"); ТулБар.ЗагрузитьКартинкуИзРесурса(128); ТулБар.ДобавитьКнопку(65600, 49 + 49 + 6,"Печать реестра документов по текущему отбору","Печать реестра"); // 65563 + 49 + 49 + 6 КонецПроцедуры // 1.01 Добавлено конец Процедура ПослеОткрытия() // 1.01 Добавлено начало ТулБар = СоздатьОбъект("DWX.ToolBar"); ТулБар.УстановитьКонтекстФорму(Контекст, Форма); Добавить(); ТулБар.УдалитьКнопку(0, 4); // 1.01 Добавлено конец Форма.Обновить(); КонецПроцедуры |
|||
19
vladmenleo
01.09.23
✎
09:05
|
(17) у меня dynwrapx.dll такой-же
|
|||
20
vladmenleo
01.09.23
✎
09:11
|
Вот оно че Михалыч. В глобале у меня грузится turbomd.dll Как только его комментирую, все отрабатывает :(
|
|||
21
Djelf
01.09.23
✎
09:47
|
(20) Попробуй обновить turbomd https://infostart.ru/1c/tools/14291/
|
|||
22
vladmenleo
01.09.23
✎
09:48
|
(21) Он и стоит
|
|||
23
Djelf
01.09.23
✎
09:58
|
(22) Странно, я попробовал и перед 1с++, и после, и перед formex и после. Работает.
Проверь все таки версию, 90кб ложна быть. На какой-то более старой действительно не ловит. |
|||
24
vladmenleo
01.09.23
✎
10:05
|
||||
25
Djelf
01.09.23
✎
10:21
|
(24) Ну я уже тогда ничего не понимаю...
А теперь внезапно при закрыток обработки 1С стала вылетать, даже при отключенном turbomd.dll Шаманство какое-то... |
|||
26
Djelf
01.09.23
✎
10:47
|
Так, на инфорстарте не самая последняя turbomd, см пост: https://www.1cpp.ru/forum/YaBB.pl?num=1160630298/0
И: https://www.1cpp.ru/forum/YaBB.pl?num=1160630298/0 Попробуй с этой версией... |
|||
27
vladmenleo
01.09.23
✎
11:15
|
(26) Ура !!!!! Заработало. Только действительно 1с стала крашится при закрытии. Нашел почему крашилась стояло ЗагрузитьВнешнююКомпоненту("vkloader.dll"); и в сообщении об ошибке писало
Имя события проблемы: APPCRASH Имя приложения: 1cv7s.exe Версия приложения: 7.70.0.27 Отметка времени приложения: 4573fcd8 Имя модуля с ошибкой: vkloader.dll_unloaded |
|||
28
Djelf
01.09.23
✎
11:22
|
(27) У vkloader тоже версий навалом, вот например вроде последние https://www.1cpp.ru/forum/YaBB.pl?num=1207731949
|
|||
29
vladmenleo
01.09.23
✎
11:26
|
(28) я vkloader просто для теста ставил, думал может через него загружу и будет все работать. чуда не произошло, и я забыл о нем. тупо закомментировал и все. У меня все работает, спасибо за правильную версию. Вопрос считаю закрытым
|
|||
30
Злопчинский
01.09.23
✎
12:19
|
(13) и что теперь делать?
|
|||
31
АгентБезопасной Нацио
01.09.23
✎
13:00
|
(30) как вариант - искать в закромах.
|
|||
32
Djelf
01.09.23
✎
13:25
|
(30) Переписать на ActivX VBCCR https://www.vbforums.com/showthread.php?841929-VB6-ActiveX-CommonControls-(Replacement-of-the-MS-common-controls)&p=5129155#post5129155
Это не сложно, и уже сделано ;) Gодменить 2 файлика в ПоставщикДанных https://cloud.mail.ru/public/qnZN/o7dvSEwBA и зарегистрировать VBCCR. |
|||
33
АгентБезопасной Нацио
01.09.23
✎
13:46
|
(32) спасибо! Хотя не планирую возвращаться на клюшки, но утянул в загашник.
|
|||
34
Djelf
01.09.23
✎
14:17
|
(33) Там плюс еще и в том что OWC очень плохо работают на W10x64, мне как-то удавалось запустить, но это очень нестабильно было.
А VBCCR очень неплохо работает, только не все контролы на W10x64 поднимаются, а на WinXP еще несколько работают. Но и того что работает вполне достаточно https://gyazo.com/c524cf7603a3b2b1e00b1d0dffd2d0af |
|||
35
АгентБезопасной Нацио
01.09.23
✎
14:47
|
(34) а каким образом с OWC связано?
|
|||
36
Djelf
01.09.23
✎
15:02
|
(35) Ну значит перепутал или недопутал, или не вспомнил... Да, OWC тут совсем не нужен, в (13) прочитал и попутался ;)
У меня такие замены: Оригинал ПоставщикДанных.БиблиотекаКартинок.ert использует MSComctlLib.ImageListCtrl, у меня он заменен на VBCCR17.ImageList Оригинал ПоставщикДанных.КоманднаяПанель.ert MSComctlLib.Toolbar.2 у меня заменен на VBCCR17.ToolBar Почти все в свойствах соответствует, внешний вид форм через ПоставщикДанных не изменился. |
|||
37
АгентБезопасной Нацио
01.09.23
✎
15:28
|
(36) а я уж начал обрадовываться....
|
|||
38
serpentt
05.09.23
✎
10:52
|
(33) Здравствуйте, можете кинуть Ваш примерчик как на скрине, посмотреть модуль обработки. Заранее спасибо
|
|||
39
АгентБезопасной Нацио
05.09.23
✎
11:16
|
(38) это точно мне?
|
|||
40
serpentt
05.09.23
✎
11:35
|
(39) Сори
|
|||
41
serpentt
05.09.23
✎
11:35
|
(34) Здравствуйте, можете кинуть Ваш примерчик как на скрине, посмотреть модуль обработки. Заранее спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |