|
И снова Табличное Поле | ☑ | ||
---|---|---|---|---|
0
Memfis
10.06.13
✎
04:47
|
В общем хочу сделать, что-то вроде универсального табличного поля, т.е. в зависимости от выбранного документа, создается табличное поле визуально идентичное табличному полю выбранного документа.
ТЗ = ДокументОб.РаботникиОрганизации.Выгрузить(); Результат = Новый ХранилищеЗначения(ТЗ); ТабличноеПоле.Имя = "РаботникиОрганизации"; ТабличноеПоле.Значение = Результат.Получить(); ТабличноеПоле.СоздатьКолонки(); Данный вариант естественно не подходит, так как табличное поле визуально выглядит не так как исходное. Пробовал другой вариант ТабличноеПолеЭ = ЭлементыФормы.табполе; ФормаОб = Документы.ОтпускаОрганизаций.ПолучитьФорму("ФормаДокумента"); ТабОб = ФормаОб.ЭлементыФормы.РаботникиОрганизации.Колонки; Для Каждого КолонкиЭлемент Из ТабОб Цикл Если КолонкиЭлемент.ЭлементУправления <> Неопределено Тогда Если Тип(КолонкиЭлемент.ЭлементУправления)= "ПолеВвода" Тогда ТипЭ = Тип(КолонкиЭлемент.ЭлементУправления); КнопкаОткрытия = Истина; КнопкаВыбора = Истина; Иначе ТипЭ = Тип(КолонкиЭлемент.ЭлементУправления); КнопкаВыбора = Неопределено; КнопкаОткрытия = Неопределено; КонецЕсли; Иначе ТипЭ = Неопределено; КнопкаВыбора = Неопределено; КнопкаОткрытия = Неопределено; КонецЕсли; РаботаСДиалогами.ВставитьКолонкуВТабличноеПоле(, ТабличноеПолеЭ, КолонкиЭлемент.Имя, КолонкиЭлемент.ТекстШапки, КолонкиЭлемент.Данные, КолонкиЭлемент.ДанныеФлажка, , КолонкиЭлемент.Видимость, ТипЭ, КолонкиЭлемент.Положение, КолонкиЭлемент.Ширина, КнопкаВыбора, КнопкаОткрытия ,); КонецЦикла; ТабличноеПолеЭ.Значение = Результат.Получить() при таком варианте табличное поле визуально идентично исходному, данные в строчках заполнены, но теряется так сказать ссылочная целостность, т.е. при изменении поля "Сотрудник" к примеру не открывается список справочника. Поле редактируется как обычное поле ввода. При 1 варианте ссылочная целостность присутствует. Собственно может кто сталкивался с похожей проблемой, да подскажет чего дельного. |
|||
1
Godofsin
10.06.13
✎
05:03
|
ЭлементыФормы.ТП.Значение = ТЧ;
ЭлементыФормы.ТП.СоздатьКолонки(); |
|||
2
Godofsin
10.06.13
✎
05:07
|
ТЧ = Таблица с типизированными колонками
|
|||
3
Memfis
10.06.13
✎
05:19
|
(2) Чем это
ТЗ = ДокументОб.РаботникиОрганизации.Выгрузить(); Результат = Новый ХранилищеЗначения(ТЗ); ТабличноеПоле.Имя = "РаботникиОрганизации"; ТабличноеПоле.Значение = Результат.Получить(); ТабличноеПоле.СоздатьКолонки(); принципиально отличается от этого ЭлементыФормы.ТП.Значение = ТЧ; ЭлементыФормы.ТП.СоздатьКолонки(); ? |
|||
4
Wobland
10.06.13
✎
05:25
|
а зачем ХЗ?
|
|||
5
Godofsin
10.06.13
✎
05:26
|
хз, а чем тебя тогда не устраивает?
Твой способ я принципиально не пробовал, т.к. много строк |
|||
6
Memfis
10.06.13
✎
05:27
|
(5)
Тем что визуально табличное поле выглядит не так |
|||
7
Wobland
10.06.13
✎
05:27
|
(6) сделай так
|
|||
8
Memfis
10.06.13
✎
05:29
|
(4) хитры документ сделать хочу "Проект приказа об изменении приказа" для того и ХЗ, что исходный документ менять нельзя пока проект не пройдёт регистрацию на подпись
|
|||
9
Memfis
10.06.13
✎
05:29
|
(7)
Пользователям так не удобно |
|||
10
Wobland
10.06.13
✎
05:31
|
(9) сделай удобно
(8) так зачем ХЗ? |
|||
11
Memfis
10.06.13
✎
05:35
|
(10) Вот и пытаюсь сделать удобно
ТабличноеПолеЭ = ЭлементыФормы.табполе; ФормаОб = Документы.ОтпускаОрганизаций.ПолучитьФорму("ФормаДокумента"); ТабОб = ФормаОб.ЭлементыФормы.РаботникиОрганизации.Колонки; Для Каждого КолонкиЭлемент Из ТабОб Цикл Если КолонкиЭлемент.ЭлементУправления <> Неопределено Тогда Если Тип(КолонкиЭлемент.ЭлементУправления)= "ПолеВвода" Тогда ТипЭ = Тип(КолонкиЭлемент.ЭлементУправления); КнопкаОткрытия = Истина; КнопкаВыбора = Истина; Иначе ТипЭ = Тип(КолонкиЭлемент.ЭлементУправления); КнопкаВыбора = Неопределено; КнопкаОткрытия = Неопределено; КонецЕсли; Иначе ТипЭ = Неопределено; КнопкаВыбора = Неопределено; КнопкаОткрытия = Неопределено; КонецЕсли; РаботаСДиалогами.ВставитьКолонкуВТабличноеПоле(, ТабличноеПолеЭ, КолонкиЭлемент.Имя, КолонкиЭлемент.ТекстШапки, КолонкиЭлемент.Данные, КолонкиЭлемент.ДанныеФлажка, , КолонкиЭлемент.Видимость, ТипЭ, КолонкиЭлемент.Положение, КолонкиЭлемент.Ширина, КнопкаВыбора, КнопкаОткрытия ,); КонецЦикла; ТабличноеПолеЭ.Значение = Результат.Получить() но как туда Тип подвязать чего то не догоняю Ну а как без ХЗ изменяемый приказ может быть любой (Увольнение, Отпустк, Перемещение и т.д.), так вот когда Проект проходит регистрацию, приказ должен поменятся, без участия пользователя. А создавать ТЧ под каждый тип документа мне кажется моветон. |
|||
12
Wobland
10.06.13
✎
05:37
|
>Ну а как без ХЗ
ТабличноеПоле.Значение=ДокументОб.РаботникиОрганизации.Выгрузить(); |
|||
13
Wobland
10.06.13
✎
05:38
|
а вообще, где-то в проектировании косяк, имхо
|
|||
14
Memfis
10.06.13
✎
05:41
|
(13) Возможно.
Моё дело маленькое, задача поставлено нужно выполнять |
|||
15
Memfis
10.06.13
✎
05:44
|
(12) При закрытии документа ТабличноеПоле.Значение сохранится, при отсутствии реквизитов?
|
|||
16
Wobland
10.06.13
✎
05:51
|
(15) только, если ты его не попросишь.
вопрос в чём? надо сделать удобно - сделай |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |