#0
by alexeyomg
Пишу ВК, не могу подключить к 1с на ubuntu. Даже экзапл от 1с не подключается. Поэтому вопрос по нему: 1) Пытаюсь подключи ВК из примера VNCOMPS, приведённым в статье (ссылку можно найти в самом конце: «Копирование»). Внутри в проекте NativeApi есть makefile. С его помощью я собираю .so библиотеку на Ununtu. Но при "ПодключитьВнешнююКомпоненту" 1с вылетает. Аналогично, если собираю при помощи "build.sh" (в корне проекта). В самом makefile меняю флаг с m32 на m64, т.к. 1с и сама система x64. (с параметром m32 не подцепляется всё равно) Вот пример вызова ВК из 1С 8.3: Есть статейка как раз на эту тему . Но, насколько я вижу, все эти моменты уж учтены исправили в VNCOMPS примере. Но по сути дело в параметрах компиляции. Мб 32битная внешняя компонента подцепляется к 32-x битной 1с нормально, но я развернул на Ubuntu x64 1c enterprise83 8.3.5-1486 amd64. И хочу к ней подцепить ВК. Есть у кого мысли, как решить этот вопрос?) VNCOMPS-пример должен работать, но походу надо поправить параметры сборки, или сама платформа, на которой я тестирую - некорректна.
#1
by orefkov
Раз 1С вылетает - значит, всё-таки подгружает твою ВК. Ищи, где в твоем коде вылет. Самое простое - в своей ВК пиши в какойнить файл трассировку выполнения.
#6
by xaozai
+ Не знаю, как у вас с линуксами, а когда компоненту на С++ под Win писал, то мне оч. помогала возможность отладчика MS Visual Studio приаттачить процесс 1cv8.exe "Attach to Process". Бряк, при этом, в самой компоненте ставится, при инициализации, например.
#8
by alexeyomg
[New Thread 0x7fff4920a700 (LWP 8284)] [Thread 0x7fff4920a700 (LWP 8284) exited] *** Error in `/opt/1C/v8.3/x86_64/1cv8c': free: invalid next size (fast): 0x0000000003327780 *** это выводит при подключении ВК
#9
by alexeyomg
ну на винде цепляется эти компонента (которую я сбилтил через VS). для ubuntu я изменяю следующее, чтобы норм сбилдить .so: 1) build.sh имеют следующие команды: #!/bin/sh PATH=~/cmake-2.8/bin:$PATH mkdir build64_310 ; cd build64_310 ; cmake -D XUL_VERSION:STRING="31.0" -D CMAKE_BUILD_TYPE:STRING=RelWithDebInfo -D TARGET_PLATFORM_32:BOOL=OFF --build .. ; cd .. cd build64_310 ; make -j 4 ; cd ..; rm -rf build64_310 вместо полного: #!/bin/sh #build script for CentOS 5 PATH=~/cmake-2.8/bin:$PATH echo "Build 32 310" ; if [ ! -d build32_310 ]; then mkdir build32_310 ; cd build32_310 ; scl enable devtoolset-2 'cmake -D XUL_VERSION:STRING="31.0" -D TARGET_PLATFORM_32:BOOL=ON -D CMAKE_SHARED_LINKER_FLAGS:STRING=-m32 -D CMAKE_MODULE_LINKER_FLAGS:STRING=-m32 -D CMAKE_EXE_LINKER_FLAGS:STRING=-m32 -D CMAKE_BUILD_TYPE:STRING=RelWithDebInfo --build .. '; fi ; cd build32_310 ; scl enable devtoolset-2 'make -j 4' ; cd .. ; rm -rf build32_310 echo "Build 64 310" ; if [ ! -d build64_310 ]; then mkdir build64_310 ; cd build64_310 ; scl enable devtoolset-2 'cmake -D XUL_VERSION:STRING="31.0" -D CMAKE_BUILD_TYPE:STRING=RelWithDebInfo -D TARGET_PLATFORM_32:BOOL=OFF --build .. '; fi ; cd build64_310 ; scl enable devtoolset-2 'make -j 4' ; cd ..; rm -rf build64_310 2) в CMakeLists.txt убрал несколько строк, чтобы собиралось только NAtiveAPI. Убрал следующее: IF("${XUL_VERSION}" STREQUAL "") MESSAGE(FATAL_ERROR "XUL_VERSION must have value!") P.S. Мб я что-то лишнее убрал?) но мб всё по делу. всё собирается норм, но не подключается к 1с. Пытаюсь подцепить компонентц эту x32, выдаётся "Ложь", а не вылетает. Ну это так, как доп инфа.
#10
by alexeyomg
всё. получилось подключить более менее шаблон этот. я хз что изменилось, но раньше метод GetClassNames не вызывался. логов не было... вылетало в самом первом методе, который вызывается 1с-кой "GetClassNames". В итоге в логах всё норм пишет, что вызывается GetClassNames GetClassObject CAddInNative Init Но установить такие же параметры в моём проекте, что и в тестовом проекте у меня так и не получается. Мне нужно в одном cmakelists прописать все правила, что описаны в cmakelists(корень примера этого) и makefile (NativeApi проект) тестового примера. Посмотрите плз. Что коряво написано: Это мой Cmakelists cmake_minimum_required(VERSION 3.2) SET(ProjectName "A1CFclientClionNativeApi") SET(SOURCE_FILES AddInNative.cpp dllmain.cpp AddInNative.h ComponentBase.h IMemoryManager.h types.h com.h stdafx.h stdafx.cpp AddInDefBase.h)
#11
by alexeyomg
А это makefile проекта NativeApi из примера: TARGET=AddInNative.so LIBS=pthread OBJECTS=$(SOURCES:.cpp=.o) INCLUDES=-I../../include И cmakelists решения всего: # Cmake script for project AddIn set(BUILD_DIR "build") set(CMAKE_SKIP_RPATH ON CACHE TYPE BOOL) OPTION(TARGET_PLATFORM_32 "Build target for i386" OFF) MARK_AS_ADVANCED(TARGET_PLATFORM_32) MESSAGE(FATAL_ERROR "XUL_VERSION must have value!")
#12
by alexeyomg
Тема закрыта. с типами данных запара была. а ну да. в этом примере от 1С в методе GetClassNames идёт return s_names;, а надо взять код этой функции из шаблона (рядом с примерами лежит): но это одна из мелочей. у меня до этого вообще даже в начало этой функции на заходило (по логами видно было). более менее качественно ещё раз прописал параметры сборки и всё зафурычило. Кому нужно, вот так получился cmakelists: set(SOURCE_FILES AddInNative.cpp dllmain.cpp AddInNative.h ComponentBase.h IMemoryManager.h types.h com.h stdafx.h stdafx.cpp AddInDefBase.h) set_source_files_properties(${SOURCE_FILES} set_target_properties( ${ProjectName} PROPERTIES CLEAN_DIRECT_OUTPUT 1 OUTPUT_NAME ${ProjectName} ) target_link_libraries (${ProjectName} "${REQUIRED_LIBRARIES}")
#15
by alexeyomg
походу нет. вот выдержка из статьи по технологиям ВК: "В качестве средств разработки можно применять: Microsoft Visual C++, Delphi, C++ Builder, gcc"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- V8 внешняя обработка.ПолучитьМакет
- Внешняя компонента SysFTP для 1С 7.7
- Внешняя компонента на С++
- Внешняя обработка. ПолучитьМакет("Макет1")
- Внешняя компонента.
- Внешняя печатная форма
- внешняя печатная форма М-4 для 1с8
- 8.2 Внешняя компонента Native API
- Wine HTML 1с Предприятие v8.2 под Linux Ubuntu
- Компонента печати штрих кода под Linux
- native API на C++. Функция со строковым параметром и строковым результатом.
В этой группе 1С
- принтер по -умолчанию в ут11
- Hyper-v+Терминал+Клиент 1С
- Задержка при работе кассира в УТ 10.3
- v7: Как в 7-ке при обновлении увидить,где были изменения поставщика где других прог
- Принтер пропускает страницы при печати.
- Размер картинки 1С
- СКД, составной тип данных и права.
- Передача данных в АСОДУ-MES стандартами OPC
- Как проверить с помощью 1с, содержит ли строка латинские,русские буквы и цифры?
- PostgreSQL и ERP 2.0
- Настройка персональной надбавки в УПП 1,3
- v7: ЗиК 77 - уменьшение сумм БЛ по результатам проверки ФСС
- Почта в 1С
- НайтиПоСсылкам. Область поиска
- v7: Exel Выделить диапазон ячеек (всё, что введено) и удалить/очистить его
- Обновление Бухгалтерии: Слишком много фактических параметров
- Оформлено больше чем указано в строке 1 распоряжения Заказ поставщику
- Не проставляется ответственное лицо в Авансовом отчете
- Перенос картинок номенклатуры в обмене УТ 10.3 - УПП 1.3
- Клиент-банк в Рознице 2.1