Как стать автором
Обновить

Комментарии 17

фу, какашка…
Простите, этот код правда работает?
if (Элемент = null) Тогда
		возврат ""
	КонецЕсли;
Да Native API возвращает Null а не неопределено
Даже так)) Я немного про другое. Видимо Руслиш на столько велик и могуч, что позволяет писать часть условного оператора на английском, а часть на русском.
Да. Особенно, когда приспосабливаешь код написанный на C# в 1С.

В реалии код
if (Элемент ==null) 		return ""


D 1C можно использовать англоязычные синонимы
НЛО прилетело и опубликовало эту надпись здесь
Это великий и могучий Руслиш «Руслиш»: официальный язык МКС — МИР24

Это с непревычки. Мне например долго приходилось соображать, что к чему когда код 1С на английском Сценарное тестирование в помощь программисту 1С

Ну, а кроме Русслиша, неинтересно?
1. Использование классов .Net в нативе
2. Кроссплатформенность как замена COM
3. Использование сахара как методы расширения, вывод типа в дженерик методах, асинхронное программирование?
Спасибо. Вот если в неё встроить доступ к классам .Net, добавить замыкания аналоги await…
Но на ней действительно достаточно легко решать задачи учета. И самое главное это куча типовых конфигураций которые сейчас можно расширять не снимая с поддержки
1с почти гениальна в своей области, очень удобна, к коду можно привыкнуть.

Единственное пока не понял как на ней работать разработчику под Linux, я уже лет пять на Винде не работаю, только виртуалки для тестов.
К сожалению версии для разработчиков под Linux нет. Под вайн не работает отладчик. Короче в этом смысле печаль… + проблемы с com объектами, но тут только со слов разработчиков, сам пока до этого не дорос )
К сожалению у меня нет Linux. Но код кроссплатформен. Правда нужно перекомпилировать код на C++ и скачать .Net Core под Linux.
https://www.microsoft.com/net/core#windows
https://github.com/dotnet/cli
С версии 8.3.3.641 прекрасно работает под nix ( и сервер и клиент и конфигуратор).
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 есть 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-систем
Просили про отправку почты. Заодно исправил ошибку. Кому интересно скачайте новую версию

 smtp = "smtp.yandex.ru";
    login = "XXXX@yandex.ru";
    password = "YYYYYY";
    Кому = "YYYYYYY@XXXXXXXX.ru";
    
    
    СборкаMailKit=ъ(Врап.Сборка("MailKit.dll"));
    СборкаMimeKit=ъ(Врап.Сборка("MimeKit.dll"));
    
    MimeMessage=ъ(СборкаMimeKit.GetType("MimeKit.MimeMessage"));
    MailboxAddress=ъ(СборкаMimeKit.GetType("MimeKit.MailboxAddress"));
    TextPart=ъ(СборкаMimeKit.GetType("MimeKit.TextPart"));
    
    SmtpClient=ъ(СборкаMailKit.GetType("MailKit.Net.Smtp.SmtpClient"));
    
    
    
    message = ъНовый(MimeMessage.ПолучитьСсылку());
    From= ъ(Врап.Новый(MailboxAddress.ПолучитьСсылку(),"Сергей Смирнов", login));
    ъ(message.From).Add( From.ПолучитьСсылку());
    
    ToMail=ъ(Врап.Новый(MailboxAddress.ПолучитьСсылку(),"Сергей Смирнов", Кому));
    ъ(message.To).Add(ToMail.ПолучитьСсылку());
    message.Subject = "Как дела?";
    
    ТелоСообщения=  ъ(Врап.Новый(TextPart.ПолучитьСсылку(),"plain"));
    ТелоСообщения.Text = "Здесь любое сообщение
    | что фантазия подскажет
    | Это тест отправки почты";
    
    message.Body=ТелоСообщения.ПолучитьСсылку();
    client =ъНовый(SmtpClient.ПолучитьСсылку());
    client.Connect(smtp, 465, true);
    
    // Note: since we don't have an OAuth2 token, disable
    // the XOAUTH2 authentication mechanism.
    ъ(client.AuthenticationMechanisms).Remove("XOAUTH2");
    
    // Note: only needed if the SMTP server requires authentication
    client.Authenticate(login, password);
    
    client.Send(message.ПолучитьСсылку());
    client.Disconnect(true);
    Врап.ЗакрытьРесурс(client.ПолучитьСсылку()); 



Вот SQL запрос к MS SQL

 Сборка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("Наименование"));
    КонецЦикла;




Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации