Имя: Пароль:
1C
1С v8
В УФ добавляю программно колонки, как заполнить данными? (пересечение колонки и номенкл.?)
,
0 SkillUp
 
28.05.19
17:05
Здр., наведите на мысль, добавил программно колонки в ТЧ, теперь надо заполнить? Данные есть (количество), проблема эти данные установить на пересечении новых колонок (склад) и строк (номенклатура)

Т.е.

Колонки: Склад1 Склад2
Стр:
Номенкл№1
Номенкл№2

Благодарность подсказавшему решение...
1 Жан Пердежон
 
28.05.19
17:09
в тч колонки нельзя добавить программно
2 SkillUp
 
28.05.19
17:10
(1) Можно! )
3 RomanYS
 
28.05.19
17:11
(0)
Объект[0].Склад1 = Значение;

Только будь готов, что они будут теряться при каждом обращении к серверу.

(1) +1 на самом деле это не ТЧ)
4 SkillUp
 
28.05.19
17:11
(1) Показать код?)
5 RomanYS
 
28.05.19
17:11
*(3)
Объект.ТЧ[0].Склад1 = Значение;
6 SkillUp
 
28.05.19
17:12
(3) Упс, разъясните пож., наверно заберу свои слова назад...
7 SkillUp
 
28.05.19
17:12
(5) Ок, пробую...
8 RomanYS
 
28.05.19
17:15
(4) Покажи. Если делать правильно, должно быть ИзменитьРеквизиты и добавление элементов-колонок на форму
9 Жан Пердежон
 
28.05.19
17:15
(2) это не тч
10 SkillUp
 
28.05.19
17:17
(8) (9)
    //Добавляем колонки
    Для Каждого ЭлементСклад Из объект.Склады Цикл
        
        Список = Новый СписокЗначений;
        НовыеКолонки = Новый Массив;
        Список.Вставить(0,ЭлементСклад.Склад); // список здесь реквизит формы "список значений"
            
        ном = 1;
        // заполняем массив реквизитов ТЧ
        // элементы формы создаются конструктором "Новый РеквизитФормы"
        Для Каждого елем Из Список Цикл
            елем.Представление = ЭлементСклад.Склад;
            ТипЧисло = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,3));
            НовыеКолонки.Добавить(Новый РеквизитФормы(елем.Представление,
            ТипЧисло,
            "Объект.Товары",""+ЭлементСклад.Склад));
            
            ном = ном+1;    
        КонецЦикла;
        
        ИзменитьРеквизиты(НовыеКолонки); // ключевая процедура, которая добавляет ревизиты
        
        //добавляем элементы формы и связываем их с ревизитами
        Для каждого Колонка Из НовыеКолонки Цикл
            НовыйЭлемент = Элементы.Добавить(ЭлементСклад.Склад,Тип("ПолеФормы"),Элементы.Товары);
            НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
            НовыйЭлемент.ПутьКДанным = "Объект.Товары."+Колонка.Имя;
            НовыйЭлемент.ТолькоПросмотр = Ложь;
        КонецЦикла;
    КонецЦикла;
11 SkillUp
 
28.05.19
17:17
(8) Ну как? )
12 SkillUp
 
28.05.19
17:18
(9) Жан, а что это? Просто интересно...
13 Fragster
 
гуру
28.05.19
17:20
вот тут в каше есть и добавление реквизитов, и заполнение, и создание элементов управления:
https://gist.github.com/FragsterAt/3cc9026407d96aa1258ce143fd8f34c3
14 Fragster
 
гуру
28.05.19
17:21
и даже условное оформление на эту фигню
15 SkillUp
 
28.05.19
17:21
(13) Изучим...
16 RomanYS
 
28.05.19
17:22
(11) Нормально. Только упадёт, когда в названии склада пробел будет
17 Жан Пердежон
 
28.05.19
17:22
(12) Сообщить(ТипЗнч(НовыеКолонки)); //и увидишь, что это
18 SkillUp
 
28.05.19
17:23
(16) Ага, спасибо, упустил этот момент...
19 SkillUp
 
28.05.19
17:27
(17) Ну да, массив, яж указал -НовыеКолонки = Новый Массив;  Просто другого способа программно ("динамически") а ТЧ документа я не нашел, только через массив...  Или я что-то напутал?
20 Cyberhawk
 
28.05.19
17:28
елем, ном, мда
21 SkillUp
 
28.05.19
17:30
(20) ) просто у меня, каждый раз разные склады и количество их. "Статический" вариант добавления мне не подходит, ну а так если есть кому-то что добавить, говорите...
22 RomanYS
 
28.05.19
17:30
(19)  Сообщить(ТипЗнч(Объект.Товары));//вот это он хотел написать)
23 Жан Пердежон
 
28.05.19
17:31
(19) точнее: Сообщить(ТипЗнч(Объект.Товары));
24 RomanYS
 
28.05.19
17:33
(21) Ну да это объясняет, почему переменная называется "елем"
25 SkillUp
 
28.05.19
17:35
(24) )) Тут согласен, просто бездумно копировал код... И переделывал под свои задачи... )
26 Сияющий в темноте
 
28.05.19
18:54
Если добавить колонки к реквизиту или дочерним реквизитам,то их можно заполнить,а в колонках отобразятся данные.