Метод ПодключитьВнешнююКомпоненту возвращает Ложь, или особенности разработки Native API библиотек

23.10.25

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

Разрабатываете Native API компоненту для 1С, а она падает или не подключается? Прежде чем тратить часы на сложную отладку, проверьте этот базовый чек-лист. Собрали самые частые ошибки, которые мешают успешному запуску.

Нередко при разработке Native API библиотеки для 1С возникает больше вопросов, чем ответов. В этой статье собраны основные моменты, которые нужно проверить в первую очередь. С большой вероятностью, эта проверка позволит вашей компоненте успешно запуститься.

 

1. Наличие и корректность .def-файла

Первое, что нужно проверить, — это наличие файла *.def. Этот файл указывает, какие методы доступны для внешней среды. Без него компонента будет падать сразу после присоединения, так как 1С не сможет получить методы подключения.

В этом файле необходимо прописать как минимум 5 обязательных методов:

LIBRARY    "AddInNative.dll"

EXPORTS
    GetClassObject
    DestroyObject
    GetClassNames
    SetPlatformCapabilities
    GetAttachType

 

2. Возвращаемое значение Init

Следующий момент, на который стоит обратить внимание, — процедура Init. Убедитесь, что она возвращает Истину. Это очевидный шаг, но о нем иногда забывают, что приводит к неудачному подключению компоненты.

 

3. Типизация данных: WCHAR_T vs wchar_t

Последний и очень важный аспект — типизация данных. В C++ есть два похожих типа: WCHAR_T и wchar_t. Если ваши списки методов и процедур будут объявлены с типом WCHAR_T, инициализация не пройдет и компонента не подключится. 1С ожидает именно wchar_t.

 

Бонус: отладка подключения

Для отслеживания хода подключения очень удобно использовать метод OutputDebugStringW(L"Ваш текст"). Сообщения, которые он посылает, можно отслеживать с помощью программы DebugView от Sysinternals.

Просто запустите ее, попытайтесь подключить компоненту и читайте лог в реальном времени.

 

P.S. Не забывайте про правильное преобразование строк между WCHAR_T и wchar_t не только при инициализации, но и при дальнейшей работе, чтобы избежать падения компоненты.

P.P.S. Ребят я пару дней искал почему оно не едет, вот и собрал то что делал в одну статью. Я не сомневаюсь что тот, кто умеет работать с плюсами - с такой проблемой не столкнется. Это статья для тех, кто не умеет и не может понять что пошло не так...

Вступайте в нашу телеграмм-группу Инфостарт

Native API внешняя компонента ПодключитьВнешнююКомпоненту

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18300 руб.

30.05.2017    56355    10    71    

47

Разработка внешних компонент Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

5094 руб.

02.09.2010    81194    75    280    

193

Разработка внешних компонент Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

5084 руб.

12.05.2020    32780    144    100    

100

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    5986    bayselonarrend    17    

54

Разработка внешних компонент Программист 1С:Предприятие 8 Россия Бесплатно (free)

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

04.12.2024    10553    kovalevdmv    29    

83

Разработка внешних компонент Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    11225    starik-2005    40    

49
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1007 23.10.25 12:33 Сейчас в теме
Коротко и не по делу ) Если взять шаблон от 1С, то по нему компонента собирается отлично на Win & Lin . Ничего выдумывать не нужно, только дописывай своё.
2. starik-2005 3211 23.10.25 21:54 Сейчас в теме
(1)
Если взять шаблон от 1С
Лучше брать шаблон от Инфактум или Кандр - там и wchar нет никаких в общем-то.
3. SerVer1C 1007 23.10.25 22:19 Сейчас в теме
(2) Так можно и в эсном шаблоне писать свой код без wchar. Я про то, что и в шаблоне от Инфактум тоже нет проблем, описанных в данной статье.
4. ltfriend 28.10.25 13:01 Сейчас в теме
Под Win для отладки разрабатываем в Visual Studio, в 1С компоненту на время отладки подключаем из dll файла (указываем вместо макета путь к компоненте на диске), в VS подключаемся к процессу 1С и используем все возможности полноценного отладчика (точки останова, выполнение кода по шагам, просмотр переменных и многое другое).
SerVer1C; KJlbIK; +2 Ответить
Для отправки сообщения требуется регистрация/авторизация