Имя: Пароль:
1C
 
Программное добавление колонки табличной части документа УФ
0 Юзер123
 
naïve
22.11.22
18:51
Добрый вечер.
Хочу добавить колонку в табличную часть документа, но без добавления реквизита.  Т.е. колонка будет расчетная.

Подскажите , это реально сделать?

    НоваяКолонка = Элементы.Товары.ПодчиненныеЭлементы.Вставить("ЦенаСУчетомСкидки",ОбщегоНазначенияУТ.ПолучитьОписаниеТиповЧисла(15,2));
    
    НоваяКолонка = Элементы.Добавить("ЦенаСУчетомСкидки", Тип("ПолеФормы"), Элементы.Товары);
    НоваяКолонка.ТолькоПросмотр = Истина;
    НоваяКолонка.ПутьКДанным = "ЦенаСУчетомСкидки";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
    
    Элементы.Переместить(НоваяКолонка, Элементы.Товары, Элементы.Цена);    

Делаю так, выдает ошибку на Вставить


НоваяКолонка = Элементы.Товары.Колонки.Вставить("ЦенаСУчетомСкидки",ОбщегоНазначенияУТ.ПолучитьОписаниеТиповЧисла(15,2));     - ругается на  "Колонки"
1 ДНН
 
22.11.22
18:54
(0) Сначала добавь реквизит формы, предусмотри его заполнение, а потом добавь элемент формы для отображения
2 Юзер123
 
naïve
22.11.22
19:02
(1)    ТипРеквизита = ОбщегоНазначенияУТ.ПолучитьОписаниеТиповЧисла(15,2);
    
    РеквизитФормы = Новый РеквизитФормы(
        "ЦенаСУчетомСкидки",  
        ТипРеквизита,  
        Элементы.Товары,    
                        
        "Цена ск.");
    
Как то так?
3 Гений 1С
 
гуру
22.11.22
19:46
(2) еше элемент добавить.
4 Юзер123
 
naïve
23.11.22
10:19
(3) (1)   Ок спс
5 Юзер123
 
naïve
28.11.22
11:29
Вернулся к вопросу.

    НовыеРеквизиты         = Новый Массив;
    РеквизитПроверять     = Новый РеквизитФормы("ЦенаСУчетомСкидок",
                                               Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,2)),Элементы.Товары,
                                              "Цена с учетом скидки",Истина);
    НовыеРеквизиты.Добавить(РеквизитПроверять);
    
    
    НовыйЭлемент  = Элементы.Добавить("ЦенаСУчетомСкидок",Тип("ПолеФормы"),Элементы.Товары);
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;      
    НовыйЭлемент.ПутьКДанным = Элементы.Товары.ЦенаСУчетомСкидок;    



1. Добавляет просто в элементы формы.
2.  НовыйЭлемент.ПутьКДанным = Элементы.Товары.ЦенаСУчетомСкидок   -  на это ругается.
6 Юзер123
 
naïve
28.11.22
11:39
НовыйЭлемент.ПутьКДанным = "Товары.ЦенаСУчетомСкидок"
НовыйЭлемент.ПутьКДанным = "Объект.Товары.ЦенаСУчетомСкидок"

НовыйЭлемент.ПутьКДанным = "ЦенаСУчетомСкидок"

Таже ошибка
7 Юзер123
 
naïve
28.11.22
11:46
по причине:
Недопустимое значение
8 программистище
 
28.11.22
11:51
Вот тут:
Новый РеквизитФормы("ЦенаСУчетомСкидок",
                                               Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,2)),Элементы.Товары,

не Элементы.Товары  а путь к данным , типа Объект.товары
9 Юзер123
 
naïve
28.11.22
11:52
НовыеРеквизиты         = Новый Массив;
    РеквизитПроверять     = Новый РеквизитФормы("ЦенаСУчетомСкидок",
                                               Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,2)),"Объект.Товары",
                                              "Цена с учетом скидки",Истина);
    НовыеРеквизиты.Добавить(РеквизитПроверять);
    
    
    НовыйЭлемент  = Элементы.Добавить(НовыеРеквизиты[0].Имя,Тип("ПолеФормы"),Элементы.Товары);
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;      
    НовыйЭлемент.ПутьКДанным = "Объект.Товары."+ НовыеРеквизиты[0].Имя;    


Вот этот вариант тоже не работает... .
10 arsik
 
гуру
28.11.22
11:55
Вот так попробуй

ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(
    Новый РеквизитФормы(
        "ЦенаСУчетомСкидок",
        Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,2)),
        "Товары",
        "Цена с учетом скидки",
        Истина)
    );
ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

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

11 Юзер123
 
naïve
28.11.22
12:01
(10) по причине:
Недопустимый путь к реквизиту. Путь: "Товары"
12 Юзер123
 
naïve
28.11.22
12:23
Што за хрень*?(
13 arsik
 
гуру
28.11.22
12:33
(11) На какой строчке ругается?
14 Юзер123
 
naïve
28.11.22
12:33
МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый РеквизитФормы("ЦенаСУчетомСкидок", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,2)), "Объект.Товары", "Цена скид.", Ложь));
    ИзменитьРеквизиты( МассивРеквизитов );
    
    Эл = Элементы.Вставить("Колонка1", Тип("ПолеФормы"), Элементы.Товары,Элементы.ТоварыПроцентАвтоматическойСкидки);
    Эл.Вид = ВидПоляФормы.ПолеВвода;
    Эл.ПутьКДанным = "Объект.Товары.ЦенаСУчетомСкидок";
15 Юзер123
 
naïve
28.11.22
12:33
так взлетело
16 arsik
 
гуру
28.11.22
12:37
(14) А ну если у тебя на форме тч объекта, тогда да.
17 Юзер123
 
naïve
28.11.22
12:42
Все спасибо
AdBlock убивает бесплатный контент. 1Сергей