| 
    
            
         
         | 
    
  | 
Не уникальное имя программно создаваемого элемента формы | ☑ | ||
|---|---|---|---|---|
| 
    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 
 | 
         
        Вопрос закрыт, разобрался, всем спасибо за участие и поддержку     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |