Имя: Пароль:
1C
1С v8
Помощь с кодом Табличной части
0 asisdes
 
15.09.18
18:16
Есть Табель в виде документа, у документа есть Табличная часть отработанное время.
По циклу там в выходные дни проставляется буковка В (выходной),
так я хотел бы что бы ячейки с буквой В фон был цветным.
Ник то не поможет как правильно обратится к ячейке...
1 asisdes
 
15.09.18
18:18
Функция ЗаполнитьЯвкуПроцедура();
    //установим границы периода

    ДатаНачалаПериода      = НачалоМесяца(Дата);
    ДатаОкончанияПериода = КонецМесяца(Дата);    
    
    ЭлементыФормы.ОтработанноеВремя.ВыделенныеСтроки.Очистить();
    Для Каждого ТекущаяСтрока ИЗ ОтработанноеВремя Цикл  //ТабличноеПоле1
        КоличествоЧасов = 0;  
        КоличествоДней = 0;
        //расчет за период количества дней и часов по норме
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("НачалоМесяца",НачалоМесяца(Дата));
        Запрос.УстановитьПараметр("КонецМесяца",КонецМесяца(Дата));
        Запрос.Текст =
        "ВЫБРАТЬ
        |    РегламентированныйПроизводственныйКалендарь.ВидДня,
        |    ДЕНЬНЕДЕЛИ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК ДеньНедели,
        |    ДЕНЬ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК ДеньМесяца //выбирает номер дня месяца
        |ИЗ
        |    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
        |ГДЕ
        |    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоМесяца И &КонецМесяца
        |
        |УПОРЯДОЧИТЬ ПО
        |    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря";
        Результат = Запрос.Выполнить();
        Данные = Результат.Выгрузить();
        Для ДеньМесяца = День(ДатаНачалаПериода) по День(ДатаОкончанияПериода) Цикл
            ВидДня = Данные[ДеньМесяца - 1].ВидДня;
            Если
                ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота ИЛИ
                ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье ИЛИ
                ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник
            Тогда
                ТекущаяСтрока["Колонка" + ДеньМесяца] = "в";
            Иначе
                Часов = 8 * ТекущаяСтрока.Ставка;                
                ТекущаяСтрока["Колонка" + ДеньМесяца] = "я";
                ТекущаяСтрока["Часы" + ДеньМесяца] = Часов;
                
                КоличествоЧасов = КоличествоЧасов + Часов;
                КоличествоДней = КоличествоДней + 1;
            КонецЕсли;
        КонецЦикла;
        
        ТекущаяСтрока.НормаДней = КоличествоДней;
        ТекущаяСтрока.НормаЧасов = КоличествоЧасов;
    КонецЦикла;
    

    ПересчетИтоговПроцедура();
КонецФункции



Процедуру прилагаю, табель не мой, взял с одного из сайтов который по запросу "табель 1с" сразу выйдет

ПС не нашел как код обрамлять(((
2 Cool_Profi
 
15.09.18
18:47
ПриПолученииДанных() оформляй
3 Darych
 
15.09.18
18:51
ПриВыводеСтроки() оформляй
4 Chameleon1980
 
15.09.18
18:58
(3) мне с самого начала ИМХАЕТСЯ, что в ПриПолученииДАнных быстрее
5 asisdes
 
15.09.18
19:31
Спасибо, всем!!!! Все получилось.
Я все время на ячейку жмякал,  а надо было на всю Табличную часть))))
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший