Имя: Пароль:
1C
1С v8
Нужен пример создания вертикальных и горизонтальных областей
,
0 ColibriModern
 
21.06.18
11:59
Добрый день , кто может приведите простой пример кода для соеденения горизонтальных и вертикальных областей в макете 1с 8.3
1 DrShad
 
21.06.18
12:10
Присоединить()
2 LeoKeyn
 
21.06.18
12:14
(0) Делал как то такой макет, сейчас посмотрю осталась ли обработка
3 ColibriModern
 
21.06.18
12:20
Был бы очень благодарен
4 andrig
 
21.06.18
12:22
а как вставить обработку?
5 LeoKeyn
 
21.06.18
12:27
(3) Дам полностью процедуру по формированию таблицы из макета, думаю разберешься

    Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    Область = Макет.ПолучитьОбласть("Шапка");
    Область.Параметры.НомерПриказа = СсылкаНаОбъект.НомерПриказа;
    Область.Параметры.ДатаПриказа = Формат(СсылкаНаОбъект.Дата,"ДЛФ=DD");
    ТабДок.Вывести(Область);
    Область = Макет.ПолучитьОбласть("ШапкаТаблицы");    
    ТабДок.Вывести(Область);
    
    НачДень = День(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала);
    Если Год(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала)=Год(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания) Тогда
        КолМесяцев = Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания)-Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала)+1;
    Иначе
        КолМесяцев = (12-Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания))+Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала);
    КонецЕсли;
    Если КолМесяцев = 1 Тогда
        КонДень = День(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания);
    Иначе
        КонДень = День(КонецМесяца(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала));
    КонецЕсли;
    
    Область = Макет.ПолучитьОбласть("День");
    КолМесяцевСчетчик = КолМесяцев;
    СчетчикСтолбца = 7;
    ТекДата = СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала;
    Для СчетчикМесяца = 1 ПО КолМесяцевСчетчик Цикл
        
        Для СЧ = НачДень ПО КонДень Цикл
            Область.Параметры.НД = СЧ;
            ТабДок.Присоединить(Область);
        КонецЦикла;
        ТабДок.Область("R7C"+Строка(СчетчикСтолбца)+":R8C"+Строка(СчетчикСтолбца+(КонДень-НачДень))).Объединить();
        ТабДок.Область("R7C"+Строка(СчетчикСтолбца)+":R8C"+Строка(СчетчикСтолбца+(КонДень-НачДень))).ГоризонтальноеПоложение=ГоризонтальноеПоложение.Центр;
        ТабДок.Область("R7C"+Строка(СчетчикСтолбца)+":R8C"+Строка(СчетчикСтолбца+(КонДень-НачДень))).ВертикальноеПоложение=ВертикальноеПоложение.Центр;
        ТабДок.Область("R7C"+Строка(СчетчикСтолбца)+":R8C"+Строка(СчетчикСтолбца+(КонДень-НачДень))).Обвести(Линия, Линия, Линия, Линия);
        ТабДок.Область("R7C"+Строка(СчетчикСтолбца)+":R8C"+Строка(СчетчикСтолбца+(КонДень-НачДень))).Текст = Формат(ТекДата, "ДФ=ММММ");
        ТекДата = ДобавитьМесяц(ТекДата, 1);
        СчетчикСтолбца = СчетчикСтолбца+(КонДень-НачДень)+1;
        КолМесяцев = КолМесяцев-1;
        Если КолМесяцев = 1 Тогда
            КонДень = День(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания);
        Иначе
            КонДень = День(КонецМесяца(ТекДата));
        КонецЕсли;
        НачДень = 1;
    КонецЦикла;
    
    Для Каждого Работник ИЗ СсылкаНаОбъект.РаботникиОрганизации Цикл
        
        ФормаГрафика = Работник.ГрафикРаботы.ПолучитьФорму("ФормаЭлемента");
        
        КалендарьНаборЗаписей = ФормаГрафика.КалендарьНаборЗаписей;
        СформироватьТаблицуГрафика(КалендарьНаборЗаписей);
        
        ТекущийГод = НачалоГода(РабочаяДата);
        НомерТекущегоГода = Год(ТекущийГод);
        ОтразитьГодВНабореЗаписей(ТекущийГод, Истина, КалендарьНаборЗаписей, Работник);
        
        НачДень = День(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала);
        Если Год(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала)=Год(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания) Тогда
            КолМесяцев = Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания)-Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала)+1;
        Иначе
            КолМесяцев = (12-Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания))+Месяц(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала);
        КонецЕсли;
        Если КолМесяцев = 1 Тогда
            КонДень = День(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания);
        Иначе
            КонДень = День(КонецМесяца(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала));
        КонецЕсли;
                                      
        Область = Макет.ПолучитьОбласть("Строка");
        Область.Параметры.Номер = Работник.НомерСтроки;
        Область.Параметры.ФИО = Работник.Сотрудник.Наименование;
        Область.Параметры.Должность = Работник.Должность;
        Область.Параметры.ТабельныйНом = Работник.Сотрудник.Код;
        ТабДок.Вывести(Область);
        Область = Макет.ПолучитьОбласть("ЧД");
        КолМесяцевСчетчик = КолМесяцев;
        СчетчикСтолбца = 7;
        ТекДата = СсылкаНаОбъект.РаботникиОрганизации[0].ДатаНачала;
        Для СчетчикМесяца = 1 ПО КолМесяцевСчетчик Цикл
            
            Для СЧ = НачДень ПО КонДень Цикл
                Область.Параметры.Д = Строка(КалендарьНаборЗаписей[Месяц(ТекДата)-1]["День"+Строка(СЧ)]);
                Область.Параметры.Н = Строка(КалендарьНаборЗаписей[Месяц(ТекДата)-1]["НЧ"+Строка(СЧ)]);
                ТабДок.Присоединить(Область);
            КонецЦикла;
            ТекДата = ДобавитьМесяц(ТекДата, 1);
            СчетчикСтолбца = СчетчикСтолбца+(КонДень-НачДень)+1;
            КолМесяцев = КолМесяцев-1;
            Если КолМесяцев = 1 Тогда
                КонДень = День(СсылкаНаОбъект.РаботникиОрганизации[0].ДатаОкончания);
            Иначе
                КонДень = День(КонецМесяца(ТекДата));
            КонецЕсли;
            НачДень = 1;
        КонецЦикла;
    КонецЦикла;
6 ColibriModern
 
21.06.18
12:29
(5) Спасибо большое!
7 LeoKeyn
 
21.06.18
12:33
(6) ^_^