|
Добавление свободных колонок в Табличное поле | ☑ | ||
---|---|---|---|---|
0
moonlight
27.11.16
✎
13:48
|
Добрый день!
В табличное поле документа добавляют несколько колонок, которые не связаны с данными. Редактировать вроде могу, вижу значение, которое я ввожу в эти колонки но после потери фокуса значение не видно, а при помещении курсора в колонку значение видно, но одинаковое для всех строк колонки. Как правильно добавить в Табличное поле произвольные колонки с возможностью редактирования и отображения введенных данных для каждой ячейки? |
|||
1
h-sp
27.11.16
✎
14:44
|
не получится так. Не мучайтесь, добавьте реквизит в ТЧ.
|
|||
2
moonlight
27.11.16
✎
15:11
|
Сформулирую по другому.
У меня есть в форме документа Табличное поле связанное с таблицей документы Товары. Мне надо добавить программно в зависимости от определенных данных несколько колонок в ячейки которых для разных строк я должен интерактивно вносить данные. При закрытии документа значения ячеек этих колонок будут сохранятся. Как добится редактирования ячеек в доп колонках кде свойство ДАННЫЕ =""? |
|||
3
Mauser
27.11.16
✎
15:19
|
(2) Сформулирую по другому. Так не получится. Потому что редактируется не ячейки, а связанные данные. Котрых у тебя нет.
|
|||
4
lucbak
27.11.16
✎
15:26
|
(2) Для реализации данного функциона тебе необходим ID строки (т.е. как минимум 1 реквизит в ТЧ тебе все таки придется добавить) + некое хранилище значений (введенных в ячейки) - это будет или РС или ТЧ или еще что нить...
|
|||
5
moonlight
27.11.16
✎
15:46
|
т.е насколько я понимаю мне надо создать ТЗ и динамически колонки сколько требуется, а затем связать с Табличным полем?
|
|||
6
Mauser
27.11.16
✎
16:14
|
(5) Хз, тебе там видней. Попробуй, что-ли. Если не получится - попробуй понять почему.
|
|||
7
lucbak
27.11.16
✎
16:29
|
(5) Да, именно так.
|
|||
8
Злопчинский
27.11.16
✎
16:33
|
Если после закрытия дока данныеидолжны сохраняться, то почему их не сделать реквизитами этого самого дока?
|
|||
9
lucbak
27.11.16
✎
16:37
|
(8) Судя по всему кол-во реквизитов заранее не известно (т.е. смысл именно в динамическом их создании)
|
|||
10
Злопчинский
27.11.16
✎
16:43
|
(9) а почему тогда не хранить это в отдельной тч ПОСТРяоЧНО?
|
|||
11
lucbak
27.11.16
✎
16:54
|
(10) Это и предлагается в (4)
|
|||
12
Mauser
27.11.16
✎
16:54
|
(10) Потому что он идет не от хранения и логики обработки, а от пользовательского интерфейса. Он так видит. Художника любой обидеть норовить и так далее.
Так-то. |
|||
13
lucbak
27.11.16
✎
16:56
|
(10) Хранить можно как угодно а представление требуется так как описано в (0)
|
|||
14
Mauser
27.11.16
✎
16:58
|
(13) Прости меня, о великий телепат, познающий тонкости задания силой мысли и фантазии. Напиши ему готовый код что-ли, уже?
|
|||
15
lucbak
27.11.16
✎
17:11
|
(14) Фантазии у пользователей а у меня опыт (как говорится "почувствуйте разницу").
|
|||
16
Mauser
27.11.16
✎
17:13
|
(15) Код-то автору напишешь? Или опыт уже не позволяет? =)
|
|||
17
lucbak
27.11.16
✎
17:24
|
(16) Кратенько так:
//Добавляем колонку (доп.атрибут) в таблицу значений тзДопАтрибуты.Колонки.Добавить(стИдентификатор, текОписаниеТипа, стрНаименование); //Добавляем колонку (доп.атрибут) в табличную часть ОбъектКолонка=ТабличноеПолеНаФорме.Колонки.Добавить(стИдентификатор, стрНаименование); ОбъектКолонка.УстановитьЭлементУправления(Тип(ЗначениеАтрибута)); //При изменении значения в указанной процедуре запишем его в ТЗ (как вариант) ОбъектКолонка.ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("ОписаниеПроцедуры")); ОбъектКолонка.ЭлементУправления.ТипЗначения=текОписаниеТипа; //В модуле формы документа Процедура тпНашаТабличнаяЧасть_ПриПолученииДанных(Элемент, ОформленияСтрок) Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл НайденнаяСтрока=тзДопАтрибуты.Найти(ОформлениеСтроки.ДанныеСтроки.ID, "Ключ"); Если НайденнаяСтрока=Неопределено Тогда Продолжить; КонецЕсли; Для Каждого СтрокаКоллекции Из тзДопАтрибуты.Колонки Цикл Если СтрокаКоллекции.Имя="Ключ" Тогда Продолжить; КонецЕсли; ОформлениеСтроки.Ячейки[СтрокаКоллекции.Имя].Значение=НайденнаяСтрока[СтрокаКоллекции.Имя]; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
18
Mauser
27.11.16
✎
17:35
|
(17) Отлично, ждем реакции ТС.
Предполагаю первый вопрос про "ОписаниеПроцедуры". Хотя скорей всего просто промолчит и больше не появится =) |
|||
19
lucbak
27.11.16
✎
17:40
|
//Процедура, которые вещается на событие ячейки табличного поля "ПриИзменении"
Процедура ОписаниеПроцедуры(Элемент) //Тут пищем код запоминая введенного значения ячейки в ТЗ, для его последущего //отобрадения в процедуре "ПриПолученииДанных" КонецПроцедуры |
|||
20
Злопчинский
27.11.16
✎
17:42
|
не, фигня какая-то.. такие вывороты имхо обычно свиделеьствует либо о кривлой постановке задачи, либо о кривой архитектуре. надо переделывать как-то по нормальному
|
|||
21
Mauser
27.11.16
✎
17:47
|
(20) +1
У некоторых, правда, об "опыте" =) |
|||
22
lucbak
27.11.16
✎
17:48
|
(20) Такое обычно пишется для универсальных механизмов - для типовых конфигураций конечно сомнительно, что такое необходимо.
|
|||
23
moonlight
27.11.16
✎
18:51
|
Да, данные хранятся в двух таблицах документа Потребности и ОСтатки по складам. В таблице, которую видит пользователь надо, чтобы добавилось столько колонок сколько складов в целом существуют с остатками по номенклатуре. Поэтому Видимая таблица при открытии будет формироваться доп колонками и заполнятся из 2 таблиц документа а при записи сохранять данные в 2х таблицах документа
|
|||
24
Mauser
27.11.16
✎
19:07
|
(23) > ... при открытии будет формироваться доп ...
Если напишешь - будет. Если не напишешь - не будет. Все взаимосвязано. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |