0. milkers 2334 25.07.16 15:05 Сейчас в теме

 Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)

Союз-PLM представляет собой полнофункциональный программный комплекс для решения широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства.

На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. vz1987 15 16.12.17 02:10 Сейчас в теме
Спасибо за статью!
Может кому-нибудь пригодится, опишу свои грабли, на которые наступил: ловил исключение "Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))" на строке кода
 connection = oType.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod, null, V8, new object[] { connectionString });
.
Гугление данного кода ошибки вело меня совсем не в ту степь. А проблема оказалась в том, что Visual Studio была запущена не от Администратора.
2. premier 175 07.06.19 09:29 Сейчас в теме
(0) Вот в этом участке кода
try
{
NewItem1C.GetType().InvokeMember("Записать", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, NewItem1C, new object[] { });
}
catch (Exception e)
{
Marshal.ReleaseComObject(Items1C);
Marshal.ReleaseComObject(connection);
Marshal.ReleaseComObject(V8);
Service.UI.ShowMessage(string.Format("Ошибка записи номенклатуры \'{0}\'", (e.InnerException.ToString()), e.Message));
return;
}
}
//Освобождаем память
Marshal.ReleaseComObject(Items1C);
Marshal.ReleaseComObject(connection);
Marshal.ReleaseComObject(V8);
Показать

высвобождение интерфейсов в констукции catch(...){...} и выход из процедуры, мне кажется, избыточны. Достаточно вывести предупреждение и дать программе завершить процедуру. Ниже по коду как-раз таки высвобождаются интерфейсы и происходит выход.
А в общем целом познавательно.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Владивосток
зарплата от 80 000 руб. до 120 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Екатеринбург
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Бизнес-аналитик 1С
Москва
зарплата от 140 000 руб. до 200 000 руб.
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день