| 
    
        
     
     | 
    
  | 
1с получить почту - как испольщовать массив вместо ТЗ | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Roma1314704    
     08.02.18 
            ✎
    19:23 
 | 
         
        Настраиваю получения почты в 1с 8.3 управляемые формы
 
        Только проблема есть - ТЗ значений в форму напрямую не потянуть С массивом еще нету опыта работы. Подскажите как это все реализовать через массив вот часть кода Заголовки=Почта.ПолучитьЗаголовки(); //Если Заголовки.Количество()=0 Тогда // Предупреждение("В почтовом ящике нет входящих сообщений!", ,"Нет сообщений"); //КонецЕсли; Сообщения = Почта.Выбрать(Истина,Заголовки); Для каждого Сообщение Из Сообщения Цикл СтрокаТП = ТабличноеПолеИнтернетПочта.Добавить(); СтрокаТП.Дата = Сообщение.ДатаОтправления; СтрокаТП.ОтКого = Сообщение.Отправитель.Пользователь + " <" + Сообщение.Отправитель.Адрес + "> "; СтрокаТП.Тема = Сообщение.Тема; // Перебираем получателей сообщения Для каждого Получатель Из Сообщение.Получатели Цикл КомуВходящие = КомуВходящие + Получатель.Пользователь + " <" + Получатель.Адрес + "> "; КонецЦикла; СтрокаТП.Кому = КомуВходящие; // Перебираем тексты сообщения Для каждого ТекстСообщения Из Сообщение.Тексты Цикл ТекстВходящие = ТекстВходящие + ТекстСообщения.Текст; КонецЦикла; СтрокаТП.Текст = ТекстВходящие; // Перебираем вложения письма //Для каждого Вложение Из Сообщение.Вложения Цикл // Вложение.Данные.Записать(Вложение.Name); // СправочникВложения.РеквизитВложение = новый ХранилищеЗначения(Новый ДвоичныеДанные(Вложение.Name)); // СправочникВложения.ИмяВложения=Вложение.Name; //КонецЦикла;  | 
|||
| 
    1
    
        hawksib    
     08.02.18 
            ✎
    19:25 
 | 
         
        в чем проблема? код не работает?     
         | 
|||
| 
    2
    
        hawksib    
     08.02.18 
            ✎
    19:27 
 | 
         
        я живу в лесу, копаю огород лопатой, только есть проблема - морковка плохо растет, с огурцами пока не пробовал, подскажите как быть, вот гусли     
         | 
|||
| 
    3
    
        Roma1314704    
     08.02.18 
            ✎
    19:34 
 | 
         
        неа ))))
 
        вот {Обработка.ОтправкаИмейл.Форма.Форма.Форма(5)}: Ошибка при вызове метода контекста (ПолучитьПрофиль) ПолучитьПрофиль(); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'ret': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}ret по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ИнтернетПочтовыйПрофиль'  | 
|||
| 
    4
    
        breezee    
     08.02.18 
            ✎
    19:48 
 | 
         
        (3) Попробуйте созранить в реквизит обработки. А потом на ервере ДанныеПрофиля = Реквизитформывзначение("моиданные")     
         | 
|||
| 
    5
    
        Roma1314704    
     08.02.18 
            ✎
    20:05 
 | 
         
        ( Не уловил мыслю 
 
        Что сохранить ?  | 
|||
| 
    6
    
        Мимохожий Однако    
     08.02.18 
            ✎
    20:10 
 | 
         
        Преобразуй таблицу значений в массив, где каждая запись структура или соответствие     
         | 
|||
| 
    7
    
        Roma1314704    
     08.02.18 
            ✎
    20:13 
 | 
         
        Вот именно этого и не понимаю. как ?
 
        Напишите для примера пару строк.  | 
|||
| 
    8
    
        Alex87r    
     08.02.18 
            ✎
    20:35 
 | 
         
        (7) 
 
        Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт Массив = Новый Массив(); СтруктураСтрокой = ""; НужнаЗапятая = Ложь; Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл Если НужнаЗапятая Тогда СтруктураСтрокой = СтруктураСтрокой + ","; КонецЕсли; СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя; НужнаЗапятая = Истина; КонецЦикла; Для Каждого Строка Из ТаблицаЗначений Цикл НоваяСтрока = Новый Структура(СтруктураСтрокой); ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); Массив.Добавить(НоваяСтрока); КонецЦикла; Возврат Массив; КонецФункции  | 
|||
| 
    9
    
        Roma1314704    
     10.02.18 
            ✎
    16:58 
 | 
         
        Спасибо, буду разбираться. 
 
        Еще вопрос на форме тип реквизита каким должен быть? - Таблица Значений?  | 
|||
| 
    10
    
        h-sp    
     10.02.18 
            ✎
    17:35 
 | 
         
        (9) если тип реквизита ТаблицаЗначений, то всю эту хрень с массивами нужно выкинуть. С реквизитом типа таблица значений и так всё будет прекрасно работать.     
         | 
|||
| 
    11
    
        Roma1314704    
     10.02.18 
            ✎
    17:39 
 | 
         
        Да как то не получается с ТЗ  - если есть подсказка  - буду рад     
         | 
|||
| 
    12
    
        h-sp    
     10.02.18 
            ✎
    17:41 
 | 
         
        (11) у вас не получается 'ИнтернетПочтовыйПрофиль', причем тут ТЗ?     
         | 
|||
| 
    13
    
        Roma1314704    
     10.02.18 
            ✎
    18:06 
 | 
         
        правильно - напрямую значение ТЗ не потянуть на форму     
         | 
|||
| 
    14
    
        glebgleb    
     10.02.18 
            ✎
    18:13 
 | 
         
        (13) Рома. Тебе платформа русским языком говорит, что при предаче возвращаемого значения из функции ПолучитьПрофиль она не может передать объект типа ИнтернетПочтовыйПрофиль между клиентом и сервером.
 
        Что ты к таблице значений пристал?  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |