|
Изменение типа колонок в Таблице Значений Табличного поля | ☑ | ||
---|---|---|---|---|
0
OASU
30.08.12
✎
12:48
|
На форме создано табличное поле с типом Таблица Значений.
Перед открытием по регистру сведений проходит отбор и этот отбор выгружается в ТЗ на форме. ТЗ = Результат.Выгрузить(); ЭлементыФормы.ТЗ.СоздатьКолонки(); ЭлементыФормы.ТЗ.Значение = ТЗ; Пользователь в таблице может редактировать строки как угодно, добавлять и удалять и они при нажатии кнопки ОК запишутся в этот регистр сведений. НО дело в том что при выгрузке у колонок тип значения - Null,Справочник Номенклатура. И при добавлении новой строки пользователь видит кнопку выбора типа "Т", т.е. каждый раз выбирать тип Справочник Номенклатура из единственного варианта, как то по дурацки. По идеи можно добавить определение типов в Процедура ТЗПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) ТЗ.Колонки.Удалить("Номенклатура"); ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); Но это сработает, только если таблица пустая, если не пустая то затираются выбранные строки. Вопрос, с этим что-то можно сдлеать или нужно пойти другим путем? |
|||
1
Kashemir
30.08.12
✎
12:54
|
1. Запрети выбор типа и через найтистроки заполни нулл значения пустой ссылкой на номенатуру
2. создай новою колонку с типом номенклатура (имена колонок можно менять) и перекинь туда значения |
|||
2
OASU
31.08.12
✎
12:25
|
В общем явно задала типы колонок и значения записала в каждую. теперь с типом все хорошо
Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ТекущаяСтрока = ТЗ.Добавить(); //так потому что тип при выгзузке двойной тип значения и проблемы создает ТекущаяСтрока.Номенклатура = Выборка.Номенклатура; ТекущаяСтрока.СвойстваОбъектов = Выборка.СвойстваОбъектов; ТекущаяСтрока.Порядок = Выборка.Порядок; ТекущаяСтрока.ПризнакСверткиДляПриказНакладной = Выборка.ПризнакСверткиДляПриказНакладной; КонецЦикла; |
|||
3
OASU
31.08.12
✎
12:35
|
Т.к. это все еще табличное поле с типом Таблица значений, у меня не получается сделать вот что.
Пользователь в ТЗ должен выбирать СвойствоОбъектов, в данном случае это характеристики номенклатуры. Так вот по кнопке выбора свойств должен отрабатывать отбор. И он прекрасно себе работает. Процедура ВыборСвойствОбъектов(Элемент) Номенклатура = Элемент.ТекущаяСтрока.Номенклатура; Если Не ЗначениеЗаполнено(Номенклатура) Тогда Предупреждение("Выберите номенклатуру!"); Возврат; КонецЕсли; СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НазначенияСвойствОбъектов.Объект, | НазначенияСвойствОбъектов.Свойство |ИЗ | РегистрСведений.НазначенияСвойствОбъектов КАК НазначенияСвойствОбъектов |ГДЕ | НазначенияСвойствОбъектов.Объект = &Объект"; Запрос.УстановитьПараметр("Объект",Номенклатура); РезультатаЗапроса = Запрос.Выполнить().Выгрузить(); Список = Новый СписокЗначений; Список.ЗагрузитьЗначения(РезультатаЗапроса.ВыгрузитьКолонку("Свойство")); Форма = ПланыВидовХарактеристик.СвойстваОбъектов.ПолучитьФормуВыбора(,Элемент); Форма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; Форма.Отбор.Ссылка.Значение = Список; Форма.Отбор.Ссылка.Использование = Истина; Форма.ОткрытьМодально(); КонецПроцедуры Но, по всей видимости я не правильно использую событие для вызова этой процедуры. Т.е. список с отбором я вижу и пытаюсь выбрать нужное свойство, но в ТЗ он это свойство не переносит. Процедура ТЗПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Если Элемент.ТекущаяКолонка.Имя = "СвойстваОбъектов" Тогда ВыборСвойствОбъектов(Элемент); КонецЕсли; КонецПроцедуры |
|||
4
OASU
31.08.12
✎
13:34
|
I need help
|
|||
5
OASU
02.09.12
✎
09:02
|
up
|
|||
6
GenV
02.09.12
✎
10:06
|
(3) Добавить для формы с ТЗ событие "ОбработкаВыбора" - в нем будет проверять и присваивать значение для текущей строки. И форму выбора получай для владельца ЭтаФорма.
ЗЫ Выбор таких свойств сделать лучше не так как у тебя, а назначить для колонки выбор из списка и ПриОткрытии или ПриНачалеВыбораИзСписка назначать СписокВыбора с доступными значениями. |
|||
7
Фокусник
02.09.12
✎
10:31
|
(0)
>На форме создано табличное поле с типом Таблица Значений. А может ну ее эту ТаблицуЗначений, воспользоваться ТабличнойЧастью: задать в ней нужные колонки, они ведь статические? :) |
|||
8
mikecool
02.09.12
✎
11:25
|
(7) да и в ТЗ можно прописать типы, создав колонки в дезигн режиме
|
|||
9
Фокусник
02.09.12
✎
12:30
|
(8) Можно, но ТЗ (ИМХО) для других целей. Если набор колонок статический, то проще ТЧ воспользоваться. В таком случае вопросов как в этой ветке вообще не возникло бы :)
|
|||
10
эцп
02.09.12
✎
16:54
|
(0) Попробовать воспользоваться ОграничениеТипа для поля ввода
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |