Имя: Пароль:
1C
1С v8
Программное добавление реквизита на общую форму
,
0 ac13
 
11.04.19
14:44
Есть обработка с реквизитом "Установлен" (Булево).
Есть общая форма "Форма2".
Как из обработки поместить на эту общую форму реквизит "Установлен"?
1 spiller26
 
11.04.19
14:52
(0) Что значит "поместить"? - опишите последовательность действий. "Форма2" будет вызываться из обработки или параллельно висеть сама по себе?
2 ac13
 
11.04.19
14:59
(1) вызываться оз обработки
Есть Форма.Объект. Надо сначала добавить реквизит для объекта формы, а потом вывести его на форму
Длеаю так
Рек = Форма.Объект.Добавить();
Рек.Имя = "Установлен";

Выдает ошибку "Метод объекта не обнаружен Добавить"
3 Euguln
 
11.04.19
15:02
Кури СП
ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
4 ac13
 
11.04.19
15:04
Так тоже не работает

Элемент = Форма.Элементы.Добавить("Установлен", Тип("Булево"), Форма);
Элемент.ПутьКДанным = ЭтотОбъект.Установлен;
5 ac13
 
11.04.19
15:09
(3) ничего не изменилось

ИмяРеквизита     = "Установлен";
Путь             = "";
НовыйРек         = Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов("Булево"), Путь, ИмяРеквизита);
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить(НовыйРек);
Форма.ИзменитьРеквизиты(МассивРеквизитов);
6 Euguln
 
11.04.19
15:21
(5) теперь элемент добавляй.
Элемент.ПутьКДанным = "Установлен";
7 ac13
 
11.04.19
16:11
ИмяРеквизита     = "Установлен";
Путь             = "";
НовыйРек         = Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов("Булево"), Путь, ИмяРеквизита);
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить(НовыйРек);
Форма.ИзменитьРеквизиты(МассивРеквизитов);

Элемент = Форма.Элементы.Добавить("Поле", Тип("ПолеФормы"), Форма);
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.ПутьКДанным = "Установлен";


ничего не появилось,
Если что прописываю в процедуре ПриСозданииНаСервере
8 Euguln
 
11.04.19
16:23
ПриСозданииНаСервере где и что такое Форма?
9 1Сергей
 
11.04.19
16:30
10 ac13
 
11.04.19
17:19
(8) ПриСозданииНаСервере в модуле объекта обработки

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
11 1Сергей
 
11.04.19
17:22
(10)

//Форма.ИзменитьРеквизиты(МассивРеквизитов);
ИзменитьРеквизиты(МассивРеквизитов);

//Элемент = Форма.Элементы.Добавить("Поле", Тип("ПолеФормы"), Форма);
Элемент = Элементы.Добавить("Поле", Тип("ПолеФормы"));
12 ac13
 
11.04.19
17:32
(11) это когда в модуле формы прописываешь, а мне надо реквизит добавить из модуля обработки из которой эту форму открывать буду
13 1Сергей
 
11.04.19
17:33
(12) а вот с этим тогда что делать?

НовыйРек         = Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов("Булево"), Путь, ИмяРеквизита);
14 ac13
 
11.04.19
17:34
тогда вопрос - как из модуля обработки можно разместить реквизит на общей форме? и вообще можно ли?
15 Euguln
 
11.04.19
17:36
(10) жесть. А как вызываешь?
16 ac13
 
11.04.19
17:41
можно обойтись без реквизита. у меня есть сохраненная пользовательская настройка отчета. когда открываю эту настройку, нужно менять запрос в процедуре ПриКомпоновкеРезультата. как это сделать? я так понимаю, что ПриКомпоновкеРезультата никак нельзя определить какую именно настройку ты открыл. выполнить это нужно без добавление реквизитов и параметров
17 Euguln
 
11.04.19
17:44
(16) Так, давай сначала, что надо сделать?
18 ac13
 
11.04.19
17:47
(17) есть типовой отчет, для которого сохранены варианты настрок (в пользовательском режиме).
в процедуре ПриКомпоновкеРезультата нужно определить какой вариант настройки открыт
19 singlych
 
11.04.19
18:34
(18)
ПриКомпоновкеРезультата:

Настройки = КомпоновщикНастроек.ПолучитьНастройки();
Сообщить(Настройки.ДополнительныеСвойства.ВариантНаименование);
Сообщить(Настройки.ДополнительныеСвойства.КлючВарианта);
Основная теорема систематики: Новые системы плодят новые проблемы.