1C + .NET Framework 2.0

22.09.11

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
PluginsCSharp.exe
.exe 92,00Kb
106
106 Скачать (1 SM) Купить за 1 850 руб.

Данный компонент, позволяет использовать сборки (или исходный код 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"="[Путь к файлу конфигурации]"

См. также

Разработка внешних компонент Системный администратор Программист Платформа 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    5285    1    0    

3

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

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

2000 руб.

27.05.2022    8946    23    17    

34

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

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

1200 руб.

02.12.2021    6267    2    19    

4

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

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

10 стартмани

06.04.2021    10051    14    softmaker    13    

5

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

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

1 стартмани

08.06.2020    9441    28    mdbruyfn    10    

9

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

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

1 стартмани

23.05.2020    7611    7    mdbruyfn    0    

6

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

Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.

1 стартмани

14.11.2019    19358    106    mdbruyfn    105    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Abadonna 3969 16.04.10 07:20 Сейчас в теме
Автор, помести файл для скачивания, иначе публикация будет снята.
2. salexdv 2360 16.04.10 08:31 Сейчас в теме
Требуем файл и примеры использования! :!:
3. Abadonna 3969 16.04.10 09:47 Сейчас в теме
2 minikos. За что плюс?!!! За картинку? Так и до бана недалеко...
5. Арчибальд 2709 16.04.10 10:03 Сейчас в теме
(3) А вот компенсирую его :evil:
4. Abadonna 3969 16.04.10 09:49 Сейчас в теме
Даю автору время до 20.00 Москвы для прикрепления файла. Потом обработка будет удалена
6. Tone2010 12 16.04.10 10:19 Сейчас в теме
Не знаю ребята, файл точно подцеплял, но почему он не взялся не знаяю, я даже галку поставил главный. Вот держите.
Прикрепленные файлы:
PluginsCSharp.exe
7. Арчибальд 2709 16.04.10 10:35 Сейчас в теме
(6) Воспитательный минус снимаю.
9. Abadonna 3969 16.04.10 10:45 Сейчас в теме
(6) Вопрос снят. На будущее: при перестройке портала возможны глюки, желательно проверять после заливки. Выйди с ИС и опять зайти на свою разработку.
Что касается minikos - всё в силе, чтобы не глядя не плюсовал
10. Abadonna 3969 16.04.10 10:50 Сейчас в теме
+(9)А вот я не глядя плюс поставлю :D Ибо люблю, когда не 1С-код
8. Ёпрст 1065 16.04.10 10:36 Сейчас в теме
Не появляется вкладка в параметрах.
11. Dimasik2007 430 16.04.10 13:51 Сейчас в теме
Под восьмерку планируется?
Tone2010; +1 Ответить
12. Ёпрст 1065 16.04.10 14:30 Сейчас в теме
Тем кто скачал, у кого ЭТО заработало вообще ?
13. Арчибальд 2709 16.04.10 15:18 Сейчас в теме
(12)А никто не говорил, что ОНО еще и работать будет :D
14. Tone2010 12 16.04.10 16:37 Сейчас в теме
>>А никто не говорил, что ОНО еще и работать будет smile:D
Если бы было так, то деньгу бы выложить пришлось, принимается любые сквернословия и недовольства, только обоснованные, учтем в дальнейшем. Под восьмерку не планировалось, но можете попробовать авось проканает. Лично у меня всё работает, делалось для использования Веб-сервисов.
17. Ёпрст 1065 16.04.10 16:52 Сейчас в теме
(14) закладка не появляется, фреймворк стоит... ошибок при создании объекта нет.
конфа девственно чистая, без единого объекта
15. Tone2010 12 16.04.10 16:40 Сейчас в теме
Портал глючный не работает
16. Tone2010 12 16.04.10 16:41 Сейчас в теме
Не работает редактирование коменнтов
18. Ёпрст 1065 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. Ёпрст 1065 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. Ёпрст 1065 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. Ёпрст 1065 20.04.10 12:42 Сейчас в теме
(23) ну вот, с загрузкой вк - появилось..
25. marsohod 123 21.04.10 04:23 Сейчас в теме
Кажется, намечается что-то интересное :) спасибо.
Не сочтите за дерзость ;) но еще бы *.als к нему :)
26. Elisy 951 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 951 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 584 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 Сейчас в теме
и мне как-то не очень понятно... но видно что сложно и многообещающе)
Оставьте свое сообщение