Имя: Пароль:
1C
1С v8
отформатировать текст письма с помощью 1С 8
,
0 skupidom5
 
07.09.17
13:23
Управление производственным предприятием, редакция 1.2 (1.2.26.1)
Текст письма получается из выборки запроса по группировкам.Текст письма даже при использовании табуляции: Символы.ПС выводиться не четабельно.Как отформотировать текст письма с помощью 1с8
1 DrShad
 
07.09.17
13:26
обернуть его в HTML текст
2 skupidom5
 
07.09.17
13:28
как это сделать, можно пример плиз ?
3 Филиал-msk
 
07.09.17
13:29
четабельно отформотировать... Эх
4 skupidom5
 
07.09.17
13:30
с помощью каких конструкций ?
Для Каждого ТекСтрокаОтветственный Из Дерево.Строки Цикл // Ответственный
        
        ТекстПисьма = "";
        СписокОтветственных=рар_ОбщиеФункции.ПолучитьЗаместителейОтветственных(ТекСтрокаОтветственный.Группировка,ТекущаяДата(),Истина,Ложь,Истина);
        
        Для Каждого ПодчиненнаяСтрокаПроект Из ТекСтрокаОтветственный.Строки Цикл // Проект
            
            // Текст письма Проект -->
            ТекстПисьма = ТекстПисьма +                                                          
            "Проект: " + ПодчиненнаяСтрокаПроект.Группировка + Символы.ПС;
            // <--    
            
            Для Каждого ПодчиненнаяСтрокаВидДокумента Из ПодчиненнаяСтрокаПроект.Строки Цикл // ВидДокумента
                
                // Текст письма ВидДокумента -->
                ИмяМетаданных = "Документ." + ПодчиненнаяСтрокаВидДокумента.Группировка;
                ТекстВидДокумента = Метаданные.НайтиПоПолномуИмени(ИмяМетаданных);            
                ТекстПисьма = ТекстПисьма + ТекстВидДокумента + Символы.ПС;
                
                Для Каждого ПодчиненнаяСтрокаДетальныеЗаписи Из ПодчиненнаяСтрокаВидДокумента.Строки Цикл // ДетальныеЗаписи
                    
                    ТекстСтатусПросрочен = "";
                    ВернулиДатуЗапрета = ВернутьДатуЗапретаРедактированияДляДокумента(ПодчиненнаяСтрокаДетальныеЗаписи.Документ);
                    Если ПодчиненнаяСтрокаДетальныеЗаписи.Документ.Дата < ВернулиДатуЗапрета Тогда
                        // в поле Комментарий документа Пишем статус = просрочен
                        ТекстСтатусПросрочен = " «(просрочен, документ в закрытом периоде!)» ";
                    КонецЕсли;
                    
                    // Текст письма: Дата возникновения + документ -->
                    ТекстПисьма = ТекстПисьма +
                    " дата возникновения: " + ПодчиненнаяСтрокаДетальныеЗаписи.ДатаВозникновения + Символы.ПС
                    + " документ: " + ПодчиненнаяСтрокаДетальныеЗаписи.Документ + Символы.ПС
                    + " статус: " + ТекстСтатусПросрочен + Символы.ПС
                    + " Инициатор задачи: " + ПодчиненнаяСтрокаДетальныеЗаписи.Инициатор + Символы.ПС;            
                    // <--         
                    
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
5 skupidom5
 
07.09.17
13:33
в результате у меня часть строк переноситься, часть объединяется в 1 строку,хотел чтобы текст начинался с новой строки, там где вставлено: Символы.ПС, но текст не форматируется:  документ: Заявка на расходование средств 00000007453 от 31.03.2017 23:59:59
статус:  «(просрочен, документ в закрытом периоде!)»  Инициатор задачи: Александр  дата возникновения: 11.04.2017 15:11:37
документ: Заявка на расходование средств 00000007454 от 10.04.2017 23:59:59
статус:  «(просрочен, документ в закрытом периоде!)»  Инициатор задачи: Александр  дата возникновения: 12.04.2017 9:30:36
документ: Заявка на расходование средств 00000007499 от 05.04.2017 23:59:59
статус:  «(просрочен, документ в закрытом периоде!)»  Инициатор задачи: Александр  дата возникновения: 12.04.2017 9:36:44
документ: Заявка на расходование средств 00000007500 от 10.04.2017 23:59:59
статус:  «(просрочен, документ в закрытом периоде!)»  Инициатор задачи: Александр  дата возникновения: 12.04.2017 9:48:35
документ: Заявка на расходование средств 00000007503 от 07.04.2017 22:20:19
6 skupidom5
 
07.09.17
13:36
Проект:
Проект
Заявка на расходование средств
дата возникновения: 27.07.2017 13:44:33
документ: Заявка на расходование средств 00000017315 от 27.07.2017 13:44:14
статус:
Инициатор задачи: Александр

а не так:
документ: Заявка на расходование средств 00000000774 от 23.01.2017 14:40:39
статус:  «(просрочен, документ в закрытом периоде!)»  Инициатор задачи: Александр  дата возникновения: 24.01.2017 9:42:53
7 rudnitskij
 
07.09.17
13:43
(3) вы разве не слышали о функции глобального контекста Текст.ОтформатироватьЧетабельно()?
8 rudnitskij
 
07.09.17
13:44
(5) а переводить строку после ТекстСтатусПросрочен разве не надо?
9 Филиал-msk
 
07.09.17
13:47
(8) Ты код давай сразу для ТС пиши. Думаешь ему интересно с тобой возится?
10 rudnitskij
 
07.09.17
13:48
(9) ...желательно, чтоб отформатированный четабельно)))
11 Филиал-msk
 
07.09.17
13:54
(10) Отформотированный. Ему так надо.
12 Fram
 
07.09.17
23:37
(6) в аутлуке читаешь письмо? этот аутлук считает себя очень умным и любит убирать переносы строк на свое усмотрение. это вроде отключаться должно
13 Tateossian
 
08.09.17
01:14
Делаешь макет такого вида, например:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Результаты согласований</title>
<style type="text/css">
#1 {
    font-style: italic;
}
</style>
</head>

<body>
<!--ОТКРЫТЬ_ТАБЛИЦА-->

  <!--ШАПКА-->
  
  <!--ЗАГОЛОВОК_БП-->
  
  <!--СТРОКА-->
  
<!--ЗАКРЫТЬ_ТАБЛИЦА-->
<!--ПОДВАЛ-->
</body>
</html>

а в коде такие конструкции:

    Если Первый Тогда
            РезультДок = СтрЗаменить(РезультДок, "<!--ШАПКА-->",
                "<tr>
                |<th width=""36"" align=""center"" valign=""middle"" scope=""col"">Этап</th>
                |<th width=""138"" align=""center"" valign=""middle"" scope=""col"">Согласующий</th>
                |<th width=""200"" align=""center"" valign=""middle"" scope=""col"">Комментарий</th>
                |<th width=""150"" align=""center"" valign=""middle"" scope=""col"">Дата время согласования</th>
                  |</tr>");
        КонецЕсли;
            
        Если Групповой Тогда
            
            АдресСсылка = ПолучитьНавигационнуюСсылку(СсылкаБизнесПроцесс);
            
            РезультДок = СтрЗаменить(РезультДок, "<!--ЗАГОЛОВОК_БП-->",
                "<tr>
                |<th colspan=""4"" align=""left"" valign=""middle"" scope=""col""><a href=" + АдресСсылка + ">" + Строка(СсылкаБизнесПроцесс) + "</a></th>
                  |</tr>");
                
        КонецЕсли;
        
        Для Каждого СтрокаСогласование Из ТаблицаСогласований Цикл
            ШаблонСтроки = ПолучитьШаблонСтроки(СтрокаСогласование);
            РезультДок = СтрЗаменить(РезультДок, "<!--СТРОКА-->", ШаблонСтроки);
        КонецЦикла;
        
        РезультДок = СтрЗаменить(РезультДок, "<!--ЗАКРЫТЬ_ТАБЛИЦА-->", "</table>");


Ну и в таком духе. Считай, динамическая генерация html с помощью СтрЗаменить.
14 Tateossian
 
08.09.17
01:15
Ах да, самое главное: тег переноса строки в HTML <br>
15 Fram
 
08.09.17
02:15
(13) нафига так изгаляться!.. для системных уведомлений вполне плоский текст подходит.
Независимо от того, куда вы едете — это в гору и против ветра!