Имя: Пароль:
1C
1С v8
Почта в HTTP запросе.
0 MAPATNK2
 
naïve
27.07.16
15:21
Здравствуйте. Пытаюсь послать почтой сохраняемый файл. Запрос выполняется, файл сохраняется отлично, как только вставил код с отправкой почты браузер выводит ошибку (Ошибка инициализации библиотеки модулей). Прилагаю код.
Функция HardVen(Запрос)
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8");
    option  = ОбщегоНазначения.ПолучитьПараметры(Запрос.ПолучитьТелоКакСтроку());
    comment1  = ОбщегоНазначения.РаскодироватьСтрокуЭкспорта(option.Получить("comment1"));
    comment2  = ОбщегоНазначения.РаскодироватьСтрокуЭкспорта(option.Получить("comment2"));
    comment3  = ОбщегоНазначения.РаскодироватьСтрокуЭкспорта(option.Получить("comment3"));
    email = ОбщегоНазначения.РаскодироватьСтрокуЭкспорта(option.Получить("you_email"));    
    Если comment1 = "1"
        тогда
        Запрос1 = Новый Запрос;
        Запрос1.Текст =
        "ВЫБРАТЬ
        |    ЗаказПокупателя.Ссылка,
        |    ЗаказПокупателя.Номер,
        |    ЗаказПокупателя.Дата,
        |    ЗаказПокупателя.Проведен,
        |    ЗаказПокупателя.Ответственный.Наименование,
        |    ЗаказПокупателя.СуммаДокумента,
        |    ЗаказПокупателя.Контрагент.Наименование,
        |    ЗаказПокупателя.Гарантия
        |ИЗ
        |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        |ГДЕ
        |    ЗаказПокупателя.Номер = &Номер И
        |     ЗаказПокупателя.Контрагент.Код = &Код";
           z=comment2;
        a=comment3;
        Запрос1.УстановитьПараметр("Номер",z);
        Запрос1.УстановитьПараметр("Код",a);
        Резик=Запрос1.Выполнить().Выгрузить();
        СписокНоменклатуры1 = "";
    Для Каждого стр Из Резик Цикл
        СписокНоменклатуры1 = СписокНоменклатуры1+"<tr><td>"+стр.Номер+"</td></tr>";
    КонецЦикла;
    СтрокаВозврата= "<table border=""1"">"+СписокНоменклатуры1+"</table>";    
    ИначеЕсли   comment1 = "2"
    тогда
        Запрос1 = Новый Запрос;
        Запрос1.Текст =
          "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.Ссылка,
        |    РеализацияТоваровУслуг.Номер,
        |    РеализацияТоваровУслуг.Дата,
        |    РеализацияТоваровУслуг.Проведен,
        |    РеализацияТоваровУслуг.Склад.Наименование,
        |    РеализацияТоваровУслуг.Ответственный.Наименование,
        |    РеализацияТоваровУслуг.СуммаДокумента
        |ИЗ
        |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        |ГДЕ
        |    РеализацияТоваровУслуг.Номер = &Номер И
        |     РеализацияТоваровУслуг.Контрагент.Код = &Код";
        a=comment3;
           z=comment2;
           Запрос1.УстановитьПараметр("Номер",z);
        Запрос1.УстановитьПараметр("Код",a);
        Резик=Запрос1.Выполнить().Выгрузить();
        СписокНоменклатуры2 = "";
        Для Каждого стр Из Резик Цикл
        СписокНоменклатуры2 = СписокНоменклатуры2+"<tr><td>"+стр.Номер+"</td></tr>";
    КонецЦикла;
    СтрокаВозврата= "<table border=""1"">"+СписокНоменклатуры2+"</table>";
    ИначеЕсли    comment1 = "3"
    ТОГДА
        Запрос1 = Новый Запрос;
        Запрос1.Текст =
          "ВЫБРАТЬ
          |    ОплатаОтПокупателяПлатежнойКартой.Ссылка,
          |    ОплатаОтПокупателяПлатежнойКартой.Дата,
          |    ОплатаОтПокупателяПлатежнойКартой.Номер,
          |    ОплатаОтПокупателяПлатежнойКартой.СуммаДокумента,
          |    ОплатаОтПокупателяПлатежнойКартой.Ответственный.Наименование
          |ИЗ
          |    Документ.ОплатаОтПокупателяПлатежнойКартой КАК ОплатаОтПокупателяПлатежнойКартой
          |ГДЕ
          |    ОплатаОтПокупателяПлатежнойКартой.Номер = &Номер И
        |     ОплатаОтПокупателяПлатежнойКартой.Контрагент.Код = &Код";
        a=comment3;
        z=comment2;
        Запрос1.УстановитьПараметр("Код",a);
           Запрос1.УстановитьПараметр("Номер",z);
        Резик=Запрос1.Выполнить().Выгрузить();
        СписокНоменклатуры3 = "";
        Для Каждого стр Из Резик Цикл
        СписокНоменклатуры3 = СписокНоменклатуры3+"<tr><td>"+стр.Номер+"</td></tr>";
    КонецЦикла;
    СтрокаВозврата= "<table border=""1"">"+СписокНоменклатуры3+"</table>";    
    КонецЕсли;    

    Резик = Запрос1.Выполнить().Выгрузить();
    ТабДок1 = Новый ТабличныйДокумент;
      Построитель = Новый ПостроительОтчета();
      Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Резик);
       Построитель.ВыводитьЗаголовокОтчета = Ложь;
    Построитель.Вывести(ТабДок1);
    ИмяФайла = "c:\test666666.xls";
    ТабДок1.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS);
    //ЗапуститьПриложение(ИмяФайла);    
    //текФайл= новый ТекстовыйДокумент;
    //текФайл.ВставитьСтроку(1,"Привет");
    //ИмяФайла = "c:\test26.txt";
    //текФайл.Записать(ИмяФайла);    
    
    HTTPОтвет = Новый HTTPСервисОтвет(200);
    ОтветДД = Новый ДвоичныеДанные(ИмяФайла);
    HTTPОтвет.УстановитьТелоИзДвоичныхДанных(ОтветДД);
    Возврат Ответ;
    adres = email;    
    ПараметрыУчетнойЗаписи = Новый ИнтернетПочтовыйПрофиль;
    ПараметрыУчетнойЗаписи.АдресСервераSMTP = "smtp.mail.ru";
    ПараметрыУчетнойЗаписи.ПортSMTP = 465;
    ПараметрыУчетнойЗаписи.Пользователь = "marat.coolls@mail.ru";
    ПараметрыУчетнойЗаписи.Пароль = "mapatnk228mapatnk228";
    ПараметрыУчетнойЗаписи.АутентификацияSMTP     = СпособSMTPАутентификации.Login;
    ПараметрыУчетнойЗаписи.ПарольSMTP           = "mapatnk228mapatnk228";
    ПараметрыУчетнойЗаписи.ПользовательSMTP     = "marat.coolls@mail.ru";
    ПараметрыУчетнойЗаписи.ИспользоватьSSLPOP3 = Истина;
    ПараметрыУчетнойЗаписи.ИспользоватьSSLSMTP = Истина;
    
    Соединение = Новый ИнтернетПочта;
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Письмо.ИмяОтправителя = "Аютов Марат";
    Письмо.Отправитель.Адрес = "marat.coolls@mail.ru";
    Письмо.ОбратныйАдрес.Добавить("marat.coolls@mail.ru");
    ТекстУведомления = "";
    
    Письмо.Тема = "Тест";
    Письмо.Тексты.Добавить("Тест");
    Письмо.Вложения.Добавить("c:\test666666.xls");    
    Письмо.Получатели.Добавить(adres);    
    Попытка            
            Соединение.Подключиться(ПараметрыУчетнойЗаписи);
            Соединение.Послать(Письмо);
    КонецПопытки;    
    
    
    //page = ОбщегоНазначения.ПолучитьШаблонСтраницы("Gone");
    //Ответ.УстановитьТелоИзСтроки(page+СтрокаВозврата);    
    //Возврат Ответ;
КонецФункции
1 Mauser
 
27.07.16
15:38
Может это, книжки уже там почитать, не? Студент...
2 MAPATNK2
 
naïve
27.07.16
15:40
(1) Если бы знал где информацию по HTTP сервисам найти, давно бы почитал. Дело в том, что я делал внешнюю обработку. ВСе круто посылает. А когда вставляю свою код в сервис, возникают проблемы. Я никогда не изучал сервисы, но дали такое задание без всякого материала. Прохожу практику 3 курс.
3 MAPATNK2
 
naïve
27.07.16
15:41
Вот и спрашиваю. ТАк и научусь. Потом другим помогать буду.