Программное сохранение отчета СКД в файл Excel
Задача: по расписанию формировать файл отчета СКД и отправлять его по электронной почте.
Решение:
1. Формируем файл
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 |
таб1=новый ТабличныйДокумент(); СКД=Отчеты.ПрибыльЗаПериод.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки=СКД.НастройкиПоУмолчанию; Дата1=Настройки.ПараметрыДанных.Элементы.Найти("Дата1"); Дата1.Значение=НачалоМесяца(ТекущаяДата()); Дата2=Настройки.ПараметрыДанных.Элементы.Найти("Дата2"); Дата2.Значение=КонецДня(ТекущаяДата()); ВидЦены=Настройки.ПараметрыДанных.Элементы.Найти("ВидЦены"); ВидЦены.Значение=Справочники.ВидыЦен.НайтиПоНаименованию("Основная цена закупки"); Магазин=Настройки.ПараметрыДанных.Элементы.Найти("Магазин"); Магазин.Значение=Справочники.Магазины.НайтиПоНаименованию("Вологда Торговля"); Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка); ВнешниеПараметры = Новый Структура; //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(таб1); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина); таб1.Записать("c:\temp\моржа.xls",ТипФайлаТабличногоДокумента.XLS); |
2.Отправляем его по почте
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
ПараметрыПочты = новый ИнтернетПочтовыйПрофиль; ПараметрыПочты.АдресСервераSMTP = пснмп; ПараметрыПочты.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию; ПараметрыПочты.ПользовательSMTP = плогин; ПараметрыПочты.ПарольSMTP=ппароль; Письмо=новый ИнтернетПочтовоеСообщение; Письмо.Тема="Комплексный отчет по продажам в магазине Вологда Торговля"; Письмо.ИмяОтправителя="1С отправка отчетов"; Письмо.Отправитель=побратный; Письмо.Получатели.Добавить(пполучатель); Письмо.Получатели.Добавить("blabla@mail.ru"); Письмо.Тексты.Добавить("Комплексный отчет по продажам в магазине Вологда Торговля"); Письмо.Вложения.Добавить("c:\temp\моржа.xls"); Подключение=новый ИнтернетПочта; Попытка Подключение.Подключиться(ПараметрыПочты); Подключение.Послать(Письмо); |
Винни-Пух и день забот (с)
- У родителей приставы сняли с карточки 40 тыс за долги однофамильцы. А Сбербанк с радостным повизгиванием, не проверив, эти деньги им перевел. У пенсионеров! Последние! Живите как хотите, пока там разберуться, пока вернут.. Наверняка еще за это никто и наказание не понесёт.
- Почта России. На обслуживание 3-х человек потратили:
— оформление подписки на журнал — 12 минут
— забрать посылку наложным с платежом — 14 минут
— заплатить бабушке за газ 6 минут,
Итого: 32 минуты. На элементарные действия! При чем девушка не сидела без дела. Всё чтото писала, печатала, в ПК информацию вводила. Было плохо. Стало еще хуже. Сделайте обратно плохо!
Запрос выбора SSL сертификата в компоненте WebView
Задача: при открытии страницы https необходимо позволить пользователю выбрать необходимый сертификат ssl из установленых в хранилище.
Решение:
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 31 32 33 34 35 36 37 |
private class NocWebViewClient extends WebViewClient { @Override public void onReceivedClientCertRequest(WebView view, final ClientCertRequest request) { Log.v(getClass().getSimpleName(), "===> certificate required!"); KeyChain.choosePrivateKeyAlias(Form1.this, new KeyChainAliasCallback(){ @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void alias(String alias) { Log.v(getClass().getSimpleName(), "===>Key alias is: " + alias); try { PrivateKey changPrivateKey = KeyChain.getPrivateKey(Form1.this, alias); X509Certificate[] certificates = KeyChain.getCertificateChain(Form1.this, alias); Log.v(getClass().getSimpleName(), "===>Getting Private Key Success!" ); request.proceed(changPrivateKey, certificates); } catch (KeyChainException e) { Log.e(getClass().getSimpleName(), Util.printException(e)); } catch (InterruptedException e) { Log.e(getClass().getSimpleName(), Util.printException(e)); } } },new String[]{"RSA"}, null, null, -1, null); } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return true; } @Override public void onPageFinished(WebView view, String url){ } |