Здравствуйте. Столкнулся с одной проблемой. Не могу вызвать форму на тонком клиенте.
Подскажите как можно реализовать.
Внутри функции "ПолучитьДанныеЗаметок" хочу вызывать форму списка.
Всем заранее спасибо.
Модуль управляемого приложения
Подскажите как можно реализовать.
Внутри функции "ПолучитьДанныеЗаметок" хочу вызывать форму списка.
Всем заранее спасибо.
Функция ПолучитьДанныеЗаметок()Экспорт
НаборЗаписей = РегистрыСведений.Заметки.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Для Каждого Запись из НаборЗаписей Цикл
ЗаметкаДатаОповещения = Формат(Запись.ДатаОповещения,"ДФ=dd.MM.yyyy");
ЗаметкаДокумент = Запись.Документ;
ЗаметкаПользователь = Запись.Пользователь;
ЗаметкаЗавершенно = Запись.Завершено;
ТекДата = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy");
Если ТекДата > ЗаметкаДатаОповещения И ЗаметкаЗавершенно = Ложь Тогда
Сообщить("Просрочена дата заметки по договору "+ " " + ЗаметкаДокумент);
ИначеЕсли ТекДата = ЗаметкаДатаОповещения И ЗаметкаЗавершенно = Ложь Тогда
Сообщить("Проверьте заметки на сегодняшний день");
КонецЕсли;
КонецЦикла;
КонецФункции
ПоказатьМодуль управляемого приложения
Процедура ОболочкаОбработчика ()Экспорт
ОбработатьОжидание();
КонецПроцедуры
Процедура ОбработатьОжидание()Экспорт
ОбщегоНазначения.ПолучитьДанныеЗаметок();
КонецПроцедуры
ПодключитьОбработчикОжидания("ОболочкаОбработчика",2,Ложь);
ПоказатьПо теме из базы знаний
- Дополнительные отчеты и обработки для конфигураций, основанных на БСП. Часть 2. Печатные формы (MXL).
- Открытие форм нескольких новых документов в тонком и толстом клиенте, УФ
- Обработка печатной формы WORD клиент-сервер УФ
- Открытие формы подключаемой внешней обработки без записи документа
- Сравнение файлов в тонком клиенте
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Добрый день! Не понятно где идет получение формы списка документов???? Точнее я вообще не вижу этой попытки. Если только собираешься написать вызов формы, то напиши подробнее чего хочешь достигнуть. Из серверной процедуры нельзя получать форму..
(11)Одно дело когда вы хотите открыть список, и другое дело когда вы говорите про форму списка.
У вас функция очень похожа на процедуру, она ничего не возвращает. Как по мне так в функции надо сформировать сам список и вернуть его на клиента и уже на клиенте открыть.
Что то типа
В теле функции где то добавить в список значений или таблицу значений данные по заметкам. Затем после прочтения записать в регист результат просмотра.
Трудно судить по одной функции что именно Вы хотите.
Я когда то решал подобную задачу, При старте системы проверялись новые сообщения по обновлениям и после прочтения помечались как прочитанные. Но там однозначно было больше одной функции.
У вас функция очень похожа на процедуру, она ничего не возвращает. Как по мне так в функции надо сформировать сам список и вернуть его на клиента и уже на клиенте открыть.
Что то типа
Процедура ОбработатьОжидание()Экспорт
СписокЗаметок = ОбщегоНазначения.ПолучитьДанныеЗаметок();
КонецПроцедуры
В теле функции где то добавить в список значений или таблицу значений данные по заметкам. Затем после прочтения записать в регист результат просмотра.
Трудно судить по одной функции что именно Вы хотите.
Я когда то решал подобную задачу, При старте системы проверялись новые сообщения по обновлениям и после прочтения помечались как прочитанные. Но там однозначно было больше одной функции.
(13) Как вам вот такая функция?
Функция ПолучитьТаблЗаметок(ДатаОповещения,Пользователь)Экспорт
МассивТипаВыбора = Новый Массив;
МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений"));
ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора);
МассивРеквизитов = Новый Массив;
ИмяТЗ = "ТаблицаЗаметок"; ЗаголовокТЗ = "Заметки";
МассивРеквизитов.Добавить(Новый РеквизитФормы(ИмяТЗ, ОписаниеТипаВыбора, "", ЗаголовокТЗ));
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Заметки.Пользователь КАК Пользователь,
| Заметки.Статус КАК Статус,
| Заметки.Документ КАК Документ,
| Заметки.ДатаОповещения КАК ДатаОповещения
|ИЗ
| РегистрСведений.Заметки КАК Заметки
|ГДЕ
| Заметки.ДатаОповещения = &ДатаОповещения
| И Заметки.Пользователь = &Пользователь";
Запрос.УстановитьПараметр("ДатаОповещения", ДатаОповещения);
Запрос.УстановитьПараметр("Пользователь", Пользователь);
РезультатЗапроса = Запрос.Выполнить();
ТЗ = РезультатЗапроса.Выгрузить();
Для Каждого Колонка Из ТЗ2.Колонки Цикл
ТипыЗначений = Новый Массив;
Для каждого тТип из Колонка.ТипЗначения.Типы() Цикл
Если тТип <> Тип("Null") Тогда
ТипыЗначений.Добавить(тТип);
КонецЕсли;
КонецЦикла;
МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Новый ОписаниеТипов(ТипыЗначений), ИмяТЗ2));
КонецЦикла;
ЭтаФорма.ИзменитьРеквизиты(МассивРеквизитов);
эТаблица = Элементы.Добавить(ЗаголовокТЗ, Тип("ТаблицаФормы"));
эТаблица.ПутьКДанным = ИмяТЗ2;
эТаблица.Отображение = ОтображениеТаблицы.Список;
эТаблица.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
эТаблица.ИзменятьСоставСтрок = Ложь;
Для Каждого Колонка Из ТЗ.Колонки Цикл
НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), эТаблица);
НовыйЭлемент.ПутьКДанным = ИмяТЗ + "." + Колонка.Имя;
Если Колонка.Имя = "Выб" Тогда
НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
Иначе
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.КнопкаОчистки = Ложь;
НовыйЭлемент.КнопкаВыбора = Ложь;
НовыйЭлемент.РедактированиеТекста = Ложь;
НовыйЭлемент.КнопкаОткрытия = Истина;
КонецЕсли;
КонецЦикла;
ЭтаФорма.ЗначениеВРеквизитФормы(ТЗ2, ИмяТЗ2);
КонецФункции
Показать
(15)Все равно не очень понятно что Вы имеете в виду когда говорите - невозможно открыть форму объекта находясь на сервере. Из серверной процедуры (директива &НаСервере) форма любого объекта прекрасно открывается. (не список, а именно форма)
(19)Естественно - Элементы находятся на форме а вы в общем модуле.
Колонки лучше всего добавлять в процедуре приСозданииНаСервере той формы где добавляете колонки. (сорри за каламбурчик)
Когда вы ее тестируете в обработке у вас есть форма обработки где вы и играете с элементами. И зачем вы все потом переносите в общий модуль?
Колонки лучше всего добавлять в процедуре приСозданииНаСервере той формы где добавляете колонки. (сорри за каламбурчик)
Когда вы ее тестируете в обработке у вас есть форма обработки где вы и играете с элементами. И зачем вы все потом переносите в общий модуль?
(18)
Давайте пример. Про Толстый клиент файловой базы только не надо.
Но в (0) не серверный контекст модуля формы, а серверный общий модуль. А это 2 большие разницы.
Из серверной процедуры (директива &НаСервере) форма любого объекта прекрасно открывается.
Давайте пример. Про Толстый клиент файловой базы только не надо.
Но в (0) не серверный контекст модуля формы, а серверный общий модуль. А это 2 большие разницы.
В функции "ПолучитьДанныеЗаметок" есть условие:
При этом условии хочу, чтобы открывалась форма списка.
Если ТекДата > ЗаметкаДатаОповещения И ЗаметкаЗавершенно = Ложь Тогда
Сообщить("Просрочена дата заметки по договору "+ " " + ЗаметкаДокумент);
ИначеЕсли ТекДата = ЗаметкаДатаОповещения И ЗаметкаЗавершенно = Ложь Тогда
Сообщить("Проверьте заметки на сегодняшний день");
КонецЕсли;
При этом условии хочу, чтобы открывалась форма списка.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот