|
Не уникальное имя программно создаваемого элемента формы | ☑ | ||
---|---|---|---|---|
0
skupidom
24.08.17
✎
11:54
|
Управление производственным предприятием, редакция 1.2 (1.2.26.1)
В цикле создаю новые элементы формы - поля табличного документа: СтраницыПанели = ЭлементыФормы.Панель2; Лево = 6; Верх = 6; Низ = СтраницыПанели.Высота; ШиринаТаблицы = СтраницыПанели.Ширина; Для каждого Сп Из СписокПроектовОтбор Цикл СписокГруппПроектов = НОвый СписокЗначений; ГруппаПроектов = Сп.Значение; ЗапросПроектыГРуппы = Новый Запрос; ЗапросПроектыГРуппы.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | Проекты.Ссылка как Пр |ИЗ | Справочник.Проекты КАК Проекты |ГДЕ | Проекты.Родитель = &Группа"; ЗапросПроектыГРуппы.УстановитьПараметр("Группа",ГруппаПроектов); ВыборкаЭлПроектов = ЗапросПроектыГРуппы.Выполнить().Выбрать(); Пока ВыборкаЭлПроектов.Следующий() Цикл СписокГруппПроектов.Добавить(ВыборкаЭлПроектов.Пр); КонецЦикла; // Вывод ИмяСтраницы = "ГП" + Строка(Н); ИмяПоля = "СПоле" + Строка(Н); ПроверкаДубляЭФ = ЭлементыФормы.Найти(ИмяПоля); Если ПроверкаДубляЭФ = Неопределено Тогда ИмяПоля = "СПоле" + Строка(Н); Иначе ИмяПоля = "СПоле" + Строка(Н) + "Уник"; КонецЕсли; // Создаем ТабПоле НовСтраница = СтраницыПанели.Страницы.Добавить(ИмяСтраницы,Строка(ГруппаПроектов)); ЭлементыФормы.Панель2.ТекущаяСтраница = НовСтраница; НовПоле = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"),ИмяПоля,Истина,СтраницыПанели); КонецЦикла; {ВнешняяОбработка.рар_АнализДанныхБюджетов.Форма.Форма.Форма(92)}: Ошибка при вызове метода контекста (Добавить) НовПоле = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"),ИмяПоля,Истина,СтраницыПанели); по причине: Недопустимое значение параметра (параметр номер '2') (Не уникальное имя! (СПоле1)) |
|||
1
mistеr
24.08.17
✎
11:59
|
(0) Что мешает сделать уникальным? Например Н = Н + 1
|
|||
2
skupidom
24.08.17
✎
12:01
|
СписокПроектовОтбор = ПередаваемыеНастройкиВОтчет();
Н = 1; СтраницыПанели = ЭлементыФормы.Панель2; Лево = 6; Верх = 6; Низ = СтраницыПанели.Высота; ШиринаТаблицы = СтраницыПанели.Ширина; Для каждого Сп Из СписокПроектовОтбор Цикл СписокГруппПроектов = НОвый СписокЗначений; ГруппаПроектов = Сп.Значение; ЗапросПроектыГРуппы = Новый Запрос; ЗапросПроектыГРуппы.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | Проекты.Ссылка как Пр |ИЗ | Справочник.Проекты КАК Проекты |ГДЕ | Проекты.Родитель = &Группа"; ЗапросПроектыГРуппы.УстановитьПараметр("Группа",ГруппаПроектов); ВыборкаЭлПроектов = ЗапросПроектыГРуппы.Выполнить().Выбрать(); Пока ВыборкаЭлПроектов.Следующий() Цикл СписокГруппПроектов.Добавить(ВыборкаЭлПроектов.Пр); КонецЦикла; // Вывод ИмяСтраницы = "ГП" + Строка(Н); ИмяПоля = "СПоле" + Строка(Н); ПроверкаДубляЭФ = ЭлементыФормы.Найти(ИмяПоля); Если ПроверкаДубляЭФ = Неопределено Тогда ИмяПоля = "СПоле" + Строка(Н); //Иначе // ИмяПоля = "СПоле" + Строка(Н) + "Уник"; КонецЕсли; // Создаем ТабПоле НовСтраница = СтраницыПанели.Страницы.Добавить(ИмяСтраницы,Строка(ГруппаПроектов)); ЭлементыФормы.Панель2.ТекущаяСтраница = НовСтраница; НовПоле = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"),ИмяПоля,Истина,СтраницыПанели); Стр = СтраницыПанели.Страницы.Найти(ИмяСтраницы); Если Стр <> Неопределено Тогда Стр.Видимость = Истина; Стр.Заголовок = Строка(Сп.Значение); // Ищем таб.поле ТабПоле = ЭлементыФормы.Найти(ИмяПоля); Если ТабПоле <> Неопределено Тогда // Отбор построителя по каждой группе проекта ОтборКоличество = Построитель.Отбор.Количество(); Для Н = 1 По ОтборКоличество Цикл Построитель.Отбор.Удалить(ОтборКоличество - Н); КонецЦикла; Если Построитель.Отбор.Найти("Проект")=Неопределено Тогда Отбор=Построитель.Отбор.Добавить("Проект",,"Проект"); Отбор.Использование=Истина; Отбор.ВидСравнения=ВидСравнения.ВСписке; Отбор.Значение = СписокГруппПроектов; КонецЕсли; // СформироватьОтчет(НовПоле,СписокГруппПроектов); // Установим параметры Табличного документа НовПоле.Лево = Лево; НовПоле.Верх = Верх; НовПоле.Ширина = ШиринаТаблицы; НовПоле.Высота = Низ - Верх; НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право, СтраницыПанели, ГраницаЭлементаУправления.Право); НовПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ,СтраницыПанели, ГраницаЭлементаУправления.Низ); КонецЕсли; КонецЕсли; Н = Н + 1; КонецЦикла; |
|||
3
skupidom
24.08.17
✎
12:02
|
делаю, все равно не уникально
|
|||
4
catena
24.08.17
✎
12:24
|
Для Н = 1 По ОтборКоличество Цикл
Построитель.Отбор.Удалить(ОтборКоличество - Н); КонецЦикла; Буквы в алфавите закончились? |
|||
5
skupidom
24.08.17
✎
12:52
|
у меня ? по уникальности создаваемого элемента формы
|
|||
6
skupidom
24.08.17
✎
12:56
|
как задать точно уникальное имя элементу формы?
|
|||
7
Вафель
24.08.17
✎
12:57
|
не вижу где задается переменная Н
|
|||
8
Тихий омут
24.08.17
✎
13:01
|
(0) думай, голова, думай, шапку куплю:) два вложенных цикла...
|
|||
9
Segate
24.08.17
✎
13:05
|
(9) И запрос внутри... все по канонам xD
|
|||
10
skupidom
24.08.17
✎
13:31
|
Вопрос закрыт, разобрался, всем спасибо за участие и поддержку
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |