|
Как сохранить значение на форме? | ☑ | ||
---|---|---|---|---|
0
pro3ri
21.01.16
✎
10:20
|
Добрый день!
Есть код: &НаКлиенте Процедура Получение(Команда) Почта = Новый ИнтернетПочта; Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераIMAP = "imap.yandex.ru"; Профиль.ПользовательIMAP = Мойемаил; Профиль.ПарольIMAP = "*************"; Профиль.ПортIMAP = 993; Профиль.ИспользоватьSSLIMAP = Истина; Попытка Почта.Подключиться(Профиль,ПротоколИнтернетПочты.IMAP); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Сообщения = Почта.Выбрать(Ложь); Для каждого Мессадж Из Сообщения Цикл Строка = Письма.Добавить(); Строка.Тема = Мессадж.Тема; КонецЦикла; КонецПроцедуры &НаСервере Процедура СерверныйВызов(ХТМЛ, Картинки) Текст.УстановитьHTML(ХТМЛ,Картинки); КонецПроцедуры // СерверныйВызов() &НаКлиенте Процедура ПисьмаПриАктивизацииСтроки(Элемент) Для каждого Мессадж Из Сообщения Цикл Если Элемент.ТекущиеДанные.Тема = Мессадж.Тема Тогда ХТМЛ = Мессадж.Тексты[0].Текст; Картинки = Новый Структура; Для каждого Картинка Из Мессадж.Вложения Цикл ИмяКартинки = Лев(Картинка.Имя,СтрНайти(Картинка.Имя,".",НаправлениеПоиска.СКонца)-1); Картинки.Вставить(ИмяКартинки,Новый Картинка(Картинка.Данные)); КонецЦикла; СерверныйВызов(ХТМЛ, Картинки); КонецЕсли; КонецЦикла; КонецПроцедуры Форма: https://s.mail.ru/4CW5HMrMSTwW/img-2016-01-21-12-17-48.png Как сделать чтобы после нажатия на получить то сообщение на которое установлен курсор показывалось в форматированном документе. Попробовал сделать реквизит формы с произвольным типом и положить туда Почта.Выбрать(Ложь); но система заругалась что не может положить массив в реквизит формы. Как победить? |
|||
1
FIXXXL
21.01.16
✎
10:27
|
Текст - это что? Реквизит формы?
|
|||
2
pro3ri
21.01.16
✎
10:30
|
(1) да, Реквизит формы с типом форматированный документ
|
|||
3
pro3ri
21.01.16
✎
10:34
|
попробовал сделать реквизит обработки https://s.mail.ru/2Q3yeQDhvzbE/img-2016-01-21-12-34-08.png в результате получил
{Форма.Форма.Форма(73)}: Ошибка при установке значения атрибута контекста (СоообщенияНаОбъекте) Объект.СоообщенияНаОбъекте = Сообщения; по причине: Тип "Массив" не может использоваться в данных формы |
|||
4
FIXXXL
21.01.16
✎
10:39
|
(2) я в управлялках только учусь, делал так:
СерверныйВызов(Текст, ХТМЛ, Картинки); &НаСервере Процедура СерверныйВызов(РеквизитСФормы, ХТМЛ, Картинки) РеквизитСФормы.УстановитьHTML(ХТМЛ,Картинки); КонецПроцедуры// СерверныйВызов() мож и неправильно, гуры управленок поправят |
|||
5
pro3ri
21.01.16
✎
10:46
|
(4) благодарю. Только зачем передавать "Текст", если в контексте &НаСервере он и так доступен?
|
|||
6
pro3ri
21.01.16
✎
10:59
|
Свой вопрос решил создав
&НаКлиенте Перем СообщенияФорма; Сообщения = Почта.Выбрать(Ложь); //Объект.СоообщенияНаОбъекте = Сообщения; СообщенияФорма = Сообщения; Процедура ПисьмаПриАктивизацииСтроки(Элемент) Если Не ЗначениеЗаполнено(СообщенияФорма) Тогда Возврат; КонецЕсли; Для каждого Мессадж Из СообщенияФорма Цикл Если Элемент.ТекущиеДанные.Тема = Мессадж.Тема Тогда ХТМЛ = Мессадж.Тексты[0].Текст; Картинки = Новый Структура; Для каждого Картинка Из Мессадж.Вложения Цикл ИмяКартинки = Лев(Картинка.Имя,СтрНайти(Картинка.Имя,".",НаправлениеПоиска.СКонца)-1); Картинки.Вставить(ИмяКартинки,Новый Картинка(Картинка.Данные)); КонецЦикла; СерверныйВызов(ХТМЛ, Картинки); КонецЕсли; КонецЦикла; КонецПроцедуры Переменная модуля формы с директивой на клиенте живут до закрытия формы, в отличие от серверных, которые каждый раз затираются, поэтому обратился к ним. |
|||
7
pro3ri
21.01.16
✎
11:02
|
https://s.mail.ru/4LxCJNahG1qo/img-2016-01-21-13-00-19.png - это 1с
https://s.mail.ru/48GwEXfC3xZX/img-2016-01-21-13-00-44.png браузер Как сделать чтобы было как в браузере? |
|||
8
FIXXXL
21.01.16
✎
11:26
|
(5) у меня задача была несколько реквизитов обновлять, ну и написал одну процедуру для нескольких
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |