|
Как программно поставить галочку "использовать всегда"? | ☑ | ||
---|---|---|---|---|
0
yesmax7
18.09.20
✎
07:22
|
Конфигурация ЗУП 3.1 (3.1.14.55), хотя это не важно
Документ "Табель" Основная форма документа В процедуре "При создании на сервере" программно добавляю новый реквизит - колонку к табличной части. Мне реквизит нужен только на форме, а не в объекте. ДобавляемыеРеквизиты = Новый Массив; НовыйРеквизитВремяИтогСтарое = Новый РеквизитФормы("ВремяИтогСтарое", Новый ОписаниеТипов("Строка"), "Объект.ДанныеОВремени", "ВремяИтогСтарое"); ДобавляемыеРеквизиты.Добавить(НовыйРеквизитВремяИтогСтарое); ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); Реквизит добавляется, видно даже по отладке Затем добавляю его на форму в элементы НовыйЭлементВремяИтогСтарое = Элементы.Добавить("ВремяИтогСтарое", Тип("ПолеФормы"), Элементы.ДанныеОВремени); НовыйЭлементВремяИтогСтарое.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлементВремяИтогСтарое.ПутьКДанным = "Объект.ДанныеОВремени.ВремяИтогСтарое"; НовыйЭлементВремяИтогСтарое.ТолькоПросмотр = Истина; На этой строчке НовыйЭлементВремяИтогСтарое.ПутьКДанным = "Объект.ДанныеОВремени.ВремяИтогСтарое"; выходит ошибка: "Ошибка при установке значения атрибута контекста (ПутьКДанным)" по причине: Недопустимое значение Нашел в интеренте причину: напротив таблицы "ДанныеОВремени" снята галочка "Использовать всегда". Если галочку нажать, ошибки не будет. Предполагаю, что вновь программно созданный реквизит-колонка "ВремяИтогСтарое" при добавлении заимствует значение этого флажка у своего родителя, т.е. флажок сброшен. Без этой галочки к колонке обратиться нельзя, следовательно нельзя и добавить на форму. Нужно программно установить эту галочку для этой колонки Нашел в интернете метод УстановитьОбязательноеИспользование(<Поле>, <Использование>), но не понятно где и как его использовать. Во всех примерах он используется для динамического списка, а у меня табличная часть. Пробывал писать так: Объект.ДанныеОВремени.УстановитьОбязательноеИспользование(..., ...) Элементы.ДанныеОВремени.УстановитьОбязательноеИспользование(..., ...) Везде пишет "Метод объекта не обнаружен" Подскажите как программно поставить эту галочку для моей колонки. |
|||
1
sTOd
18.09.20
✎
07:29
|
Глянь свойства элемента формы.
PS: Какое небо голубое... |
|||
2
lucbak
18.09.20
✎
08:06
|
(0) ЭтаФорма["ИмяТаблицы"].УстановитьОбязательноеИспользование(ИмяКолонки, Истина);
|
|||
3
sTOd
18.09.20
✎
08:21
|
А оплату за консультацию пришлите мне.
|
|||
4
yesmax7
30.09.20
✎
06:29
|
(2) Нет, не работает.
ДанныеОВремени это табличная чать документа (Объект.ДанныеОВремени), которая также расположена на форме, а реквизит "СЗВ_ВремяИтогСтарое" я добавляю только на форму в эту табличную часть Все перепробовал, везде вываливается в исключение, в комментарии ошибка, которая выходит Попытка Элементы.ДанныеОВремени.УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("2: " + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование) КонецПопытки; Попытка Объект.ДанныеОВремени.УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("3: " + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование) КонецПопытки; Попытка ЭтаФорма.ДанныеОВремени.УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("4: " + ОписаниеОшибки());//Поле объекта не обнаружено (ДанныеОВремени) КонецПопытки; Попытка ЭтаФорма.Элементы.ДанныеОВремени.УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("5: " + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование) КонецПопытки; Попытка ЭтаФорма.Объект.ДанныеОВремени.УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("6: " + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование) КонецПопытки; Попытка ЭтаФорма["ДанныеОВремени"].УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("7: " + ОписаниеОшибки());//Поле объекта не обнаружено (ДанныеОВремени) КонецПопытки; Попытка ЭтаФорма["Элементы.ДанныеОВремени"].УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("8: " + ОписаниеОшибки());//Поле объекта не обнаружено (Элементы.ДанныеОВремени) КонецПопытки; Попытка ЭтаФорма["Объект.ДанныеОВремени"].УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("9: " + ОписаниеОшибки());//Поле объекта не обнаружено (Объект.ДанныеОВремени) КонецПопытки; Попытка ЭтаФорма["Элементы"].ДанныеОВремени.УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("10: " + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование) КонецПопытки; Попытка ЭтаФорма["Объект"].ДанныеОВремени.УстановитьОбязательноеИспользование("СЗВ_ВремяИтогСтарое", Истина); Исключение Сообщить("11: " + ОписаниеОшибки());//Метод объекта не обнаружен (УстановитьОбязательноеИспользование) КонецПопытки; |
|||
5
hhhh
30.09.20
✎
07:29
|
(4) должен быть Динамический список. Надо ваи его создать.
|
|||
6
yesmax7
30.09.20
✎
11:17
|
(5) Документ типовой, там табличная чать
И к тому же, я же руками могу поставить эту галку, значит и программно должна ставиться Когда я руками ставлю, все отрабатывает отлично |
|||
7
Andreyyy
30.09.20
✎
11:25
|
(6) Не все программно можно выполнить, например флажок "Автозаполнение" у командной панели не доступен программно.
Тут может быть аналогично. Попробуйте перенести в расширение и там поставить флажок вручную. |
|||
8
Андроны едут
30.09.20
✎
11:33
|
(6) Вам же в (5) написали УстановитьОбязательноеИспользование - это метод динамического списка.
|
|||
9
yesmax7
01.10.20
✎
06:33
|
(8) Я тоже все примеры находил на динамический список. Значит нужен какой-то другой метод. Я не могу переделать табличную часть в динамический список, я работаю с данными в документе, мне их нужно изменять, это абсурд.
|
|||
10
yesmax7
01.10.20
✎
06:35
|
(7) Походу сделаю так
По хорошему мне надо галку ни табличной части ставить, а моему добавленному полю, а его тогда тоже в расширение руками добавлять, а не программно |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |