Имя: Пароль:
1C
 
Управляемые формы - как сделать такое?
0 RomaH
 
naïve
05.07.11
15:01
1. - нужен рабочий стол но состав его должен быть разный для разных пользователей
с помощью прав организовать отображение необходимых элементов?

2. надо форму нового документа показывать на рабочем столе

т.е. не отдельной формой, а именно на рабочем столе - как форма обработки - как такое сделать?

суть - слева - список пациентов, справа - форма ввода документа
выбираем пациента - в форму подставляются данные этого пациента, форма дозаполняется интерактивно, и по кнопке записывается (создается новый док)

можно так сделать не создавая заново форму ввода в обработке?
1 RomaH
 
naïve
05.07.11
15:04
и как вообще можно сделать для разных пользователей/ролей разный рабочий стол?
т.е. для оператора показываем обработку_1 + журнал документов

для экономиста, 2 списка документов и справочник
2 Лефмихалыч
 
05.07.11
15:05
Книжку "Разработка управляемых интерфейсов" почитать не предлагать?
3 Necessitudo
 
05.07.11
15:06
Имеешь в виду именно рабочую область рабочего стола? По-моему увы, на ней такого не сделаешь.
4 5 Элемент
 
05.07.11
15:07
5 lxs
 
05.07.11
15:07
Добавляешь кучу форм нужных на рабочий стол и настраиваешь видимость по ролям
6 Necessitudo
 
05.07.11
15:07
Оо не знал(
7 lxs
 
05.07.11
15:08
(4) +1
8 Дык ё
 
05.07.11
15:09
(1) правами, функциональными опциями,
настройками пользователя...
9 Aswed
 
05.07.11
15:09
закладка
10 RomaH
 
naïve
05.07.11
15:10
(8) а настройками пользователя - эо где?
11 milan
 
05.07.11
15:20
В меню - параметры- настройка области рабочего стола. Как- то так.

Через настройки пользователя тоже наверное можно сделать по аналогии с управлением настройками форм в бсп. Сделаешь - выложи :-)
12 RomaH
 
naïve
05.07.11
15:23
а по форме документа? есть мысли?
13 RomaH
 
naïve
05.07.11
15:24
т.е. сейчас - слева список пациентов
справа - список документов

выбираю пациента - жму в списке - создать новый и открывается форма нового документа (закрывая собой ...)

а хочу что бы форма новгго была постояннно на одном слое с рабочим столом
14 regniws
 
05.07.11
15:26
- сделать кастомную общую форму и тыкнуть ее на раб. стол.
- в списке при активизации строки посылать оповещение об изменении
- в кастомной форме оповещение ловить и перечитывать данные из базы, дальше дело техники, как это сохранить.

Финты с "открыть форму на раб. столе" не получатся, только так, как описано.
15 RomaH
 
naïve
05.07.11
15:28
(14) да это понятно ... не хочу дублировать форму документа в форму обработки
ну тогда програмно что ли придется воспроизводить пробовать
16 regniws
 
05.07.11
15:38
(15) программно нельзя, формы с динамически добавленными элементами не кэшируются сервером приложений.
Только дублировать.
17 TitanLuchs
 
05.07.11
21:55
(0) П.2 реализуется легко, если кроме списка пациентов и формы нового документа на рабочем столе ничего отображаться не будет. Если будет - то придется поизвращаться, но уверен что и в этом случае все получится. Вариант когда на рабочем столе больше ничего нет я только что реализовал.
18 RomaH
 
naïve
06.07.11
06:53
(17) как?
19 RomaH
 
naïve
06.07.11
06:54
(16) а можно тоже самое другими словами?
что значит не кешируются и на что это влияет
20 RomaH
 
naïve
06.07.11
07:17
в общем попробовал - на рабочий стол добавил форму документа - отображается
по кнопке "Записать закрыть" - записыыает, но не закрывает

как "открыть" форму новго документа в этом случае? - т.е. есть офрма документа, надо не закрывая её (ибо я так понимаю это не возможно) сделать что бы она стала формо нового документа?
21 RomaH
 
naïve
06.07.11
07:18
(17) не понял почему только "если кроме списка пациентов и формы нового документа на рабочем столе ничего отображаться не будет."
сейчас на рабочем столе 2 обработки + журнал документов + форма документа
22 dva1c
 
06.07.11
07:36
закладка
23 Krendel
 
06.07.11
07:40
Можно вопрос?

Нахрена единый рабочий стол с гемором по отладке прав доступа- не проще ли нарисовать свой стол под каждую роль?
24 guitar_player
 
06.07.11
07:41
(23) лично мне кажется, что так удобнее... правда нужно качественно сделать изначабльно
25 БибиГон
 
06.07.11
07:53
(23) а как это сделать?
26 Krendel
 
06.07.11
07:58
Ну стол это же обработка, запускай стол в зависимости от роли пользователя и все
27 Krendel
 
06.07.11
07:59
Через подписку на события
28 RomaH
 
naïve
06.07.11
08:30
хм, вот лежит у меня на рабочем столе форма докуменета
а вот как теперь понять что это форма на рабочем столе - как её отличить от формы которая открыта через другое место?
29 БибиГон
 
06.07.11
08:38
зачем?
30 RomaH
 
naïve
06.07.11
08:41
потому что разное поведение должно быть у формы которая постояннно на рабочем столе и у той котоая открыта, например по команде или из списка документов
31 RomaH
 
naïve
06.07.11
08:42
т.е. форма на рабочем столе - это всегда форма нового документа - т.е. при записи создается новый док, а все другое формы - это стандартно (либо новый, либо редактирование/просмотр существующего)
32 RomaH
 
naïve
06.07.11
08:45
нашел одно различие ... но кривоватое - форма на рабочем столе имеет ключ уникальности

форма документа открытая из списка - нет

но, ИМХО, не очень хорошая привязка - ключ уникальности можно же назначить при открытии из кода
33 БибиГон
 
06.07.11
08:45
может использовать Ключ? У каждой формы свой ключ имеется.
34 RomaH
 
naïve
06.07.11
08:49
(33) КлючУникальности?
см выше - не 100% результат
35 Suhoi
 
06.07.11
09:15
(0)Конфигурация/рабочая область рабочего стола / добавить документ   - и о чудо - открывается рабочий стол, а там документ... :-)))
36 Suhoi
 
06.07.11
09:17
+(35) только нужно добавить не сам документ, а именно форму документа
37 RomaH
 
naïve
06.07.11
10:03
(35) да это уже нашлось, вот как определить что именно форма которая там открыта обрабатывается, а не какая-либо другая
38 RomaH
 
naïve
06.07.11
10:13
о
ЭтаФорма.Открыта() = Ложь
39 RomaH
 
naïve
06.07.11
10:24
когда еще может этот метод ложь возвращать?
40 TitanLuchs
 
06.07.11
15:31
(18) Можно сделать достаточно удобно и универсально, но придется создать еще одну форму документа.

1. Делаешь новую форму документа. В ней две группы: левая и правая. В левой размещай динамический список с пациентами, в правой - все остальные реквизиты документа. По умолчанию правая колонка скрыта.
2. Эту форму пихаешь в область рабочего стола. При запуске программы у тебя откроется форма нового документа, в которой  будет виден только список пациентов.
3. Выбираешь пациента, жмакаешь кнопку "Создать документ", ну или по другому какому-нить событию отлавливаешь момент, когда надо создать документ.
4. На сервере создаешь новый ДокументОбъект, заполняешь как нужно его реквизиты, запоминаешь этот  ДокументОбъект в переменной
5. В форме вызываешь метод ЗначениеВРеквизитФормы("Объект, ДокументОбъект"). Таким образом в форму попадают данные твоего созданного, но незаписанного документа.
6. Делаешь видимой правую колонку - вуаля.
7. После записи правую колонку можно скрыть, тогда для пользователя документ как бы пропадет, но список клиентов останется и можно создавать новый документ.

У меня так работает. Вчера просто попробовал с отдельной формы запихнуть это на рабочий стол - все ОК.
41 RomaH
 
naïve
11.07.11
11:09
хм, для форм открывающихся в отдельном окне прокатывает\
а вот, например, для форм списка - нет

переходим на закладку подсистемы
тукаем форму списка - и она открываается в основном окне - т.е.

   Возврат ВызвавшаяФорма.КлючУникальности <> Неопределено И Не ВызвавшаяФорма.Открыта();

возвращает Истину

как быть?