Good ideas for SQLite and NLog
Logging with NLog and SQLite - Andrea Azzola's Blog:
'via Blog this'
Sunday, February 21, 2016
Monday, February 1, 2016
Отправка почты из под 1C через outlook
В обще дальнейшая часть автоматизации и веселостей от microsoft.
При отправке почтового сообщения через outlook api возникли проблемы
при чем этот код работал нормально и письма уходили нормально.
А вот при отправке со стороны сервера была проблема
Первично проверил по инету, с наскоку решить проблему не удалось
1. http://infostart.ru/public/325873/ выполняем
После этого почта все также не уходила, сделал шаг
2. http://stackoverflow.com/questions/3750605/getting-creating-an-outlook-application-in-windows-7
Вот после этого почта стала уходить нормально.
При отправке почтового сообщения через outlook api возникли проблемы
&НаКлиенте
Процедура Отправить(Команда)
Попытка
objOutlook = Новый COMОбъект("Outlook.Application");
Исключение
objOutlook = НЕопределено;
Возврат;
КонецПопытки;
myItem = objOutlook.CreateItem(0);
myRecipient = myItem.Recipients.Add("pd@rl.ua");
myRecipient.Type=1;
myItem.Subject = "Тест "+ТекущаяДата();
//myItem.Attachments.Add("C:\image.jpg");
myItem.HTMLBODY ="TEST";
myItem.Send();
КонецПроцедуры
при чем этот код работал нормально и письма уходили нормально.
А вот при отправке со стороны сервера была проблема
&НаКлиенте
Процедура Отправить(Команда)
ОтправитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОтправитьНаСервере()
Попытка
objOutlook = Новый COMОбъект("Outlook.Application");
Исключение
objOutlook = НЕопределено;
Возврат;
КонецПопытки;
myItem = objOutlook.CreateItem(0);
myRecipient = myItem.Recipients.Add("pd@rl.ua");
myRecipient.Type=1;
myItem.Subject = "Тест "+ТекущаяДата();
//myItem.Attachments.Add("C:\image.jpg");
myItem.HTMLBODY ="TEST";
myItem.Send();
//myItem.Display();
КонецПроцедуры
Первично проверил по инету, с наскоку решить проблему не удалось
1. http://infostart.ru/public/325873/ выполняем
Заходим на сервер приложений 1С под локальным админом
Запускаем DCOMCNFG (Консоль настроек "Component Services")
Открываем ветку Console Root -> Component Services -> Computers -> My computer -> DCOM Config
Ищем "Microsoft Excel Application"
Если нашли, то переходим к пункту 4 (Настраиваем свойства DCOM компонента "Microsoft Excel Application")
Закрываем "Component Services"
Настройка реестра
Запускаем REGEDIT
Открываем ветку Computer\HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем
Создаем в ней строковый параметр AppID = {00020812-0000-0000-C000-000000000046}
Выполняем команду "mmc comexp.msc /32", которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
После этого в Component Services должен появиться "Microsoft Excel Application"
Настраиваем свойства DCOM компонента "Microsoft Excel Application"
Закладка "Security"
"Launch and Activation Permissions" - Customize - Edit
Добавляем пользователя, под которым запускается агент сервера 1С
Назначем ему только следующие права (allow):
Local Launch
Local Activation
"Access Permissions" - Customize - Edit
Добавляем пользователя, под которым запускается агент сервера 1С
Назначаем ему только следующие права (allow):
Local Access
Закладка "Identity"
Должно быть выбрано "The launching user"
Системные папки
Папка "C:\Windows\SysWOW64\config\systemprofile\Desktop\"
Проверяем наличие папки , если нет -то создаем.
Заходим в свойства этой папки.
Закладка Security
Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
Добавляем право "Read" и "Write"
Папка "C:\Windows\System32\config\systemprofile\Desktop\"
Проверяем наличие папки , если нет -то создаем.
Заходим в свойства этой папки.
Закладка Security
Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
Добавляем право "Read" и "Write"
После этого почта все также не уходила, сделал шаг
2. http://stackoverflow.com/questions/3750605/getting-creating-an-outlook-application-in-windows-7
In start menu select Run
Type dcomcnfg and click OK
Component Services window is opened.
Expand the nodes Component Services -> MyComputer -> DCOM Config .
Right click on the application (Outlook Message Attachment) and select properties.
Click on Identity tab whatever necessary.
Click on “The interactive user" then OK
Вот после этого почта стала уходить нормально.
Tuesday, January 26, 2016
Wednesday, January 20, 2016
Monday, January 18, 2016
Automatic versionCode generation in Android Gradle - Jayway
Отличное решение по контролю версий для Android
Automatic versionCode generation in Android Gradle - Jayway: "version"
'via Blog this'
Automatic versionCode generation in Android Gradle - Jayway: "version"
'via Blog this'
Saturday, January 16, 2016
Tuesday, January 12, 2016
Внешние компоненты в 1С 8.2 / Хабрахабр
Внешние компоненты в 1С 8.2 / Хабрахабр: "де параметров можно передавать только примитивные типы. Исключение есть только для строк.
При необходимости передать массив можно использовать две стратегии:
1) Одной процедурой сказать компоненте, что нужно создать новый массив с определенным идентификатором. Далее второй процедурой в массив с определенным идентификатором в цикле добавляются элементы.
2) Так же можно штатно сериализировать массив (список значений, структуру, соответствие, таблицы значений, а так же их комбинации) и передать в виде строкового параметра. В этом случае важно не забывать, что тип строкового параметра широкая строка (в C — это wchar*). Так же нужно написать в компоненте процедуру создания требуемой структуры в памяти по её описанию."
'via Blog this'
'via Blog this'
Tuesday, January 5, 2016
android - How to send a SMS using SMSmanager in Dual SIM mobile? - Stack Overflow
android - How to send a SMS using SMSmanager in Dual SIM mobile? - Stack Overflow: "How to send a SMS using SMSmanager in Dual SIM mobile?"
'via Blog this'
'via Blog this'
Thursday, December 24, 2015
Получение PDF файла ЕН Новой почты
Простая функция по получению pdf для печати от новой почты
Функция вернутьPDF(знач DocumentRef) Экспорт СтрокаJSON = Новый ЗаписьJSON; СтрокаJSON.УстановитьСтроку(); СтруктураЗнч = новый Структура; СтруктураЗнч.Вставить("apiKey","апи код новой почты"); СтруктураЗнч.Вставить("modelName","InternetDocument"); СтруктураЗнч.Вставить("calledMethod","printMarkings"); Соот = Новый Соответствие; массивДокументов = новый Массив; массивДокументов.Добавить(DocumentRef); Соот.Вставить("DocumentRefs",массивДокументов); СтруктураЗнч.Вставить("methodProperties",Соот); Настройка = Новый НастройкиСериализацииJSON; ЗаписатьJSON(СтрокаJSON, СтруктураЗнч,); исхстрокаJSON = СтрокаJSON.Закрыть(); Защищенное = Новый ЗащищенноеСоединениеOpenSSL; СоединениеHTTP = Новый HTTPСоединение("api.novaposhta.ua",,,,,,Защищенное); ЗапросHTTP = Новый HTTPЗапрос("/v2.0/json/"); ЗапросHTTP.УстановитьТелоИзСтроки(исхстрокаJSON,КодировкаТекста.UTF8); ЗапросHTTP.Заголовки.Вставить("Host","api.novaposhta.ua"); ЗапросHTTP.Заголовки.Вставить("Content-Type","application/json"); Результат = СоединениеHTTP.ВызватьHTTPМетод("POST",ЗапросHTTP); //.Получить(ЗапросHTTP); ВремФайлPDF = ПолучитьИмяВременногоФайла("pdf"); ДВ = Результат.ПолучитьТелоКакДвоичныеДанные(); ДВ.Записать(ВремФайлPDF); Возврат ВремФайлPDF; КонецФункции
Tuesday, December 15, 2015
Работа с byte[]
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CentralLib.ConnectionFP; using CentralLib.DefaultPortCom; namespace TestComm { class Program { static void Main(string[] args) { byte DLE = 0x10; byte STX = 0x02; byte ETX = 0x03; byte[] bBytes = new byte[] {DLE, STX }; byte[] eBytes = new byte[] {DLE, ETX }; byte[] test1 = new byte[] { 00, 00, 16, 2, 0, 27, 1, 1, 97, 130, 16, 16, 16, 16, 3, 16, 16, 16, 3, 28, 170 }; PrintByteArray(test1); int positionPacketBegin = ByteSearch(test1, new byte[] { DLE, STX }); Console.WriteLine(positionPacketBegin); int positionPacketEnd = 0; int tCurrentPos = positionPacketBegin; int tPostEnd = -1; do { tCurrentPos++; tPostEnd = ByteSearch(test1, new byte[] { 16, 3 }, tCurrentPos); if (tPostEnd != -1) { tCurrentPos = tPostEnd; if (test1[tPostEnd - 1] != DLE) { break; } else if ((test1[tPostEnd - 1] == DLE) && (test1[tPostEnd - 2] == DLE)) { positionPacketEnd = tPostEnd; // break; } } } while (tCurrentPos < test1.Length) ; Console.WriteLine(positionPacketEnd); var unsigned = new byte[positionPacketEnd- positionPacketBegin+4]; Buffer.BlockCopy(test1, positionPacketBegin, unsigned, 0, positionPacketEnd - positionPacketBegin+4); PrintByteArray(unsigned); Console.ReadKey(); //DefaultPortCom initialPort = new DefaultPortCom(4); //ConnectionFP connFP = new ConnectionFP(initialPort); //connFP.Open(); //Provision proConn = new Provision(connFP); //proConn.ExchangeData(new byte[] { 16, 2, 0, 27, 1, 1, 97, 130, 16, 3, 28, 170 }); //Console.ReadKey(); //proConn.Dispose(); //connFP.Close(); } static void PrintByteArray(byte[] bytes) { var sb = new StringBuilder("new byte[] { "); foreach (var b in bytes) { sb.Append(b + ", "); } sb.Append("}"); Console.WriteLine(sb.ToString()); } static int ByteSearch(byte[] searchIn, byte[] searchBytes, int start = 0) { int found = -1; bool matched = false; //only look at this if we have a populated search array and search bytes with a sensible start if (searchIn.Length > 0 && searchBytes.Length > 0 && start <= (searchIn.Length - searchBytes.Length) && searchIn.Length >= searchBytes.Length) { //iterate through the array to be searched for (int i = start; i <= searchIn.Length - searchBytes.Length; i++) { //if the start bytes match we will start comparing all other bytes if (searchIn[i] == searchBytes[0]) { if (searchIn.Length > 1) { //multiple bytes to be searched we have to compare byte by byte matched = true; for (int y = 1; y <= searchBytes.Length - 1; y++) { if (searchIn[i + y] != searchBytes[y]) { matched = false; break; } } //everything matched up if (matched) { found = i; break; } } else { //search byte is only one bit nothing else to do found = i; break; //stop the loop } } } } return found; } } }
Subscribe to:
Posts (Atom)