Имя: Пароль:
1C
1С v8
Помогите с созданием колонок на форме обычного приложения (форма обработки)
0 katerinaUniv
 
10.07.18
10:46
Добрый день, на форме есть поля для указания периода. По кнопке на форме обработки в обычном приложении формируются колонки "Номенклатура" и по три колонки на каждый месяц, входящий в период.
1 katerinaUniv
 
10.07.18
10:46
ЭлементыФормы.СтрокиПлана.Колонки.Очистить();
    ЭлементыФормы.СтрокиПлана.Колонки.Добавить("Номенклатура",Тип("СправочникСсылка.Номенклатура"));
    Пока д <= ДатаПо Цикл
        //колонки
        
        стрГод = Лев(Строка(Год(д)),1)+Прав(Строка(Год(д)),3);
        ЭлементыФормы.СтрокиПлана.Колонки.Добавить("План"+"_"+стрГод+"_"+Месяц(д),Тип("Число"));
        Кол = ЭлементыФормы.СтрокиПлана.Колонки.Добавить("Факт"+"_"+стрГод+"_"+Месяц(д),Тип("Число"));
        кол.Положение = ПоложениеКолонки.НаСледующейСтроке;
        кол.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
        
        кол = ЭлементыФормы.СтрокиПлана.Колонки.Добавить("План2"+"_"+стрГод+"_"+Месяц(д),Тип("Число"));
        кол.Положение = ПоложениеКолонки.НаСледующейСтроке;
        кол.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
        
        нСтрока = тзПериодов.Добавить();
        нСтрока.Период = стрГод+Месяц(д);
        
        д = ДобавитьМесяц(д,1);
    КонецЦикла;
2 katerinaUniv
 
10.07.18
10:46
Колонки создаются, но при двойном щелчке редактировать их не получается. Чего не хватает (кроме опыта ;) )?
3 Cool_Profi
 
10.07.18
10:46
Что не получается?
4 Cool_Profi
 
10.07.18
10:48
(2) Элемен управления на колонку установи
5 katerinaUniv
 
10.07.18
10:48
Двойным щелчком отредактировать
Щелкаю по колонке в строке и ничего не происходит
6 katerinaUniv
 
10.07.18
10:54
(4) как?
7 ptiz
 
10.07.18
10:58
(0) Элемент связан с таблицей значений? Предполагается редактирование этих данных в форме? Тогда в таблицу тоже надо добавлять такие же колонки и заполнять свойство "Данные" для колонки.
8 katerinaUniv
 
10.07.18
11:03
(7)все, что сделано, в коде выше. О чем вы, я не понимаю, так как впервые такую задачу делаю.
9 katerinaUniv
 
10.07.18
11:18
ЭлементыФормы.СтрокиПлана.Колонки.Очистить();
    кол = ЭлементыФормы.СтрокиПлана.Колонки.Добавить("Номенклатура",Тип("СправочникСсылка.Номенклатура"));
    кол.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
    кол.УстановитьЭлементУправления(Тип("ПолеВвода"));
    кол.ЭлементУправления.КнопкаОткрытия = Истина;
    кол.ЭлементУправления.КнопкаВыбора = Истина;
    кол.ЭлементУправления.КнопкаОчистки = истина;
    кол.Данные = "Номенклатура";
    
    Пока д <= ДатаПо Цикл
        //колонки
        
        стрГод = Лев(Строка(Год(д)),1)+Прав(Строка(Год(д)),3);
        ЭлементыФормы.СтрокиПлана.Колонки.Добавить("План"+"_"+стрГод+"_"+Месяц(д),Тип("Число"));
        Кол = ЭлементыФормы.СтрокиПлана.Колонки.Добавить("Факт"+"_"+стрГод+"_"+Месяц(д),Тип("Число"));
        кол.Положение = ПоложениеКолонки.НаСледующейСтроке;
        кол.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
        
        кол = ЭлементыФормы.СтрокиПлана.Колонки.Добавить("План2"+"_"+стрГод+"_"+Месяц(д),Тип("Число"));
        кол.Положение = ПоложениеКолонки.НаСледующейСтроке;
        кол.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
        
        нСтрока = тзПериодов.Добавить();
        нСтрока.Период = стрГод+Месяц(д);
        
        д = ДобавитьМесяц(д,1);
    КонецЦикла;
10 Zmich
 
10.07.18
11:29
(9). Может быть, можно по-другому, но я такого сорта задачи делаю так: описываю отдельно таблицу значений, а уже затем ее загружаю в элемент формы. Причина - так проще работать с таблицей значений. Примерно так:

ТЗ = Новый ТаблицаЗначений;
    
    ТЗ.Колонки.Добавить("Дата1", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)));
    ТЗ.Колонки.Добавить("Дата2", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)));
    
    ЭлементыФормы.ТабличноеПоле1.Значение = ТЗ;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
11 katerinaUniv
 
10.07.18
11:49
Переделала обработку, создаю колонки в таблице значений. Как эту таблицу значений указать для элемента управления как данные?
12 Zmich
 
10.07.18
11:52
(11). Последние две строки из (10).
13 katerinaUniv
 
10.07.18
13:41
(12) если сделаю СоздатьКолонки(), то будут все колонки в ряд. Мне нужно, чтобы они были по три в колонке, то есть настроить видимость. Как создавать колонки вручную?
14 catena
 
10.07.18
13:44
(13)Создай колонки, а потом редактируй положение.
15 katerinaUniv
 
10.07.18
13:51
(14) циклом по колонкам?
16 catena
 
10.07.18
13:53
"стрГод = Лев(Строка(Год(д)),1)+Прав(Строка(Год(д)),3);"

Не надо так делать.
стрГод = Формат(Год,"ЧГ=");