Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 20:36

Добовление реквизитов на форму из встроенного языка.

Автор |R|U|D|E|N, 07 фев 2011, 16:13

0 Пользователей и 1 гость просматривают эту тему.

|R|U|D|E|N

Попробовал я сегодня создать колонки в табличном поле, ссылающиеся на нужные мне справочники по приведенному выше примеру. Нечего у меня не получилось, к сожалению...

Оказывается что при создании колонок в табличном поле доступны только два параметра:

ТабПоле.Колонки.Добавить("ВнешнийВид", "Внешний вид");

Тойсть, имя колонки и загаловок колонки. А как заставить ее ссылаться на нужные мне данные не пойму?




cska-fanat-kz

Если у ТабПоля в свойстве ТипЗначения значится ТаблицаЗначений, то у ...Колонки.Добавить(); 4 параметра:

КоллекцияКолонокТаблицыЗначений (ValueTableColumnCollection)
Добавить (Add)
Синтаксис:
Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

|R|U|D|E|N

Увожаемый cska-fanat-kz не могли бы Вы предоставить рабочий пример создания таблицы, колонок с сылками на другие объекты.

Если можно пример, как для блондинки, т.к именно блондинкой себя чувствую в данный момент) 

|R|U|D|E|N

А по поводу Вашего спора с милой дамой) так я не знаю еще очень многих тонкостей поэтому хотел малого...

В моем мастере все поля воода и табЧасти соответствуют всем реквизитам и ТабЧастям конкретного документа. Реквизитов много поэтому было решено использовать мастера для упрощения.

На последней странице заголовок кнопки далее меняется на завершить. Нажатие кнопки завершить должно закрывать тикущего мастера и открывать конкретный документ, поля ввода которого должны быть автоматически заполненны данными собранными мастером. Если пользователя все устраивает то он проводит документ, если нет то испровляет что надо и тоже проводит документ, или закрывает.

Klyacksa

Я так понимаю, речь идет все о том же таб.поле, добавленом программно? тогда:
    ТабПоле=ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"Оборудованиееее",Истина);
табЗн=Новый ТаблицаЗначений;
табЗн.Колонки.Добавить("Контрагент",Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
табЗн.Колонки.Добавить("Перечисление",Новый ОписаниеТипов("ПеречислениеСсылка.ВидыДопРасходов"));
ТабПоле.Значение=табЗн;
ТабПоле.СоздатьКолонки();


p.s. Значит, я все-таки была про создание/открытие нового документа ;)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

|R|U|D|E|N

Спасибо Klyacksa за хороший пример!

Сделал все в точности, только вот в свои справочники из нарисованной таблицы я так и не попал.
Колонки появились(тойсть шапки) но сама таблица пустая и куда либо "попасть" из нее я не могу..тйсть она тупо пустая и не на какие действия не реагирует. 


Что я могу делать не так? или может есть другой вариант?

//Создаем табличное поле для ввода оборудования
Если ЭлементыФормы.Найти("Оборудование") = Неопределено Тогда
ТабЗн = Новый ТаблицаЗначений;
ТабЗн.Колонки.Добавить("SN", Новый ОписаниеТипов("СправочникСсылка.СерийныеНомера"));
ТабЗн.Колонки.Добавить("Оборудование", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));

ТабПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "Оборудование", Истина);
ТабПоле.Лево = 15; ТабПоле.Верх = 190;
ТабПоле.Ширина = ЭтаФорма.Ширина - 30;
ТабПоле.Высота = 70;
ТабПоле.Значение = ТабЗн;
ТабПоле.СоздатьКолонки();


Иначе
ЭлементыФормы.Оборудование.Видимость = Истина;
КонецЕсли;


cska-fanat-kz

Ну чтобы с ней работать, чтобы в ней что-то появилось, надо либо программно заполнять, либо нужна командная панель, связанная с табличным полем.
Я так понимаю ее тоже надо программно создать после создания табличного поля...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Цитата: Klyacksa от 12 фев 2011, 23:44
Значит, я все-таки была про создание/открытие нового документа ;)

И все таки можно без создания нового документа ;))

1. Юзер нажимает кнопку "Создать новый Документ"
2. В процедуре ПередОткрытием помещаем запуск обработки Мастера
3. Если все нормально, происходит дальнейшее открытие форма Документа,
в противном случае - Отказ = Истина и т.д...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

Цитата: cska-fanat-kz от 13 фев 2011, 11:25
Ну чтобы с ней работать, чтобы в ней что-то появилось, надо либо программно заполнять, либо нужна командная панель, связанная с табличным полем.
в точку :)

|R|U|D|E|N, а зачем вообще создавать этот весь огород в ручную? Почему нельзя было изначально сделать панель со страницами, и на них расположить все нужные элементы?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

|R|U|D|E|N

А вы не могли бы показать в коде, как создать командную панель для таблицы? У меня это единственный не законченный момент в моей форме.

Весь этот сложный огород, сложен только при создании первой формы. А дальше, весь код будет переносится в другие, новые формы, где будут менятся только имена полей, порядок их отображения. Получается очень гибко, и аккуратно! представляете, если у меня будет 10 таких мастеров с 10 страницами каждый...тогда сколько нужно бдет страниц наисовать, предстовляете? А так один мастер - одна форма. Тем более что пописать немного кода для меня очень полезно!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск