Имя: Пароль:
1C
 
Добавление реквизита в табличную часть
0 cyberandr
 
26.06.25
11:27
Всем привет! Мне нужно в табличную часть  добавить список неких складов в виде колонок.
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Объект.Регион = Справочники.Регионы.НайтиПоНаименованию("Москва");   
	СписокСкладов = ПолучитьСписокСпециальныхСкладов();
	ТабЧастьСводная = Элементы.ТабличнаяЧастьСводная;	
	для Каждого склад из СписокСкладов Цикл 
		
		НовыйЭлемент= ЭтаФорма.Элементы.Добавить(склад.представление,Тип("ПолеФормы"),ТабЧастьСводная);  
		НовыйЭлемент.вид = ВидПоляФормы.ПолеВвода; 
		//НовыйЭлемент.ПутьКДанным =
		НовыйЭлемент.Видимость = истина;  
		КонецЦикла;	
КонецПроцедуры


Но вывести не удается. Путь к данным заполнить не могу, так как в метаданных у меня этих складов нет.
2 Мультук
 
гуру
26.06.25
11:27
(0)

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

Вот тут (выделено) могут быть пробелы?
Например "Самый главный склад" или "Склад №" ?

Если - "да", то на этом можно и закончить.
3 Ильф
 
26.06.25
11:41
(0) надо еще и реквизиты в ТЧ на форме добавить
4 cyberandr
 
26.06.25
11:56
(2) нет с этим я первым делом разобрался. Там пока складов благо немного и все наименования типа "Склад1_Москва", "Склад2_Москва".  
(3) Какие реквизиты?
5 youalex
 
26.06.25
12:02
(4) В реквизит формы Объект.ТабличнаяЧастьСводная - добавить колонки программно, через ИзменитьРеквизиты()

Ты пишешь "Путь к данным заполнить не могу, так как в метаданных у меня этих складов нет".  Можно просто в форме эти реквизиты (колонки) добавить, и у элементов соответственно путь проставить
6 Ильф
 
26.06.25
12:02
Объект.ТабличнаяЧастьСводная.(сюда добавить реквизит)
[склад.представление]

естественно кодом
7 Ильф
 
26.06.25
12:04
(4) ключевое слово "пока"
и сломать твою поделку любой пользователь сможет добавив не уникальное представление, или пробелы, или символы нехорошие в начало
8 cyberandr
 
26.06.25
12:14
(7) там склады просто так не добавишь, плюс придется реквизит наверное добавлять, поэтому да- не хорошо, но пока терпит.
9 Ильф
 
26.06.25
12:15
(8) так пиши сразу имя элемента и реквизита "Склад_" + Склад.УникальныйИдентификатор()
10 Волшебник
 
26.06.25
12:25
(9) черточки помешают
11 cyberandr
 
26.06.25
12:49
(5),(6) Таким образом?    


    НовыеРеквизиты = Новый Массив;
    для Каждого склад из СписокСкладов Цикл        
        НовыйЭлемент= Новый РеквизитФормы("ТабличнаяЧастьСводная"+Склад.представление,Новый ОписаниеТипов("ПолеФормы"),"Объект.ТабличнаяЧастьСводная");  
        НовыеРеквизиты.Добавить(НовыйЭлемент);
    КонецЦикла;    
    
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
12 youalex
 
26.06.25
12:50
(11) >Новый ОписаниеТипов("ПолеФормы")
какой у тебя тип данных
13 cyberandr
 
26.06.25
12:51
Справочник.склады
14 cyberandr
 
26.06.25
12:56
как понимаю
НовыйЭлемент= Новый РеквизитФормы(Склад.представление,Новый ОписаниеТипов("Справочник.Склады"),"Объект.ТабличнаяЧастьСводная");  
?
15 Волшебник
 
26.06.25
13:00
(14) Вы гадаете что ли?
Новый ОписаниеТипов("СправочникСсылка.Склады")
16 youalex
 
26.06.25
13:02
(13) Чем ты будешь эти программно добавленные колонки заполнять?
17 СвинТуз
 
26.06.25
13:08
(0)
Выглядит все странно.
Огласите пожалуйста весь список (С)

Зачем это все?
18 СвинТуз
 
26.06.25
13:10
Есть табличная часть, которая видимо не хранит
ничего о специальных складах.
Зачем то добавляются инородные тела в виде колонок.

Киборг взломал аккаунт на 21-м году программирования? ))
19 СвинТуз
 
26.06.25
13:11
Если "ПутьКДанным" не заполнять, то колонка должна присутствовать.

Зачем эти танцы если в колонки нечего положить? Оставьте пустой.
20 СвинТуз
 
26.06.25
13:13
НовыйЭлемент.Заголовок = склад.представление;

Живите спокойно с пустыми полями.
21 cyberandr
 
26.06.25
13:16
(19) Я тоже так думаю, но
    
    
    для Каждого склад из СписокСкладов Цикл
    
        НовыйЭлемент= ЭтаФорма.Элементы.Добавить(склад.представление,Тип("ПолеФормы"),ТабЧастьСводная);  
        НовыйЭлемент.вид = ВидПоляФормы.ПолеВвода;
    //    НовыйЭлемент.ПутьКДанным =ЭтотОбъект.Элементы[склад.представление];
        НовыйЭлемент.Видимость = истина;  
    КонецЦикла;    
в таком варианте складов на форме я не вижу.
22 СвинТуз
 
26.06.25
13:18
(21)
Только видно не будет, а так нормально )))
23 СвинТуз
 
26.06.25
13:19
Вам надо реквизит какой-то добавить в ТЧ.
Потом его указать в пути к данным.
24 СвинТуз
 
26.06.25
13:20
#Область ДобавлениеРеквизитовФормы    
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("АВ_ДатаУведомления", Новый ОписаниеТипов("Дата",,Новый КвалификаторыДаты(ЧастиДаты.Дата)), "Объект.ТаблицаСуществующая", "Дата уведомления заголовок"));
ЭтотОбъект.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
#КонецОбласти

#Область ДобавлениеЭлементовФормы            
ЭлементФормы = ЭтотОбъект.Элементы.Добавить("ДатаУведомления", Тип("ПолеФормы"), ЭтотОбъект.Элементы.ТаблицаСуществующая);        
ЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
ЭлементФормы.ПутьКДанным = "Объект.ТаблицаСуществующая.АВ_ДатаУведомления";    
#КонецОбласти
25 Ильф
 
26.06.25
13:21
там должно быть булево... есть склад для строки или нет
наверное так
26 СвинТуз
 
26.06.25
13:21
Поле появится, но будет пустым.
27 Ильф
 
26.06.25
13:23
или число - количество на складе?
28 cyberandr
 
26.06.25
13:29
у меня сейчас такой код получается
    СписокСкладов = ПолучитьСписокСпециальныхСкладов();
    ТабЧастьСводная = Элементы.ТабличнаяЧастьСводная;      

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

    //        НовыйЭлемент.ПутьКДанным =ЭтотОбъект.Объект.ТабличнаяЧастьСводная[склад.представление];

        НовыйЭлемент.Видимость = истина;  
    КонецЦикла;
//////////////////////////////////////////////////////////
на
    НовыйЭлемент.ПутьКДанным =ЭтотОбъект.Объект.ТабличнаяЧастьСводная[склад.представление]; - выдает ошибку поле объекта не обнаружено.
может путь реквизита не верный "Объект.ТабличнаяЧастьСводная"? Хотя какой тогда?
29 Ильф
 
26.06.25
13:34
ЭтотОбъект.Объект.ТабличнаяЧастьСводная[склад.представление]

"Объект.ТабличнаяЧастьСводная." + [склад.представление]
30 youalex
 
26.06.25
13:33
"Объект.ТабличнаяЧастьСводная." + склад.представление
31 СвинТуз
 
26.06.25
13:34
НовыйЭлемент.ПутьКДанным ="Объект.ТабличнаяЧастьСводная." + склад.представление;
32 cyberandr
 
26.06.25
13:55
(29),(30),(31) - супер! спасибо большое
2 + 2 = 3.9999999999999999999999999999999...