Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Выполнить функцию из C# в 1с 7.7 / 17 сообщений из 17, страница 1 из 1
29.06.2011, 09:32
    #37328213
Khusainov_Heckfy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
не там создал тему, вот топик

http://www.sql.ru/forum/actualthread.aspx?tid=862534
...
Рейтинг: 0 / 0
29.06.2011, 10:18
    #37328298
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
напиши ДЛЛ со своим кодом. потом в 1с сделай по аналогии с v7plus.dll (посмотри в типовых) или как с торговым оборудованием 1ска работает.
...
Рейтинг: 0 / 0
29.06.2011, 10:33
    #37328337
Khusainov_Heckfy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
в 1с я не могу ничего делать, ибо эта 1с стоит у заказчика.
Мне надо вызвать функцию из 1с, и получить DataTable (DataSet) на .net (шарп, бэйсик)
...
Рейтинг: 0 / 0
29.06.2011, 11:58
    #37328550
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
есть 2 способа... 1 напрямую к таблицам второй по ле. тебе как? по таблицам -пиши скуль запрос и качай что нужно... по оле ...пиши на коде 1с)
...
Рейтинг: 0 / 0
29.06.2011, 12:16
    #37328595
Khusainov_Heckfy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
о оле, я подключаюсь к 1с
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 Type t = Type.GetTypeFromProgID("V77.Application");

                obj = System.Activator.CreateInstance(t);

                Object[] arg = new Object[ 3 ];
                arg[ 0 ] = obj.GetType().InvokeMember(@"RMTrade",
                BindingFlags.Public | BindingFlags.InvokeMethod, null, obj, null);
                arg[ 1 ] = @"/d" + @"C:\1C-test" + @" /nweb /pweb";

                OK = (Boolean)obj.GetType().InvokeMember(@"Initialize",
                BindingFlags.Public | BindingFlags.InvokeMethod, null, obj, arg);

                if (OK == false)
                {
                    MessageBox.Show("Не подключились");
                    return;
                }

потом пытаюсь вызвать функцию из 1с

Код: plaintext
1.
 object[] arg1 = new object[] { fromDate, toDate, par1 };
                    Object result = t.InvokeMember("ПолучитьСвобоныеНомера", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, obj, arg1);

Пишет "Неизвестное имя" !!!!!! (((((((((((((((((((

ааа что делать то? помогите плиз, может я не прикрутил чего в 1ске тестовой
На скрине как там все описано
...
Рейтинг: 0 / 0
29.06.2011, 12:24
    #37328614
Leierkastenmann
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
Ну для начала правильно написать "ПолучитьСвободныеНомера" :)
Но вообще 1совский код так работать не будет, если это обработка, то ее надо ее открыть и как вариант при открытии вызвать нужную процедуру/функцию.
...
Рейтинг: 0 / 0
29.06.2011, 12:27
    #37328625
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
Khusainov_Heckfy, вот пример на VB
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
[/src]Метод ExecuteBatch выполняет последовательность операторов, запи­санную в параметре <СтрокаОператоров> на встроенном языке 1С:Предприятие.

Пример:

* здесь пример приводится на языке MS Visual Basic:

Sub Command1_Click ()

   Dim v7  As   Object 

   Dim Price  As   Object 

    Set  v7 = CreateObject("V77.Application")

   result = v7.Initialize(v7.RMTrade, "/DC:\V7\DB /M", "")

    Set  Price = v7.EvalExpr("ОтдатьСправочникТоваров()")

   Price.New

   Price.Code = " 112233 "

   Price.Description = "Test  string "

   Price.Write;

   BoolResult = v7.ExecuteBatch("ПроцедураРегл1();ПроцедураРегл2()")

 End  Sub

[SRC DELPHI]
...
Рейтинг: 0 / 0
29.06.2011, 12:30
    #37328636
Leierkastenmann
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
В c# я не силен, но в 1ске надо вызвать что-то типа такого.
ОткрытьФорму("Обработка.ПолучитьСвободныеНомера", Параметры);
В параметры можно запихнуть любое значение 1совского типа. Как вариант можете просто строку с командой впихнуть. А в самой обработке должна быть процедура ПриОткрытии() с таким фрагментом кода
Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
Если Форма.Параметр = "КомандаПолучитьСвободныеНомера" Тогда
ПолучитьСвободныеНомера();
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
...
Рейтинг: 0 / 0
29.06.2011, 12:31
    #37328640
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
Для начала запихай эту функцию в общий модуль ( на 1 объекте конфигурации правой кнопкой), а так да сперва надо указать что этот код в обработке лежит
...
Рейтинг: 0 / 0
29.06.2011, 12:33
    #37328643
Khusainov_Heckfy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
Ребята все, нашел знакомого 1сника, он показал что там есть глобальный модуль.... ;(
всем спасибо
...
Рейтинг: 0 / 0
29.06.2011, 12:54
    #37328681
Khusainov_Heckfy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
так) приходит объект System.__ComObject....
а как его в DataTable или DataSet преобразовать....
...
Рейтинг: 0 / 0
29.06.2011, 13:08
    #37328709
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
пишешь в 1с говори по 1совски.. преобразовать в дату?
...
Рейтинг: 0 / 0
29.06.2011, 13:09
    #37328711
Khusainov_Heckfy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
Нет, преобразовать в таблицу значений
...
Рейтинг: 0 / 0
29.06.2011, 13:14
    #37328722
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
Khusainov_Heckfyтак) приходит объект System.__ComObject....
а как его в DataTable или DataSet преобразовать....

Только перебором строк.
1) <object>.SelectLines() открываем выборку строк
2) Пока <object>.GetLine() = 1 Цикл пока получить строку = 1
считываем значения полей по названию поля <object>.<название поля>
...
Рейтинг: 0 / 0
29.06.2011, 13:15
    #37328723
Khusainov_Heckfy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
Ну тоесть приходит объект ТЗ, а кто в .net шарит может как из этого в таблицу преобразовать
...
Рейтинг: 0 / 0
29.06.2011, 13:23
    #37328752
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
нет. тока методами 1с передрать и заполнить свою таблицу в Си.
ТЗ.выбратьзначения и тд ))
...
Рейтинг: 0 / 0
29.06.2011, 13:23
    #37328754
Zerro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнить функцию из C# в 1с 7.7
перебрать то есть
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Выполнить функцию из C# в 1с 7.7 / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]