Обращение к системным библиотекам Windows из кода программ 1С:Предприятие. P/Invoke.

25.11.09

Разработка - Инструментарий разработчика

Представленная здесь статья позволяет программистам 1С выйти на системный уровень, используя технологию P/Invoke из .Net framework.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Пример обработки. Требует ВК Elisy .Net Bridge
.epf 7,44Kb
106 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Представленная здесь статья позволяет программистам 1С выйти на системный уровень, используя технологию P/Invoke из .Net framework. Для подключения .Net framework незаменимую помощь окажет внешний компонент Elisy .Net Bridge.

Elisy .Net Bridge - это набор компонентов и методик для бесшовного подключения .Net framework к 1С с целью использования всей функциональности .Net.

Представленная технология дает дополнительные инструменты в арсенал 1С-овцев, позволяя писать практически теже программы, что и на остальных популярных языках программирования под Windows. P/Invoke не ограничен использованием только системных библиотек. Он работает с любыми другими DLL. Например, можно найти примеры в Интернет обращения к DirectX.

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

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    66239    351    163    

307

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    256504    1418    421    

1160

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    37652    100    46    

119

Инструментарий разработчика Нейросети Платные (руб)

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

15250 руб.

25.08.2025    52518    106    29    

117

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

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

17000 руб.

10.11.2023    24882    92    44    

101

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    3226    12    1    

14

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    52305    181    63    

214
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ivon 676 25.11.09 10:01 Сейчас в теме
Минус за рекламу. Если бы разработка не требовала платных ВК - поставил бы плюс. Подобные статьи нужно выкладывать у себя на сайте. Кто купил - найдет пример.
2. Elisy 958 25.11.09 10:45 Сейчас в теме
(1) С вашим подходом весь Инфостарт посвящен рекламе 1С, которая по сути своей является платной.
3. Ivon 676 25.11.09 18:41 Сейчас в теме
Разница в том, что проект "Инфостарт" не получает дохода от покупки пользователями и компаниями лицензий на 1С и сам доступ к проекту основан на безоплатной основе. А вот ВК, которая обеспечивает дополнительные возможности, которые обеспечивают работу данной обработки платная, и доход от покупки пакета получает конкретная компания.
4. Elisy 958 26.11.09 05:57 Сейчас в теме
(3) ВК, которая используется в статье по этой ссылке, продается в том числе на Инфостарте. Это значит, что с продажи этой ВК через Инфостарт компания-владелец ВК получает только 50%. Остальные 50% идут на нужды проекта "Инфостарт", а через него и на ваши в том числе.
5. wing 29 03.12.09 05:15 Сейчас в теме
Обращение к системным библиотекам Windows из кода программ 1С:Предприятие доступно при использовании комбинации dynwrap.dll + MSScriptControl.ScriptControl, а то что описано - это уже не системные библиотеки, а надстройка над системой, именуемая .Net framework.
6. Elisy 958 03.12.09 06:19 Сейчас в теме
(5) Речь в статье идет о P/Invoke-технологии - технологии в составе .Net framework, который в свою очередь намного обширнее.
А dynwrap.dll + MSScriptControl.ScriptControl - это разве не две надстройки над системой, в отличие от одной надстройки .Net framework? Из упомянутой пары можно еще что-то полезное выжать или их использование узкоспециализированное? Ответы на эти вопросы приводят к выводу, что во многих случаях предпочтительнее использовать .Net framework, конечно при этом узкий круг задач оставив альтернативным технологиям.
7. wing 29 04.12.09 04:30 Сейчас в теме
(6) dynwrap.dll сложно назвать надстройкой, - это скорее переходник по принципу очень похожий на Invoke, а MSScriptControl.ScriptControl - это часть системы.
Суть моего комментария была в другом - вы предлагаете использовать аж ДВЕ прослойки, одна из которых платная, в то время, как уже давно существует БЕСПЛАТНАЯ dll, способная ПРОЗРАЧНО выполнять те же функции.
8. Elisy 958 04.12.09 07:06 Сейчас в теме
(7)
Способ статьи и предложенный вами способ используют надстройки, так как нельзя напрямую вызывать в 1С функции библиотек (прямой вызов можно выполнять только в C++). При этом MSScriptControl.ScriptControl и .Net framework - это части системы (Net - часть системы, начиная с Windows Vista). Elisy .Net Bridge - тоже переходник. По количеству и качеству прослоек оба метода схожи.

Сами по себе обращения к системным библиотекам малоинтересны. Системные библиотеки возвращают указатели, в лучшем случае строки. Как их потом использовать? Использование способа, предложенного вами ограничен функционалом JScript и VBScript. Способ, описанный в статье обращается к функционалу .Net Framework. Оба способа соотносятся примерно как VBScript/JScript к VB.Net/Java, в пользу последних.

Понятно, что нельзя категорично сказать, что способ, описанный в статье единственно правильный, также как нельзя сказать тоже самое о любом другом способе. Хорошо, что есть альтернативы. Но когда требуется что-то большее, чем единичный вызов системной функции, Net framework может стать отличным вариантом, даже с платной ВК. Например, методика этой статьи используется при рисовании изображения на окне 1С или при показе диаграмм http://infostart.ru/public/61969/
9. wing 29 07.12.09 04:37 Сейчас в теме
(8) Спорить бесполезно. На вкус и цвет все фломастеры разные ...
Те, кто привык использовать компоненты .Net и кого не пугает необходимость заплатить за ваш переходник, - тех это устроит.
Тем, кто привык к использовнаию WinAPI, проще будет использовать описанный мною бесплатный вариант или же реализовать свою dll.
Также знаю многих, кому проще будет реализовать свой COM/OLE-сервер, а в этом случае уже не важно, на .Net'е оно реализовано или же на win32, - COM универсален и 1С прекрасно может использовать вызовы методов интерфейсов без каких-либо переходников, как и любая другая программа.
P.S.: Чтобы не быть голословым - сам я ранее разрабатывал и использовал как свои dll (delphi/c++builder), так и dynwrap.dll (что описано выше), а также OLE-сервера (delphi/c++builder/.Net).
Для отправки сообщения требуется регистрация/авторизация