| 
    
            
         
         | 
    
  | 
Программное обращение к вновь добавленной колонке | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Likons    
     02.04.20 
            ✎
    12:20 
 | 
         
        Добрый день , ув. Коллеги )
 
        Танцую с бубном , не могу разобраться ( Подскажите пожалуйста , как правильно выйти из ситуации. Есть обработка , в ней есть табличная часть(ТабличнаяЧастьЗаказа) с набором её реквизитов. Так же есть структура (СтруктураСоответствияСкладов) с названием колонок , которые необходимо добавить в эту табличную часть. Выглядит структура таким образом : ("НазваниеСклада (простая строка)" , Элемент справочника склады) Далее мне нужно каким то образом обратиться к вновь добавленным колонкам , дабы их как то заполнить. Проблема в том , что вновь добавленные колонки , не являются реквизитами моей табличной части и я не знаю , как правильно к ним обращаться ( Добавляю колонки я таким образом : Для каждого Элемент из СтруктураСоответствияСкладов цикл ИмяНовойКолонки = Элемент.Ключ; НоваяКолонка = ЭлементыФормы.ТабличнаяЧастьЗаказа.Колонки.Добавить(ИмяНовойКолонки); НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода")); КонецЦикла; А вот так я пытаюсь их заполнять : Для каждого Колонка из ЭлементыФормы.ТабличнаяЧастьЗаказа.Колонки цикл ЗначениеДляПоиска = неопределено; СтруктураСоответствияСкладов.Свойство(Колонка.Имя,ЗначениеДляПоиска); Если ЗначениеДляПоиска <> неопределено тогда СтруктураОтбора = Новый Структура("Склад",ЗначениеДляПоиска); МассивСтрок = ТаблицаОстатков.НайтиСтроки(СтруктураОтбора); Для каждого Элемент из МассивСтрок цикл СтрокаСНужнойНоменклатурой = ТабличнаяЧастьЗаказа.Найти(Элемент.Номенклатура,"Номенклатура"); Если СтрокаСНужнойНоменклатурой <> Неопределено тогда СтрокаСНужнойНоменклатурой[Колонка.Имя] = Элемент.Остаток; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Буду благодарен за любые наводки )  | 
|||
| 
    1
    
        Likons    
     02.04.20 
            ✎
    12:22 
 | 
         
        Уточнение : формы - обычные     
         | 
|||
| 
    2
    
        mistеr    
     02.04.20 
            ✎
    12:23 
 | 
         
        (0) >Далее мне нужно каким то образом обратиться к вновь добавленным колонкам , дабы их как то заполнить. 
 
        Чтобы обратиться, нужно их где-то запомнить после создания. Например, в массиве или соответствии.  | 
|||
| 
    3
    
        Likons    
     02.04.20 
            ✎
    12:27 
 | 
         
        (2) не понял ( они же у меня уже есть добавленные в табличную часть ?
 
        Вам не трудно будет показать какой то произвольный пример ? Ну или структуру нужного соответствия набросать и в какой момент его использовать ?  | 
|||
| 
    4
    
        Likons    
     02.04.20 
            ✎
    12:34 
 | 
         
        (2) или может быть можно добавлять колонки не как элементы формы , а как реквизиты табличной части ?     
         | 
|||
| 
    5
    
        acht    
     02.04.20 
            ✎
    12:37 
 | 
         
        (3) Видите ли, Андрей Николаевич, в табличную часть обработки нельзя добавить колонку без изменения метаданных в конфигураторе. То, что вы сделали - называется: "добавили колонку отображения к элементу формы". При этом, эта колонка отображения не может быть связана с данными, потому что в табличной части их нет.
 
        Измените свою хотелку.  | 
|||
| 
    6
    
        mistеr    
     02.04.20 
            ✎
    12:41 
 | 
         
        (2) (3) Пардон, не внимательно прочитал.
 
        Ты путаешь реквизиты ТЧ и колонки табличного поля на форме, отображающего данные этой ТЧ. В табчасть нельзя динамически добавлять реквизиты. В табличное поле можно добавить любое количество колонок, но если они не связаны с данными из ТЧ, отображать что-либо в них — полностью твоя задача. Возможно, тебе подойдет табличное поле, связанное не с ТЧ, а с таблицей значений.  | 
|||
| 
    7
    
        Likons    
     02.04.20 
            ✎
    12:47 
 | 
         
        (5) (6) Беда ( Ну , я понимаю , чем колонка на форме отличается от реквизита ТЧ. А что значит "связанное данными" ? Имеется в виду путь к данным во вновь созданной колонке ? Если это так , то насколько я понимаю , все равно надо будет к ней как то обращаться.     
         | 
|||
| 
    8
    
        mistеr    
     02.04.20 
            ✎
    13:02 
 | 
         
        (7) Начни с вопроса "где будут физически храниться значения в этих колонках при работе формы?"     
         | 
|||
| 
    9
    
        Likons    
     02.04.20 
            ✎
    13:09 
 | 
         
        (8) Подозреваю , что логично их хранить в таблице значений     
         | 
|||
| 
    10
    
        Likons    
     02.04.20 
            ✎
    13:10 
 | 
         
        (8) Намек понял , сейчас попробую разобраться ) Спасибо )     
         | 
|||
| 
    11
    
        Likons    
     02.04.20 
            ✎
    13:29 
 | 
         
        (8) Благодарю , очень могли ) 
 
        Если кому понадобится , решил таким образом : 1. Создал новую и заполнил таблицу значений (ТаблицаРезультат) 2. Добавил на форму обработки элемент управление "ТабличноеПоле" с типом "Таблица Значений" (ТабличноеПолеТЧЗаказа) 3. Сделал так : ТабличноеПолеТЧЗаказа = ТаблицаРезультат.Скопировать(); ЭлементыФормы.ТабличноеПолеТЧЗаказа.СоздатьКолонки();  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |