|   |   | 
| 
 | 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 | 
        Если уже майстрячить - то майстрячили ТП с ПД... 
 А такую приблуду вообще первый раз слышу. Если можно - скинь обработку свою на e.meil@mail.ru, Интересно глянуть, может даже обработку перепишут свою одну... Или ссылку дай на класс | |||
| 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) кинь на почту если не трудно vladmenleo@gmail.com     | |||
| 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) Здравствуйте, можете кинуть Ваш примерчик как на скрине, посмотреть модуль обработки. Заранее спасибо     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |