1C + .NET Framework 2.0

22.09.11

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

Данный компонент, позволяет использовать сборки (или исходный код C#) .NET Framework 2.0 в среде 1С:Предприятие. Как известно на базе Framework сейчас работает большинство приложений под платформу Windows, поэтому я считаю актуальным иметь такую возможность из 1С. Преимущества:  решение любых системных  задач без использования WMI, и использования готовых решений в виде сборок .NET.

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

Наименование Файл Версия Размер
PluginsCSharp.exe
.exe 92,00Kb
106
.exe 92,00Kb 106 Скачать

Данный компонент, позволяет использовать сборки (или исходный код C#) .NET Framework 2.0 в среде 1С:Предприятие. Скопировать в каталог BIN и запустить только один раз (для регистрации).
c:\Program Files\1Cv77\BIN\PluginsCSharp.exe install [or uninstall]

Должен быть установлен .NET Framework 2.0
Использовать:
В коде:

Процедура ПриОткрытии()

ок = ПодключитьВнешнююКомпоненту("AddIn.LanguageCSharp");

Если ок = 0 тогда

Сообщить("Неудалось загрузить внешнюю компоненту");

КонецЕсли;

pluginsCSharp = СоздатьОбъект("AddIn.LanguageCSharp");

КонецПроцедуры

 

Зайти в меню "Параметры", должна появиться вкладка Framework 2.0
Файл с настройками храниться в КаталогИБ()
Не забываем добавлять References к коду.
Поддерживаемые методы в контексте 1С:
ЗАГРУЗИТЬСБОРКИ
ВЫГРУЗИТЬСБОРКИ
ПОМОЩЬ
ЗАГРУЗИТЬСБОРКИИЗФАЙЛА
ДОБАВИТЬСБОРКУВФАЙЛКОНФИГУРАЦИИ
КОДОБРАБОТКИ
ИСХОДНЫЙКОДОБРАБОТКИ

Все загруженные сборки можно использовать, в контексте 1С.

Namespace:ClassName - должен быть уникальным при одном вызове ЗАГРУЗИТЬСБОРКИ

 

Рекомендации:

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

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag All_Code -url N:\DataBase\* FullTrust -n "Сервер" -d "Каталог Базы данных"
или так C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag All_Code -url \\server\DataBase\* FullTrust -n "Сервер" -d "Каталог Базы данных"

 

Расположение файлов:

Файл ВК (PluginsCSharp.exe) обязательно должен лежать в каталоге программы.

Файл конфигурации: КаталогИБ()+"pluginsC#.xml"

Файлы сборок (.dll;*.cs;*.vb) лежат в каталоге: КаталогИБ()+"pluginsC#"

Ключ реестра, для смены вручную:

[HKEY_LOCAL_MACHINE\SOFTWARE\1C\1Cv7\7.7]
"pluginsC#_cfg_file"="[Путь к файлу конфигурации]"

См. также

HTTP сервер 1С 7.7 + HTTP асинхронный клиент: внешние компоненты для 1С 7.7

Разработка внешних компонент WEB-интеграция Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно параллельно посылать много запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления.

2000 руб.

27.05.2022    7811    20    13    

31

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

Разработка внешних компонент Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    4799    1    0    

3

Выбор из большого списка (для 1С 7.7)

Разработка внешних компонент Платформа 1С v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    5777    2    19    

4

Форма для ввода количества товаров

Разработка внешних компонент Оптовая торговля Платформа 1С v7.7 Конфигурации 1cv7 Управленческий учет Платные (руб)

Расширяем уровень взаимодействия c пользователем с помощью новых возможностей - форма для ввода количества для перемещений и форма ввода количества с упаковками и штуками.

1200 руб.

08.09.2021    7390    0    2    

1

Внешняя компонента для преобразования файлов из/в кодировку Base64 в 1С 7.7

Разработка внешних компонент Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Эта внешняя компонента Base64.dll предназначена для платформы 1С версии 7.7. Используется для преобразования файлов из/в кодировку Base64 из встроенного языка 1С Предприятие. Компонента тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

06.04.2021    9446    14    softmaker    12    

5

Криптография: внешняя компонента для 1С 7.7

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9050    27    mdbruyfn    10    

9

Протокол UDP: внешняя компонента для 1С 7.7

Разработка внешних компонент Платформа 1С v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    7318    5    mdbruyfn    0    

6
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Abadonna 3958 16.04.10 07:20 Сейчас в теме
Автор, помести файл для скачивания, иначе публикация будет снята.
2. salexdv 2327 16.04.10 08:31 Сейчас в теме
Требуем файл и примеры использования! :!:
3. Abadonna 3958 16.04.10 09:47 Сейчас в теме
2 minikos. За что плюс?!!! За картинку? Так и до бана недалеко...
5. Арчибальд 2706 16.04.10 10:03 Сейчас в теме
(3) А вот компенсирую его :evil:
4. Abadonna 3958 16.04.10 09:49 Сейчас в теме
Даю автору время до 20.00 Москвы для прикрепления файла. Потом обработка будет удалена
6. Tone2010 12 16.04.10 10:19 Сейчас в теме
Не знаю ребята, файл точно подцеплял, но почему он не взялся не знаяю, я даже галку поставил главный. Вот держите.
Прикрепленные файлы:
PluginsCSharp.exe
7. Арчибальд 2706 16.04.10 10:35 Сейчас в теме
(6) Воспитательный минус снимаю.
9. Abadonna 3958 16.04.10 10:45 Сейчас в теме
(6) Вопрос снят. На будущее: при перестройке портала возможны глюки, желательно проверять после заливки. Выйди с ИС и опять зайти на свою разработку.
Что касается minikos - всё в силе, чтобы не глядя не плюсовал
10. Abadonna 3958 16.04.10 10:50 Сейчас в теме
+(9)А вот я не глядя плюс поставлю :D Ибо люблю, когда не 1С-код
8. Ёпрст 1063 16.04.10 10:36 Сейчас в теме
Не появляется вкладка в параметрах.
11. Dimasik2007 430 16.04.10 13:51 Сейчас в теме
Под восьмерку планируется?
Tone2010; +1 Ответить
12. Ёпрст 1063 16.04.10 14:30 Сейчас в теме
Тем кто скачал, у кого ЭТО заработало вообще ?
13. Арчибальд 2706 16.04.10 15:18 Сейчас в теме
(12)А никто не говорил, что ОНО еще и работать будет :D
14. Tone2010 12 16.04.10 16:37 Сейчас в теме
>>А никто не говорил, что ОНО еще и работать будет smile:D
Если бы было так, то деньгу бы выложить пришлось, принимается любые сквернословия и недовольства, только обоснованные, учтем в дальнейшем. Под восьмерку не планировалось, но можете попробовать авось проканает. Лично у меня всё работает, делалось для использования Веб-сервисов.
17. Ёпрст 1063 16.04.10 16:52 Сейчас в теме
(14) закладка не появляется, фреймворк стоит... ошибок при создании объекта нет.
конфа девственно чистая, без единого объекта
15. Tone2010 12 16.04.10 16:40 Сейчас в теме
Портал глючный не работает
16. Tone2010 12 16.04.10 16:41 Сейчас в теме
Не работает редактирование коменнтов
18. Ёпрст 1063 16.04.10 16:53 Сейчас в теме
+17 и еще, желательно примерчик хоть какой нить кинуть, хоть в стиле "хеллоу-ворд"
19. Tone2010 12 16.04.10 17:52 Сейчас в теме
>>+17 и еще, желательно примерчик хоть какой нить кинуть, хоть в стиле "хеллоу-ворд"
Процедура ПриОткрытии()


ок=ПодключитьВнешнююКомпоненту("AddIn.LanguageCSharp");
Если ок=0 Тогда
Сообщить("Не удалось подключить компоненту ");
КонецЕсли;

CSharp =СоздатьОбъект("AddIn.LanguageCSharp");

CSharp.ДобавитьСборкуВФайлКонфигурации(КаталогИБ()+"myconfig.xml",КаталогИБ()+"PluginsC#\mytestclass.dll");
CSharp.ЗагрузитьСборкиИзФайла(КаталогИБ()+"myconfig.xml");
Сообщить(CSharp.Справка()); //Получим информацию по загруженным сборкам
//CSharp.Test("Проверка"); //Проверка метода сборки



КонецПроцедуры

>>закладка не появляется, фреймворк стоит... ошибок при создании объекта нет.
>>конфа девственно чистая, без единого объекта
Закладка появится после, CSharp =СоздатьОбъект("AddIn.LanguageCSharp");
Закладка может гнать (в чем причина так и не нашел, стандартная реализация IPageблабла), поэтому файл конфигурации лучше править в блокноте.
21. Ёпрст 1063 19.04.10 10:27 Сейчас в теме
(19) Не появляется..
ЗЫ: читать описалово, пока еще умею.
20. Tone2010 12 16.04.10 18:09 Сейчас в теме
Формат файла конфигурации (кодировка UTF-8)
<Plugins>
<Assembly>
<File>E:\Test\PluginsC#\Price.cs</File>
<References>
<Identity>System.dll</Identity>
<Identity>System.Data.dll</Identity>
<Identity>System.Drawing.dll</Identity>
<Identity>System.Web.dll</Identity>
<Identity>System.Web.Services.dll</Identity>
<Identity>System.Windows.Forms.dll</Identity>
<Identity>System.Xml.dll</Identity>
<Identity>E:\Тест\PluginsC#\TestPrice.dll</Identity>
</References>
</Assembly>
<Assembly>
Код
using System; using PluginsCSharp; /* //Класс для доступа к контексту 1С public class Context1C { public object Функция(string ИмяФункции,object [] ПараметрыФункции); public object Функция(string ИмяФункции); public void Процедура(string ИмяПроцедуры); public void Процедура(string ИмяПроцедуры,object [] ПараметрыПроцедуры); public object Свойство(string ИмяСвойства,object УстанавливаемоеЗначение); public void ОбработкаВнешнегоСобытия(string bstrSource, string bstrMessage, string bstrData); public void УстановкаРазмераБуфераОчередиСообщений(int размер); public int ПолучитьРазмерБуфераОчередиСообщений(); public void ОчиститьБуферОчередиСообщений(); public void УстановитьСтрокуСостояния(string ТекстСтрокиСостояния); public void СброситьСтрокуСостояния(); } */ //ВАЖНО!!! //Имена Методов и Свойств не должны повторяться в рамках коллекции всех загружаемых сборок namespace MyPlugin //Имя окружения может быть любым { //Все методы и свойства класса должны быть public, для доступа из 1С public class LanguageExtender //Имя класса любое { //Необходимо объявить поле типа контекст 1С в публичном доступе (public ОБЯЗАТЕЛЕН, без него не будет работать) public Context1C context = null; //Класс для доступа к контексту 1С (объявлен в PluginsCSharp) //Конструктор класса обязан инициализировать контекст 1С public LanguageExtender() { context = new Context1C(); } //..... Далее следует ваш произвольный код public string MyFunction() { return "Hello World!!!"; } public string MyProperty { get { return "Hello World!!!"; } } public string КаталогБазыДанных { get { if(context!=null) return context.Function("КаталогИБ",null).ToString(); return null; } } public string КаталогПрограммы { get { if(context!=null) return context.Функция("КаталогПрограммы").ToString(); return null; } } } }
Показать полностью

<References>
<Identity>c:\Program Files\1Cv77_25\Bin\PluginsCSharp.exe</Identity>
</References>
</Plugins>
Прикрепленные файлы:
PluginsC#.xml
22. Ёпрст 1063 19.04.10 10:30 Сейчас в теме
+21

Сообщить( СоздатьОбъект("AddIn.LanguageCSharp")) = OLE._Component1C

Закладки как не было, так и нет.
23. Tone2010 12 19.04.10 11:22 Сейчас в теме
Вот рабочий вариант:

Процедура ПриОткрытии()

ок = ПодключитьВнешнююКомпоненту("AddIn.LanguageCSharp");

Если ок = 0 тогда

Сообщить("Неудалось загрузить внешнюю компоненту");

КонецЕсли;

pluginsCSharp = СоздатьОбъект("AddIn.LanguageCSharp");

КонецПроцедуры
24. Ёпрст 1063 20.04.10 12:42 Сейчас в теме
(23) ну вот, с загрузкой вк - появилось..
25. marsohod 123 21.04.10 04:23 Сейчас в теме
Кажется, намечается что-то интересное :) спасибо.
Не сочтите за дерзость ;) но еще бы *.als к нему :)
26. Elisy 948 21.04.10 08:18 Сейчас в теме
Данная разработка, случайно, не аналог
http://www.forum.mista.ru/topic.php?id=322712
?
27. Tone2010 12 21.04.10 08:41 Сейчас в теме
(26) Ни с автором ни с самой разработкой не знаком, очень похоже по задумке кстати. Я упор делал на метод ВыгрузитьСборки(), пришлось с ним повозиться. Это надо было для автоматического обновления модулей (сборок) через инет, соответственно, чтоб обновить надо выгрузить из памяти, а это работа с доменами приложений, мне мозг напрягла очень сильно... Это пробная попытка скрестить 1С с дотнетом, поэтому если что то не работает, кидаете лог в личку с описанием. Лог находится в "Администрирование->Просмотр событий", ну и за размером лога следите.
28. Elisy 948 21.04.10 09:51 Сейчас в теме
(27) Я ни в коем случае не обвиняю в чем-либо. Мне эту ссылку давали в контексте моих разработок c .Net.
Может по автоматическому обновлению из Интернет пригодится следующее:
AppDomain.CreateDomain содержит вариант с AppDomainSetup-параметром. А AppDomainSetup в свою очередь содержит свойство ShadowCopyFiles, который позволяет обновление без выгрузки домена.
29. Tone2010 12 21.04.10 10:24 Сейчас в теме
(28) Вы меня не поняли, проблемы с доменами приложений НЕТ, она решена. Иначе бы метода "ВыгрузитьСборки" не было :). Привычка чистить за собой осталась даже с появление .NET, так что увольте.
30. sss999 48 21.04.10 10:53 Сейчас в теме
а можешь просто написать,конкретную любую простенькую ситуацию,где это может пригодиться,а то я как то только на 1с проглю,и совсем не понимаю для чего нужно то что ты сделал..
31. sss999 48 21.04.10 10:57 Сейчас в теме
ниче не понял для чего это)но парень старался,потому +
32. Tone2010 12 21.04.10 11:07 Сейчас в теме
(31)
Я использую, для работы с Веб-сервисами. SOAP слышал? Так вот обертка на .NET для таких вещей делается за полминуты, а из 1С-ки ты продолбаешся долго, опять только COM поможет быстро решить задачу. Таки Regex вуаля пожалуйста он есть в .NET. Работа с сетью, сокеты? HttpRequest-ы, ftp, мыло и прочее - всё есть. Ты скажешь что под половину перечисленного есть решение готовое, ну и слава богу, первое правило не навреди (работает не трогай). Делалось для тех, кто уже пишет на .NET, но ещё приходится решать задачи для 1С. Т.е. прежде всего я делал для себя....
33. quick 583 21.04.10 12:56 Сейчас в теме
Штука прикольная, можно еще COM обьект на питоне или vbs юзать без фреймворков для доп функций
34. Romella 12.05.11 13:55 Сейчас в теме
Зачетная штука, респект.
35. Tone2010 12 22.09.11 07:23 Сейчас в теме
В связи с жадностью и не понятным мотивам авторов сего ресурса, оставляю сию публикацию до конца 2011 года, потом удалю и участвовать в этом не собираюсь...
36. vitaliy.ermolenko 52 30.09.11 17:40 Сейчас в теме
а жадность в чём заключается? денег за размещение вроде еще не надо платить или уже всё поменялось? и по-моему автор решает платная его разработка или нет.
37. Tone2010 12 13.10.11 07:42 Сейчас в теме
Жадность заключается в том что имея чем поделится я не могу пользоваться публикациями других.... так чтобы скачать даже твою публикацию мне необходимо иметь какие-о виртуальные деньги.
38. пользователь 09.02.12 14:28
Сообщение было скрыто модератором.
...
39. lelusha 20.02.14 22:35 Сейчас в теме
и мне как-то не очень понятно... но видно что сложно и многообещающе)
Оставьте свое сообщение