ВК NativeAPI на Delphi и FreePascal

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

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

1CNativeLib - бесплатная библиотека Delphi для создания внешних компонент (ВК) 1С по технологии Native API.
Новая версия.
16.12.2015 Исправлена ошибка: поиск свойств и методов ВК выполнялся с учетом регистра букв.
06.10.2015 Исправлена ошибка: сообщение "некорректная работа компоненты с памятью"

 

1CNativeLib - библиотека Delphi для создания внешних компонент (ВК) 1С по технологии Native API. Библиотека легка в использовании и позволяет заниматься непосредственно функционалом ВК, не отвлекаясь на соблюдение инструкций, предоставленных фирмой 1С.

 

Для того, чтобы создать ВК с помощью 1CNativeLib, достаточно создать проект DLL, написать класс с реализацией функционала вашей ВК и зарегистрировать этот класс при загрузке dll. Минимальный проект DLL с реализацией класса с одним методом выглядит так:

 

//-----------------------------------------------------------------

 

library MiniVK;

 

uses

SysUtils, v8napi;

 

type

TMyClass = class(TV8UserObject)

function Hello(RetValue: PV8Variant; Params: PV8ParamArray;

const ParamCount: integer): boolean;

end;

 

{ TMyClass }

 

function TMyClass.Hello(RetValue: PV8Variant; Params: PV8ParamArray;

const ParamCount: integer): boolean;

begin

V8SetWString(RetValue,'Привет из Delphi!'); //устанавливаем результат функции

result := True; //Устанавливаем флаг, что функция завершилась успешно

end;

 

begin

with ClassRegList.RegisterClass(TMyClass, 'MySuperExtention', 'TMyClass') do

begin

AddFunc('Hello', 'Привет', @TMyClass.Hello, 0); //регистрируем функцию

end;

end.

 

//-----------------------------------------------------------------

 

Всё необходимое содержится в одном модуле v8napi.pas. В прилагаемом архиве сам модуль, пример, более подробное описание и шаблон для нового проекта.

 

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

Наименование Файл Версия Размер
1CNativeLib.zip

.zip 44,87Kb
17.10.12
302
.zip 44,87Kb 302 Скачать
Вариант для FreePascal (Lazarus)

.zip 10,42Kb
16.10.12
112
.zip 10,42Kb 112 Скачать
v8napi.pas от 16.12.2015

.pas 39,71Kb
16.12.15
120
.pas 39,71Kb 120 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. slaviksoft 73 17.02.11 16:11 Сейчас в теме
107. babybu 28 26.03.13 10:09 Сейчас в теме
А может кто подскажет, можно ли в функцию ВК, написанную по NativeAPI, передавать массив или может структуру? И как это делать? В HasRetVal определил метод, как функцию, в GetNParams задал количество параметров данного метода - 1. Метод называется "Подключить". Если передаю скалярный параметр - все нормально (Компонента.Подключить(1)), а если пытаюсь передать массив или структуру (Компонента.Подключить(Массив)) - выдает ошибку в 1С - неверный аргумент.
2. slaviksoft 73 18.02.11 09:55 Сейчас в теме
меня интересует - этот модуль на delphi Вы сами писали или это от 1С?
3. v77 148 18.02.11 11:11 Сейчас в теме
Сами конечно. Какой смысл выкладывать модуль от 1с?
4. sipoju 18.02.11 15:22 Сейчас в теме
Извините что не в тему, но мне тяжеловато работать с Делфями :cry:
Есть ли такое же только на С++? (Borland Builder или Visual C++)
5. v77 148 18.02.11 15:33 Сейчас в теме
На ИТС есть документация и примеры на Си++
k268kk; sipoju; +2 Ответить
6. DrAku1a 1408 21.02.11 04:20 Сейчас в теме
Возможно ли использование на FPC+Lazarus?
И еще - было бы неплохо и для v77 аналогичный ВК-класс сделать.
7. v77 148 21.02.11 08:22 Сейчас в теме
DrAku1a пишет:

Возможно ли использование ?
И еще - было бы неплохо и для v77 аналогичный ВК-класс сделать.

Для FPC+Lazarus надо допиливать. Сходу не заработало, но заработает.
Для v77 можно сделать, но вроде как уже и так хватает.
8. i-man 5 15.05.11 21:31 Сейчас в теме
есть возможность как то передавать не простые данные в ВК, а ссылки на элементы справочников или документов и уже внутри ВК с этими элементами работать?
если можно примерчик небольшой

спасибо заранее
10. cool.vlad4 45 17.05.11 11:50 Сейчас в теме
(8) зачем? для этого 1С есть...
9. v77 148 17.05.11 11:44 Сейчас в теме
Нету такой возмоности. В NativeAPI такое не предусмотрено.
13. UncleVader 128 01.08.11 19:33 Сейчас в теме
(9) Я так понимаю что не предусмотрен возврат и ссылок на таблицу значений или на какую другую коллекцию значений?
18. v77 148 23.10.11 22:33 Сейчас в теме
19. v77 148 23.10.11 22:35 Сейчас в теме
(13) Можно передавать только простые типы данных и вернуть из ВК двоичные данные. Вроде всё пока. Остальное 1С блокирует.
17. zag2art 23.10.11 19:19 Сейчас в теме
(9) тот же вопрос, что и в (13) ответьте пожалуйста.
11. romix 611 01.08.11 11:14 Сейчас в теме
Проверил однако работает! Спасибо!
12. romix 611 01.08.11 18:15 Сейчас в теме
Компонента на основе этой с полезным функционалом, которого отчасти не хватало в 1С 8.2 http://infostart.ru/public/88060/ (запуск процесса, переключение раскладки и др.).
14. johnrex 16.09.11 07:18 Сейчас в теме
Скажите, пожалуйста, возможно ли с использованием NativeApi организовать поток (Delphi), который будет независимо выполнять определенные действия, и генерить в нужных ситуациях внешнее событие в 1С 8. В моем случае нужно опрашивать весы подключенные к com порту с периодичностью хотя бы раз в секунду и если они подключены при изменении веса отсылать данные в 1С. Обработчик ожидания не устраивает, так как 1С работает однопоточно и очень сильно висит при опросе com порта.
16. zag2art 21.10.11 19:51 Сейчас в теме
15. Sergey_Murzinov 04.10.11 22:58 Сейчас в теме
Спасиюо, толковая работа
20. mur611 25.10.11 14:05 Сейчас в теме
Здравствуйте,
Пробовал по примеру писать NativeAPI компоненту, но почему то не воспринимает функции, пишет "Поле объекта не обнаружено (Hello)". Или v8napi.pas от http://infostart.ru/public/88060/ не подходит для самого простого примера. А вообще стоит задача написать внешнюю компоненту для общения с COM портом. и используя ваш пример можно написать данную ВК?
22. v77 148 26.10.11 12:01 Сейчас в теме
(20) видимо где то чего то неправильно понаписал. У всех работает нормально, жалоб не было.
21. mur611 25.10.11 14:09 Сейчас в теме
есть конечно примеры на CPP, но времени разбирать с Visual большого нет.
23. mur611 03.11.11 12:52 Сейчас в теме
есть вопрос. Заключается он в том, что в ВК на технологии СОМ обработка ошибок во ВК производилась функцией RaiseLastOSError и все работает ОК, а вот теперь вроде сделал на Native API, и при вызове данной функции ВК, 1Ска закрывается (вылетает). какие методы есть решения? не подскажете.
24. v77 148 03.11.11 13:32 Сейчас в теме
(23) mur611,
V8.AddError(wcode: word; const source: PWideChar;
const descr: PWideChar;
scode: integer): boolean;

см. документацию от 1С
25. igor_kav 100 26.03.12 10:47 Сейчас в теме
есть вопрос, как вернуть массив? входные параметры функции - число, строка, а вот вернуть функция должна массив или olevariant, каа быть?
26. Spi1y 26.03.12 11:19 Сейчас в теме
(25) igor_kav, только генерировать строку с внутренним представлением любой коллекции (массив, структура, список значений, и т.д.), а в 1С уже преобразуешь с помощью ЗначениеИзСтрокиВнутр(). К сожалению, я не смог найти ни одного внятного описания структуры внутреннего представления ТаблицыЗначений, а по всем остальным коллекциям формат довольно простой.
Сам на основе данного шаблона делал компоненту для внутреннего использования, с возвратом из функции массива. Если нужно, напиши, кину пример кода.
27. Spi1y 26.03.12 11:26 Сейчас в теме
Вот как раз и пример со структурой, у массива формат еще проще:

  pwi.cbSize := SizeOf(pwi);
  if WindowHandle <> 0 then begin
    Result := GetWindowInfo(WindowHandle, pwi);
    if Result then begin
      ResultString := '{"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e,{4,{{"S","Лево"},{"N",';
      ResultString := ResultString + IntToStr(pwi.rcWindow.Left) + '}},{{"S","Верх"},{"N",';
      ResultString := ResultString + IntToStr(pwi.rcWindow.Top) + '}},{{"S","Ширина"},{"N",';
      ResultString := ResultString + IntToStr(pwi.rcWindow.Right - pwi.rcWindow.Left) + '}},{{"S","Высота"},{"N",';
      ResultString := ResultString + IntToStr(pwi.rcWindow.Bottom - pwi.rcWindow.Top) + '}}}}';
    end else
      ResultString := '{"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e,{0}}';
    end;
    V8SetWString(RetValue, ResultString);
Показать
28. igor_kav 100 26.03.12 11:28 Сейчас в теме
было бы здорово готовый код глянуть. скиньте, пожалуйста, на мыло igor_kav@mail.ru
спасибо!
29. igor_kav 100 26.03.12 11:29 Сейчас в теме
спасибо! пока писал коммент, Вы уже выложили.
30. igor_kav 100 26.03.12 11:36 Сейчас в теме
а как быть с многомерным массивом?
31. Spi1y 26.03.12 12:10 Сейчас в теме
Кхм, понятия не имею. Честно говоря, ни разу за всю практику не сталкивался с необходимостью использования многомерных массивов. Но, если размышлять логически, то сам формат представления для массива таков:

{"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e,{КоличествоЭлементов,{ОписаниеКлюча1, ОписаниеЗначения1}, ... , {ОписаниеКлючаN, ОписаниеЗначенияN}}}

где ОписаниеКлючаN и ОписаниеЗначенияN:
{ОписаниеТипа,Значение}


Логично предположить, что если описание тпа подставить Массив, и а в значение - внутреннюю строку вложенного массива, то должно получиться то, что нужно.

Но надо проверять, конечно. Попозже гляну.
32. Spi1y 26.03.12 12:17 Сейчас в теме
Извиняюсь, как говориться, поспешишь - людей насмешишь. В предыдущем сообщении спутал понятия массивы и структуры. Массив разобрал, еще проще выходит:

{"#",51e7a0d2-530b-11d4-b98a-008048da3034,{КоличествоЭлементов,{ОписаниеЗначения1}, ... , {ОписаниеЗначенияN}}}

И действительно, для вложенных массивов достаточно в описание значения вместо строки {ОписаниеТипа,Значение} передать строку {ОписаниеМассива}, сформированную аналогично.
33. igor_kav 100 26.03.12 16:58 Сейчас в теме
Spi1y, Спасибо! ОЧЕНЬ помогли!
34. Spi1y 26.03.12 17:25 Сейчас в теме
35. igor_kav 100 30.03.12 16:55 Сейчас в теме
Пару функций удалось сделать и использовать в 1С, но написал третью функцию в dll... при попытке использования в 1с именно этой третьей функции, 1с вылетает с ошибкой "Программа 1Сv8 не работает Возникшая проблема привела к прекращению работы программы. бла-бла". Самое интересное, что для тестирования создал проект VLC на delphi, поместил в него код функции. В VLC-проекте ФУНКЦИЯ РАБОТАЕТ!

Какие есть варианты решения?
36. v77 148 30.03.12 17:17 Сейчас в теме
37. igor_kav 100 30.03.12 17:24 Сейчас в теме

library aukro_soap;

uses
  SysUtils,
  Classes,
  DateUtils,
  InvokeRegistry,
  Rio,
  SOAPHTTPClient,
  v8napi,
  uploader;

{$R *.res}

type

TMyClass = class(TV8UserObject)
  private
     RIO           : THTTPRIO;
     country_id    : Integer;
     local_version : Int64;
  public
    function doLogin(RetValue: PV8Variant; Params: PV8ParamArray; const ParamCount: integer): boolean;
    function getMyData(RetValue: PV8Variant; Params: PV8ParamArray; const ParamCount: integer): boolean;
    function getCatsList(RetValue: PV8Variant; Params: PV8ParamArray; const ParamCount: integer): boolean;
    constructor Create; override;
end;

{ TMyClass }

function TMyClass.doLogin(RetValue: PV8Variant; Params: PV8ParamArray; const ParamCount: integer): boolean;
var
  user_login          : string;
  user_password       : string;
  webapi_key          : string;
  info                : string;
  ver_key             : Int64;
  session_handle_part : string;
  user_id             : Int64;
  server_time         : Int64;
begin
  // получаем параметры функции
  user_login    := V8AsAString(@Params[1]);
  user_password := V8AsAString(@Params[2]);
  webapi_key    := V8AsAString(@Params[3]);

  try
    (RIO as AllegroWebApiPortType).doQuerySysStatus(local_version, country_id, webapi_key, info, ver_key);
    (RIO as AllegroWebApiPortType).doLogin(user_login, user_password, country_id, webapi_key, ver_key, session_handle_part, user_id, server_time);

    V8SetWString(RetValue, session_handle_part); // устанавливаем результат функции
    result := True;
  except
    result := False;
  end;
end;

// ФУНКЦИЯ НЕ РАБОТАЕТ !!! СКОРЕЕ ВСЕГО УТЕЧКА ПАМЯТИ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ STRING
function TMyClass.getMyData(RetValue: PV8Variant; Params: PV8ParamArray; const ParamCount: integer): boolean;
var
  session_handle_part    : string;
  user_data              : UserDataStruct;
  invoice_data           : InvoiceDataStruct;
  company_extra_data     : CompanyExtraDataStruct;
  company_second_address : CompanySecondAddressStruct;
  pharmacy_data          : PharmacyDataStruct;
  alcohol_data           : AlcoholDataStruct;
  related_persons        : RelatedPersonsStruct;
  ResultString           : WideString;
begin
  // получаем параметры функции
  session_handle_part    := V8AsAString(@Params[1]);
  // инициализируем переменные
  user_data              := UserDataStruct.Create;
  invoice_data           := InvoiceDataStruct.Create;
  company_extra_data     := CompanyExtraDataStruct.Create;
  company_second_address := CompanySecondAddressStruct.Create;
  pharmacy_data          := PharmacyDataStruct.Create;
  alcohol_data           := AlcoholDataStruct.Create;
  related_persons        := RelatedPersonsStruct.Create;

  try
    (RIO as AllegroWebApiPortType).doGetMyData(session_handle_part, user_data, invoice_data, company_extra_data,
                                               company_second_address, pharmacy_data, alcohol_data, related_persons);

    ResultString := '{"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e,{22,';
    ResultString := ResultString + '{{"S","user_id"},{"N",'+IntToStr(user_data.user_id)+'}},';
    ResultString := ResultString + '{{"S","user_login"},{"S","'+user_data.user_login+'"}},';
    ResultString := ResultString + '{{"S","user_rating"},{"N",'+IntToStr(user_data.user_rating)+'}},';
    ResultString := ResultString + '{{"S","user_first_name"},{"S","'+user_data.user_first_name+'"}},';
    ResultString := ResultString + '{{"S","user_last_name"},{"S","'+user_data.user_last_name+'"}},';
    ResultString := ResultString + '{{"S","user_maiden_name"},{"S","'+user_data.user_maiden_name+'"}},';
    ResultString := ResultString + '{{"S","user_company"},{"S","'+user_data.user_company+'"}},';
    ResultString := ResultString + '{{"S","user_country_id"},{"N",'+IntToStr(user_data.user_country_id)+'}},';
    ResultString := ResultString + '{{"S","user_state_id"},{"N",'+IntToStr(user_data.user_state_id)+'}},';
    ResultString := ResultString + '{{"S","user_postcode"},{"S","'+user_data.user_postcode+'"}},';
    ResultString := ResultString + '{{"S","user_city"},{"S","'+user_data.user_city+'"}},';
    ResultString := ResultString + '{{"S","user_address"},{"S","'+user_data.user_address+'"}},';
    ResultString := ResultString + '{{"S","user_email"},{"S","'+user_data.user_email+'"}},';
    ResultString := ResultString + '{{"S","user_phone"},{"S","'+user_data.user_phone+'"}},';
    ResultString := ResultString + '{{"S","user_phone2"},{"S","'+user_data.user_phone2+'"}},';
    ResultString := ResultString + '{{"S","user_ss_status"},{"N",'+IntToStr(user_data.user_ss_status)+'}},';
    ResultString := ResultString + '{{"S","site_country_id"},{"N",'+IntToStr(user_data.site_country_id)+'}},';
    ResultString := ResultString + '{{"S","user_junior_status"},{"N",'+IntToStr(user_data.user_junior_status)+'}},';
    ResultString := ResultString + '{{"S","user_birth_date"},{"N",'+IntToStr(user_data.user_birth_date)+'}},';
    ResultString := ResultString + '{{"S","user_has_shop"},{"N",'+IntToStr(user_data.user_has_shop)+'}},';
    ResultString := ResultString + '{{"S","user_company_icon"},{"N",'+IntToStr(user_data.user_company_icon)+'}},';
    ResultString := ResultString + '{{"S","user_is_allegro_standard"},{"N",'+IntToStr(user_data.user_is_allegro_standard)+'}}}}';

    V8SetWString(RetValue, ResultString); // устанавливаем результат функции
    result := True;
  except
    result := False;
  end;
end;

function TMyClass.getCatsList(RetValue: PV8Variant; Params: PV8ParamArray; const ParamCount: integer): boolean;
var
  webapi_key    : string;
  cats_list     : ArrayOfCats;
  ver_key       : Int64;
  ver_str       : string;
  CurrCats      : CatInfoType;
  ResultString  : WideString;
begin
  // получаем параметры функции
  webapi_key    := V8AsAString(@Params[1]);
  // инициализируем переменные
  CurrCats      := CatInfoType.Create;

  try
    (RIO as AllegroWebApiPortType).doGetCatsData(country_id, local_version, webapi_key, cats_list, ver_key, ver_str);

    // формируем массив из структур для 1С, затем в 1С необходимо использовать функцию "ЗначениеИзСтрокиВнутр()"
    ResultString := '{"#",51e7a0d2-530b-11d4-b98a-008048da3034,{'+IntToStr(Length(cats_list));
    for CurrCats in cats_list do
    begin
      ResultString := ResultString + ',{"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e,{4,{{"S","cat_id"},{"S","'+IntToStr(CurrCats.cat_id)+'"}},';
      ResultString := ResultString + '{{"S","cat_name"},{"S","'+CurrCats.cat_name+'"}},';
      ResultString := ResultString + '{{"S","cat_parent"},{"S","'+IntToStr(CurrCats.cat_parent)+'"}},';
      ResultString := ResultString + '{{"S","cat_position"},{"S","'+IntToStr(CurrCats.cat_position)+'"}}}}';
    end;
    ResultString := ResultString + '}}';

    V8SetWString(RetValue, ResultString); // устанавливаем результат функции
    result := True;
  except
    result := False;
  end;
end;

constructor TMyClass.Create;
begin
  RIO := THTTPRIO.Create(nil);
  RIO.WSDLLocation := 'http://webapi.allegro.pl/uploader.php?wsdl';
  RIO.Service      := 'AllegroWebApiService';
  RIO.Port         := 'AllegroWebApiPort';

  country_id       := 209; // 209 - Украина; 228 - Neverland (webapi) для тестового сервиса http://testwebapi.pl
  local_version    := 1;
end;


begin

  with ClassRegList.RegisterClass(TMyClass, 'MySuperExtention', 'TMyClass') do
  begin
    // регистрируем функции
    AddFunc('doLogin',         'Авторизироваться',        @TMyClass.doLogin,         3);
    AddFunc('getMyData',       'ПолучитьМоиДанные',       @TMyClass.getMyData,       1);
    AddFunc('getCatsList',     'ПолучитьСписокКатегорий', @TMyClass.getCatsList,     1);
  end;

end.
Показать
38. igor_kav 100 30.03.12 18:10 Сейчас в теме
поставил исключение в процедуре _CallAsFunc и получил ошибку:

Внешняя компонента : Invalid pointer operation.
Ошибка! {Форма.Форма.Форма(473)}: Ошибка при вызове метода контекста (ПолучитьМоиДанные): Ошибка внешней компоненты
39. v77 148 30.03.12 18:35 Сейчас в теме
(38) ну вроде всё правильно. смотри в отладчике.
40. igor_kav 100 30.03.12 18:40 Сейчас в теме
41. igor_kav 100 30.03.12 18:53 Сейчас в теме
Прочитал, что СКОРЕЕ ВСЕГО УТЕЧКА ПАМЯТИ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ STRING, но как решить ума не приложу...

Кто сталкивался, ПОМОГИТЕ!
43. igor_kav 100 31.03.12 01:25 Сейчас в теме
выдает ошибку External exception C000001D на строке:
(RIO as AllegroWebApiPortType).doGetMyData(session_handle_part, user_data, invoice_data, company_extra_data,
                                             company_second_address, pharmacy_data, alcohol_data, related_persons);


Но только в DLL, в EXE все нормально работает. В чем же все-таки причина?
45. v77 148 31.03.12 16:39 Сейчас в теме
(43) причина в ошибке. надо смотреть в отладчике. вышли мне исходники, я гляну. у тебя delphi 7?
46. igor_kav 100 31.03.12 16:44 Сейчас в теме
(45) спасибо! :) ошибку нашел! все, как всегда, было банально просто. RIO не освобождал.
Спасибо за проделанную работу, очень нужную вещь ВК NativeAPI на Delphi создали.
47. v77 148 31.03.12 16:50 Сейчас в теме
44. igor_kav 100 31.03.12 15:01 Сейчас в теме
Можно ли передать функции параметр типа ТаблицаЗначений или XDTO пакет и как его потом в delphi разобрать?
48. 0xe0 05.07.12 14:04 Сейчас в теме
Александр, из компоненты (*в вашей реализации) есть возможность обращаться к методам интерфейса 1С?
49. EmpireSer 10.08.12 01:34 Сейчас в теме
Объясните мне - зачем нужна структура "ТV8ObjectRec" ?
50. vladon 21 25.09.12 15:46 Сейчас в теме
На сервере x64 не работает, к сожалению. Ковыряю-ковыряю код, не пойму, в чём дело.
51. v77 148 26.09.12 08:34 Сейчас в теме
Я на 64 не пробовал. Может так заработает(см. прикрепленный файл)
Прикрепленные файлы:
v8napi.zip
52. vladon 21 26.09.12 15:22 Сейчас в теме
(51) это из оригинальных исходников от Александра Соломатина? Нет, тоже не получается.
54. v77 148 26.09.12 15:56 Сейчас в теме
(52) vladon, а на клиенте 64 работает?
56. vladon 21 26.09.12 16:01 Сейчас в теме
(54) клиента 64 же не существует.

компилировалось Delphi XE2 и Delphi XE3.
57. v77 148 26.09.12 21:22 Сейчас в теме
(56) vladon, ну и как не работает то. в чем это не работает проявляется?
58. vladon 21 26.09.12 22:34 Сейчас в теме
(57) вот здесь лежит архив со всеми исходниками: http://narod.ru/disk/61615376001.5ca45c99a6ebdc7d919aa57124f0aa7b/SocketNative.zip.html

в каталоге 1С есть .dt-шник, это база, где в общий макет залиты dll-ки с манифестом в зипе, dll-ки откомпилены delphi xe3, в любом случае все исходники там же

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

так вот, на 32-бит сервере компонента подключается - всё нормально отрабатывает
на 64-бит сервере при нажатии кнопки "Подключить компоненту" сервер долго-долго думает, а потом клиент вылетает с сообщением, что сервер принудительно закрыл подключение.

в любом случае, если есть возможность, попробуйте сами.
59. v77 148 29.09.12 23:56 Сейчас в теме
(58) vladon, попробуй такой вариант. у меня вроде работает. на сервере не проверял(нету у меня). проверял тестовой программой, которая загружает dll и читает список методов и свойств ВК. старая твоя ВК не грузилась, теперь стала грузиться. в архиве вариант модуля v8napi.pas. отпишись заработало или нет.
55. v77 148 26.09.12 15:59 Сейчас в теме
(52) vladon, а как не работает? в чем компилировалось?
53. v77 148 26.09.12 15:55 Сейчас в теме
Ну у меня нету сервера 64. пока ничем не могу помочь.
60. v77 148 29.09.12 23:57 Сейчас в теме
61. vladon 21 01.10.12 08:50 Сейчас в теме
(60) огромное спасибо, работает.
185. rfootq 18.04.18 15:51 Сейчас в теме
(61)Добрый день. Владислав, можете уточнить, что именно заработало? Компонента на 64 битном приложении, компилируется, и работает в 1с, то есть подключается, и выполняет всю свою функциональность? То есть помогло применение модуля из архива SocketNative64.zip? А компилировали Lazarus_ом? Версия компилятора тоже 64, или кросс-компилятором?
Блин, я никак не пойму, при попытке выделить память падает все... Если не сложно подскажите где что еще можно подправить, с учетом архитектуры. (Все на винде пока что)... Спасибо.
62. andrewks 1297 20.10.12 21:36 Сейчас в теме
какова лицензия на исходный код? возможно ли его использование в проектах под лицензией GPL v2/3?
63. v77 148 22.10.12 10:19 Сейчас в теме
Да используйте где хотите.
64. andrewks 1297 23.10.12 09:14 Сейчас в теме
(63) не сочтите за наглость, но, так сказать, во избежание возможных недоразумений, можно при следующем обновлении в программных модулях указать тип лицензии на исходный код? например, Apache 2.0 (наиболее предпочтительная и либеральная), X11, или Modified BSD (неограниченное использование). или двойную лицензию GPL v2 и GPL v3 (на выбор пользователя).

хотим тут один небольшой проектик замутить на базе модуля для FreePascal под лицензией GPL v2, в целях экономии времени на рутину хотим использовать Ваш модуль ;-)

спасибо.
65. eoego1 20.11.12 17:55 Сейчас в теме
Мегаценная вещь, спасибо автору большое! Но возник вопрос, мне очень нужно сделать так, чтобы во время работы какой либо одной функции вызванной по nativeapi из 1С, произошла передача данных (к примеру установка свойства формы или генерация внешенего события с передачей данных в 1С). Например:

//процедура вызываемая из 1С
function TMyClass.SleepFunc(RetValue: PV8Variant; Params: PV8ParamArray; const ParamCount: integer; var v8:TV8AddInDefBase): boolean;
var
ms: Integer;
begin
ms := V8AsInt(@Params[1]); // к примеру 100.000
//тут хочу вызвать исключение в 1С и передать в него строку "Привет я пошел спать!" или как-то иначе
sleep(ms);
//допустим тут еще раз хочу вызвать исключение
//или установить свойство заголовка на форме или переменной модуля 1С. "Привет я проснулся!"
result := True; //завершается вызванная функция
end;
После некоторых исследований, было установлено, что к примеру если вызвать во время работы функции sleep (или любой другой) функцию, например, вызова внешнего события, то оно генерируется не в то время, где я вызываю ExternalEvent, а только по выходу из основной функции. То есть у меня никак не получается передавать в 1С, например строку промежуточного результата работы функции во время ее работы. Все уходит в 1С только по выходу из нее. Как решить подобную задачу?
66. andrewks 1297 26.11.12 17:38 Сейчас в теме
в модуле для FPC не нашёл функцию V8SetPWideChar ( возврат в 1С строки, представленной в FPC типом PWideChar )

дописал. может, кому, пригодится:
function TV8UserObject.V8SetPWideChar(V: PV8Variant;
  Value: PWideChar): boolean;
var
  L, SZ: longword;
begin

  result := (Value = nil);
  if result then
    Exit;

  V8ClearVar(V);
  V.vt := VTYPE_PWSTR;
  L := Length(Value);
  SZ := (L + 1) * SizeOf(WideChar);

  result := V8MM.AllocMemory(@(V.VarEnum.vtRecWideString.pwstrVal), SZ);
  if result then
  begin
    Move(Value^, V.VarEnum.vtRecWideString.pwstrVal^, SZ);
    V.VarEnum.vtRecWideString.wstrLen := L;
  end;
end;

Показать
67. andrewks 1297 29.11.12 23:45 Сейчас в теме
в модуле для FPC ошибка в function _GetParamDefValue, вызывающая падение в случае, если параметры по умолчанию не заданы, а 1с видит, что методу передано меньше параметров и пытается запросить параметр по умолчанию

правильный вариант кода:

function _GetParamDefValue(Obj: PV8ObjectRec; const lMethodNum,
  lParamNum: integer; pvarParamDefValue: PV8Variant): boolean; stdcall;
var
ind: integer;
begin
  result := False;
  if Obj.RelObj1.ClassReg.MethList[lMethodNum].DefParams <> nil then
  begin
    for ind := 0 to length(Obj.RelObj1.ClassReg.MethList[lMethodNum].DefParams.Values)-1 do
    begin
      if (Obj.RelObj1.ClassReg.MethList[lMethodNum].DefParams.Values[ind].Num = lParamNum) then
      begin
        pvarParamDefValue^ := Obj.RelObj1.ClassReg.MethList[lMethodNum].DefParams.Values[ind].Value;
        result := True;
      end;
    end;
  end;
end;

Показать
68. v77 148 30.11.12 09:11 Сейчас в теме
(67) andrewks, Спасибо. Исправлю.
69. andrewks 1297 19.12.12 21:23 Сейчас в теме
что-то не ясен момент: в описании технологии Native API сказано, что BLOB (Двоичные данные) могут только возвращаться из компоненты в 1С, про передачу BLOB из 1С в компоненту ничего не сказано. при попытке передать ДвоичныеДанные в параметре метода 1С ругается на неверный параметр (до компоненты даже дело не доходит).
однако в Вашем модуле есть функция по получению BLOB V8AsBlob(). У Вас получилось передать ДвоичныеДанные в компоненту? не поделитесь рецептом?
70. v77 148 20.12.12 08:29 Сейчас в теме
(69) andrewks, я не помню, что пробовал. ну если не дает, то значит нельзя. А V8AsBlob() наверное на всякий случай сделал.
71. fixin 4015 20.12.12 18:07 Сейчас в теме
72. andrewks 1297 11.01.13 08:25 Сейчас в теме
73. UncleVader 128 24.01.13 12:12 Сейчас в теме
Раз уж добавили поддержку Lazarus, может попробуем и под Linux скомпилить?
Вот тут есть готовая виртуальная машина с установленным Lazarus, попробовал в нем скомпилить выложенную демку, но она не подключается в контексте сервера 1С под x64 Ubuntu. Есть мысли? Спасибо!
75. andrewks 1297 24.01.13 12:34 Сейчас в теме
(73) UncleVader, там же написано, что под Android
74. v77 148 24.01.13 12:30 Сейчас в теме
Мыслей нет. А что нибудь другое подключается в контексте сервера 1С под x64 Ubuntu?
76. UncleVader 128 24.01.13 12:44 Сейчас в теме
(74) У меня нет к сожалению ни одной ВК под linux, поэтому трудно сказать, дал бы кто попробовать...
(75) andrewks, ну и что, главное что стоит настроенный Lazarus и компилит, в т.ч. и приложенный тут пример ВК
77. andrewks 1297 24.01.13 12:48 Сейчас в теме
(76) UncleVader, я к тому, что если у Вас есть доступ к серваку с убунтой х64, то, может, стоит скомпилить прямо на нём? у меня на ноуте стоит убунта, но она там х32
78. UncleVader 128 24.01.13 12:57 Сейчас в теме
(77) andrewks, Чтоб на нем скомпилить туда надо поставить Lazarus, а для меня это китайская грамота ((
Во вложении скомпиленная в упомянутой (73) системе, попробуйте может у Вас подключится
Прикрепленные файлы:
libdemo.so
79. UncleVader 128 24.01.13 17:23 Сейчас в теме
Поставил 64 Ubuntu, на него Lazarus, скомпилил пример - на сервере не подключается ((
80. Magister 133 10.02.13 02:39 Сейчас в теме
81. SerG_121 443 11.02.13 13:53 Сейчас в теме
Почему когда я создаю поток у меня вылетает ошибка? В чем проблема? Код в прекрепленных файлах
Прикрепленные файлы:
1cComPort.rar
82. v77 148 11.02.13 14:11 Сейчас в теме
Ну ты в отладчике посмотри где глючит. А ProcessMessages тебе зачем? Поставь вместо ProcessMessages sleep(0) для начала.
83. SerG_121 443 11.02.13 15:39 Сейчас в теме
(82)Я так и со слипом пробовал бесполезно! Попробуй у себя проверить мой код.
Выдает ошибку и вылетает 1с именно когда запускается поток ReadThread
84. andrewks 1297 11.02.13 16:12 Сейчас в теме
(83) SerG_121, видимо, у Вас исключение вылетает. попробуйте в try/except и выводить лог, может, прояснится
85. v77 148 11.02.13 16:46 Сейчас в теме
(83) SerG_121, Ты создаешь объект в 1с. Выполняешь его метод ОткрытьПорт. В методе ОткрытьПорт создается поток, который использует объект. Но объект после выполнения ОткрытьПорт автоматически убивается, но в потоке к нему есть обращение в Execute. Обращение к несуществующему объекту. Наверное по этому и глючит.
86. SerG_121 443 12.02.13 07:38 Сейчас в теме
(85)Может подскажешь как реализовать?
87. v77 148 12.02.13 08:38 Сейчас в теме
А чего надо реализовать?
88. SerG_121 443 12.02.13 08:47 Сейчас в теме
(87)Спасибо большое все разобрался )
89. TamDE 26.02.13 20:11 Сейчас в теме
Собрал ВК в Lazarus.
Нашел небольшой глюк: если передать в функцию ФункцияПривет2 пустые строки, то платформа "валится"
//Рез = Об.ФункцияПривет2("Раз","Два");
Рез = Об.ФункцияПривет2("","");

Обошел путем добавления условия
    
if L > 0 then

перед строкой
       
Move(Value[1], V.VarEnum.vtRecWideString.pwstrVal^, SZ);

в методе V8SetWString
93. andrewks 1297 05.03.13 08:30 Сейчас в теме
(89) TamDE, что-то не так в Вашем королевстве.
1. эта функция отвечает за возвращаемые значения, а не за передаваемые
2. L не может быть равно 0
3. у меня падения на пустых строках нет
90. Magister 133 04.03.13 01:39 Сейчас в теме
В Linux таки не работает.
Платформа грузит .so, вызывает несколько функций и валится по SIGSEGV.
Вот что успевает вызвать:
[quote]
GetClassNames
GetClassObject
_setMemManager
_GetInfo
[/quote]
После этого падение. Пока причину понять не смог, может быть будут идеи?
91. v77 148 04.03.13 08:58 Сейчас в теме
(90) Magister, есть идея посмотреть в отладчике. линуксов у меня нету.
92. Magister 133 05.03.13 01:48 Сейчас в теме
(91) Отладчик ловит исключение, и в качестве адреса показывает нулевые адреса. Бред полный :)
Ещё немного поразбирался - судя по всему причина в том, что под Linux 1С компилируется с использованием GCC, а у него виртуальная таблица методов в памяти имеет другую структуру.
Получается что "грязный" хак, с помощью которого вообще работает эта библиотека не срабатывает, т.к. TV8ProcRec не соответствует IComponentBase.

Пока что удалось добиться таки вызова RegisterExtensionAs добавлением парочки пустых полей с типом Pointer, но теперь другая проблема - V8MM.AllocMemory() возвращает false...
94. andrewks 1297 05.03.13 08:35 Сейчас в теме
(92) Magister, а Вы на какой платформе, и на каком дистре лин тестируете?
95. Magister 133 05.03.13 18:43 Сейчас в теме
(94) Ubuntu 12.10 x32, 1C 8.3.2 x32 файловая.
На Windows с тем же релизом 1С всё хорошо.
96. andrewks 1297 07.03.13 22:10 Сейчас в теме
(95) Magister, немного наблюдений:

в Win 1с вызывает функции в таком порядке:
Initialization
GetClassObject()
_Init()
_setMemManager()
_SetLocale()
_GetInfo()
_RegisterExtensionAs()
...
_Done()
DestroyObject()
Finalization

в Lin:
Initialization
GetClassObject()
_setMemManager()
_GetInfo()
далее - падение до захода в _RegisterExtensionAs()

почему-то в линуксе обходится стороной _Init()
97. andrewks 1297 08.03.13 00:00 Сейчас в теме
(92) Magister, похоже, проблема с менеджером памяти. только у меня при попытке вызова AllocMemory() - сразу крах. пытаюсь в _setMemManager() вызвать AllocMemory() - в винде успешно, память выделяется, в лин - сразу крах.

что-то с описанием интерфейса, может? соглашение о вызове, думаю, тут ни при чём
Оставьте свое сообщение

См. также

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    27278    40    Ditron    83    

Использование встроенного сканера ТСД на Android в мобильном клиенте и мобильном приложении (драйвер сканера Android для 1С)

Разработка внешних компонент Мобильная разработка v8 Абонемент ($m)

Используя данный драйвер, можно без единой строки кода, просто установив на ТСД мобильный клиент 1С, сразу начать подбирать товары в документах вашей учётной системы. А, адаптировав нужные формы под небольшой размер экрана ТСД, можно просто создать полноценное рабочее место для выполнения операций с помощью ТСД, не прибегая к стороннему софту. Если же на складе плохая связь (или её нет вовсе), то можно использовать возможности мобильного клиента в автономном режиме (потребуется доработка вашей конфигурации). Драйвер также можно использовать и для Android приложения на мобильной платформе. В результате чего можно обойтись без ненужных полей ввода и клавиатуры «на пол-экрана».

3 стартмани

09.10.2020    3738    30    ltfriend    45    

Отрубаем зависшие на сервере процессы

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Вы любите COM объекты? Я их просто обожаю! Практически все, чего не может 1С, можно доделать ими. Но есть у них небольшой косячок: иногда они зависают и висят, пока не отрубишь их через диспетчер задач или до перезагрузки, жрут память и в конце концов перестают запускаться. Что делать? Рубить!

1 стартмани

28.07.2020    2108    1    zarankony    3    

Диагностика контекста выполнения (внешняя компонента)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

1 стартмани

24.07.2020    4550    2    YPermitin    14    

TextRadar - нечеткий поиск в тексте Промо

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    17907    27    TSSV    18    

Универсальная обертка для использования NATIVE компонент на платформе 1С 7.7, 8.0 и 8.1

Разработка внешних компонент v8 Абонемент ($m)

Используете 1С 7.7, 8.0 или 8.1 и вас раздражает, что под вашу 1С уже не выпускаются современные компоненты. А хотелось бы?

1 стартмани

07.07.2020    2812    1    karpik666    0    

Нано HTTP сервер - внешняя компонента для мобильного приложения 1C, на Android

Разработка внешних компонент Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Нано HTTP сервер на терминале сбора данных "ATOL Smart.Lite android 7.0". Работает только с GET и POST запросами. Аутентификация BASE64. Не поддерживает HTTPS и не передает файлы. В прикрепленном архиве исходники на компоненту (С++ и java для Android Studio 3.6.2), ЦФ - мобильного приложения и тестовая обработка.

1 стартмани

22.06.2020    2800    7    SanyMaga    19    

Получение фото с веб-камеры

Разработка внешних компонент v8 Абонемент ($m)

Получение фото с веб-камеры без ActiveX. Внешняя компонента по технологии Native API.

1 стартмани

25.03.2020    5214    48    berezdetsky    33    

Использование сборок .NET в 1С 7. и 8.x. Создание внешних Компонент. Промо

Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Данная разработка создана для использования сборок .Net в 1С через преобразование объектов и классов в COM-объекты, которые можно использовать в 1С. Достигается это путем создания класса, реализующего методы интерфейса IReflect public class AutoWrap: IReflect.

1 стартмани

28.11.2013    83960    238    Serginio    74    

Пауза без загрузки процессора. Внешняя компонента Native API на C++

Разработка внешних компонент v8 Абонемент ($m)

Внешняя компонента Native API на C++ для Win32 и Win64 позволяет установить паузу на заданное количество секунд без загрузки процессора.

2 стартмани

21.03.2020    2468    4    DNN13    26    

Быстрая печать этикеток (ZPL, EPL, TSPL, EZPL, GEPL, TSPL-EZ)

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Качественная и быстрая печать на внутреннем языке принтеров этикеток.

4 стартмани

02.02.2020    6967    32    Johny_v    12    

Сканирование по TWAIN в 1С (обычные и управляемые формы)

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка показывает пример, как можно в 1С проводить сканирование с помощью компоненты TWAIN.

3 стартмани

03.01.2020    5554    23    Denr83    0    

Tool1CD Beta в деле Промо

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    26033    28    baton_pk    26    

Вставка картинки из буфера обмена (JavaScript + внешняя компонента)

Разработка внешних компонент v8 Абонемент ($m)

Вставка картинки из буфера обмена с помощью JavaScript в поле HTML в web-клиенте и с помощью внешней компоненты в тонком/толстом клиенте. Механизм протестирован на платформах 8.2 и 8.3 Для запуска опубликованной конфигурации требуется платформа релиза не ниже 8.3.14.

1 стартмани

05.12.2019    4432    5    Andreyyy    8    

Клиент событий в «бесконечном» HTTP-соединении для 1С: Предприятие 8

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Native Компонента в отдельном потоке обрабатывает пакеты событий, в "бесконечном" http соединении и передаёт данные в очередь внешних событий.

1 стартмани

02.12.2019    4258    2    starovton    9    

Внешняя компонента 1С Native x32/x64: отправка UDP сообщения

Разработка внешних компонент v8 Россия Абонемент ($m)

Компонента предназначена только для отправки текстовых UDP сообщений. Работает как на клиенте, так и в серверных вызовах в любой разрядности Windows платформы.

1 стартмани

05.11.2019    4182    7    von_de    0    

NativeDraw: Компонента рисования для 1С [V2.6.2] Промо

Разработка внешних компонент Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

1 стартмани

13.07.2015    47671    429    ПерваяСистема    147    

Управление окнами и мониторами в 1С

Сервисные утилиты Разработка внешних компонент v8 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Абонемент ($m)

Управление размерами, активностью и положением окон из 1С с возможностью вывода окон на второй монитор и запретом изменения окна.

1 стартмани

28.10.2019    8926    7    Grigoriy251    5    

Native внешняя компонента для оповещения по UDP или TCP

Разработка внешних компонент v8 Абонемент ($m)

Native внешняя компонента для оповещения по UDP или TCP, которая реализует возможность в 1С передавать сообщения с сервера на клиента. Исходный код компоненты также представлен.

1 стартмани

06.10.2019    9985    19    vdv2701    31    

Внешняя компонента Sundries: несколько полезных системных функций

Разработка внешних компонент v8 Абонемент ($m)

Звук, пауза, буфер обмена, раскладки клавиатуры и т.д.

4 стартмани

30.08.2019    5936    6    sivin-alexey    10    

Маркировка: 2D Android Штрихкод сканер + драйвер устройства для 1С Промо

Сканер штрих-кода Розничная торговля Розничная торговля v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Драйвер торгового оборудования и приложение для Android, телефон или планшет в качестве стандартного штрихкод сканера для платформы 1С.

3 стартмани

29.11.2016    48141    182    dreamadv    110    

Native внешняя компонента для передачи по UDP

Разработка внешних компонент v8 УТ10 Россия Абонемент ($m)

Внешняя компонента Native-API для организации передачи с использованием UDP.

1 стартмани

29.07.2019    4414    4    axae    0    

Внешняя компонента для работы с драйвером "Атол v.10". 1С:8.3

Разработка внешних компонент Кассовые операции Кассовые операции v8 Абонемент ($m)

Внешняя компонента, для работы с драйвером «Атол v.10», посредством JSON-заданий.

1 стартмани

16.07.2019    10255    28    gortrex    4    

Менеджер буфера обмена. Нативная внешняя компонента win 32/64

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Добавляет возможности получения информации из почтовых вложений или файлов с других рабочих столов (RDP) с помощью операций копирования/вставки. Может «прослушивать»: любые изменения буфера обмена; нажатие клавиш соответствующих вставке (paste); нажатие клавиш копирования (copy); drop операции. Это новая реализация аналогичной компоненты https://infostart.ru/public/379695/, но теперь не C#, а С++ нативно для x32 / x64. (см. http://youtu.be/-PaWWFfbYo4)

1 стартмани

26.06.2019    6762    21    Bww    23    

Компоненты распознавания и печати штрих-кодов Промо

Разработка внешних компонент Сканер штрих-кода v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Комплект программного обеспечения для реализации функций оптического распознавания штрих-кодов различных систем при помощи обычной web-камеры, а также их отображения в печатных формах. Программы могут работать в составе конфигураций, созданных на базе платформ «1С-Предприятие» версий 7.7, 8.2, 8.3. Компонент чтения кодов реализован в виде внешней компоненты 1С с COM-интерфейсом. Компонент отображения создан по стандартной технологии ActiveX для Windows, и может быть встроен в любое приложение, поддерживающее встраивание ActiveX элементов управления, например в документ Word или Excel, или форму VBA. P.S. Добавлена новая версия программы распознавания. Новые функции: обработка видео в реальном режиме (а не по таймеру, как раньше), добавлена возможность распознавания штрих-кодов из графических файлов JPEG, PNG, GIF, BMP, а также передавать для распознавания картинки из 1С, теперь можно получить в 1С захваченное с камеры или файла изображение, как с выделением мест, содержащих коды, так и без, а также отдельные фрагменты изображений, содержащие код. Добавлены новые свойства и методы для программирования. Обновлена документация.

10 стартмани

10.07.2015    69943    85    igorberezhnov    95    

Обработка вывода на печать QR-кода и штрихкодов в различных форматах (одномерные и двумерные)

Разработка внешних компонент Ценники v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для вывода на печать QR-кода и штрихкодов в различных форматах без установки дополнительных ActiveX компонент. Тестировалась на чистой базе платформы 1С:Предприятие 8.3 (8.3.14.1630), а так же в конфигурациях Бухгалтерия предприятия КОРП, редакция (3.0.69.35) и на Бухгалтерия предприятия (3.0.70.30)

2 стартмани

22.05.2019    10454    41    MGemini    2    

DLL для подключения к Asterisk (32/64 клиенты)

Разработка внешних компонент Телефония, SIP v8 1cv8.cf Абонемент ($m)

Подключение к Астериску и получение событий "Newchannel","BridgeEnter","Hangup" через ОбработкаВнешнегоСобытия.

1 стартмани

19.03.2019    7996    13    xxxAndricxxx    14    

DLL для обмена между 1С (и не только) через UDP порты (32/64 клиенты)

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Библиотеки для создания функционала для прослушивания портов из 1С и отправки сообщений на удаленный udp порт.

1 стартмани

28.02.2019    7217    8    xxxAndricxxx    2    

Полезные приемы при работе с Excel из 1С (Версия 3.1) Промо

Практика программирования Разработка внешних компонент Загрузка и выгрузка в Excel v8 1cv8.cf Абонемент ($m)

Программисту 1С часто приходится работать с таблицами Excel из 1С. Я постарался собрать небольшой FAQ и набор функций для работы с файлами Excel. Надеюсь, кому-то будет полезна данная статья.

1 стартмани

22.09.2015    204113    445    Zerocl    70    

Эмулятор ККМ по стандарту ФФД 1.1

Разработка внешних компонент Кассовые операции ККМ Кассовые операции v8 Розница УТ11 Россия Абонемент ($m)

Эмулятор драйвера ККМ по стандарту ФФД 1.1 предназначен для использования всех возможностей программы, при отсутствии физической кассы. Подойдет как программистам при разработке интерфейса РМК, например, так и пользователям для тестирования возможностей программы.

1 стартмани

30.12.2018    21926    138    Matveymc    27    

Внешняя компонента для считывателя карт ACS 122/1281 (БПО)

Разработка внешних компонент Ридер магнитных карт v8 1cv8.cf Абонемент ($m)

Внешняя компонента для считывателя бесконтактных карт ACS 122/12 для подсистемы подключаемого оборудования.

1 стартмани

11.12.2018    7050    42    eugenevk    32    

WebSocket Клиент / Сервер. Внешний компонент

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Реализация протокола WebSocket. Клиентская часть для взаимодействия с внешними сервисами. Серверная часть для организации собственного сервера, принимающего клиентские соединения в многопоточном режиме. Возможно взаимодействие RabbitMQ Slack Asterisk и другие

1 стартмани

16.11.2018    16251    77    nomadon    65    

Снимок экрана для 1С Промо

Универсальные обработки Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Довольно часто люди сталкиваются с необходимостью сделать снимок экрана. Если вы или ваши сотрудники основную часть времени проводят в 1С и у вас есть необходимость прикреплять графические файлы, то эта компонента для вас.

1 стартмани

08.02.2016    28307    33    linkforget    11    

Внешняя компонента для выполнения регулярных выражений

Разработка внешних компонент v8 Абонемент ($m)

Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions.

1 стартмани

12.11.2018    12818    30    KAV2    62    

Native компонента для 8.3, реализующая метод sleep()

Разработка внешних компонент v8 Россия Абонемент ($m)

Внешняя Native 64-битная компонента для 1C 8.3, которая реализует метод sleep() - паузу выполнения кода. Пауза для большой устойчивости сделана платформозависимой и требует WinAPI. Ид компоненты - AddIn.AddInNativeSleep.NativeSleep.

1 стартмани

16.10.2018    7888    3    ripreal1    9    

001. Криптография и цифровая подпись RSA-sha256 на платформе 1С

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Внешняя компонента, исходники, обработка для 1С.

5 стартмани

04.09.2018    14868    28    Nikola23    60    

Native API компонента для использования установленного в системе интерпретатора Python Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Компонента позволяет подключать к платформе 1С python-модули, оформленные в стиле внешней компоненты. Кроме этого, она позволяет запускать небольшие фрагменты python-кода прямо из модулей 1С. На данный момент поддерживаются платформы 8.2 — 8.3 x86 Windows.

1 стартмани

14.05.2013    39651    76    Принт    31    

Программный вызов сенсорной клавиатуры

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Программный вызов сенсорной клавиатуры в ОС Windows, для сенсорных мониторов, которые не определяются системой как hid-совместимый сенсорный экран. Тестировалось на платформе 8.3.9.2033, конфигурация Розница 1.0.16.8.

1 стартмани

04.08.2018    9326    19    dewersia    3    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    25839    203    RSConsulting    16    

Распознавание лиц (off-line). Демонстрационная база.

Разработка внешних компонент v8 Абонемент ($m)

Распознавание лиц входит в нашу жизнь стремительными темпами, бизнес стремится за событиями. В публикации находится описание и пример использования нейросетей для распознавания лиц.

1 стартмани

17.07.2018    16543    73    nomadon    45    

Распознаем штрих-коды QR, EAN-13, Code 128 с помошью 1С и веб камеры Промо

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Внешняя компонента, поможет распознать штрих-код, используя обычную веб камеру. Умеет работать с UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 128, QR Code, Interleaved 2 of 5, Codabar, RSS-14, Data Matrix, PDF 417, Aztec, MaxiCode.

1 стартмани

31.10.2012    78040    192    shakmaev    84    

QR-code полная версия (без шрифта и внешней компоненты для 8.2, 8.3 и любого типа клиента)

Разработка внешних компонент Сканер штрих-кода v8 1cv8.cf Абонемент ($m)

Предназначена для создания QR-code с указанием процента восстановления потерянных данных. Строка кодирования может содержать все печатаемые символы, в том числе и кириллические. Для работы не требуется внешняя компонента или шрифт.

2 стартмани

10.07.2018    12091    16    bobank    6    

Внешняя компонента для ping'а

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Внешняя компонента для выполнения ping'а из 1С:Предприятия 8.

1 стартмани

04.07.2018    11063    5    frkbvfnjh    24    

JVM Native API плагин - для запуска в 1С плагинов написанных на Java

Разработка внешних компонент v8 Абонемент ($m)

Запускаем виртуальную машину Java в 1С. Собрана внешняя компонента которая позволяет запускать виртуальную машину java в среде 1С. Позволяет как передавать параметры в java - так и получать уведомление через externalevent. Предпосылкой создания являлся тот факт, что есть много готового функционала которого не хватает в 1С. Язык сpp - довольно сложен для быстрой разработки, и теперь возможно использовать готовые сборки java классов (так называемые jar-файлы) для использования в 1С.

1 стартмани

20.06.2018    12537    32    minimajack    72    

Удаленное управление через Skype Промо

Разработка внешних компонент Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

Удаленное управление 1С через Skype. Со стороны клиента для работы нужен только Skype. Со стороны сервера любой компьютер с 1С.

1 стартмани

09.02.2014    44003    13    moolex    29    

Вызов методов 1С из внешней компоненты, выполненной по технологии COM на C++

Разработка внешних компонент v8 Абонемент ($m)

Пример работы с объектами и методами 1С из внешней компоненты, разработанной по технологии COM на С++.

1 стартмани

04.06.2018    8839    4    le_    1    

Внешняя компонента Native для создания штрих кода (GS1 DataBar Expanded, GS1 DataBar Expanded Stacked и другие)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

В связи с внедрением ГИС Меркурий потребовалось внешняя компонента, которая создает штрихкод и отдает 1С. ВК создана на основе библиотеки zint www.sourceforge.net/projects/zint.

1 стартмани

27.04.2018    18650    215    artmaks1988    93    

Работа с любыми сканерами документов в 1С c помощью внешней компоненты от vintasoft.com

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Универсальная обработка для сканирования изображений на любых сканерах (поточных, планшетных) средствами ActiveX от компании Vintasoft.

1 стартмани

29.03.2018    8691    3    Dach    0    

Внешняя компонента - Запись и воспроизведение .wav файлов. Обработка-иллюстратор. Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Обработка иллюстрирует использование внешней компоненты MMLibrary для записи и воспроизведения звуковых wav файлов. Компонента разработана по технологии Native.

1 стартмани

01.03.2014    18554    22    vozhd    7    

Печать на сервере 1с. DLL для 1С, способная печатать картинки и pdf файлы в серверном контексте (например, при работе веб-сервиса)

Разработка внешних компонент v8 Россия Абонемент ($m)

Не знаю, пригодится кому или нет, писалось для себя, т.к  возникла необходимость печатать на принтере этикеток sscc напрямую с ТСД  через web - сервис. Как известно, веб сервис в 1С работает только в серверном контексте и, к сожалению, разработчики платформы пока не позаботились о возможности вызывать метод  при таких условиях. 

1 стартмани

13.03.2018    10593    30    evgeny43    13