Программное добавление реквизита в табличную часть управляемой формы
НовыйРеквизит = Новый РеквизитФормы("Должность", Новый ОписаниеТипов("Строка"), "Объект.ДанныеОВремени",,Ложь);
НовыйРеквизит.Заголовок = "Должность";
ДобавленныеРеквизиты = Новый Массив;
ДобавленныеРеквизиты.Добавить(НовыйРеквизит);
Форма.ИзменитьРеквизиты(ДобавленныеРеквизиты);
ЭлементДолжность = Форма.Элементы.Вставить("Должность", Тип("ПолеФормы"), Форма.Элементы.ДанныеОВремени, Форма.Элементы.ДанныеОВремениВремяИтог);
ЭлементДолжность.Вид = ВидПоляФормы.ПолеВвода;
ЭлементДолжность.ПутьКДанным = "Объект.ДанныеОВремени.Должность";
ЭлементДолжность.Заголовок = "Должность";
Показатьзуп 3.1 корп, табель. Пытаюсь добавить колонку, не получается выдает
{ОбщийМодуль.МеКаМи_РеквизитыНаФорму.Модуль(549)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)
ЭлементДолжность.ПутьКДанным = "Объект.ДанныеОВремени.Должность";
по причине:
Недопустимое значение
ЭлементДолжность.ПутьКДанным = "Объект.ДанныеОВремени.Должность";
по причине:
Недопустимое значение
не могу понять что она от меня хочет. Помогите разобраться.
По теме из базы знаний
- Программное размещение реквизитов на управляемой форме
- Вывод Таблицы Значений или Дерева Значений на экран управляемой формы без объявления колонок в реквизитах формы
- Табличная часть как поле ввода
- Программное формирование элементов и реквизитов на управляемой форме
- Показ кодов маркировки в документах 1С ERP/УТ: мини-доработка управляемых форм, чтобы облегчить себе жизнь
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
а это разве не делает мне колонку?
НовыйРеквизит = Новый РеквизитФормы("Должность", Новый ОписаниеТипов("Строка"), "Объект.ДанныеОВремени",,Ложь);
НовыйРеквизит.Заголовок = "Должность";
ДобавленныеРеквизиты = Новый Массив;
ДобавленныеРеквизиты.Добавить(НовыйРеквизит);
Форма.ИзменитьРеквизиты(ДобавленныеРеквизиты);
а это разве не делает мне колонку?
(1) Удалось найти истоки проблемы. Напротив таблицы "ДанныеОВремени" снята галочка "Использовать всегда". Если ее восстановить, ошибки не будет. Предполагаю, что вновь созданный реквизит "Должность" при добавлении заимствует значение этого флажка у своего родителя, т.е. флажок сброшен. Видимо без него не добавить элемент.
Как установить программно флажок "Использовать всегда" для реквизита типа "ДанныеФормыКоллекция" пока ума не приложу.
Как установить программно флажок "Использовать всегда" для реквизита типа "ДанныеФормыКоллекция" пока ума не приложу.
(17) Наверняка ответ уже найден, но я оставлю это здесь, для ищущих
СписокДокументыПродажи.УстановитьОбязательноеИспользование("Проведен", Истина);
СписокДокументыПродажи - динамический список журнала документов "документы продажи"
"Проведен" - поле динамического списка, которому нужно установить программно флаг "Использовать всегда"
СписокДокументыПродажи.УстановитьОбязательноеИспользование("Проведен", Истина);
СписокДокументыПродажи - динамический список журнала документов "документы продажи"
"Проведен" - поле динамического списка, которому нужно установить программно флаг "Использовать всегда"
(6) да нет, ковычки нужны.
(5) я думаю, может тут какая-нибудь специфическая табличная часть, что запрещенно добавлять.
просто часть связанная с созданием реквизита, она работает, если потом через отладчик посмотреть, там есть добавленный реквизит, а вот при попытке добавить в элементы формы, выдается ошибка.
причем я пробовал вывести реквизит, который уже есть в реквизите табличном, но отсутствует в элементе формы, ту же самую ошибку выдал.
(5) я думаю, может тут какая-нибудь специфическая табличная часть, что запрещенно добавлять.
просто часть связанная с созданием реквизита, она работает, если потом через отладчик посмотреть, там есть добавленный реквизит, а вот при попытке добавить в элементы формы, выдается ошибка.
причем я пробовал вывести реквизит, который уже есть в реквизите табличном, но отсутствует в элементе формы, ту же самую ошибку выдал.
Простите за глупый вопрос. Точно ли "Форма.Элементы.ДанныеОВремени" - это таблица, у которой путь к данным "Объект.ДанныеОВремени"? Нет ли одноименного реквизита не объекта, а формы "ДанныеОВремени", используемого для отображения данных?
Такая же проблема была. Что я только не делал. ERP (2.5.6.195) Платформа (8.3.16.1814).
Взлетело только после переноса кода из общего модуля "МодификацияКонфигурацииПереопределяемый" в расширение в модуль формы "ПриСозданииНаСервереПосле".
Взлетело только после переноса кода из общего модуля "МодификацияКонфигурацииПереопределяемый" в расширение в модуль формы "ПриСозданииНаСервереПосле".
Добрый день!
А если я просто хочу добавить программно новый реквизит(колонку) в ТЧ, чтобы он НЕ сохранялся. Нового реквизита естественно нет в реквизитах вообще ни в объекте, ни в какой-либо ТЧ объекта. Как это сделать?
Что-то закопался (
А если я просто хочу добавить программно новый реквизит(колонку) в ТЧ, чтобы он НЕ сохранялся. Нового реквизита естественно нет в реквизитах вообще ни в объекте, ни в какой-либо ТЧ объекта. Как это сделать?
Что-то закопался (
(24)
(24) если бы это не делал, то и не спрашивал тут (((((
вот код
(24) если бы это не делал, то и не спрашивал тут (((((
вот код
ДобавляемыеРеквизиты = Новый Массив;
НовыйРеквизит = новый РеквизитФормы("СчетУчета",Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(10)));
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
НовыйЭлемент = Элементы.Добавить("СчетУчета",Тип("ПолеФормы"), Элементы.ОС);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "СчетУчета";
Показать
(37)
(25) Удалил весь код и заново его написал. Заработало.
На всякий случай выкладываю рабочий вариант. Может кому пригодиться
(25) Удалил весь код и заново его написал. Заработало.
На всякий случай выкладываю рабочий вариант. Может кому пригодиться
НовРеквизит = Новый Массив;
НовРеквизит.Добавить(Новый РеквизитФормы("СчУчетаОС", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"), "Объект.ОС", "Счет учета ОС", Ложь));
ИзменитьРеквизиты(НовРеквизит);
НовЭлемент = Элементы.Вставить("СчУчетаОС", Тип("ПолеФормы"), Элементы.ОС, Элементы.ОСНаличиеПоДаннымУчета);
НовЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовЭлемент.ПутьКДанным = "Объект.ОС.СчУчетаОС";
//Создание реквизитов
ДобавляемыеРеквизиты = Новый Массив; //Определяем массив добавляемых реквизитов
НовыйРеквизит = Новый РеквизитФормы("НеОбновлятьЦвет", Новый ОписаниеТипов("Булево"), "Объект.Товары");
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
ИзменитьРеквизиты(ДобавляемыеРеквизиты); //Применяем реквизиты
А вообще сейчас регулярно пользуюсь
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот