DLL-Loader: ВК для 1С

Публикация № 86142

Разработка - Разработка внешних компонент

111
Иногда хочется с минимальными усилиями добавить какой-нибудь интересный метод для работы с 1С, но писать каждый раз компоненту по технологии создания внешних компонент (ТСВК) от 1С достаточно трудоемко, да и иногда просто лень разбираться. Между тем, написать обычную (не COM, и не AciveX)  DLL в состоянии практически любой программист. Кроме того, использование обычной DLL имеет несомненный плюс, заключающийся в отсутствии регистрации ее в реестре, что снимает проблемы  недостаточности прав у пользователей без локальных административных прав на данную машину.

 

Качать по ссылке: http://dev.1tsm.ru/project/132

    Настоящая компонета написана по ТСВК и позволяет использовать любые методы обычной DLL, написанной по определенным, несложным правилам.

  Компонента имеет метод:

CallDllMethod(ПолноеИмяОбычнойDLL,ИмяМетода,Параметр1,Параметр2,Параметр3,Параметр4,Параметр5);

где:

ПолноеИмяОбычнойDLL,ИмяМетода - тип значения строка

Параметр1-Параметр5 - параметры, принимаемые методом обычной DLL, любой тип значения (variant)

Возвращаемое значение -  любой тип значения (variant)

Все параметры обязательны, если в вызываемом методе простой DLL используются не все пять параметров (Параметр1-Параметр5), неиспользуемым параметрам можно присвоить любое значение:

0, "", Неопределено (в 8х) и т.п. 

Пример:

ПутьDLL=КаталогИБ()+"SampleDLL.dll";

CallDllMethod(ПутьDLL,"ConcatStrings","Раз+","Два+","Три+","Четыре+","Пять"); - все параметры используются

CallDllMethod(ПутьDLL,"ProcessInfo","","","","",""); -параметры не используются.

Обычную DLL можно писать на любом языке.

Кроме того, бонусный метод (только для 8х, в 7.7 тип этой переменной не поддерживается)

Get_IAsyncEvent(); - возвращает ссылку на интерфейс 1С IAsyncEvent, что позволяет в дальнейшем

генерировать любые внешние события прямо из кода 1С

Содержание архива:

DLL_LOADER.dll  - собственно файл самой ВК

SampleDLL.dll - пример обычной DLL, методы которой вызываются из DLL_LOADER

SampleDLLSource  - папка с исходниками обычной DLL (Delphi7, код прокомментирован)

DLL_LoaderTest.epf - тестовая обработка 8.1

DDL_LOADER_TEST.ert  -тестовая обработка 7.7

Примечание: это и есть readme

Скачать без ограничений можно здесь: http://dev.1tsm.ru/project/132

Метод добавлен в MiracleV8http://dev.1tsm.ru/project/110

111

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
0. Abadonna 3833 14.06.11 07:42 Сейчас в теме
Иногда хочется с минимальными усилиями добавить какой-нибудь интересный метод для работы с 1С, но писать каждый раз компоненту по технологии создания внешних компонент (ТСВК) от 1С достаточно трудоемко, да и иногда просто лень разбираться. Между тем, написать обычную (не COM, и не AciveX) DLL в состоянии практически любой программист. Кроме того, использование обычной DLL имеет несомненный плюс, заключающийся в отсутствии регистрации ее в реестре, что снимает проблемы недостаточности прав у пользователей без локальных административных прав на данную машину.


Перейти к публикации

1. Арчибальд 2708 14.06.11 07:42 Сейчас в теме
Хоть бы кто высказался :o
5. Abadonna 3833 14.06.11 08:51 Сейчас в теме
(1)
Хоть бы кто высказался

_____________________________________
— Пардон! — отозвался Фагот. — Я извиняюсь, здесь разоблачать нечего, все ясно.

(с) Булгаков ;)
2. 1cmax 151 14.06.11 07:53 Сейчас в теме
Скачал, но еще не проверял, за идею +
3. vkr 101 14.06.11 08:05 Сейчас в теме
(0) Уважаемый Абадонна !
Правильно ли я понимаю, что, если у меня есть свои DLL-ки, написанные на С++ и Ассемблере (ну, типа,
для графики и обмена данными), то можно их спокойно пристегнуть к 1С-базе с помощью Вашего "посредника" ?
Если да, то это просто бальзам на душу... :)
Жаль, что +100 тут не допускается...
4. Abadonna 3833 14.06.11 08:38 Сейчас в теме
(3) Просто так пристегнуть не получится.
Функции Вашей длл обязательно должны быть полностью аналогичны по параметрам из файла-примера *.dpr
Но уж внутрь туда можно спокойно накопипастить всё из тех длл
6. vkr 101 14.06.11 09:51 Сейчас в теме
(4) Да у меня, насколько помню (давно было :))
больше трех входных параметров и не использовалось.
И вообще старался через адреса блоков параметров работать...
7. Abadonna 3833 14.06.11 10:25 Сейчас в теме
(6) Параметров пять я взял с супер запасом. Но дело не только в количестве.
Самое главное, каждая функция должна иметь именно такой вид, и никакой иначе
function ИмяФункции(param1,param2,param3,param4,param5:olevariant):olevariant; stdcall;
Т.е. параметров обязательно 5 (другое дело, что их можно не использовать), параметры обязательно вариантного типа, возвращаемое значение - тоже вариантного типа. Иначе сам DLL_Loader не поймет, что он вызывает.
А уж в внутри этой функции в нашей обычной DLL можем писать, что угодно, используя (или не используя) param1-param5.
Можно, например, из нее вызвать "родную" функцию, скопированную из другой длл, передав в нее что надо через param1-param5.
Т.е. получится еще одна прокладка: DLL_LOADER вызвал экспортную функцию нашей обычной DLL, эта функция вызвала скопированную откуда-нибудь
неэскпортную функцию, результат вернула в LOADER, а уж тот - в 1С.
Может, излишне подробно написал, но во избежание ;)
Кстати, вчера поленился проверить, думаю, что в нашей экспортной функции можно через LoadLibrary вызвать еще какую-нибудь dll, вызвать метод, и вернуть результат в LOADER-1C
8. Ne'я 14.06.11 14:05 Сейчас в теме
10. cool.vlad4 45 14.06.11 14:18 Сейчас в теме
(8) я думаю, что нет, dynwrap не ВК, а просто com компонента...
9. Abadonna 3833 14.06.11 14:08 Сейчас в теме
(9) Первый раз про такой слышу...
11. cool.vlad4 45 14.06.11 14:19 Сейчас в теме
12. Abadonna 3833 14.06.11 14:20 Сейчас в теме
Именно, чтобы уйти от мерзкого regsvr32 я и освоил в свое время ТСВК.
ЗагрузитьВнешююКомпоненту как-то поприличнее будет (в контексте 1С)
13. Ne'я 14.06.11 14:20 Сейчас в теме
а принципиальные отличия - все-таки, для чайника?
14. Abadonna 3833 14.06.11 14:32 Сейчас в теме
(13) Отличия от чего? От неизвестной мне доселе dynwrap?
Ну ладно, сходу:
Библиотека является результатом труда нескольких разработчиков.
Вчера утром в голову @@нуло, в обед было готово.
Родные интерфейсы 1С (тот же IAsyncEvent) dynwrap получит? Да никогда.
Ну и т.д. А что идеи примерно совпали - дык все идеи в воздухе витают
15. Ne'я 14.06.11 14:36 Сейчас в теме
:D Прошу считать мой неловкий вопрос желанием разобраться в отличиях ВК и СОМ.
16. Abadonna 3833 14.06.11 14:41 Сейчас в теме
ВК - может быть и COM, и АсtiveX, и просто dll
Смотря применительно к чему. В данном случае DLL_LOADER - COM, но со стандартной загрузкой в 1С. Если к нему приделать, например, afx-окно, он будет уже фактически ActiveX.
MiracleV8 - фактический ActiveX, но с возможностью стандартной загрузки. Тем не менее, к ее методам (так 1С сама по ЗагрузитьВнешнююКомпоненту производит регистрацию в реестре)
можно обращаться и из любых других программ, из той же Дельфи через CreateOleObject
17. Ne'я 14.06.11 16:56 Сейчас в теме
Кроме того, использование обычной DLL имеет несомненный плюс, заключающийся в отсутствии регистрации ее в реестре, что снимает проблемы недостаточности прав у пользователей без локальных административных прав на данную машину

Если я правильно поняла, по крайней мере, для 7-ки, у пользователя, не имеющего прав на регистрацию dll в реестре нужно строить трехэтажную конструкцию из vkloader-а, dllloader-а и конкретной dll?
А с 8-кой эта проблема так и остается неразрешимой?
18. Abadonna 3833 14.06.11 17:04 Сейчас в теме
(17) vkloader разве не требует регистрации? что-то одно уже должно быть зарегено под полными правами. Или vkloader, или dllloader, или та же MiracleV8, у которой есть метод
RunAs, который позволяет запустить любую прогу (в т.ч. и regsvr32) от имени и с паролем админа.
Кстати, обычная V7Plus тоже фиг зарегится/запустится без локальных админских прав.
А с 8-кой эта проблема так и остается неразрешимой?

Это вовсе не проблема 1С, а параметры безопасности Windows и Вашей сетевой политики. Лично мы у себя и в страшном сне представить не можем, чтобы юзверь самолично себе на комп какой софт захотел - такой и поставил. Если каждому юзверишке позволить запись в реестр - это и подумать страшно :(
19. Ne'я 14.06.11 17:06 Сейчас в теме
vkloader (далее ВК) - внешняя компонента для 1С-Предприятия 7.7, которая может загружаться без ее регистрации в реестре, и загружать другие внешние компоненты без их регистрации. Предназначена для беспроблемной загрузки внешних компонент пользователями, не имеющими прав на запись в HKCR ветку реестра.

Это из http://openconf.1cpp.ru/vk/vkloader/
21. Abadonna 3833 14.06.11 17:17 Сейчас в теме
(19)Используем вот это Запуск от имени
и никогда никаких проблем с отсутствующими правами.
Если говорить о терминалке (а по серьезному я и не вижу другого использования 1С, а если несерьезно - но можно юзверям и права дать), то там достаточно один раз админу запустить 1С с ЗагрузитьВнешнююКомпоненту и оно прорегится для всех.
20. Abadonna 3833 14.06.11 17:06 Сейчас в теме
+[7]
то в нашей экспортной функции можно через LoadLibrary вызвать еще какую-нибудь dll

Не поленился, сейчас только проверил. Добавил в SampeDLL
{устанавливает прозрачность главного окна 1С 0(невидимо)-255(полностью непрозрачно) /param1/}
function SetMainTransparency(param1, param2, param3, param4, param5: olevariant): olevariant; stdcall;
const LWA_COLORKEY = $00000001;
const LWA_ALPHA = $00000002;
const WS_EX_LAYERED = $00080000;
var AStyle: Integer;
var user32: UINT;
var _SetLayeredWindowAttributes: function(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; stdcall;

begin
  user32 := LoadLibrary('user32');
   if user32 <> 0 then begin
    @_SetLayeredWindowAttributes := GetProcAddress(user32, 'SetLayeredWindowAttributes');
    if @_SetLayeredWindowAttributes <> nil then begin
      AStyle := GetWindowLong(GetActiveWindow, GWL_EXSTYLE);
      if (AStyle and WS_EX_LAYERED) = 0 then SetWindowLong(GetActiveWindow, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
      _SetLayeredWindowAttributes(GetActiveWindow, 0, param1, LWA_ALPHA);
    end;
  end;

  RESULT := S_OK;
end;
Показать

Результат на картинке, сквозь главное окно даже код в конфигураторе видно, которым она вызывается ;)
Блин, сайт оформатировал, как его не просили. const LWA_COLORKEY = Доллар(hex-число)00000001;
Ниже то же самое для LWA_ALPHA и WS_EX_LAYERED
Прикрепленные файлы:
22. Abadonna 3833 15.06.11 15:28 Сейчас в теме
Для пользователей Miracle: приделал метод, версия 2.1.2.2
MiracleV8
Вызов, работа - один в один, как тут
23. 1yh1 15.06.11 17:25 Сейчас в теме
Может пригодиться. Даже когда-то нужна была.
А нельзя ли, так написать, чтобы не специальную dll писать, а пользоваться уже имеющимися, например так:
DLL.CallDLLMethod("my.dll", "spec_function", 132, "int32", 132, "int32", "Текст", "wchar*" и ещё аргументов)
либо вместо "spec_function" писать номер импортируемой функции "#3"

а вообще-то в dynwrap это есть
24. ValeriVP 15.06.11 18:19 Сейчас в теме
вот было бы Native и возможности как у dynwrap - цены бы небыло. а так - поделка, не более.
26. Abadonna 3833 15.06.11 18:23 Сейчас в теме
(24) О каких возможностях dynwrap идет речь?
Вызывать API? Так в примере практически одни API и вызываются. Какие еще возможности нужны?
27. ValeriVP 21.06.11 12:20 Сейчас в теме
(26)dynwrap обеспечивает работу с любой DLL, а не только с теми, у которых в функциях по 5 параметров
28. Abadonna 3833 21.06.11 13:05 Сейчас в теме
(27) Типа слышал звон, а не знаю, где он?
Пять параметров это в транзитной функции, которая дальше может вызывать, что угодно, и с какими угодно параметрами.
Малой кровью, и ноль трудами обошелся.
А в общем, не нравится - не ешь.
Тем более, я это просто как метод в Миракл прикрутил, а уж та общается... с чем только не общается...
29. cool.vlad4 45 21.06.11 13:13 Сейчас в теме
(27) а как вы события будете отлавливать? COM компонента (или ActiveX) и ВК от фирмы 1С это разные вещи...зачем их сравнивать
25. ValeriVP 15.06.11 18:20 Сейчас в теме
не вижу широких возможностей применения
30. Душелов 3897 28.06.11 16:22 Сейчас в теме
Помнится делал я подобное, но только для .NET-овских контролов, с отловом событий.
А идея да, хороша )
31. Tahallus 426 15.08.11 10:56 Сейчас в теме
Ошибка при вызове метода контекста (Get_IAsyncEvent): Произошла исключительная ситуация (0x8000ffff)
ИнтерфейсСобытий=LL.Get_IAsyncEvent();
по причине:
Произошла исключительная ситуация (0x8000ffff)

А как с этим бороться? вышло под 8.1
32. Abadonna 3833 01.10.11 05:00 Сейчас в теме
(31)
ИнтерфейсСобытий=LL.Get_IAsyncEvent();

До этого на 8.1 не проверял, сейчас раз 20 нажал кнопку - никаких проблем.
Прикрепленные файлы:
33. Tota 25.10.11 18:29 Сейчас в теме
Количество параметров бы расширить, а то 5 не хватает.
35. Abadonna 3833 25.10.11 18:32 Сейчас в теме
(33) Как не пытался придумать, даже для пяти применения найти не смог. Вон в винапи практически двумя дело обходится: Lparam да WParam. В параметр же что угодно затолкать можно, хоть тот же самый СписокЗначений в одноэсовской терминологии
37. Abadonna 3833 25.10.11 19:01 Сейчас в теме
(33)+/35/ Подсказать, как СТО параметров передать? ;) Делаешь в 1С СписокЗначений, заполняешь там сто значений, и передавай ПЕРВЫМ параметром, а в своей либе уже обрабатывай через TStringList, например. Так что четыре остальных у тебя даже без дела останутся.
34. Tota 25.10.11 18:31 Сейчас в теме
Так всё таки можно ли использовать Events?
36. Abadonna 3833 25.10.11 18:34 Сейчас в теме
(34) У меня на 8.1 и на 8.2 events без проблем работает. Воссоздать ситуёвину, когда он не работает, так и не получилось. Но не особо-то и старался...
38. netroot 11.11.11 14:37 Сейчас в теме
Здравствуйте. Уважаемый автор, скажите оптимизирована ли данная ВК под периодический вызов одной и той же функции из одной и той же dll? Т.е. при каждом ли вызове метода CallDLLMethod вызываются LoadLibrary и GetProcAdress? Спасибо.
39. Abadonna 3833 11.11.11 15:11 Сейчас в теме
(38)
Т.е. при каждом ли вызове метода CallDLLMethod вызываются LoadLibrary и GetProcAdress?

Именно так. Не заморачивался ;)
Кстати, и не советую эту использовать, лучше скачать MiracleV8. Там этот метод прикручен, но много еще всяких вкусностей
42. jdan 6 26.12.12 07:25 Сейчас в теме
Как можно через DLL_LOADER.dll загрузить dll которая имеет class примерно так:



ЗагрузитьВнешнююКомпоненту("DLL_LOADER.dll");
LL=ПолучитьCOMОбъект("","AddIn.DLL_LOADER_CLASS");



//для примера грузим DLL_LOADER.dll в ней есть класс
DLL_LOADER_CLASS



ПутьDLL="
DLL_LOADER.dll
";



// а тут хотелось бы вызвать AboutDLL
через class
DLL_LOADER_CLASS

А=LL.CallDllMethod(ПутьDLL,"
DLL_LOADER_CLASS
:: AboutDLL",Неопределено,Неопределено,Неопределено,Неопределено,Неопределено);



//Естественно у меня в реальности своя DLL и вызывать саму себя DLL_LOADER.dll
нет необходимости, так для примера

Спасибо с уважением Сергей



sk7777@yandex.ru(39)
40. alexkl 09.12.11 07:40 Сейчас в теме
Удивительная вещь специализация - вызывает к жизни посредников для сокращения затрат
41. fixin 3862 06.07.12 14:39 Сейчас в теме
Разочарован. Прочитал громкое название, думал можно готовую любую DLL вызывать, а оказалось только функции по 5 параметров можно, увы...
Придется юзать DynaWrap, спасибо за наводку комментаторам.
Абадона, сделай вызов типизированных параметров, будет удобнее.
Писать DLL-посредник - это не для 1сников, тут и так мозги кипят...
43. tailer2 23.01.18 18:43 Сейчас в теме
не работают ссылки на скачать
Оставьте свое сообщение

См. также

PinkRabbitMQ - Native API компонента 1С с открытым исходным кодом, для обмена сообщениями через RabbitMQ 135

Инструменты и обработки Программист Архив с данными v8 Бесплатно (free) Разработка внешних компонент

PinkRabbitMQ представляет собой Native API компоненту для 1С Предприятия 8 (Windows 32bit и 64bit) с открытым исходным кодом на с++ (можно собрать компоненту самостоятельно). PinkRabbitMQ это низкоуровневая компонента которая реализует обмен по протоколу AMQP с брокером сообщений RabbitMQ. Для организации высокоуровнего обмена между информационными базами предназначен Адаптер. Компонента разрабатывается в рамках проекта Адаптер.

29.07.2019    6290    401    Begemoth80    100       

.Net Core, обмен с 1C по TCP/IP между различными устройствами 15

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент

Часто нужно обмениваться данными с клиентом 1С из различных устройств, между клиентами 1С, а также при виртуализации между разными ОС на компьютере. Это кроссплатформенная ВК, позволяющая обмениваться сообщениями по TCP/IP между различными устройствами по определенному протоколу.

28.09.2016    17152    Serginio    8       

Net Core. Динамическая компиляция класса обертки для получения событий .Net объекта в 1С 8

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент

Часто нужно использовать события объектов .Net. Например событие от COM порта, поступление сообщений по WhatsAp, сообщение об изменение в директории итд. Напрямую этого сделать нельзя, но можно сделать класс обертку и через него получать ВнешнееСобытие

14.09.2016    13189    Serginio    1       

.Net Core, 1C, динамическая компиляция, Scripting API 10

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка внешних компонент

Очень часто приходится использовать динамический код в 1С, используя Выполнить или Вычислить. Аналогичная задача и для использования скриптов на .Net. Я постарался показать, как можно скрестить ежа с ужом и получить удобный код. В этой статье много вражеского кода для чистого одноэсника, но все когда-то бывает впервые.

07.09.2016    15315    Serginio    7       

1С, Linux, Excel, Word, OpenXML, ADO, Net Core 31

Инструменты и обработки Программист Архив с данными v8 Бесплатно (free) Разработка внешних компонент

В данной статье показаны примеры кроссплатформенной работы с файлами Excel и Word (xlsx,docx) с помощью библиотеки OpenXML и Net Core

22.08.2016    16880    51    Serginio    14       

Асинхронное программирование в 1С через использование классов .Net из Native ВК 14

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент

Это продолжение статьи Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux II http://infostart.ru/public/541518/ В этой статье покажу, как можно асинхронно вызывать асинхронные методы и вызывать ВнешнееСобытие в 1С из сборки .Net

09.08.2016    14301    Serginio    3       

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    25288    Serginio    22       

Быстрое создание Внешних Компонент на C#. Примеры использования Глобального Контекста, IAsyncEvent, IExtWndsSupport, WinForms и WPF 41

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент

В большинстве случаев хватает и обычного COM объекта, учитывая, что в 8.х можно использовать события. Но иногда нужно использовать Глобальный Контекст для вызова глобальных функций, таких как Сообщить, NewObject и т.д. Кроме того, для использования форм нужен дескриптор окна 1С. Это продолжение статей Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент. http://infostart.ru/public/238584/ Там же лежат и исходники .NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия http://infostart.ru/public/417830/ 1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp http://infostart.ru/public/434771/ Использование классов .Net в 1С для новичков http://infostart.ru/public/448668/

15.02.2016    24195    Serginio    13       

Подсветка синтаксиса 1С в текстовых редакторах Atom, Sublime Text, VS Code 101

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика Разработка внешних компонент

Пакеты, добавляющие поддержку синтаксиса языка 1С:Предприятие 8 в текстовые редакторы Atom, Sublime Text и VS Code. И не только.

02.02.2016    22671    nixel    38       

Использование классов .Net в 1С для новичков 147

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    62619    Serginio    104       

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия 51

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Разработка внешних компонент Математика и алгоритмы

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    41616    Serginio    35       

1С с "плюсами" 74

Статья Программист Нет файла v8 Бесплатно (free) Разработка внешних компонент Математика и алгоритмы Универсальные функции

- Разработана методика подключения внешней компоненты, снимающая ограничения на типы данных аргументов и возвращаемого значения. - Проведено документирование основных типов данных (объектов, интерфейсов) платформы. - Разработан объект «Делегат» для реализации функциональных объектов (указатель-на-функцию). - Разработана концепция итератора произвольного доступа для основных контейнеров платформы с целью сопряжения со стандартной C++ библиотекой. - В процессе разработки механизм 1С классов (наследование, интерфейсы) для возможности использования парадигм объектно-ориентированного программирования на уровне кода.

14.10.2015    19560    IntelInside    47       

Генерация штрих-кода для вставки его в 1С при работе в Linux 4

Статья Системный администратор Программист Нет файла v8 1cv8.cf Linux Бесплатно (free) Разработка внешних компонент

В Linux есть отличная команда barcode, которая генерирует штрих-коды в векторном формате ps. Но 1С не понимает такие форматы. Более того, barcode генерирует штрих-код на размер листа А4 или Letter. Установка пользовательского размера листа не увенчалась успехом. Но не будем же мы вставлять изображение штрих-кода размером с лист А4… Однако есть способ, как решить данные проблемы.

01.07.2015    13426    rudjuk    4       

Простейший способ создания штрих-кода в формате PNG из командной строки в Linux Ubuntu 10

Статья Программист Нет файла v8 1cv8.cf Linux Бесплатно (free) Разработка внешних компонент

В Linux есть огромное количество способов создания линейного штрих-кода. В данной статье мы рассмотрим, как сгенерировать графическое изображение штрих-кода прямо из командной строки. При этом, решение будет совершенно бесплатным и очень простым как в установке, так и в использовании.

29.06.2015    9634    rudjuk    15       

Компилирование внешней компоненты AddInNative в ОС Linux 46

Статья Системный администратор Программист Нет файла v8 1cv8.cf Linux Бесплатно (free) Разработка внешних компонент

В статье отражены некоторые моменты, которые нужно учесть, чтобы скомпилировать пример 1С-вской внешней компоненты AddInNative в ОС Linux.

14.01.2015    17455    q_i    20       

Использование внешних COM-компонент (.dll) или любых клиентских методов в регламентных заданиях серверной базы. 50

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка внешних компонент Математика и алгоритмы

Для расширения возможностей платформы 1С существует огромное количество внешних компонент (дополнительные функции, взаимодействие с софтом и железом других производителей, ключи защиты). К сожалению, большинство из них написано на технологии .COM и не могут использоваться на сервере. Для использования в регламентных заданиях серверной базы их приходится переписывать на Native API. Однако, иногда нет возможности переписать компоненту на новую технологию, но нужно вызвать ее в регламентном задании на сервере.

10.12.2014    39150    ekaruk    51       

Мини-Эверест: Native ВК для 8.х 18

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Windows Бесплатно (free) Разработка внешних компонент

Список и свойства HDD, список и свойства ОЗУ, список запущенных процессов (для терминала - всех пользователей с указанием номера сессии), список запущенных сервисов, характеристики BIOS

20.08.2014    13663    35    Abadonna    7       

ВК для работы с файлами FilesNative.dll 28

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Windows Бесплатно (free) Разработка внешних компонент

Компонента реализует некоторые методы работы с файлами (архивами). Поддерживаемые форматы распаковки архивов: ZIP, JAR, XPI, BZ2, BZIP2, TBZ2,TBZ,RAR, R00, ARJ, Z, TAZ, LZH, LHA, 7Z, CAB, LZMA, LZMA86, ISO, XAR, MSI,RPM, TAR, GZ, TGZ, TPZ

18.06.2014    14506    77    Abadonna    9       

NetNative: ВК для работы с сетью 61

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Россия Windows Бесплатно (free) Разработка внешних компонент

Прослушивание UDP-портов, посылка UDP-сообщений, возможность организации UDP-чата, некоторые сетевые команды. Написана по технологии Native

23.02.2014    16352    142    Abadonna    10       

Отслеживание изменений каталога в REAL-TIME: Native ВК для 8.х 58

Инструменты и обработки Программист Архив с данными v8 Россия Windows Бесплатно (free) Разработка внешних компонент

Давно у меня была задумка отследить, например, появление определенного файла в каталоге базы данных без использования различных таймеров и обработчиков ожидания. Настоящая ВК отслеживает изменения в выбранном каталоге в реальном времени и генерирует в 1С соответствующие внешние события. Выбранный каталог может быть как папкой, так и целым диском.

09.10.2013    17516    229    Abadonna    38       

Трей-мессенджер: Native ВK для 8.х 97

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Россия Windows Бесплатно (free) Разработка внешних компонент

Иконка 1С в трее с popup-mеnu, баллуны, оповещения, обратная связь. Выполнена по технологии Native, не требует регистрации в реестре и особых прав пользователя. Имеет обратную связь с 1С через генерацию внешних событий. Имеет popup-menu на иконке в трее для управления окном 1С (закрыть, скрыть, показать+ 2 пункта генерации событий). Есть возможность убрать кнопку главного окна из панели задач.

23.09.2013    23172    405    Abadonna    121       

Коллективная разработка на 1С версии 7.7 и Git 21

Статья Программист Нет файла v7.7 Россия Windows Бесплатно (free) Инструментарий разработчика Разработка внешних компонент

В данной статье я не буду рассматривать работу с системой контроля версий Git, для этого есть специальные ресурсы, например http://git-scm.com/book/ru. Я только расскажу тем, кто привык и любит Git, подружить старую добрую 7-ку и систему контроля версий Git.

17.09.2013    15170    s.nek    12       

Обработка изображений 1С средствами .Net framework 8

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Разработка внешних компонент

1С:Предприятие не предоставляет штатных средств работы с изображениями по изменению размеров и наложению водяных знаков. Данный функционал часто востребован, например, в Интернет-магазинах, когда из 1С происходит экспорт товаров с фотографиями. Раньше для этого использовали выгрузку фотографий на диск и вызов утилит через командную строку. Понятно, что гибкостью и скоростью такой вариант не обладает, плюс еще могут возникнуть проблемы с безопасностью и учетом временных файлов.

19.04.2013    17349    Elisy    13       

Внешняя компонента для работы со строками 84

Инструменты и обработки Программист Архив с данными v8 Россия Windows Бесплатно (free) Разработка внешних компонент

ВК по технологии Native для работы со строками: хеши по различным алгоритмам, крутое шифрование, вычисление релевантности (схожести) строк. Событие переключения подсистем.

20.03.2013    22238    463    Abadonna    105       

Подсистема "COMExchange": ускорение выгрузки запросов ADO или «игра с огнём». 13

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Описана поддержка подсистемой "COMExchange"работы с ВК GameWhithFire.dll и в частности ускоренная выгрузка результата запроса ADO средствами ВК.

11.03.2013    17237    yuraos    4       

Простой пример создания ActiveX-control на Qt 8

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Мне была поставлена задача разработать некий ActiveX-control. Так как основным языком программирования для разработки у нас используется C++, то C# не рассматривался. Я решил выбрать Qt, так как он мне интересен. Создание ActiveX объектов на Qt достаточно простой процесс, в примерах к QtCreator есть несколько вариантов, показывающих как можно использовать ActiveQt (например этот). При написании компонента пришлось много времени потратить на поиск ответов на казалось бы простые вопросы, по крупицам их собирать. В результате я получил, что требовалось и решил написать простой пример, чтобы ускорить процесс старта разработки ActiveX-control другим. Сразу обращу внимание, что не описываю всю технологию ActiveQt, подробную информацию можно получить в документации Qt Assistant и в интернете (например здесь), это пример и пара интересных на мой взгляд моментов.

25.02.2013    7359    theshadowco    3       

1C.Net:Предприятие - Инструкция по подключению Elisy .Net Bridge 4 на 64-разрядном сервере 1С:Предприятие 8 11

Статья Системный администратор Программист Нет файла Windows Бесплатно (free) Производительность и оптимизация (HighLoad) Разработка внешних компонент Администрирование данных 1С

Существует известная проблема невозможности подключения 32-х разрядных dll в 64-разрядных приложениях. Происходит это из-за полной изоляции операционной системой 32-х и 64-х разрядных приложений. Как следствие невозможно в 64-х разрядных приложениях загрузить 32-х разрядные COM/OLE/ActiveX. Для решения проблемы компания Microsoft предложила методику, по которой допустимо подключать к 64-разрядным приложениям 32х разрядные COM через расширение COM+.

12.12.2012    24805    Elisy    1       

Finger-биометрия в 1С 47

Статья no Нет файла v8 Россия Бесплатно (free) Разработка внешних компонент

О различных методиках использования сканеров отпечатков пальцев в 1С.

02.07.2012    23931    fixin    22       

Miracle Native - ВК для V8 74

Инструменты и обработки Программист Архив с данными v8 Россия Бесплатно (free) Разработка внешних компонент

Настоящая ВК написана по технологии 1С-Native. По методам и свойствам является наследницей MIracveV8 с планируемым развитием функционала. Версия 1.2.1.1 Не триальная, подправлена некорректная работа под х64

23.04.2012    28840    623    Abadonna    79       

Прямые запросы: ускорение получения цен для типовой ТиС 7.7 21

Статья Программист Нет файла v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free) Практика программирования Разработка внешних компонент

Первая статья из цикла статей "Прямые запросы:...". Рассказывается о применении класса ПрямойЗапрос и компоненты 1С++ для ускорения функции глВернутьЦену() в типовой конфигурации Торговля и склад. Платформа 7.7.

15.11.2011    13110    leshik    21       

Решение проблем с регистрацией внешних компонент в терминале 71

Статья Программист Нет файла v8 УТ10 Россия УУ Розничная торговля Учет ТМЦ Бесплатно (free) Разработка внешних компонент

Зачастую у программистов возникают проблемы с подключением внешних компонент (например, драйверов торгового оборудования), когда пользователи работают с 1С, подключаясь к серверу через терминал. Это связано с некоторыми особенностями работы функции глобального контекста ПодключитьВнешнююКомпоненту().

22.09.2011    57677    Spacer    41       

ВК для 1С:Предприятие 8.2 NativeAPI на Delphi (запуск приложений, раскладка клавиатуры, события и др.) 98

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Бесплатно (free) Разработка внешних компонент

Внешняя компонента на основе разработки Крипича http://infostart.ru/public/81644/ - NativeAPI на Delphi реализует запуск процесса с заданным приоритетом и видимостью окна, переключение раскладки клавиатуры, всплывающие сообщения в трее, паузу sleep без загрузки процессора и внешние события.

01.08.2011    40165    1262    romix    55       

Драйвер клавиатурного сканера 24

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 Россия Windows Бесплатно (free) Разработка внешних компонент

Драйвер сканеров USB-HID (эмуляция клавиатуры) для 1С Предприятие 8.2. Дополнительно может отсылать текст на дисплей покупателя Posiflex PD2601.

13.07.2011    8521    386    Ma_X_X    12       

Компонента для создания прогрессбара и статус бара на формах 1С 7.7 8

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Разработка внешних компонент

Компонента предназначена для вывода на формы отчетов или обработок 1С:Предприятие 7.7 прогрессбара и/или статусбара. Написана на VB.Net (.Net 4.0)

01.05.2011    6757    124    Ma_X_X    7       

Новая версия 1С:Предприятие 8.2 конфликтует с C# и .Net framework 22

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Суть конфликта 1С 8.2 с C# и .Net framework в следующем. В версии 8.2 1С анонсировала новый способ написания внешних компонент 1С с использованием так называемого Native API. Самое интересное, что на C# предложенный подход реализовать невозможно, а реализация Native API на VC++/CLI теоретически возможна, но при попытке подключения DLL, скомпилированных с опцией /CLR, происходит зависание 1С (версия 8.2.13.202). Еще один конфликт – в новой версии 1С нет поддержки технологии ActiveX, на основе которой многие разработчики вставляли в формы 1С свои WinForms-приложения.

15.12.2010    19395    Elisy    128       

Учим внешнюю компоненту правильному склонению не только ФИО, но и должностей, и подразделений (ЗУП 2.5) 120

Статья Программист Нет файла v8 ЗУП2.5 Россия Бесплатно (free) Практика программирования Разработка внешних компонент

Многие из нас сталкивались с проблемой неверного склонения должностей и подразделений внешней компонентой склонения ФИО. Результат при этом может напоминать следующее: 1.Именительный "Главный специалист" 2.Родительный "Главныя специалиста" 3.Дательный "Главныю специалисту " 4.Винительный "Главныя специалиста " 5.Творительный "Главныем специалистом " 6.Предложный "Главные специалисте " Метод борьбы с данным недугом предлагаю ниже.

21.11.2010    56170    director04    62       

Сабклассинг главного окна 1С 28

Статья Программист Нет файла Россия Бесплатно (free) Разработка внешних компонент

Для разработчиков ВК. Дельфи. Конкретные пацаны не будут , конечно же, использовать хуки-муки, а воспользуются всеми прелестями сабклассинга :)

02.10.2010    15580    Abadonna    40       

Thermal Print Library - ActiveX библиотека для печати на термопринтерах Godex BZB2/EZ2/EZ4, C.Itoh EZ2/EZ4, Citizen CLP-521/621 19

Инструменты и обработки no Приложение (exe) v8 1cv8.cf 1cv7.md Россия Windows Бесплатно (free) Разработка внешних компонент

Библиотека Thermal Print Library является COM сервером и предназначается для использования в любых средах, которые в состоянии выступить в роли OLE-клиента (MS Office, 1С Предприятие, VB, VBScript, и т.д.). Допускается применение со следующими моделями термопринтеров : Godex BZB2/EZ2/EZ4, C.Itoh EZ2/EZ4, Citizen CLP-521/621.

20.09.2010    17998    255    GreenLab    23       

Запускатель рабочей среды 6

Статья Программист Нет файла Россия Windows Бесплатно (free) Разработка внешних компонент

Часто бывает так, что для работы над проектом необходимо бывает открыть несколько разных приложений. Каждый день запускать это все надоедает. Чтобы не делать этого вручную - можно написать скрипт на vbs, который это делает автоматически.

16.08.2010    4130    fastwriter    8       

Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll 34

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Восстанавливаю ранее опубликованную статью. Может кому пригодится... Иногда очень хочется что-нибудь добавить в стандартную конфигурацию, но потом возникают проблемы, связанные с "затиранием" кода при обновлении. Каждый раз помнить где и что - напряжно. При данном подходе в Глобальный Модуль добавляется всего одна (!) строчка

15.08.2010    16403    Abadonna    33       

[BackgroundWorker] - Фоновые задания в файловом режиме 1С 8.x 41

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Бесплатно (free) Практика программирования Разработка внешних компонент

ActiveX-компонента позволяет выполнять задачи в фоне с индикацией прогресса и возможностью прерывания выполнения. Также работает и клиент/серверном варианте, в качестве альтернативы типовым фоновым заданиям

04.03.2010    19818    418    Душелов    15       

Архивация базы 1С-Предприятие 11

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup) Разработка внешних компонент

Используем стандартный планировщик Windows и файл Visual Basic Script с файлом настроек, для плановой выгрузки базы данных.

29.12.2009    8434    276    alves    4       

Использование визуальных (ActiveX) компонент в тонком клиенте 1С 8.2 63

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Россия Бесплатно (free) Разработка внешних компонент Администрирование данных 1С

В данной статье рассматривается вопрос использования визуальных компонент (ActiveX) на форме тонкого клиента 1С 8.2 и веб-клиента на базе MS Internet Explorer.

19.11.2009    35316    616    Душелов    59       

Хранитель COM - объектов 20

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Россия Бесплатно (free) Практика программирования Разработка внешних компонент

Позволяет сохранять COM - объект между серверными вызовами в 8.2. Сохраняет и получает ссылку на объект в ROT (Running Object Table). БЕТА!

18.11.2009    10392    77    Hadgehogs    14       

[GoogleCalendar] ActiveX-компонента для 1С 49

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) Россия Windows Бесплатно (free) Разработка внешних компонент

Компонента работает с сервисом Google Calendar. Позволяет создавать новые календари, управлять событиями календарей. Google Calendar — сервис для планирования встреч, событий, дел с привязкой к календарю. Можно задавать время встречи, повторения, напоминания, приглашать других участников (им высылается приглашение по электронной почте).

14.11.2009    90834    476    Душелов    27       

[CursorManager] Внешняя компонента для управления курсором мыши. 38

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) Россия Windows Бесплатно (free) Разработка внешних компонент

Компонента позволяет выводить процент выполнения обработки данных из 1С, заменяя стандартный 1С-овский курсор. Загружает обычные курсоры из файлов (*.cur) и анимированные (*.ani), а так же системные курсоры. Есть возможность установки курсора на нужное окно (форму) 1С.

28.10.2009    15190    168    Душелов    28