СборкаSqlClient=ъ(Врап.Сборка("System.Data.SqlClient.dll"));
SqlConnection=ъ(СборкаSqlClient.GetType("System.Data.SqlClient.SqlConnection"));
SqlCommand=ъ(СборкаSqlClient.GetType("System.Data.SqlClient.SqlCommand"));
connection =ъ(Врап.Новый(SqlConnection.ПолучитьСсылку(),ConnectionString));
connection.Open();
ТекстЗапроса = "Sel ect Номенклатура.DESCR Наименование Fr om sc84 Номенклатура where DESCR Like '%'+@Строка+'%'
|order by Номенклатура.DESCR";
command = ъ(Врап.Новый(SqlCommand.ПолучитьСсылку(),ТекстЗапроса,connection.ПолучитьСсылку()));
Parameters=ъ(command.Parameters);
Parameters.AddWithValue("@Строка", "ДСП");
dr = ъ(command.ExecuteReader());
Пока dr.Read() Цикл
Сообщить(dr.get_Item("Наименование"));
КонецЦикла;
Добрый день. В технологии Внешних компонент заложен возврат объектов и передача объектов в параметрах ВК. Но пока этого сделать нельзя. Приходится возвращать строку и из неё создавать ВК
//1С при передаче по ссылке свойства ВК Список.Current
// при выходе из метода присваивает Список.Current значение переданное изначально
// Поэтому помечаем входной параметр как Знач
//Или же делать так, если методы изменить нельзя
// То нужно присвоить значение переменной и вызвать метод передав в параметрах эту переменную
//Стр=Список.Current;
//Зазача=ъ(Стр);
Функция Ъ(знач Ссылка)
// Создаем объект по ссылке полученной из методов .Net классов
//Физически это строка ёЁ<Ьъ>№_%)Э?&2 содержащее 12 символов для отделения их от других строк
//и индекс в спике исполуемых объектов на стороне .Net
рез = Новый("AddIn.NetObjectToNative.NetObjectToNative");
// И установим ссылку
рез.УстановитьСсылку(Ссылка);
возврат рез
КонецФункции// СоздатьОбъектПоСсылке()
Так при передаче объекта в параметрах приходится получать строковую ссылку
СборкаSqlClient=ъ(Врап.Сборка("System.Data.SqlClient.dll"));
SqlConnection=ъ(СборкаSqlClient.GetType("System.Data.SqlClient.SqlConnection"));
SqlCommand=ъ(СборкаSqlClient.GetType("System.Data.SqlClient.SqlCommand"));
connection =ъ(Врап.Новый(SqlConnection.ПолучитьСсылку(),ConnectionString));
connection.Open();
ТекстЗапроса = "Select Номенклатура.DESCR Наименование From sc84 Номенклатура where DESCR Like '%'+@Строка+'%'
|order by Номенклатура.DESCR";
command = ъ(Врап.Новый(SqlCommand.ПолучитьСсылку(),ТекстЗапроса,connection.ПолучитьСсылку()));
Parameters=ъ(command.Parameters);
Parameters.AddWithValue("@Строка", "ДСП");
dr = ъ(command.ExecuteReader());
Пока dr.Read() Цикл
Сообщить(dr.get_Item("Наименование"));
КонецЦикла;
Хотя для Linux есть 64 разрядные клиенты
Тонкий клиент 1С: Предприятия (64-bit) для DEB-based Linux-систем
Тонкий клиент 1С: Предприятия (64-bit) для RPM-based Linux-систем
Клиент 1С: Предприятия (64-bit) для DEB-based Linux-систем
Клиент 1С: Предприятия (64-bit) для RPM-based Linux-систем
http://v8.1c.ru/requirements/ Пока .Net Core для nix только под 64 разрядные. Хотя 1С сейчас выпускает 64 разрядного клиента в 8.3.9
http://www.forum.mista.ru/topic.php?id=778385&page=1
К сожалению у меня нет Linux. Но код кроссплатформен. Правда нужно перекомпилировать код на C++ и скачать .Net Core под Linux.
https://www.microsoft.com/net/core#windows
Спасибо. Вот если в неё встроить доступ к классам .Net, добавить замыкания аналоги await…
Но на ней действительно достаточно легко решать задачи учета. И самое главное это куча типовых конфигураций которые сейчас можно расширять не снимая с поддержки
Ну, а кроме Русслиша, неинтересно?
1. Использование классов .Net в нативе
2. Кроссплатформенность как замена COM
3. Использование сахара как методы расширения, вывод типа в дженерик методах, асинхронное программирование?
Я про
>> (цены, сумы и кол-ва задаются в виде строк, чтобы избежать проблем ложного срабатывания проверки теста в случае его запуска в другой локали, где разделитель триад и дробной части, например, могут отличаться)
Ну товар.Цена=89,32 выдаст ошибку на любой локали. Другое дело строковое представление числа.
Можно задавать единую локаль
Формат(Значение,«Л=en_US»)
Да это не суть. В Native API есть структура
В которой можно использовать
void* pInterfaceVal;
IID InterfaceID;
А в vt; указать, что это ВК.
Так при передаче объекта в параметрах приходится получать строковую ссылку
Тонкий клиент 1С: Предприятия (64-bit) для DEB-based Linux-систем
Тонкий клиент 1С: Предприятия (64-bit) для RPM-based Linux-систем
Клиент 1С: Предприятия (64-bit) для DEB-based Linux-систем
Клиент 1С: Предприятия (64-bit) для RPM-based Linux-систем
http://www.forum.mista.ru/topic.php?id=778385&page=1
https://www.microsoft.com/net/core#windows
Но на ней действительно достаточно легко решать задачи учета. И самое главное это куча типовых конфигураций которые сейчас можно расширять не снимая с поддержки
В реалии код
D 1C можно использовать англоязычные синонимы
Это с непревычки. Мне например долго приходилось соображать, что к чему когда код 1С на английском Сценарное тестирование в помощь программисту 1С
Ну, а кроме Русслиша, неинтересно?
1. Использование классов .Net в нативе
2. Кроссплатформенность как замена COM
3. Использование сахара как методы расширения, вывод типа в дженерик методах, асинхронное программирование?
Для таких как я можно дать ссылочку на ИТС Пример автоматизированного тестирования
ТестируемоеОкноКлиентскогоПриложения (TestedClientApplicationWindow)
Я понял суть, но мне интересна и конкретика!
>> (цены, сумы и кол-ва задаются в виде строк, чтобы избежать проблем ложного срабатывания проверки теста в случае его запуска в другой локали, где разделитель триад и дробной части, например, могут отличаться)
Ну товар.Цена=89,32 выдаст ошибку на любой локали. Другое дело строковое представление числа.
Можно задавать единую локаль
Формат(Значение,«Л=en_US»)
test = Type ( «TestedClientApplicationWindow» );
Показывает, что общий модуль. Но его найти не могу