gifts2017

Создание внешних компонент 1С для начинающих, часть 2

Опубликовал Аркадий Кучер (Abadonna) в раздел Программирование - Практика программирования

Учимся внедрять визуальные компоненты прямо в форму 1С
Устанавливаем какое угодно количество таймеров
Устанавливаем ловушку (hook) на 1С.
Исходники, скомпилированная библиотека, тест-отчет 1С

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1227053286 361,28Kb
25.09.09
749
.1227053286 361,28Kb 749 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Николай (coch) 11.01.07 04:29
>JohnyDeath: Support:
> http://dasharm.com/modules.php?name=Files&d_op=show_cat_files&categories_id=2
Не работает этот контрол (больше)
Судя по всему после изменений в протоколе icq
Если не прав, то работающий пример в студию :)
2. Аркадий Кучер (Abadonna) 11.01.07 06:04
Конечно не работает, если там кое-что не поменять. А у меня - работает ;)
3. defini (defini) 06.01.07 16:05
+1 адназначна!

>JohnyDeath: Дофига всего навешено...

а насчет mscomm32.ocx
для rdesktop: net use com3 \\tsclient\com1
для citrix: net use com3 \\client\com1

отлично работает.
5. Аркадий Кучер (Abadonna) 06.01.07 15:11
Придется-таки сварганить на Дельфи icq + мейлер ;)
6. Роман Мельников (Sabron) 05.01.07 13:26
7. Доржи Цыденов (support) 05.01.07 20:48
JohnyDeath, офигеть!
А где длл для ICQ?
8. Аркадий Кучер (Abadonna) 05.01.07 13:11
Да никто ж и не спорит, что можно до фига всего навесить! Просто, по моему, обсуждение выходит за рамки статьи.
Для начинающих - пинок в нужном направлении ;) Пусть сами фантазируют дальше
11. VasilyKushnir (vasilykushnir) 05.01.07 13:01
>JohnyDeath^ dll с проверкой нецензурных слов. Чтобы не писали всякую хрень в документах
14. VasilyKushnir (vasilykushnir) 05.01.07 09:02
15. Александр Орефков (orefkov) 05.01.07 09:56
Не все так просто, как кажется.
По визуальным компонентам:
Для отображения простеньких контролов типа меток, прогресбаров в простеньких формах, метод сойдет.
Но вот сделать качественно внедрение более сложных контролов либо в формах посложнее непозволит.
Куча траблов с порядком обхода, видимостью при использовании слоев, Форма.ТекущийЭлемент(), сдвигом при использовании на форме ТЗ и "Изменять размер".
По таймеру:
Как известно, ОбработкаВнешнегоСобытия происходит в idle time, то есть когда очередь сообщений пуста.
Соответственно, точность таймера теряется. Ну да ладно, такова 1С, и ОбработкаОжидания работает также.
Но с ОбработкаВнешнегоСобытия связан другой неприятный артефакт:
Во время ее выполнения фокус с активной формы теряется, а после восстанавливается.
Вот попробуйте в демо-обработке сделать таймер на 1 секунду, добавить на форму ревизит типа строка, запустить таймер, и понабирать текст в этом реквизите. Крайне неприятно будет.
16. Аркадий Кучер (Abadonna) 05.01.07 10:12
2 orefkof: разумеется я имел в виду прежде всего прогресс-бары и прочие бантики. Внедрение других контролов в общем-то бессмысленно, т.к. я с трудом себе представляю обработчики для них. Проще сделать форму ActiveX, как описано в первой части статьи.
Что касаемо таймеров: просто я восстановил убитый мной в Мастере 1С-кий таймер.
ОбработкуВнешнегоСобытия тоже аккуратно надо применять! Тут изложены принципы, а не конкретные решения
17. Александр Орефков (orefkov) 05.01.07 10:45
Ну, представить себе обработчики для них можно на http://www.1cpp.ru/docum/html/ActiveX.html
18. Аркадий Кучер (Abadonna) 05.01.07 10:55
Очень хорошо, что можно! НО - смысл? Мне почему-то кажется, что своих контролов в 1С вполне хватает (как я и писал не хватало лично мне только прогресс-бара). Ну разве еще TreeView не помешал бы...
19. Евгений Мартыненков (JohnyDeath) 05.01.07 12:53
> Мне почему-то кажется, что своих контролов в 1С вполне хватает...
А представь себе сколько ещё можно! У меня, например PivotTable стоит в связке с ChartSpace; выбор цветов самим юзером и т.д.
А вот что по этому поводу Arta (Артём) написал:

Могу сказать что реализовано у меня в базе, правда не только активиксы...

1. Графический редактор. Нужен для того чтобы операторы могли править фотографии. Ну специфика такая
2. Thumbnail view. А-ля ACDSEE на закладке в документе...
3. ICQ. Причем я управляю полностью базой по ICQ. Например могу послать t-SQL запрос, а мне в ответ придет результат ответа. Удобно когда отдыхаешь и имеешь инфо оперативно через телефон.
4. Сканирование изображений.
5. Доделываю работу с с модемом через TAPI. Сделаю очередной автоинформатор, раньше делал на линуксе, надоело...
6. PDF, смотреть прям в 1С
7. Детект баркодов из изображения. Иными словами сфотографировано/отсканировано изображение с баркодом. Надо проверить, соответствует ли оно данному документу... Опять же специфика...
8. dll с проверкой нецензурных слов. Чтобы не писали всякую хрень в документах
9. Два варианта dll работы с ком портом. Кстати, mscomlib32 не работает через rdesktop и citrix.
10. Ну и весь набор от микрософта toolbar, statusbar, treeview, mschart и т.д.


Офигеть, не правда ли? )))
20. Евгений Стоянов (quick) 18.10.07 13:54
Самое нормальное описание из всех встречавшихся! На вашем примере написал свою первую компоненту. Спасибо Аркадий Арнольдович! :) +1
21. kitt al;dskjf;ldasjkf (kitt) 30.06.08 09:20
(18) по моему из элеменов управления в 1с 7.7 не хватает элемента ActiveX :)
22. Оракул Айметдинов (jhfrek) 27.08.10 19:37
Супер! Очень доходчивая статья.
23. Константин (Sofokl) 24.10.11 10:23
Давно хотел попробовать написать внешнюю компоненту для 1с 8.2, по материалам статьи написал простую компоненту на QT 4 для 1с.
24. Валерий Максимов (theshadowco) 27.10.11 20:40
(23) Sofokl, если есть возможность, можешь прислать пример компоненты для 1С на qt, которая хотя бы hello wold выводит - у меня все никак не получается нормальный com собрать.
Заранее благодарен.
25. Алексей Миронов (a_mironov) 11.12.11 04:39
Спсибо за исходники! Будем изучать
26. Yuriy Poltorak (yp977) 25.08.12 12:50
Господа, остались ли у кого-нить исходники компоненты на Qt для 1С?
Поделитесь плиз.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа