Вход | Регистрация
    1  2  3  4  5  6  7  8  9  10  11   

Собираюсь писать ВК для 1С на C#

Ø [длинная ветка, 21.12.20 - 20:41]
Собираюсь писать ВК для 1С на C#
Я
   Гений 1С
 
11.12.20 - 19:44
Пример буду брать из "Технологии внешних ВК" на ИТС.
Вопрос такой - где брать платформу C# (IDE)?

По сути, мне надо обертку над DLL писать.
Раньше ее писал на VB6, но пора переходить на C#, у производителя оборудования пример на C#, кроме того нужна версия компоненты на 32 и 64 разряда.
   Serginio1
 
201 - 15.12.20 - 21:51
(199) Я когда делал
Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
http://catalog.mista.ru/1c/articles/534901/

И всем понравившийся Ъ, понял, что линукс нахрен никому не нужен, а вместо ВК людям проще писать Web или Http сервисы
Но написать ВК на C# не проблема. Просто Ъ универсальный, а под конкретную задачу пишется также как и любого нативного языка,
просто использую шлюз к .Net к статическим методам

Написание пользовательского хост-приложения NET Core для управления средой выполнения .NET из машинного кода
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/netcore-hosting
   Гений 1С
 
202 - 15.12.20 - 22:14
А шаблон проекта c# для вк есть (com, не native) ? И что там с 32/64 бит?
Пока что качаю vc
   Serginio1
 
203 - 15.12.20 - 22:58
(202)  Еще раз посмотри (200) там есть все для ВК? Ты за 2 дня мог все просмотреть. Еще раз Any CPU не привязан к разрядности процесса
   Ненавижу 1С
 
204 - 15.12.20 - 23:06
   Гений 1С
 
205 - 16.12.20 - 09:55
(198) отложена, т.к. нет финансирования.
   Гений 1С
 
206 - 16.12.20 - 09:56
(204) спасибо, попробую.
Я так понимаю, это COM-компонента. и при запуске из 64-разрядной 1С работать не будет без плясок с бубном? или будет?
   Гений 1С
 
207 - 16.12.20 - 09:58
(203) Посмотрел, ничего не понял, каким это боком поможет мне написать ВК-обертку над библиотекой функций оборудования в DLL. Не стоит предлагать начинающему хирургу удаление аппендикса через гланды, Dear
   Garykom
 
208 - 16.12.20 - 10:04
(207) Тебе пытаются намекнуть что ВК уже написана и VS ставить не надо.
Просто готовую ВК подключил и сразу на C#/.Net писать можно
   Serginio1
 
209 - 16.12.20 - 10:07
(206) Читаешь Использование классов .Net в 1С для новичков

Смотришь какие типы методов используешь.
Создаешь объекты и вызываешь методы с нужными параметрами
http://catalog.mista.ru/1c/articles/448668/
   Serginio1
 
210 - 16.12.20 - 10:42
209+ И смотри комментарии. Там много вопросов и ответов
   Гений 1С
 
211 - 16.12.20 - 12:31
(210) и все же это не то, что мне нужно. Мне нужна обертка над DLL, своя ВК.
   Гений 1С
 
212 - 16.12.20 - 12:35
(208) мне не годится подобный метод. Мне нужна совместимость с прошлой ВК, т.е. решение должно быть оформлено, как ВК
   Serginio1
 
213 - 16.12.20 - 12:53
(212) Ты двигайся постепенно. Для начала возьми мою компоненту попробуй вызвать свои методы. Это и есть обертка над любыми Dll
Разберешься с типам м прочими и ваяй своё.
Там есть внутри и комовский ВК, для получения контекста 1С и получения событий. Там все есть для изучения и начала создавать свое.
Тебе так или иначе нужно изучать .Net.
Главное нАчать, а ты уже неделю все никак начать не можешь.
   Serginio1
 
214 - 16.12.20 - 12:55
Смотри исходники. Я старался комментировал
   pavig
 
215 - 16.12.20 - 12:57
(205)
Если что - я весь интерфейс готов взять на себя. Есть наработки и опыт.
   Гений 1С
 
216 - 16.12.20 - 13:12
(215) напиши в личку, например. Обкашляем
   Гений 1С
 
217 - 16.12.20 - 13:13
(213) это не то, что мне нужно. Я уже нашел шаблон COM-ВК-компоненты на C#, ее и буду полировать. Вон, Ненавижн в (204) пример дал.
   pavig
 
218 - 16.12.20 - 13:20
(216)
отправил на мыло
   Ненавижу 1С
 
219 - 16.12.20 - 13:40
(217) будешь мне 5% от продаж отчислять ))))
   Serginio1
 
220 - 16.12.20 - 14:10
(217) Это не ВК, а объект автоматизации. Не все типы ты можешь передавать напрямую итд.

Смотри файл AddinFor1C.cs
и класс
public class GlobalContext1C : IInitDone, ILanguageExtender
   Кирпич
 
221 - 16.12.20 - 14:10
(217) В (204) не ВК, балда. Там то же самое, что и Serginio1 тебе предлагает сделать, только Serginio1 учит как сделать проще(как ему кажется).
(215) А вот и студент. Смотри не продешеви.
   H A D G E H O G s
 
222 - 16.12.20 - 14:13
   Гений 1С
 
223 - 16.12.20 - 14:55
Вот в такие моменты я и понимаю, что нужен ROOM, банальные вещи друг другу не можем объяснить.
   Гений 1С
 
224 - 16.12.20 - 19:40
https://wiki.programstore.ru/c-1c-pishem-prostejshij-com-server-dlya-1s/
1. "Обратите внимание, что в юзинги мы добавили System.Windows.Forms, поэтому необходимо подключить к библиотеке соответствующую ссылку"
- У меня нет раздела Ссылки.
2. "Во-первых, на закладке «Построение» надо указать, что наша программа будет зарегистрирована для COM-взаимодействия"
- нет такой галочки.
3. "Ну, и последний штрих, идем в AssemblyInfo.cs и вставляем туда вызов AssemblyKeyFile, а ComVisible делаем true"
- у меня нет "AssemblyInfo.cs"

Вот и доверяй этим интернет-манулам
   H A D G E H O G s
 
225 - 16.12.20 - 19:41
(224) Гхаб должен страдать.
   Garykom
 
226 - 16.12.20 - 19:45
(224) рекомендую вернуться обратно на vb6 ))
   Гений 1С
 
227 - 16.12.20 - 19:48
Открыл в VC проект этого перца: http://diesel.elcat.kg/index.php?showtopic=2642287
Там есть раздел ссылки, возможно, что-то не так при создании проекта сделал. Посмотрю, гм.
   Гений 1С
 
228 - 16.12.20 - 19:53
гм. Regasm еще надо найти в папке VC, нетуть
   H A D G E H O G s
 
229 - 16.12.20 - 19:55
(227) Проникайся, Сергей, духом инфраструктуры настоящего ЯП.
   Garykom
 
230 - 16.12.20 - 19:56
(228) учти что regasm на клиентских машинах может быть в разных путях и даже их несколько будет
как ты из 1С штатно будешь свою "ВК" регать?
 
 Рекламное место пустует
   Garykom
 
231 - 16.12.20 - 19:56
(230)+ а еще прикольно когда версию .net обновят с удалением старой ))
   H A D G E H O G s
 
232 - 16.12.20 - 19:57
(230) Тру ВК не требуют регистрации, на то они и dll
   Гений 1С
 
233 - 16.12.20 - 20:02
(232) где взять шаблон тру-вк?
c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe - нашел.
(230) переберу все папки NET, найду максимальную. Это решаемый вопрос.
   H A D G E H O G s
 
234 - 16.12.20 - 20:07
(233) Небольшой ГуруТест.
   Гений 1С
 
235 - 16.12.20 - 20:10
ИмяВК="AddIn.ExtTest";
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);

Гм, после рег-асма не подключается в обычных формах:
Результат: ложь
Windows x86

в регистре записи AddIn.ExtTest появились.
   Гений 1С
 
236 - 16.12.20 - 20:11
ЗагрузитьВнешнююКомпоненту("m:\fixin\...\Test1C.dll"); вываливается в исключение. гм.
   Гений 1С
 
237 - 16.12.20 - 20:13
(229) а чем настоящий он нестоящего отличается?
   H A D G E H O G s
 
238 - 16.12.20 - 20:16
(237) Ну это серьезная среда, где у тебя может проебаться какой-нибудь пакет, или переменная окружения или нужный тебе велосипед с сайта таких же любителей велосипедов будет под старую версию студии.
Тут вам не 1С.
   H A D G E H O G s
 
239 - 16.12.20 - 20:19
(236) Давай я тебе дам маленький лайфхак.
Отладчиком Студии !Скорее всего! можно будет подключиться к 1С и отлаживать код наживую. И даже поставить точку останова на точке входа в dll и узнать, че не грузится.
Епстественно, если у тебя подгружена таблица отладочных символов.

Скорее всего - это потому, что там можно в Дельфе.
   Serginio1
 
240 - 16.12.20 - 20:21
Мыши плакали, кололись, но продолжали жрать кактус!.
А у меня то все работает. Надо 2 regasm вызывать. Если бы ты почитал, то у меня даже отдельное приложение есть
   H A D G E H O G s
 
241 - 16.12.20 - 20:21
А сделать dll ку независимой от реестра - это всего лишь за 1С создать COM-фабрику, ее экземпляр и пресечь ее обращения в реестр венды. Ведь dll-ка то уже загружена. Делов для Гения на 5 минут.
   Serginio1
 
242 - 16.12.20 - 20:22
РегистрацияКомСервера.exe
   Гений 1С
 
243 - 16.12.20 - 20:26
(240) не стоит выебываться. Написал CMD (суть была в ключе codebase):

"c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe"  "%~dp0\Test1C.dll" /codebase
pause

(241) Прости, не понял о чем ты.


Теперь она регистрируется и создает объект:

ИмяВК="AddIn.ExtTest";    
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
net = Новый (ИмяВК);
net.Show("yes");

И даже выводит YES:
https://i114.fastpic.ru/big/2020/1216/fe/c4d800eba1c8a2ddaa5002a8ddd07cfe.jpg

Ну что ж, не боги горшки обжигают. Вот только не знаю, использовать этот проект как каркас или все же с нуля сделать. Не очень понятно, почему в том, что с нуля сделал, не добавились ссылки и прочая хрень:


<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>AnvizCCHEX.snk</AssemblyOriginatorKeyFile>
  </PropertyGroup>

</Project>
   Гений 1С
 
244 - 16.12.20 - 20:28
В тестовом то проект пожирнее выглядит:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"; ToolsVersion="Current">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.50727</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{515F98A0-FDD9-4D1A-9052-732CCAEC75D9}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Test1C</RootNamespace>
    <AssemblyName>Test1C</AssemblyName>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <UpgradeBackupLocation>
    </UpgradeBackupLocation>
    <OldToolsVersion>2.0</OldToolsVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Template1CExt.cs" />
    <Compile Include="COMError.cs" />
    <Compile Include="IAsyncEvent.cs" />
    <Compile Include="IErrorLog.cs" />
    <Compile Include="IInitDone.cs" />
    <Compile Include="ILanguageExtender.cs" />
    <Compile Include="IStatusLine.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="V7Data.cs" />
    <Compile Include="WinAPI.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
   Гений 1С
 
245 - 16.12.20 - 20:29
(238) не понял, в чем серьезность. Имхо, это, наборот кривость. KISS
   Гений 1С
 
246 - 16.12.20 - 20:30
надо еще понять теперь, как подключить dll оборудования в этот проект, чтобы его закомпилить. ;-)
причем там две DLL - под 32 и под 64, бррр...
   H A D G E H O G s
 
247 - 16.12.20 - 20:33
(243) "И даже выводит YES"
https://youtu.be/JgaV25qOcVo
   Serginio1
 
248 - 16.12.20 - 20:33
(243) Угу хотел тебе помочь, ноо
Для 64 разрядных надо "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" вызывать
   Garykom
 
249 - 16.12.20 - 20:34
(246) Шаблон ВК от 1С на C++ умеет делать https://docs.microsoft.com/ru-ru/cpp/build/loadlibrary-and-afxloadlibrary?view=msvc-160
если слегка допилить

И не надо .net с regasm
   Serginio1
 
250 - 16.12.20 - 20:36
   Serginio1
 
251 - 16.12.20 - 20:38
(249) Ну для .Net нужно еще среду подгрузить
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/netcore-hosting

То, что меньше .Net Core у меня реализовано в Ъ
   Гений 1С
 
252 - 16.12.20 - 20:45
(250) Спасибо, но это я уже потом буду ковыряться, если понадобится 64-разрядная вк.
   Гений 1С
 
253 - 16.12.20 - 20:46
(249) С++ более близка к ASM, чем к BASIC. К тому же у меня есть файл заголовков методов DLL на C#, причем с китайскими иероглифами.
   Гений 1С
 
254 - 16.12.20 - 20:47
(251) "То, что меньше .Net Core у меня реализовано в Ъ" - это как понять?
   Serginio1
 
255 - 16.12.20 - 20:50
(252) Сейчас как раз в основном то и используют 64 разрядные 1С ибо памяти не хватает.
Там скорее всего внутри твоих библиотек уже реализован доступ к нативным dll. Или ты сам используешь нативные ?
(254) Меньше .Net Core 3. Я еще писал для .Net 1.0.
   Serginio1
 
256 - 16.12.20 - 20:52
.Net Core 1.0 и застал 1.1
   Гений 1С
 
257 - 16.12.20 - 20:55
(255) у меня две обычные DLL - одна 32-разряда, другая 64.
   Гений 1С
 
258 - 16.12.20 - 21:00
ок, на сегодня все.
завтра попробую подрубить в проект 32-разрядную DLL и вызвать метод из DLL.
если прокатит, будем считать, что остальное - дело техники.
Было бы неплохо, конечно, чтобы один проект работал под 32 и 64, но посмотрим.
   Гений 1С
 
259 - 16.12.20 - 21:04
(248) Кстати, спасибо. зарегил под 64-разрядную платформу как ты написал, работает.
Еще бы с 32-разрядной DLL оборудования работала бы в обоих платформах, цены бы ей не было. ;-)
   Serginio1
 
260 - 16.12.20 - 21:10
(259) Ты же говорил, что у тебя .Net библиотеки, или они PInvoke к нативным?
 
 Рекламное место пустует
   Гений 1С
 
261 - 16.12.20 - 21:13
(260) это не NET библиотеки. У меня есть файл заголовка этих библиотек для C#
гм, только теперь не знаю, как в тонком подключить эту библиотеку, так не канает (ведь в файле не ВК, обычная для 1С):

ИмяВК="AddIn.ExtTest";    

СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);

ФайлDLL = "m:\fixin\...\Test1C.dll";

Результат = ПодключитьВнешнююКомпоненту(ФайлDLL, "AddInExtTest", ТипВнешнейКомпоненты.COM);
Сообщить("Результат: " + Результат);
//Прерываем как только получаем желаемый результат
net = Новый ("AddIn.ExtTest" + ".AddInExtTest");

net.Show("yes");
   Serginio1
 
262 - 16.12.20 - 21:14
Ну для 32 разрядных есть DllSurrogate
   Serginio1
 
263 - 16.12.20 - 21:16
(261) Посмотри у меня. Я уже сейчас и не помню но упаковывал в макет
   Гений 1С
 
264 - 16.12.20 - 21:31
(263) так ты DLL же упаковывал, а это не та DLL, Которую ожидает 1С
   Гений 1С
 
265 - 16.12.20 - 21:31
гм. с тонким засада. толстый то счас мало юзается, надо побороть.
   Serginio1
 
266 - 16.12.20 - 21:32
У меня есть ТестВКУФ.erf там я dll храню в макете, но потом её распаковываю.
   Serginio1
 
267 - 16.12.20 - 21:32
Но там все тоже
Если ПодключитьВнешнююКомпоненту("AddIn.GlobalContext1C") Тогда
        объект=Новый ("AddIn.GlobalContext1C");
        ГлобальныйКонтекст=объект.ГлобальныйКонтекст;
        AppDispatch=ГлобальныйКонтекст.AppDispatch;
        AppDispatch.Сообщить("Привет");
        Сообщить(AppDispatch.СтатусСообщения.Важное);
   Гений 1С
 
268 - 16.12.20 - 21:34
(267)
ИмяВК="AddIn.ExtTest";    

СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);

Результат = ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + Результат);


Выдает Ложь, хоть ты тресни.
   Гений 1С
 
269 - 16.12.20 - 21:35
Результат: Нет
Windows x86
   Serginio1
 
270 - 16.12.20 - 21:36
(265) Сейчас уже и не помню
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
Параметры:
<ИдентификаторОбъекта> (обязательный)
Тип: Строка.
Идентификатор объекта внешнего компонента в виде ProgID (Programmatic Identifier) реестра MS Windows (например: "AddIn.Scanner").
Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание варианта метода:
Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
Возвращаемое значение:
Тип: Булево.
Истина - подключение прошло успешно.
Описание:
Подключает внешний компонент к 1С:Предприятию.
Внешние компоненты могут храниться в информационной базе или макетах конфигурации в виде ZIP-архива или в виде двоичных данных, а также в файле файловой системы.
При работе на тонком клиенте и веб-клиенте компонент должен быть предварительно установлен.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер).
   Гений 1С
 
271 - 16.12.20 - 21:37
(270) да я вот помню, уже бился с тонким, в итоге так подключил:

#Если ТонкийКлиент Тогда
Результат = ПодключитьВнешнююКомпоненту(ФайлDLL, "AddInAnvizUBIO", ТипВнешнейКомпоненты.COM);
//Прерываем как только получаем желаемый результат
Возврат Новый ("AddIn.AddInAnvizUBIO.AddInAnvizUBIO");
#Иначе

Но там была нормальная DLL, а не NET C#
   Serginio1
 
272 - 16.12.20 - 21:40
Попробуй для начала Новый COMОбъект(ИмяВК);
   Гений 1С
 
273 - 16.12.20 - 21:47
(272)
ИмяВК="AddIn.ExtTest";    
net = Новый COMОбъект(ИмяВК);
Сообщить(net);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
net.Show("yes");


Windows x86
Метод объекта не обнаружен (Show)
{(6)}:net.Show("yes");
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(13)}:       Выполнить(ТекстДляВыполнения);
COMОбъект
   Гений 1С
 
274 - 16.12.20 - 21:48
это какой-то не тот ком-обьект
   Serginio1
 
275 - 16.12.20 - 22:20
Ну правильно нет. Ты же через ILanguageExtender вызываешь.
Добавь метод Show и он будет виден
Я к тому, что сначала загрузи как Ком объект а затем вызови COMОбъект(ИмяВК);
а затем
Результат = ПодключитьВнешнююКомпоненту(ИмяВК);
   Гений 1С
 
276 - 16.12.20 - 23:11
(275) так не пашет:
ИмяВК="AddIn.ExtTest";    
об = Новый COMОбъект(ИмяВК);
Сообщить(об);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
net = Новый (ИмяВК);
Сообщить(net);
net.Show("yes");

Windows x86
Тип не определен (AddIn.ExtTest)
{(6)}:net = Новый (ИмяВК);
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(13)}:       Выполнить(ТекстДляВыполнения);
COMОбъект
   Гений 1С
 
277 - 16.12.20 - 23:12
(275) И так тоже нет:

ИмяВК="AddIn.ExtTest";    
об = Новый COMОбъект(ИмяВК);
Сообщить(об);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
net = Новый (ИмяВК);
Сообщить(net);
net.Show("yes");


Windows x86
Результат: Нет
Тип не определен (AddIn.ExtTest)
{(8)}:net = Новый (ИмяВК);
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(13)}:       Выполнить(ТекстДляВыполнения);
COMОбъект
   H A D G E H O G s
 
278 - 16.12.20 - 23:24
Ты хотя бы убедился, что dllки драйвера имеют экспортные функции?
   H A D G E H O G s
 
279 - 16.12.20 - 23:25
А C# умеет в указатели?
   H A D G E H O G s
 
280 - 16.12.20 - 23:29
Будет забавно, если dll ка потребует какую нибудь структурку на вход.
   Кирпич
 
281 - 16.12.20 - 23:32
У меня есть этот SDK
Там нативная DLL и заголовочный файл С++ (я его даже в pascal перевел для интересу)
есть там еще файл C# с биндингами к этой DLL
и примеры на C#, как юзать эту DLL
есть еще docx  с описанием функций
   Кирпич
 
282 - 16.12.20 - 23:33
на китайском. запускать всё это страшно :)
   H A D G E H O G s
 
283 - 16.12.20 - 23:34
(281) Вот бы кто перевел в pascal йобу для МобильногоКлиента
   Кирпич
 
284 - 16.12.20 - 23:34
шо такое йоба?
   H A D G E H O G s
 
285 - 16.12.20 - 23:38
(284) Нечто хтоническое, за гранью гуманоидного восприятия мира, созданное выходцами из темных миров Ктулху. Вендиго, от мира ПО, пожирателей лосятины.
Как пример
http://catalog.mista.ru/1c/articles/987286/
Раздел 2
   Кирпич
 
286 - 17.12.20 - 00:10
и правда лосятина какая то. а есть смысл на 1с лепить мобильное? мне даже в голову такое не приходило
   H A D G E H O G s
 
287 - 17.12.20 - 00:18
(286) Это ВКшка для Android (МобКлиент и МобПриложение).

Ну да, нужно, если хотишь получать ВнешнееСобытие() в Ведроиде.
Раньше был Google Clouds Message, который можно было сэмулировать внутри Ведроида, вне сервера Гугл, а потом 1С перешла на Fireclouds Message и там уже без Google сервера никак. А в нем задержки по несколько секунд. Поэтому никаких push, только хардрок через ВК
   H A D G E H O G s
 
288 - 17.12.20 - 00:19
(286) Я эту лосятину осилил и сконвертил в Android Studio и даже смог подключить отладчик и даже почти чето понял. Но вот именно "почти". В родной Дельфишечке было бы уютнее.
   Garykom
 
289 - 17.12.20 - 08:34
(283) А поступить как я сделал?
Одна на C++ коммуникационная ВК мобильная и внешняя часть на чем угодно в т.ч. паскаль
   Гений 1С
 
290 - 17.12.20 - 09:07
(278) что такое экспортные функции в твоем понимании?
   Гений 1С
 
291 - 17.12.20 - 09:10
Гм, если не получится побороть тонкого, придется на CPP писать.
   acht
 
292 - 17.12.20 - 09:24
Обсуждение событий будущего времени, это так трогательно...
   Serginio1
 
293 - 17.12.20 - 09:38
(279) Конечно умеет. Есть указатели IntPtr
Вот пример вызова виртуального метода C++
https://ru.stackoverflow.com/questions/589886/%d0%9a%d0%b0%d0%ba-%d0%bf%d0%be%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d1%82%d1%8c-c-%d0%b8-c-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-com-%d0%bd%d0%b0%d0%b8%d0%b1%d0%be%d0%bb%d0%b5%d0%b5-%d0%bf%d1%80%d0%be%d1%81%d1%82%d1%8b%d0%bc-%d1%81%d0%bf%d0%be%d1%81%d0%be%d0%b1%d0%be%d0%bc/592713#592713

В моем Ъ используются для обратных вызовов и выделения памяти
   Serginio1
 
294 - 17.12.20 - 09:49
(277) Код случайно не на сервере выполняется?
   Гений 1С
 
295 - 17.12.20 - 09:52
(294) не, файловая база. дома тестирую жи. из DLL тоже не грузит. ну наверно 1с умеет грузить из ДЛЛ только то, что под regsvr32 заточено, а не под regasm
   Гений 1С
 
296 - 17.12.20 - 09:53
короче, если по ТК идей не будет, не буду изобретать велосипед и напишу на C++, по образцу 1с. так более технологично будт
   Кирпич
 
297 - 17.12.20 - 09:55
(296) Ну вот. Плавно приближаемся к (23)
   Garykom
 
298 - 17.12.20 - 10:06
(297) А потом удивляются а что это ваша платная биометрия работает как студенческая поделка?
   Garykom
 
299 - 17.12.20 - 10:07
(295) 1С умеет грузить все что правильно написано. И правильно грузят в нужном месте и правльное.
   Garykom
 
300 - 17.12.20 - 10:08
300
  1  2  3  4  5  6  7  8  9  10  11   

Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.