|
v8 : Программное создание элементов формы | ☑ | ||
---|---|---|---|---|
0
Reloader
10.05.14
✎
12:00
|
Итак платформа 1С:Предприятие 8.2
Конфигурация Управление торговлей, редакция 11.0 (11.0.7.21) (переписанная сильно, но не об этом речь) для более удобного обновления мой босс требует чтоб все возможные дописки в конфе выполнялись кодом. Соответственно и формирование форм. (просьба не обсуждать этот момент, а сосредоточиться на проблеме..) Есть документ. У него добавлена табличная часть. Реквизитов два : Физлицо (справочник физлиц) и сумма (число) Добавляю так : --------------------------------------------- // Добавляем страницу СтраницаФлица = Элементы.Добавить("СтраницаФлица ", Тип("ГруппаФормы"), Элементы.ГруппаСтраницы); СтраницаФлица.Вид =ВидГруппыФормы.Страница; СтраницаФлица.Заголовок = "Сотрудники"; СтраницаФлица.Видимость = Истина; // Добавляем элементы на страницу ФлицаТЧ = Элементы.Добавить("Физлица", Тип("ТаблицаФормы") ,СтраницаФлица); ФлицаТЧ.Видимость = Истина; ФлицаТЧ.ТолькоПросмотр = Ложь; ФлицаТЧ.ПутьКДанным = "Объект.Сотрудники"; //Добавим колонки ФлицаТЧ_Физлицо = Элементы.Добавить("ФизЛицо", Тип("ПолеФормы"),ФлицаТЧ ); ФлицаТЧ_Физлицо .Видимость = Истина; ФлицаТЧ_Физлицо .ПутьКДанным = "Объект.Сотрудники.ФизЛицо"; ФлицаТЧ_Физлицо .Заголовок = "Физлицо"; ФлицаТЧ_Сумма = Элементы.Добавить("СуммаРаспределения", тип("ПолеФормы"),ФлицаТЧ); ФлицаТЧ_Сумма.Видимость = Истина; ФлицаТЧ_Сумма.ПутьКДанным = "Объект.Сотрудники.СуммаРаспределения"; ФлицаТЧ_Сумма.Заголовок = "Сумма"; ------------------------------------------------ Доброго времени суток! (не кидайтесь тапками, если не в тему, или глупость спрошу...) Итак платформа 1С:Предприятие 8.2 Конфигурация Управление торговлей, редакция 11.0 (11.0.7.21) (переписанная сильно, но не об этом речь) для более удобного обновления мой босс требует чтоб все возможные дописки в конфе выполнялись кодом. Соответственно и формирование форм. (просьба не обсуждать этот момент, а сосредоточиться на проблеме..) Есть документ. У него добавлена табличная часть. Реквизитов два : Физлицо (справочник физлиц) и сумма (число) Добавляю так : Код: // Добавляем страницу СтраницаФлица = Элементы.Добавить("СтраницаФлица ", Тип("ГруппаФормы"), Элементы.ГруппаСтраницы); СтраницаФлица.Вид =ВидГруппыФормы.Страница; СтраницаФлица.Заголовок = "Сотрудники"; СтраницаФлица.Видимость = Истина; // Добавляем элементы на страницу ФлицаТЧ = Элементы.Добавить("Физлица", Тип("ТаблицаФормы") ,СтраницаФлица); ФлицаТЧ.Видимость = Истина; ФлицаТЧ.ТолькоПросмотр = Ложь; ФлицаТЧ.ПутьКДанным = "Объект.Сотрудники"; //Добавим колонки ФлицаТЧ_Физлицо = Элементы.Добавить("ФизЛицо", Тип("ПолеФормы"),ФлицаТЧ ); ФлицаТЧ_Физлицо .Видимость = Истина; ФлицаТЧ_Физлицо .ПутьКДанным = "Объект.Сотрудники.ФизЛицо"; ФлицаТЧ_Физлицо .Заголовок = "Физлицо"; ФлицаТЧ_Сумма = Элементы.Добавить("СуммаРаспределения", тип("ПолеФормы"),ФлицаТЧ); ФлицаТЧ_Сумма.Видимость = Истина; ФлицаТЧ_Сумма.ПутьКДанным = "Объект.Сотрудники.СуммаРаспределения"; ФлицаТЧ_Сумма.Заголовок = "Сумма"; Нормально всё прорисовывается. НО! сама табличная часть неактивна. Кнопка добавления есть, она ничего не добавляет. Ни работают ни горячие клавишь, ни тыканья мышкой (контекстное меню появляется, но по команде "добавить" ничегошеньки не происходит) Намучалсё уже, сил нет. Подскажите, ежели кто знает... |
|||
1
Reloader
10.05.14
✎
12:02
|
О_о..
я же один раз отправил.. чего это оно задвоилось... |
|||
2
Dmitry1c
10.05.14
✎
12:08
|
Там вроде как у табличной части по умолчанию реквизит "ТолькоЧтение" = Истина
|
|||
3
Dmitry1c
10.05.14
✎
12:09
|
>для более удобного обновления мой босс требует
рекомендую и в дальнейшем прислушиваться к советам босса |
|||
4
Reloader
10.05.14
✎
12:13
|
(3) Босс грамотный. Все "дописки" стараемся делать подписками на событие. Ну а вот на программное созздание элементов формы только недавно начали переходить.
Сейчас проверб по поводу "ТолькоЧтение" |
|||
5
Reloader
10.05.14
✎
12:44
|
Хм... "ТолькоПросмотр=Ложь"
|
|||
6
adron
10.05.14
✎
12:49
|
Посмотри в сторону привязки командной панели к табличной части.
|
|||
7
hhhh
10.05.14
✎
12:55
|
(5) наверно, нужно не
ФлицаТЧ.ТолькоПросмотр = Ложь; ФлицаТЧ.ПутьКДанным = "Объект.Сотрудники"; а ФлицаТЧ.ПутьКДанным = "Объект.Сотрудники"; ФлицаТЧ.ТолькоПросмотр = Ложь; |
|||
8
Reloader
10.05.14
✎
13:11
|
(7) Не сработало...
|
|||
9
Reloader
10.05.14
✎
13:22
|
Ничего не выходит. Тыкаться вслепую можно до ишачьей пасхи..
Не подскажете, где можно про это почитать? |
|||
10
zak555
10.05.14
✎
14:13
|
> СтраницаФлица = Элементы.Добавить("СтраницаФлица ",
у тебя с пробелом отрабатывает ? |
|||
11
Kookish
10.05.14
✎
14:15
|
Во, нашел. Может это поможет. У меня такой код работает:
// (н) Varaa - печать чеков ПараметрИмя = "P_Printer"; ДобавляемыеРеквизиты = Новый Массив; Реквизит = Новый РеквизитФормы(ПараметрИмя, Новый ОписаниеТипов("Строка"), , "Принтер для печати", Истина); ДобавляемыеРеквизиты.Добавить(Реквизит); ИзменитьРеквизиты(ДобавляемыеРеквизиты); Элемент = Элементы.Добавить(ПараметрИмя, Тип("ПолеФормы"), БазоваяГруппа); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.РастягиватьПоГоризонтали = Истина; Элемент.ПутьКДанным = ПараметрИмя; ХранимоеЗначение = Неопределено; ПараметрЗначение = ?(ЗначениеПараметров.Свойство(ПараметрИмя, ХранимоеЗначение), ХранимоеЗначение, ""); ЭтаФорма[ПараметрИмя] = ПараметрЗначение; ПараметрИмя = "P_SelPrn"; ДобавляемыеРеквизиты = Новый Массив; Реквизит = Новый РеквизитФормы(ПараметрИмя, Новый ОписаниеТипов("Булево"), , "Выбор принтера", Истина); ДобавляемыеРеквизиты.Добавить(Реквизит); ИзменитьРеквизиты(ДобавляемыеРеквизиты); Элемент = Элементы.Добавить(ПараметрИмя, Тип("ПолеФормы"), БазоваяГруппа); Элемент.Вид = ВидПоляФормы.ПолеФлажка; Элемент.ПутьКДанным = ПараметрИмя; ХранимоеЗначение = Неопределено; ПараметрЗначение = ?(ЗначениеПараметров.Свойство(ПараметрИмя, ХранимоеЗначение), ХранимоеЗначение, Ложь); ЭтаФорма[ПараметрИмя] = ПараметрЗначение; // (к) Varaa - печать чеков |
|||
12
Kookish
10.05.14
✎
14:17
|
Да, процедура выполняется на сервере, ессно.
|
|||
13
Reloader
10.05.14
✎
14:18
|
zak555, нет, это очепятка..
Kookish, сейчас попробую .. |
|||
14
zak555
10.05.14
✎
14:36
|
(13) в смысле не опечатка ?
|
|||
15
zak555
10.05.14
✎
18:24
|
(0) ты забыл указать вид поля формы
ФлицаТЧ_Физлицо.Вид = ВидПоляФормы.ПолеВвода; ФлицаТЧ_Сумма.Вид = ВидПоляФормы.ПолеВвода; |
|||
16
Reloader
10.05.14
✎
21:22
|
Всем спасибо. Получилось.
Надыбал тут : http://help1c.com/faq/view/1170.html |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |