Имя: Пароль:
1C
1С v8
Формирование табличной части документа
0 Ket9346
 
26.01.15
10:36
Есть документ "Сводная ведомость", ФИО заполняется со справочника Университет для этого нужно выбрать группу. У меня вопрос на скриншоте видно как сейчас выглядит форма документа можно ли ее исправить по примеру, и выводить дисциплины как и ФИО только горизонтально? Дисциплины разбиты в справочники по семестрам.
http://www.imageup.ru/img217/2024524/1s.png
1 salvator
 
26.01.15
10:43
"На следующей строке" сделать в свойствах колонки? Или чего надо, я не понял.
2 RomaH
 
naïve
26.01.15
10:44
У меня вопрос на скриншоте видно - но не понятно
3 Fish
 
26.01.15
10:45
Можно, но не нужно.
4 Ket9346
 
26.01.15
11:18
Мне нужна сводная по оценкам в конце семестра в деканате выдают лист с оценками там предметов 10. Вот поэтому и нужно сделать что бы по горизонту выводились все предметы а уже под ними оценки для каждого студента.
Не могли бы объяснить как можно это сделать ?
5 Fish
 
26.01.15
12:00
(4) Отчётом.
6 Ket9346
 
26.01.15
12:04
и как мне в отчет вводить информацию?
7 polosov
 
26.01.15
12:22
(6) Делай две ТЧ: в первой дисциплины, а во второй делаешь скрытую колонку "Дисциплина", и при добавлении новой строки  во второй ТЧ,  в зависимости от того что выделено в первой, заполняешь скрытый реквизит и  делаешь отбор по нему.
8 Ket9346
 
26.01.15
12:38
не понятно немного, как сделать что бы дисциплины выводились в горизонтальном виде ?
9 Крошка Ру
 
26.01.15
12:41
(8) Набор дисциплин определен или может быть разным?
10 polosov
 
26.01.15
12:42
(8) Да никак.
Либо делать 1 документ = 1 дисциплина.
Либо делать связь 1 ко многим из двух ТЧ или из поля выбора и ТЧ.
11 polosov
 
26.01.15
12:43
+(10) Либо делать страничку на каждую дисциплину со своей ТЧ. Это если список дисциплин определен.
12 Ket9346
 
26.01.15
12:44
да ничего хорошего
13 Ket9346
 
26.01.15
12:47
набор дисциплин определен разбит в справочнике по семестрам
14 polosov
 
26.01.15
12:49
Я бы все-таки сделал 1 документ=1 дисциплина.
15 Ket9346
 
26.01.15
12:50
да не спорю легче но никто просто так вводить оценки не будет
16 RomaH
 
naïve
26.01.15
12:53
создавать колонки программно?
17 Ket9346
 
26.01.15
12:55
а как?
18 RomaH
 
naïve
26.01.15
12:58
(17) позвать специалиста? ну или программу написать самому

    КолонкиТаблицы.Добавить("Работает_"         + Постфикс    ,ОписаниеТиповБулево,""            ,3);
    КолонкиТаблицы.Добавить("ВремяНачала_"         + Постфикс    ,ОписаниеТиповВремя    ,"с"        ,20);
    КолонкиТаблицы.Добавить("ВремяОкончания_"     + Постфикс    ,ОписаниеТиповВремя    ,"по"        ,20);
    //КолонкиТаблицы.Добавить("ДатаРаботы_"         + Постфикс    ,ОписаниеТиповДата    ,"дата"        ,20);
    
    //ЭлементыФормы.ТабличноеПолеВводДанных.СоздатьКолонки();
    
    НоваяКолонкаВвода = ЭлементыФормы.ТабличноеПолеВводДанных.Колонки.Вставить(ИндексНовойКолонки,Формат(НоваяДата,ФорматДаты));
    НоваяКолонкаВвода.Имя                                         = "Работает_" + Постфикс;
    
    ИнициализацияКолонкиТабличногоПоля(НоваяКолонкаВвода);
    
    НоваяКолонкаВвода = ЭлементыФормы.ТабличноеПолеВводДанных.Колонки.Вставить(ИндексНовойКолонки + 1,"с");
    НоваяКолонкаВвода.Имя                                 = "ВремяНачала_"     + Постфикс;
    
    ИнициализацияКолонкиТабличногоПоля(НоваяКолонкаВвода);

    НоваяКолонкаВвода = ЭлементыФормы.ТабличноеПолеВводДанных.Колонки.Вставить(ИндексНовойКолонки + 2,"по");
    НоваяКолонкаВвода.Имя                                 = "ВремяОкончания_" + Постфикс;
    
    ИнициализацияКолонкиТабличногоПоля(НоваяКолонкаВвода);

Процедура ИнициализацияКолонкиТабличногоПоля(Колонка)
    
    Если Лев(Колонка.Имя,14) = "ВремяОкончания" Тогда
        Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке;    
    КонецЕсли;
        
    Если Лев(Колонка.Имя,1) = "В" Тогда
        
        Колонка.Данные                                 = Колонка.Имя;
        Колонка.Ширина                                 = ШиринаВремени;
        Колонка.Формат                                 = ФорматВремени;
        Колонка.ИзменениеРазмера                     = ИзменениеРазмераКолонки.НеИзменять;
        Колонка.ЭлементУправления.Формат             = ФорматВремени;
        Колонка.ЭлементУправления.КнопкаВыбора         = Ложь;
        Колонка.РежимРедактирования                 = РежимРедактированияКолонки.Непосредственно;
        
    ИначеЕсли Лев(Колонка.Имя,1) = "Д" Тогда
        
        Колонка.Ширина                                 = ШиринаДаты;
        Колонка.Формат                                 = ФорматДаты;
        Колонка.ИзменениеРазмера                     = ИзменениеРазмераКолонки.НеИзменять;
        Колонка.ЭлементУправления.Формат             = ФорматДаты;
        Колонка.ЭлементУправления.КнопкаВыбора         = Истина;
        
    ИначеЕсли Лев(Колонка.Имя,1) = "Н" Тогда //Номер строки
        
        Колонка.Ширина     = 4;
        Колонка.ИзменениеРазмера = ИзменениеРазмераКолонки.НеИзменять;
        
    ИначеЕсли Лев(Колонка.Имя,1) = "С" Тогда
        
        Колонка.Ширина                                         = 40;
        Колонка.ИзменениеРазмера                             = ИзменениеРазмераКолонки.Изменять;
        Колонка.ЭлементУправления.КнопкаВыбора                 = Истина;
        Колонка.ЭлементУправления.КнопкаОткрытия             = Истина;
        Колонка.ЭлементУправления.КнопкаОчистки             = Ложь;
        Колонка.АвтоОтметкаНезаполненного                     = Истина;
        Колонка.ЭлементУправления.АвтоОтметкаНезаполненного = Истина;
        
    ИначеЕсли Лев(Колонка.Имя,1) = "Р" Тогда  //флажек - работает/не работает в данный день
        
        Колонка.УстановитьЭлементУправления(Тип("Флажок"));
        Колонка.Ширина                     = ШиринаДаты;
        Колонка.ИзменениеРазмера         = ИзменениеРазмераКолонки.НеИзменять;
        Колонка.Данные                     = "";
        Колонка.ДанныеФлажка             = Колонка.Имя;
        Колонка.ТекстШапки                = Формат(ПолучитьДатуИзИмени(Колонка.Имя),ФорматДаты);
        Колонка.РежимРедактирования     = РежимРедактированияКолонки.Непосредственно;
        //Колонка.ЭлементУправления.УстановитьДействие("ПриИзменении",Новый Действие("ПриИзмененииФлагаРаботает"));
        //Действие = Колонка.ЭлементУправления.ПолучитьДействие("ПриИзменении");
    КонецЕсли;
    
КонецПроцедуры
19 Ket9346
 
26.01.15
13:00
о спасибо не знала что так можно ))
20 RomaH
 
naïve
26.01.15
13:15
но через табличный документ (тот который тут назвали "отчет") - ИМХО, красивее
читай про табличный документ в режиме ввода данных
свойства области "Содержит значение"
21 Ket9346
 
26.01.15
13:38
хорошо спасибо