Снегопат
https://snegopat.ru/forum/

Addin-ы на .NET
https://snegopat.ru/forum/viewtopic.php?f=1&t=13
Страница 1 из 6

Автор:  steban [ 26 авг 2011, 15:58 ]
Заголовок сообщения:  Addin-ы на .NET

Написал загрузчик аддинов, написанных на .NET.

Актуальное описание всегда будет в wiki

Для подключения загрузчика в addin.ini написать:
Код:
script:scripts\ClrAddinLoader.js


Способы подключения аддинов:
  1. Написать в addins.ini :
    Код:
    clr:ИмяСборки.dll|ИмяКласса

    Имя класса можно опускать, тогда будет создан первый встреченный публичный класс
  2. Через пункт меню снегопата "Загрузить сборку"

Пример создания аддина:
  • Создать новый проект в VS или SharpDevelop
  • добавить в проект ссылку на сборку ClrAddinLoader.dll
  • Создать класс, унаследовав его от ClrAddinBase
  • реализовать класс. Его публичные методы без параметров и возвращающие void, станут макросами.
  • Объектная модель снегопата доступна через св-во designer класса ClrAddinBase (и сл-но его наследников)

Пример кода аддина:
Код:
using System;
using SnegopatLib;

namespace SampleAddin
{
    public class Class1 : ClrAddinBase
    {
        public void Method1()
        {
            designer.Message("Я clr-addin");
        }
        public void Method2()
        {
            designer.Message("2-й метод");
        }
    }
}

Автор:  artbear [ 26 авг 2011, 16:09 ]
Заголовок сообщения:  Re: Addin-ы на .NET

А обработчики событий форм 1С проверял?

Автор:  steban [ 26 авг 2011, 16:12 ]
Заголовок сообщения:  Re: Addin-ы на .NET

artbear писал(а):
А обработчики событий форм 1С проверял?

и не планировал.
Аддин может реализовать свои формы на Windows.Forms

Автор:  artbear [ 26 авг 2011, 16:18 ]
Заголовок сообщения:  Re: Addin-ы на .NET

Еще не хватает готового примера аддина и исходников проекта для него.

Автор:  JohnyDeath [ 26 авг 2011, 16:22 ]
Заголовок сообщения:  Re: Addin-ы на .NET

Степан, а что например ты хочешь реализовать такими аддинами?
Я всегда за большой выбор, но чем может не устраивать текущие связки скрипт+форма1С? Это ж всего лишь надстройка для КОНФИГУРАТОРА

Автор:  artbear [ 26 авг 2011, 16:23 ]
Заголовок сообщения:  Re: Addin-ы на .NET

artbear писал(а):
Еще не хватает исходников проекта для него.

PS готовый пример увидел

Автор:  steban [ 26 авг 2011, 16:24 ]
Заголовок сообщения:  Re: Addin-ы на .NET

Пример аддина есть в архиве - SampleAddin.dll

А приведенный пример кода аддина - это практически и весь его исходник.

Автор:  steban [ 26 авг 2011, 16:27 ]
Заголовок сообщения:  Re: Addin-ы на .NET

JohnyDeath писал(а):
Степан, а что например ты хочешь реализовать такими аддинами?

Пока ничего.

Надеюсь, что в снегопат набегут дотнетчики и кааааак понапишут чего-нить интересного :)

Автор:  artbear [ 26 авг 2011, 16:29 ]
Заголовок сообщения:  Re: Addin-ы на .NET

steban писал(а):
Код:
            designer.Message("Я clr-addin");

Так не компилится,
нужен доп.параметр MessageMarkers
Код:
designer.Message("2-й метод", MessageMarkers.mExc1);

Или я что-то делаю не так?

Автор:  artbear [ 26 авг 2011, 16:35 ]
Заголовок сообщения:  Re: Addin-ы на .NET

Кстати, баг с загрузкой у Снегопата или у твоего загрузчика, похоже, нарисовался :(
Сначала в Снегопат загрузил твой тестовый пример, появился скрипт SampleAddin.Class1
Далее в студии собрал простой пример SampleAddin.Class1 - про совпадение имен классов я сначала не подумал, хотя имена файлов разные :)
Далее попытался загрузить свою сборку, Снегопат отругался на одинаковое имя аддина
Цитата:
Ошибка при загрузке: Аддин с уникальным именем SampleAddin.Class1 уже загружен

Моя сборка, естественно, не появилась в списке аддинов Снегопата.

И вот баг:
Я вижу, что имена совпадают, пересобираю проект, пытаюсь его собрать в это же место, Студия выдает ошибку
Цитата:
не удалось скопировать файл "obj\Debug\ClassLibrary1.dll" в "..\Snegopat\Starter\scripts\ClassLibrary1.dll". Процесс не может получить доступ к файлу "..\Snegopat\Starter\scripts\ClassLibrary1.dll", так как этот файл используется другим процессом.

Аплодисменты! Занавес! :)

Т.е. файл не загрузился в Снегопат, но он остался залоченным :(

Страница 1 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/