Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 05:02

ЗУП 2.0 2.0.18.3)

Автор gribok, 14 авг 2019, 06:38

0 Пользователей и 1 гость просматривают эту тему.

gribok

Добрый день уважаемые гуру 1С.
Столкнулся с проблемой следующего характера.
Имеется стандартная печатная форма графика работ (рисунок 3)
который нужно привести как показано на рисунке 4.
Вроде бы ничего сложного нет.
Открыл макет , снял с поддержки для редактирования и понеслась - Рисунок 2.
Накидал для теста текста , сохранил, обновил и ничего не отображается
Рисунок 1
Почему?? Что я не так делаю??
Как добавить нужные мне надписи что б при формировании графика они отображались???
Я не силен в 1С сконфигурированние т.к. она досталась мне в наследство и не когда этим не занимался.
Спасибо за помощь


alexandr_ll

Цитата: gribok от 14 авг 2019, 06:38
Добрый день уважаемые гуру 1С.
Столкнулся с проблемой следующего характера.
Имеется стандартная печатная форма графика работ (рисунок 3)
который нужно привести как показано на рисунке 4.
Вроде бы ничего сложного нет.
Открыл макет , снял с поддержки для редактирования и понеслась - Рисунок 2.
Накидал для теста текста , сохранил, обновил и ничего не отображается
Рисунок 1
Почему?? Что я не так делаю??
Как добавить нужные мне надписи что б при формировании графика они отображались???
Я не силен в 1С сконфигурированние т.к. она досталась мне в наследство и не когда этим не занимался.
Спасибо за помощь
Уточните название вашей конфигурации.
В процедуре вывода на печать проверьте, как определена область "Шапка"
Макет.ПолучитьОбласть("Шапка")
или
Макет.ПолучитьОбласть("Шапка|Месяцы")

gribok

Цитата: alexandr_ll от 14 авг 2019, 07:00
Цитата: gribok от 14 авг 2019, 06:38
Добрый день уважаемые гуру 1С.
Столкнулся с проблемой следующего характера.
Имеется стандартная печатная форма графика работ (рисунок 3)
который нужно привести как показано на рисунке 4.
Вроде бы ничего сложного нет.
Открыл макет , снял с поддержки для редактирования и понеслась - Рисунок 2.
Накидал для теста текста , сохранил, обновил и ничего не отображается
Рисунок 1
Почему?? Что я не так делаю??
Как добавить нужные мне надписи что б при формировании графика они отображались???
Я не силен в 1С сконфигурированние т.к. она досталась мне в наследство и не когда этим не занимался.
Спасибо за помощь
Уточните название вашей конфигурации.
В процедуре вывода на печать проверьте, как определена область "Шапка"
Макет.ПолучитьОбласть("Шапка")
или
Макет.ПолучитьОбласть("Шапка|Месяцы")

Процедуру печати не нашел
Есть функция
Функция Печать(КалендарьНаборЗаписей, ГодПечати = Неопределено) Экспорт

Если Не ЗначениеЗаполнено(ГодПечати) Тогда
ГодПечати = ТекущийГод;
КонецЕсли;

ВыводитьИтогиПроизводственногоКалендаря = Истина;
ДатаНачалаИнтервала    = НачалоГода(ГодПечати);
ДатаОкончанияИнтервала  = КонецГода(ГодПечати);
ДнейВИнтервале = (КонецДня(ДатаОкончанияИнтервала) - НачалоДня(ДатаНачалаИнтервала) + 1) / мДлинаСуток;
Календарь = ПолучитьДниВПроизводственномКалендаре(ДатаНачалаИнтервала, ДатаОкончанияИнтервала); // это соответствие: дата - вид дня
Если ДнейВИнтервале <> Календарь.Количество() Тогда
Сообщить("Проверьте правильность заполнения регламентированного производственного календаря на " + Формат(Год(ГодПечати), "ЧГ=5") + " год", СтатусСообщения.Важное);
ВыводитьИтогиПроизводственногоКалендаря = Ложь;
КонецЕсли;

ПечатныйДокумент = Новый ТабличныйДокумент;
ПечатныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ГрафикиРаботы";
ПечатныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ПечатныйДокумент.Автомасштаб = Истина;

Макет = ПолучитьМакет("Макет");

ОбластьДанныхШапка           = Макет.ПолучитьОбласть("Шапка|Месяцы");
ОбластьДанныхКолонтитул       = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхРасширение       = Макет.ПолучитьОбласть("Расширение");
ОбластьДанныхДень             = Макет.ПолучитьОбласть("День|Месяцы");
ОбластьДанныхДеньПоДням       = Макет.ПолучитьОбласть("День|Дни");
ОбластьДанныхНочные           = Макет.ПолучитьОбласть("НЧ");
ОбластьИтогиЗаМесяц           = Макет.ПолучитьОбласть("День|Итоги");
ОбластьИтогиЗаКвартал         = Макет.ПолучитьОбласть("Квартал");
ОбластьИтогиЗаКварталНЧ       = Макет.ПолучитьОбласть("КварталНЧ");
ОбластьИтогиЗаГод   = Макет.ПолучитьОбласть("Год");
ОбластьИтогиЗаГодНЧ   = Макет.ПолучитьОбласть("ГодНЧ");
ОбластьКалендаря   = Макет.ПолучитьОбласть("Календарь");
ОбластьПодписи   = Макет.ПолучитьОбласть("Подпись");
ОбластьРасширениеИтоги   = Макет.ПолучитьОбласть("РасширениеИтоги");

ОбластьДанныхШапка.Параметры.Наименование = "График работы '" + СокрЛП(ЭтотОбъект.Наименование) + "' на " + Формат(Год(ГодПечати), "ЧГ=5") + " год";
    ПечатныйДокумент.Вывести(ОбластьДанныхШапка);

ОбластьДнейЗаголовок = "Часов за день";
Если УчитыватьНочныеЧасы Тогда
ОбластьДнейЗаголовок = ОбластьДнейЗаголовок + ", в том числе ночных";
КонецЕсли;
ОбластьДанныхКолонтитул.Параметры.Установить(0, ОбластьДнейЗаголовок);
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);

ДнейЗаКвартал = 0;
ЧасовЗаКвартал = 0;
НочныхЧасовЗаКвартал = 0;
ДнейЗаГод = 0;
ЧасовЗагод = 0;
НочныхЧасовЗаГод = 0;
ДнейПоКалендарю = 0;
ЧасовПоКалендарю = 0;
ВыходныхПоКалендарю = 0;
ДнейЗаКварталПоКалендарю = 0;
ЧасовЗаКварталПоКалендарю = 0;
ВыходныхЗаКварталПоКалендарю = 0;
ДнейЗаГодПоКалендарю = 0;
ЧасовЗаГодПоКалендарю               = 0;
ВыходныхЗаГодПоКалендарю = 0;
Квартал  = 0;
ИндексСтраницы = 0;

Для Индекс = 0 По 11 Цикл

НомерМесяца = Индекс + 1;
НазваниеМесяца = КалендарьНаборЗаписей[Индекс].Месяц;
Дней           = КалендарьНаборЗаписей[Индекс].ДнейЗаМесяц;
Часов          = КалендарьНаборЗаписей[Индекс].ЧасовЗаМесяц;
НочныхЧасов    = КалендарьНаборЗаписей[Индекс].НочныхЧасовЗаМесяц;

Если НомерМесяца = 4 ИЛИ НомерМесяца = 7 ИЛИ НомерМесяца = 10 Тогда
ДнейЗаКвартал  = 0;
ЧасовЗаквартал = 0;
НочныхЧасовЗаКвартал = 0;
КонецЕсли;

ДнейЗаКвартал  = ДнейЗаКвартал + Дней;
ЧасовЗаКвартал = ЧасовЗаКвартал + Часов;
ДнейЗаГод = ДнейЗаГод + Дней;
ЧасовЗаГод = ЧасовЗаГод + Часов;
НочныхЧасовЗаГод = НочныхЧасовЗаГод + НочныхЧасов;

ДанныеМесяца = КалендарьНаборЗаписей[Индекс];
ОбластьДанныхДень.Параметры.Заполнить(ДанныеМесяца);

СтрокаСПодвалом = Новый Массив; // создадим массив для проверки вывода
СтрокаСПодвалом.Добавить(ОбластьДанныхДень);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКвартал);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКварталНЧ);

Если Не УниверсальныеМеханизмы.ПроверитьВыводДляТабличногоДокумента(ПечатныйДокумент, СтрокаСПодвалом) Тогда
ПечатныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);
ИндексСтраницы = ИндексСтраницы+1;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьДанныхДень);

ОбластьДанныхДеньПоДням.Параметры.Заполнить(ДанныеМесяца);
ОбластьИтогиЗаМесяц.Параметры.Заполнить(ДанныеМесяца);
Если УчитыватьНочныеЧасы Тогда
ОбластьДанныхНочные.Параметры.Заполнить(ДанныеМесяца);
НочныхЧасовЗаКвартал = НочныхЧасовЗаКвартал + НочныхЧасов;
ОбластьИтогиЗаКварталНЧ.Параметры.Установить(0, НочныхЧасовЗаКвартал);
КонецЕсли;

ДнейВМесяце = КоличествоДнейВМесяце(НомерМесяца, Год(ГодПечати));
Если ДнейВМесяце < 31 Тогда
ЛишнийДень = ДнейВМесяце + 1;
Пока ЛишнийДень <= 31 Цикл
ОбластьДанныхДеньПоДням.Параметры.Установить(ЛишнийДень-1, "X");
ОбластьДанныхНочные.Параметры.Установить(ЛишнийДень-1, "X");
ЛишнийДень = ЛишнийДень + 1;
КонецЦикла;
КонецЕсли;

//Установим параметры производственного календаря
ДанныеПроизводственногоКалендаря = ДанныеПроизводственногоКалендаря(НомерМесяца);
ТаблицаИтоговКалендаря = ДанныеПроизводственногоКалендаряЗаГод(Год(ГодПечати));

Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ТаблицаИтогов = ТаблицаИтоговКалендаря[Индекс];
ОбластьИтогиЗаМесяц.Параметры.Установить(2, ТаблицаИтоговКалендаря[Индекс].ДнейПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(3, ТаблицаИтоговКалендаря[Индекс].ЧасовПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(4, ТаблицаИтоговКалендаря[Индекс].ВыходныхПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Присоединить(ОбластьДанныхДеньПоДням);
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаМесяц);
Если УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Вывести(ОбластьДанныхНочные);
Иначе
ПечатныйДокумент.Вывести(ОбластьДанныхРасширение);
КонецЕсли;

//Выделим цветом нерабочие дни в календаре
ТекущийМесяц = НачалоМесяца(Дата(Год(ГодПечати), НомерМесяца, 1));
ДеньНеделиМесяца = ДеньНедели(НачалоМесяца(ТекущийМесяц));
Для НомерДня = 1 По 31 Цикл
Если НомерДня <= ДнейВМесяце Тогда
Если ДанныеПроизводственногоКалендаря.Количество() > 0 Тогда
ВидДня = ДанныеПроизводственногоКалендаря[НомерДня - 1].ВидДня;
Если ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник Тогда
ОбластьВыходных = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьВыходных.Верх + НомерМесяца*2 + Квартал*2- 1, ОбластьВыходных.Лево, ОбластьВыходных.Верх + НомерМесяца*2  + Квартал*2, ОбластьВыходных.Лево);
ОбластьДляЗакрашивания.ЦветФона = КрасныйЦвет;
КонецЕсли;
КонецЕсли;
Иначе
ОбластьЛишнихДней = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2 - 1, ОбластьЛишнихДней.Лево, ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2, ОбластьЛишнихДней.Лево);
ОбластьДляЗакрашивания.ЦветФона = СерыйЦвет;
КонецЕсли;
КонецЦикла;

Если НомерМесяца = 3 ИЛИ НомерМесяца = 6 ИЛИ НомерМесяца = 9 ИЛИ НомерМесяца = 12 Тогда
Квартал = НомерМесяца/3;
ОбластьИтогиЗаКвартал.Параметры.Установить(0, "" + Квартал + " квартал");
ОбластьИтогиЗаКвартал.Параметры.Установить(1, ДнейЗаКвартал);
ОбластьИтогиЗаКвартал.Параметры.Установить(2, ЧасовЗаКвартал);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаКвартал.Параметры.Установить(3, ТаблицаИтоговКалендаря[НомерМесяца-1].ДнейЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(4, ТаблицаИтоговКалендаря[НомерМесяца-1].ЧасовЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(5, ТаблицаИтоговКалендаря[НомерМесяца-1].ВыходныхЗаКварталПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаКвартал);

Если  УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаКварталНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
КонецЕсли;
КонецЕсли;

КонецЦикла;

ОбластьИтогиЗаГод.Параметры.Установить(0, ДнейЗаГод);
ОбластьИтогиЗаГод.Параметры.Установить(1, ЧасовЗаГод);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаГод.Параметры.Установить(2, ТаблицаИтоговКалендаря[11].ДнейЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(3, ТаблицаИтоговКалендаря[11].ЧасовЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(4, ТаблицаИтоговКалендаря[11].ВыходныхЗаГодПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаГод);

Если УчитыватьНочныеЧасы Тогда
ОбластьИтогиЗаГодНЧ.Параметры.Установить(0, НочныхЧасовЗаГод);
ПечатныйДокумент.Вывести(ОбластьИтогиЗаГодНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
ОбластьИтоговЗаГод = ПечатныйДокумент.НайтиТекст("Итого за год:");
СераяОбласть = ПечатныйДокумент.Область(ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево, ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево + 37);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировкиВерхнегоУровня;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьПодписи);

УниверсальныеМеханизмы.НапечататьДокумент(ПечатныйДокумент, , , "График работы " + Наименование);

КонецФункции


alexandr_ll

Цитата: gribok от 14 авг 2019, 07:04
Цитата: alexandr_ll от 14 авг 2019, 07:00
Цитата: gribok от 14 авг 2019, 06:38
Добрый день уважаемые гуру 1С.
Столкнулся с проблемой следующего характера.
Имеется стандартная печатная форма графика работ (рисунок 3)
который нужно привести как показано на рисунке 4.
Вроде бы ничего сложного нет.
Открыл макет , снял с поддержки для редактирования и понеслась - Рисунок 2.
Накидал для теста текста , сохранил, обновил и ничего не отображается
Рисунок 1
Почему?? Что я не так делаю??
Как добавить нужные мне надписи что б при формировании графика они отображались???
Я не силен в 1С сконфигурированние т.к. она досталась мне в наследство и не когда этим не занимался.
Спасибо за помощь
Уточните название вашей конфигурации.
В процедуре вывода на печать проверьте, как определена область "Шапка"
Макет.ПолучитьОбласть("Шапка")
или
Макет.ПолучитьОбласть("Шапка|Месяцы")

Процедуру печати не нашел
Есть функция
Функция Печать(КалендарьНаборЗаписей, ГодПечати = Неопределено) Экспорт

Если Не ЗначениеЗаполнено(ГодПечати) Тогда
ГодПечати = ТекущийГод;
КонецЕсли;

ВыводитьИтогиПроизводственногоКалендаря = Истина;
ДатаНачалаИнтервала    = НачалоГода(ГодПечати);
ДатаОкончанияИнтервала  = КонецГода(ГодПечати);
ДнейВИнтервале = (КонецДня(ДатаОкончанияИнтервала) - НачалоДня(ДатаНачалаИнтервала) + 1) / мДлинаСуток;
Календарь = ПолучитьДниВПроизводственномКалендаре(ДатаНачалаИнтервала, ДатаОкончанияИнтервала); // это соответствие: дата - вид дня
Если ДнейВИнтервале <> Календарь.Количество() Тогда
Сообщить("Проверьте правильность заполнения регламентированного производственного календаря на " + Формат(Год(ГодПечати), "ЧГ=5") + " год", СтатусСообщения.Важное);
ВыводитьИтогиПроизводственногоКалендаря = Ложь;
КонецЕсли;

ПечатныйДокумент = Новый ТабличныйДокумент;
ПечатныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ГрафикиРаботы";
ПечатныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ПечатныйДокумент.Автомасштаб = Истина;

Макет = ПолучитьМакет("Макет");

ОбластьДанныхШапка           = Макет.ПолучитьОбласть("Шапка|Месяцы");
ОбластьДанныхКолонтитул       = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхРасширение       = Макет.ПолучитьОбласть("Расширение");
ОбластьДанныхДень             = Макет.ПолучитьОбласть("День|Месяцы");
ОбластьДанныхДеньПоДням       = Макет.ПолучитьОбласть("День|Дни");
ОбластьДанныхНочные           = Макет.ПолучитьОбласть("НЧ");
ОбластьИтогиЗаМесяц           = Макет.ПолучитьОбласть("День|Итоги");
ОбластьИтогиЗаКвартал         = Макет.ПолучитьОбласть("Квартал");
ОбластьИтогиЗаКварталНЧ       = Макет.ПолучитьОбласть("КварталНЧ");
ОбластьИтогиЗаГод   = Макет.ПолучитьОбласть("Год");
ОбластьИтогиЗаГодНЧ   = Макет.ПолучитьОбласть("ГодНЧ");
ОбластьКалендаря   = Макет.ПолучитьОбласть("Календарь");
ОбластьПодписи   = Макет.ПолучитьОбласть("Подпись");
ОбластьРасширениеИтоги   = Макет.ПолучитьОбласть("РасширениеИтоги");

ОбластьДанныхШапка.Параметры.Наименование = "График работы '" + СокрЛП(ЭтотОбъект.Наименование) + "' на " + Формат(Год(ГодПечати), "ЧГ=5") + " год";
    ПечатныйДокумент.Вывести(ОбластьДанныхШапка);

ОбластьДнейЗаголовок = "Часов за день";
Если УчитыватьНочныеЧасы Тогда
ОбластьДнейЗаголовок = ОбластьДнейЗаголовок + ", в том числе ночных";
КонецЕсли;
ОбластьДанныхКолонтитул.Параметры.Установить(0, ОбластьДнейЗаголовок);
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);

ДнейЗаКвартал = 0;
ЧасовЗаКвартал = 0;
НочныхЧасовЗаКвартал = 0;
ДнейЗаГод = 0;
ЧасовЗагод = 0;
НочныхЧасовЗаГод = 0;
ДнейПоКалендарю = 0;
ЧасовПоКалендарю = 0;
ВыходныхПоКалендарю = 0;
ДнейЗаКварталПоКалендарю = 0;
ЧасовЗаКварталПоКалендарю = 0;
ВыходныхЗаКварталПоКалендарю = 0;
ДнейЗаГодПоКалендарю = 0;
ЧасовЗаГодПоКалендарю               = 0;
ВыходныхЗаГодПоКалендарю = 0;
Квартал  = 0;
ИндексСтраницы = 0;

Для Индекс = 0 По 11 Цикл

НомерМесяца = Индекс + 1;
НазваниеМесяца = КалендарьНаборЗаписей[Индекс].Месяц;
Дней           = КалендарьНаборЗаписей[Индекс].ДнейЗаМесяц;
Часов          = КалендарьНаборЗаписей[Индекс].ЧасовЗаМесяц;
НочныхЧасов    = КалендарьНаборЗаписей[Индекс].НочныхЧасовЗаМесяц;

Если НомерМесяца = 4 ИЛИ НомерМесяца = 7 ИЛИ НомерМесяца = 10 Тогда
ДнейЗаКвартал  = 0;
ЧасовЗаквартал = 0;
НочныхЧасовЗаКвартал = 0;
КонецЕсли;

ДнейЗаКвартал  = ДнейЗаКвартал + Дней;
ЧасовЗаКвартал = ЧасовЗаКвартал + Часов;
ДнейЗаГод = ДнейЗаГод + Дней;
ЧасовЗаГод = ЧасовЗаГод + Часов;
НочныхЧасовЗаГод = НочныхЧасовЗаГод + НочныхЧасов;

ДанныеМесяца = КалендарьНаборЗаписей[Индекс];
ОбластьДанныхДень.Параметры.Заполнить(ДанныеМесяца);

СтрокаСПодвалом = Новый Массив; // создадим массив для проверки вывода
СтрокаСПодвалом.Добавить(ОбластьДанныхДень);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКвартал);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКварталНЧ);

Если Не УниверсальныеМеханизмы.ПроверитьВыводДляТабличногоДокумента(ПечатныйДокумент, СтрокаСПодвалом) Тогда
ПечатныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);
ИндексСтраницы = ИндексСтраницы+1;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьДанныхДень);

ОбластьДанныхДеньПоДням.Параметры.Заполнить(ДанныеМесяца);
ОбластьИтогиЗаМесяц.Параметры.Заполнить(ДанныеМесяца);
Если УчитыватьНочныеЧасы Тогда
ОбластьДанныхНочные.Параметры.Заполнить(ДанныеМесяца);
НочныхЧасовЗаКвартал = НочныхЧасовЗаКвартал + НочныхЧасов;
ОбластьИтогиЗаКварталНЧ.Параметры.Установить(0, НочныхЧасовЗаКвартал);
КонецЕсли;

ДнейВМесяце = КоличествоДнейВМесяце(НомерМесяца, Год(ГодПечати));
Если ДнейВМесяце < 31 Тогда
ЛишнийДень = ДнейВМесяце + 1;
Пока ЛишнийДень <= 31 Цикл
ОбластьДанныхДеньПоДням.Параметры.Установить(ЛишнийДень-1, "X");
ОбластьДанныхНочные.Параметры.Установить(ЛишнийДень-1, "X");
ЛишнийДень = ЛишнийДень + 1;
КонецЦикла;
КонецЕсли;

//Установим параметры производственного календаря
ДанныеПроизводственногоКалендаря = ДанныеПроизводственногоКалендаря(НомерМесяца);
ТаблицаИтоговКалендаря = ДанныеПроизводственногоКалендаряЗаГод(Год(ГодПечати));

Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ТаблицаИтогов = ТаблицаИтоговКалендаря[Индекс];
ОбластьИтогиЗаМесяц.Параметры.Установить(2, ТаблицаИтоговКалендаря[Индекс].ДнейПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(3, ТаблицаИтоговКалендаря[Индекс].ЧасовПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(4, ТаблицаИтоговКалендаря[Индекс].ВыходныхПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Присоединить(ОбластьДанныхДеньПоДням);
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаМесяц);
Если УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Вывести(ОбластьДанныхНочные);
Иначе
ПечатныйДокумент.Вывести(ОбластьДанныхРасширение);
КонецЕсли;

//Выделим цветом нерабочие дни в календаре
ТекущийМесяц = НачалоМесяца(Дата(Год(ГодПечати), НомерМесяца, 1));
ДеньНеделиМесяца = ДеньНедели(НачалоМесяца(ТекущийМесяц));
Для НомерДня = 1 По 31 Цикл
Если НомерДня <= ДнейВМесяце Тогда
Если ДанныеПроизводственногоКалендаря.Количество() > 0 Тогда
ВидДня = ДанныеПроизводственногоКалендаря[НомерДня - 1].ВидДня;
Если ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник Тогда
ОбластьВыходных = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьВыходных.Верх + НомерМесяца*2 + Квартал*2- 1, ОбластьВыходных.Лево, ОбластьВыходных.Верх + НомерМесяца*2  + Квартал*2, ОбластьВыходных.Лево);
ОбластьДляЗакрашивания.ЦветФона = КрасныйЦвет;
КонецЕсли;
КонецЕсли;
Иначе
ОбластьЛишнихДней = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2 - 1, ОбластьЛишнихДней.Лево, ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2, ОбластьЛишнихДней.Лево);
ОбластьДляЗакрашивания.ЦветФона = СерыйЦвет;
КонецЕсли;
КонецЦикла;

Если НомерМесяца = 3 ИЛИ НомерМесяца = 6 ИЛИ НомерМесяца = 9 ИЛИ НомерМесяца = 12 Тогда
Квартал = НомерМесяца/3;
ОбластьИтогиЗаКвартал.Параметры.Установить(0, "" + Квартал + " квартал");
ОбластьИтогиЗаКвартал.Параметры.Установить(1, ДнейЗаКвартал);
ОбластьИтогиЗаКвартал.Параметры.Установить(2, ЧасовЗаКвартал);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаКвартал.Параметры.Установить(3, ТаблицаИтоговКалендаря[НомерМесяца-1].ДнейЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(4, ТаблицаИтоговКалендаря[НомерМесяца-1].ЧасовЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(5, ТаблицаИтоговКалендаря[НомерМесяца-1].ВыходныхЗаКварталПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаКвартал);

Если  УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаКварталНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
КонецЕсли;
КонецЕсли;

КонецЦикла;

ОбластьИтогиЗаГод.Параметры.Установить(0, ДнейЗаГод);
ОбластьИтогиЗаГод.Параметры.Установить(1, ЧасовЗаГод);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаГод.Параметры.Установить(2, ТаблицаИтоговКалендаря[11].ДнейЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(3, ТаблицаИтоговКалендаря[11].ЧасовЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(4, ТаблицаИтоговКалендаря[11].ВыходныхЗаГодПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаГод);

Если УчитыватьНочныеЧасы Тогда
ОбластьИтогиЗаГодНЧ.Параметры.Установить(0, НочныхЧасовЗаГод);
ПечатныйДокумент.Вывести(ОбластьИтогиЗаГодНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
ОбластьИтоговЗаГод = ПечатныйДокумент.НайтиТекст("Итого за год:");
СераяОбласть = ПечатныйДокумент.Область(ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево, ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево + 37);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировкиВерхнегоУровня;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьПодписи);

УниверсальныеМеханизмы.НапечататьДокумент(ПечатныйДокумент, , , "График работы " + Наименование);

КонецФункции


Ну так замените
ОбластьДанныхШапка               = Макет.ПолучитьОбласть("Шапка|Месяцы");
на
ОбластьДанныхШапка               = Макет.ПолучитьОбласть("Шапка");

gribok

Цитата: alexandr_ll от 14 авг 2019, 07:13
Цитата: gribok от 14 авг 2019, 07:04
Цитата: alexandr_ll от 14 авг 2019, 07:00
Цитата: gribok от 14 авг 2019, 06:38
Добрый день уважаемые гуру 1С.
Столкнулся с проблемой следующего характера.
Имеется стандартная печатная форма графика работ (рисунок 3)
который нужно привести как показано на рисунке 4.
Вроде бы ничего сложного нет.
Открыл макет , снял с поддержки для редактирования и понеслась - Рисунок 2.
Накидал для теста текста , сохранил, обновил и ничего не отображается
Рисунок 1
Почему?? Что я не так делаю??
Как добавить нужные мне надписи что б при формировании графика они отображались???
Я не силен в 1С сконфигурированние т.к. она досталась мне в наследство и не когда этим не занимался.
Спасибо за помощь
Уточните название вашей конфигурации.
В процедуре вывода на печать проверьте, как определена область "Шапка"
Макет.ПолучитьОбласть("Шапка")
или
Макет.ПолучитьОбласть("Шапка|Месяцы")

Процедуру печати не нашел
Есть функция
Функция Печать(КалендарьНаборЗаписей, ГодПечати = Неопределено) Экспорт

Если Не ЗначениеЗаполнено(ГодПечати) Тогда
ГодПечати = ТекущийГод;
КонецЕсли;

ВыводитьИтогиПроизводственногоКалендаря = Истина;
ДатаНачалаИнтервала    = НачалоГода(ГодПечати);
ДатаОкончанияИнтервала  = КонецГода(ГодПечати);
ДнейВИнтервале = (КонецДня(ДатаОкончанияИнтервала) - НачалоДня(ДатаНачалаИнтервала) + 1) / мДлинаСуток;
Календарь = ПолучитьДниВПроизводственномКалендаре(ДатаНачалаИнтервала, ДатаОкончанияИнтервала); // это соответствие: дата - вид дня
Если ДнейВИнтервале <> Календарь.Количество() Тогда
Сообщить("Проверьте правильность заполнения регламентированного производственного календаря на " + Формат(Год(ГодПечати), "ЧГ=5") + " год", СтатусСообщения.Важное);
ВыводитьИтогиПроизводственногоКалендаря = Ложь;
КонецЕсли;

ПечатныйДокумент = Новый ТабличныйДокумент;
ПечатныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ГрафикиРаботы";
ПечатныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ПечатныйДокумент.Автомасштаб = Истина;

Макет = ПолучитьМакет("Макет");

ОбластьДанныхШапка           = Макет.ПолучитьОбласть("Шапка|Месяцы");
ОбластьДанныхКолонтитул       = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхРасширение       = Макет.ПолучитьОбласть("Расширение");
ОбластьДанныхДень             = Макет.ПолучитьОбласть("День|Месяцы");
ОбластьДанныхДеньПоДням       = Макет.ПолучитьОбласть("День|Дни");
ОбластьДанныхНочные           = Макет.ПолучитьОбласть("НЧ");
ОбластьИтогиЗаМесяц           = Макет.ПолучитьОбласть("День|Итоги");
ОбластьИтогиЗаКвартал         = Макет.ПолучитьОбласть("Квартал");
ОбластьИтогиЗаКварталНЧ       = Макет.ПолучитьОбласть("КварталНЧ");
ОбластьИтогиЗаГод   = Макет.ПолучитьОбласть("Год");
ОбластьИтогиЗаГодНЧ   = Макет.ПолучитьОбласть("ГодНЧ");
ОбластьКалендаря   = Макет.ПолучитьОбласть("Календарь");
ОбластьПодписи   = Макет.ПолучитьОбласть("Подпись");
ОбластьРасширениеИтоги   = Макет.ПолучитьОбласть("РасширениеИтоги");

ОбластьДанныхШапка.Параметры.Наименование = "График работы '" + СокрЛП(ЭтотОбъект.Наименование) + "' на " + Формат(Год(ГодПечати), "ЧГ=5") + " год";
    ПечатныйДокумент.Вывести(ОбластьДанныхШапка);

ОбластьДнейЗаголовок = "Часов за день";
Если УчитыватьНочныеЧасы Тогда
ОбластьДнейЗаголовок = ОбластьДнейЗаголовок + ", в том числе ночных";
КонецЕсли;
ОбластьДанныхКолонтитул.Параметры.Установить(0, ОбластьДнейЗаголовок);
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);

ДнейЗаКвартал = 0;
ЧасовЗаКвартал = 0;
НочныхЧасовЗаКвартал = 0;
ДнейЗаГод = 0;
ЧасовЗагод = 0;
НочныхЧасовЗаГод = 0;
ДнейПоКалендарю = 0;
ЧасовПоКалендарю = 0;
ВыходныхПоКалендарю = 0;
ДнейЗаКварталПоКалендарю = 0;
ЧасовЗаКварталПоКалендарю = 0;
ВыходныхЗаКварталПоКалендарю = 0;
ДнейЗаГодПоКалендарю = 0;
ЧасовЗаГодПоКалендарю               = 0;
ВыходныхЗаГодПоКалендарю = 0;
Квартал  = 0;
ИндексСтраницы = 0;

Для Индекс = 0 По 11 Цикл

НомерМесяца = Индекс + 1;
НазваниеМесяца = КалендарьНаборЗаписей[Индекс].Месяц;
Дней           = КалендарьНаборЗаписей[Индекс].ДнейЗаМесяц;
Часов          = КалендарьНаборЗаписей[Индекс].ЧасовЗаМесяц;
НочныхЧасов    = КалендарьНаборЗаписей[Индекс].НочныхЧасовЗаМесяц;

Если НомерМесяца = 4 ИЛИ НомерМесяца = 7 ИЛИ НомерМесяца = 10 Тогда
ДнейЗаКвартал  = 0;
ЧасовЗаквартал = 0;
НочныхЧасовЗаКвартал = 0;
КонецЕсли;

ДнейЗаКвартал  = ДнейЗаКвартал + Дней;
ЧасовЗаКвартал = ЧасовЗаКвартал + Часов;
ДнейЗаГод = ДнейЗаГод + Дней;
ЧасовЗаГод = ЧасовЗаГод + Часов;
НочныхЧасовЗаГод = НочныхЧасовЗаГод + НочныхЧасов;

ДанныеМесяца = КалендарьНаборЗаписей[Индекс];
ОбластьДанныхДень.Параметры.Заполнить(ДанныеМесяца);

СтрокаСПодвалом = Новый Массив; // создадим массив для проверки вывода
СтрокаСПодвалом.Добавить(ОбластьДанныхДень);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКвартал);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКварталНЧ);

Если Не УниверсальныеМеханизмы.ПроверитьВыводДляТабличногоДокумента(ПечатныйДокумент, СтрокаСПодвалом) Тогда
ПечатныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);
ИндексСтраницы = ИндексСтраницы+1;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьДанныхДень);

ОбластьДанныхДеньПоДням.Параметры.Заполнить(ДанныеМесяца);
ОбластьИтогиЗаМесяц.Параметры.Заполнить(ДанныеМесяца);
Если УчитыватьНочныеЧасы Тогда
ОбластьДанныхНочные.Параметры.Заполнить(ДанныеМесяца);
НочныхЧасовЗаКвартал = НочныхЧасовЗаКвартал + НочныхЧасов;
ОбластьИтогиЗаКварталНЧ.Параметры.Установить(0, НочныхЧасовЗаКвартал);
КонецЕсли;

ДнейВМесяце = КоличествоДнейВМесяце(НомерМесяца, Год(ГодПечати));
Если ДнейВМесяце < 31 Тогда
ЛишнийДень = ДнейВМесяце + 1;
Пока ЛишнийДень <= 31 Цикл
ОбластьДанныхДеньПоДням.Параметры.Установить(ЛишнийДень-1, "X");
ОбластьДанныхНочные.Параметры.Установить(ЛишнийДень-1, "X");
ЛишнийДень = ЛишнийДень + 1;
КонецЦикла;
КонецЕсли;

//Установим параметры производственного календаря
ДанныеПроизводственногоКалендаря = ДанныеПроизводственногоКалендаря(НомерМесяца);
ТаблицаИтоговКалендаря = ДанныеПроизводственногоКалендаряЗаГод(Год(ГодПечати));

Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ТаблицаИтогов = ТаблицаИтоговКалендаря[Индекс];
ОбластьИтогиЗаМесяц.Параметры.Установить(2, ТаблицаИтоговКалендаря[Индекс].ДнейПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(3, ТаблицаИтоговКалендаря[Индекс].ЧасовПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(4, ТаблицаИтоговКалендаря[Индекс].ВыходныхПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Присоединить(ОбластьДанныхДеньПоДням);
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаМесяц);
Если УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Вывести(ОбластьДанныхНочные);
Иначе
ПечатныйДокумент.Вывести(ОбластьДанныхРасширение);
КонецЕсли;

//Выделим цветом нерабочие дни в календаре
ТекущийМесяц = НачалоМесяца(Дата(Год(ГодПечати), НомерМесяца, 1));
ДеньНеделиМесяца = ДеньНедели(НачалоМесяца(ТекущийМесяц));
Для НомерДня = 1 По 31 Цикл
Если НомерДня <= ДнейВМесяце Тогда
Если ДанныеПроизводственногоКалендаря.Количество() > 0 Тогда
ВидДня = ДанныеПроизводственногоКалендаря[НомерДня - 1].ВидДня;
Если ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник Тогда
ОбластьВыходных = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьВыходных.Верх + НомерМесяца*2 + Квартал*2- 1, ОбластьВыходных.Лево, ОбластьВыходных.Верх + НомерМесяца*2  + Квартал*2, ОбластьВыходных.Лево);
ОбластьДляЗакрашивания.ЦветФона = КрасныйЦвет;
КонецЕсли;
КонецЕсли;
Иначе
ОбластьЛишнихДней = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2 - 1, ОбластьЛишнихДней.Лево, ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2, ОбластьЛишнихДней.Лево);
ОбластьДляЗакрашивания.ЦветФона = СерыйЦвет;
КонецЕсли;
КонецЦикла;

Если НомерМесяца = 3 ИЛИ НомерМесяца = 6 ИЛИ НомерМесяца = 9 ИЛИ НомерМесяца = 12 Тогда
Квартал = НомерМесяца/3;
ОбластьИтогиЗаКвартал.Параметры.Установить(0, "" + Квартал + " квартал");
ОбластьИтогиЗаКвартал.Параметры.Установить(1, ДнейЗаКвартал);
ОбластьИтогиЗаКвартал.Параметры.Установить(2, ЧасовЗаКвартал);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаКвартал.Параметры.Установить(3, ТаблицаИтоговКалендаря[НомерМесяца-1].ДнейЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(4, ТаблицаИтоговКалендаря[НомерМесяца-1].ЧасовЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(5, ТаблицаИтоговКалендаря[НомерМесяца-1].ВыходныхЗаКварталПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаКвартал);

Если  УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаКварталНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
КонецЕсли;
КонецЕсли;

КонецЦикла;

ОбластьИтогиЗаГод.Параметры.Установить(0, ДнейЗаГод);
ОбластьИтогиЗаГод.Параметры.Установить(1, ЧасовЗаГод);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаГод.Параметры.Установить(2, ТаблицаИтоговКалендаря[11].ДнейЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(3, ТаблицаИтоговКалендаря[11].ЧасовЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(4, ТаблицаИтоговКалендаря[11].ВыходныхЗаГодПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаГод);

Если УчитыватьНочныеЧасы Тогда
ОбластьИтогиЗаГодНЧ.Параметры.Установить(0, НочныхЧасовЗаГод);
ПечатныйДокумент.Вывести(ОбластьИтогиЗаГодНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
ОбластьИтоговЗаГод = ПечатныйДокумент.НайтиТекст("Итого за год:");
СераяОбласть = ПечатныйДокумент.Область(ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево, ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево + 37);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировкиВерхнегоУровня;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьПодписи);

УниверсальныеМеханизмы.НапечататьДокумент(ПечатныйДокумент, , , "График работы " + Наименование);

КонецФункции


Ну так замените
ОбластьДанныхШапка               = Макет.ПолучитьОбласть("Шапка|Месяцы");
на
ОбластьДанныхШапка               = Макет.ПолучитьОбласть("Шапка");

Спасибо))) Вы натолкнули на мысль) я поменял и ваш ответ пришел.
Все отображается как надо.
буду ковырять дальше.
Спасибо большое
Добавлено: 14 авг 2019, 11:05


Цитата: alexandr_ll от 14 авг 2019, 07:13
Цитата: gribok от 14 авг 2019, 07:04
Цитата: alexandr_ll от 14 авг 2019, 07:00
Цитата: gribok от 14 авг 2019, 06:38
Добрый день уважаемые гуру 1С.
Столкнулся с проблемой следующего характера.
Имеется стандартная печатная форма графика работ (рисунок 3)
который нужно привести как показано на рисунке 4.
Вроде бы ничего сложного нет.
Открыл макет , снял с поддержки для редактирования и понеслась - Рисунок 2.
Накидал для теста текста , сохранил, обновил и ничего не отображается
Рисунок 1
Почему?? Что я не так делаю??
Как добавить нужные мне надписи что б при формировании графика они отображались???
Я не силен в 1С сконфигурированние т.к. она досталась мне в наследство и не когда этим не занимался.
Спасибо за помощь
Уточните название вашей конфигурации.
В процедуре вывода на печать проверьте, как определена область "Шапка"
Макет.ПолучитьОбласть("Шапка")
или
Макет.ПолучитьОбласть("Шапка|Месяцы")

Процедуру печати не нашел
Есть функция
Функция Печать(КалендарьНаборЗаписей, ГодПечати = Неопределено) Экспорт

Если Не ЗначениеЗаполнено(ГодПечати) Тогда
ГодПечати = ТекущийГод;
КонецЕсли;

ВыводитьИтогиПроизводственногоКалендаря = Истина;
ДатаНачалаИнтервала    = НачалоГода(ГодПечати);
ДатаОкончанияИнтервала  = КонецГода(ГодПечати);
ДнейВИнтервале = (КонецДня(ДатаОкончанияИнтервала) - НачалоДня(ДатаНачалаИнтервала) + 1) / мДлинаСуток;
Календарь = ПолучитьДниВПроизводственномКалендаре(ДатаНачалаИнтервала, ДатаОкончанияИнтервала); // это соответствие: дата - вид дня
Если ДнейВИнтервале <> Календарь.Количество() Тогда
Сообщить("Проверьте правильность заполнения регламентированного производственного календаря на " + Формат(Год(ГодПечати), "ЧГ=5") + " год", СтатусСообщения.Важное);
ВыводитьИтогиПроизводственногоКалендаря = Ложь;
КонецЕсли;

ПечатныйДокумент = Новый ТабличныйДокумент;
ПечатныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ГрафикиРаботы";
ПечатныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ПечатныйДокумент.Автомасштаб = Истина;

Макет = ПолучитьМакет("Макет");

ОбластьДанныхШапка           = Макет.ПолучитьОбласть("Шапка|Месяцы");
ОбластьДанныхКолонтитул       = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхРасширение       = Макет.ПолучитьОбласть("Расширение");
ОбластьДанныхДень             = Макет.ПолучитьОбласть("День|Месяцы");
ОбластьДанныхДеньПоДням       = Макет.ПолучитьОбласть("День|Дни");
ОбластьДанныхНочные           = Макет.ПолучитьОбласть("НЧ");
ОбластьИтогиЗаМесяц           = Макет.ПолучитьОбласть("День|Итоги");
ОбластьИтогиЗаКвартал         = Макет.ПолучитьОбласть("Квартал");
ОбластьИтогиЗаКварталНЧ       = Макет.ПолучитьОбласть("КварталНЧ");
ОбластьИтогиЗаГод   = Макет.ПолучитьОбласть("Год");
ОбластьИтогиЗаГодНЧ   = Макет.ПолучитьОбласть("ГодНЧ");
ОбластьКалендаря   = Макет.ПолучитьОбласть("Календарь");
ОбластьПодписи   = Макет.ПолучитьОбласть("Подпись");
ОбластьРасширениеИтоги   = Макет.ПолучитьОбласть("РасширениеИтоги");

ОбластьДанныхШапка.Параметры.Наименование = "График работы '" + СокрЛП(ЭтотОбъект.Наименование) + "' на " + Формат(Год(ГодПечати), "ЧГ=5") + " год";
    ПечатныйДокумент.Вывести(ОбластьДанныхШапка);

ОбластьДнейЗаголовок = "Часов за день";
Если УчитыватьНочныеЧасы Тогда
ОбластьДнейЗаголовок = ОбластьДнейЗаголовок + ", в том числе ночных";
КонецЕсли;
ОбластьДанныхКолонтитул.Параметры.Установить(0, ОбластьДнейЗаголовок);
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);

ДнейЗаКвартал = 0;
ЧасовЗаКвартал = 0;
НочныхЧасовЗаКвартал = 0;
ДнейЗаГод = 0;
ЧасовЗагод = 0;
НочныхЧасовЗаГод = 0;
ДнейПоКалендарю = 0;
ЧасовПоКалендарю = 0;
ВыходныхПоКалендарю = 0;
ДнейЗаКварталПоКалендарю = 0;
ЧасовЗаКварталПоКалендарю = 0;
ВыходныхЗаКварталПоКалендарю = 0;
ДнейЗаГодПоКалендарю = 0;
ЧасовЗаГодПоКалендарю               = 0;
ВыходныхЗаГодПоКалендарю = 0;
Квартал  = 0;
ИндексСтраницы = 0;

Для Индекс = 0 По 11 Цикл

НомерМесяца = Индекс + 1;
НазваниеМесяца = КалендарьНаборЗаписей[Индекс].Месяц;
Дней           = КалендарьНаборЗаписей[Индекс].ДнейЗаМесяц;
Часов          = КалендарьНаборЗаписей[Индекс].ЧасовЗаМесяц;
НочныхЧасов    = КалендарьНаборЗаписей[Индекс].НочныхЧасовЗаМесяц;

Если НомерМесяца = 4 ИЛИ НомерМесяца = 7 ИЛИ НомерМесяца = 10 Тогда
ДнейЗаКвартал  = 0;
ЧасовЗаквартал = 0;
НочныхЧасовЗаКвартал = 0;
КонецЕсли;

ДнейЗаКвартал  = ДнейЗаКвартал + Дней;
ЧасовЗаКвартал = ЧасовЗаКвартал + Часов;
ДнейЗаГод = ДнейЗаГод + Дней;
ЧасовЗаГод = ЧасовЗаГод + Часов;
НочныхЧасовЗаГод = НочныхЧасовЗаГод + НочныхЧасов;

ДанныеМесяца = КалендарьНаборЗаписей[Индекс];
ОбластьДанныхДень.Параметры.Заполнить(ДанныеМесяца);

СтрокаСПодвалом = Новый Массив; // создадим массив для проверки вывода
СтрокаСПодвалом.Добавить(ОбластьДанныхДень);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКвартал);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКварталНЧ);

Если Не УниверсальныеМеханизмы.ПроверитьВыводДляТабличногоДокумента(ПечатныйДокумент, СтрокаСПодвалом) Тогда
ПечатныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);
ИндексСтраницы = ИндексСтраницы+1;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьДанныхДень);

ОбластьДанныхДеньПоДням.Параметры.Заполнить(ДанныеМесяца);
ОбластьИтогиЗаМесяц.Параметры.Заполнить(ДанныеМесяца);
Если УчитыватьНочныеЧасы Тогда
ОбластьДанныхНочные.Параметры.Заполнить(ДанныеМесяца);
НочныхЧасовЗаКвартал = НочныхЧасовЗаКвартал + НочныхЧасов;
ОбластьИтогиЗаКварталНЧ.Параметры.Установить(0, НочныхЧасовЗаКвартал);
КонецЕсли;

ДнейВМесяце = КоличествоДнейВМесяце(НомерМесяца, Год(ГодПечати));
Если ДнейВМесяце < 31 Тогда
ЛишнийДень = ДнейВМесяце + 1;
Пока ЛишнийДень <= 31 Цикл
ОбластьДанныхДеньПоДням.Параметры.Установить(ЛишнийДень-1, "X");
ОбластьДанныхНочные.Параметры.Установить(ЛишнийДень-1, "X");
ЛишнийДень = ЛишнийДень + 1;
КонецЦикла;
КонецЕсли;

//Установим параметры производственного календаря
ДанныеПроизводственногоКалендаря = ДанныеПроизводственногоКалендаря(НомерМесяца);
ТаблицаИтоговКалендаря = ДанныеПроизводственногоКалендаряЗаГод(Год(ГодПечати));

Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ТаблицаИтогов = ТаблицаИтоговКалендаря[Индекс];
ОбластьИтогиЗаМесяц.Параметры.Установить(2, ТаблицаИтоговКалендаря[Индекс].ДнейПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(3, ТаблицаИтоговКалендаря[Индекс].ЧасовПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(4, ТаблицаИтоговКалендаря[Индекс].ВыходныхПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Присоединить(ОбластьДанныхДеньПоДням);
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаМесяц);
Если УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Вывести(ОбластьДанныхНочные);
Иначе
ПечатныйДокумент.Вывести(ОбластьДанныхРасширение);
КонецЕсли;

//Выделим цветом нерабочие дни в календаре
ТекущийМесяц = НачалоМесяца(Дата(Год(ГодПечати), НомерМесяца, 1));
ДеньНеделиМесяца = ДеньНедели(НачалоМесяца(ТекущийМесяц));
Для НомерДня = 1 По 31 Цикл
Если НомерДня <= ДнейВМесяце Тогда
Если ДанныеПроизводственногоКалендаря.Количество() > 0 Тогда
ВидДня = ДанныеПроизводственногоКалендаря[НомерДня - 1].ВидДня;
Если ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник Тогда
ОбластьВыходных = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьВыходных.Верх + НомерМесяца*2 + Квартал*2- 1, ОбластьВыходных.Лево, ОбластьВыходных.Верх + НомерМесяца*2  + Квартал*2, ОбластьВыходных.Лево);
ОбластьДляЗакрашивания.ЦветФона = КрасныйЦвет;
КонецЕсли;
КонецЕсли;
Иначе
ОбластьЛишнихДней = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2 - 1, ОбластьЛишнихДней.Лево, ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2, ОбластьЛишнихДней.Лево);
ОбластьДляЗакрашивания.ЦветФона = СерыйЦвет;
КонецЕсли;
КонецЦикла;

Если НомерМесяца = 3 ИЛИ НомерМесяца = 6 ИЛИ НомерМесяца = 9 ИЛИ НомерМесяца = 12 Тогда
Квартал = НомерМесяца/3;
ОбластьИтогиЗаКвартал.Параметры.Установить(0, "" + Квартал + " квартал");
ОбластьИтогиЗаКвартал.Параметры.Установить(1, ДнейЗаКвартал);
ОбластьИтогиЗаКвартал.Параметры.Установить(2, ЧасовЗаКвартал);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаКвартал.Параметры.Установить(3, ТаблицаИтоговКалендаря[НомерМесяца-1].ДнейЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(4, ТаблицаИтоговКалендаря[НомерМесяца-1].ЧасовЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(5, ТаблицаИтоговКалендаря[НомерМесяца-1].ВыходныхЗаКварталПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаКвартал);

Если  УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаКварталНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
КонецЕсли;
КонецЕсли;

КонецЦикла;

ОбластьИтогиЗаГод.Параметры.Установить(0, ДнейЗаГод);
ОбластьИтогиЗаГод.Параметры.Установить(1, ЧасовЗаГод);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаГод.Параметры.Установить(2, ТаблицаИтоговКалендаря[11].ДнейЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(3, ТаблицаИтоговКалендаря[11].ЧасовЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(4, ТаблицаИтоговКалендаря[11].ВыходныхЗаГодПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаГод);

Если УчитыватьНочныеЧасы Тогда
ОбластьИтогиЗаГодНЧ.Параметры.Установить(0, НочныхЧасовЗаГод);
ПечатныйДокумент.Вывести(ОбластьИтогиЗаГодНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
ОбластьИтоговЗаГод = ПечатныйДокумент.НайтиТекст("Итого за год:");
СераяОбласть = ПечатныйДокумент.Область(ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево, ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево + 37);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировкиВерхнегоУровня;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьПодписи);

УниверсальныеМеханизмы.НапечататьДокумент(ПечатныйДокумент, , , "График работы " + Наименование);

КонецФункции


Ну так замените
ОбластьДанныхШапка               = Макет.ПолучитьОбласть("Шапка|Месяцы");
на
ОбластьДанныхШапка               = Макет.ПолучитьОбласть("Шапка");


Спасибо еще раз за помощь, провозился пол дня привел форму в нужный вид - Рисунок 2.

Нужно реализовать дополнительные расчеты, не как не могу понять как и куда вставлять код.
Формулу расчета знаю
Добавил дополнительный столбец
Сделал 3 параметра (рис1)
ОтклЧасов
ОтклКвартал
ОтклГод

Нужно что б расчитывало отклонения по дням
За квартал
И итоги года
В Экселе есть формула принцев ничего сложного нет, но как ее реализовать в 1С не понимаю.



ОтклЧасов =  ЧасовПо графику -  Про.календарю. рабочих часов
ОтклКвартал = Складываем ОтклЧасов за 3 месяца
ОтклГод= складываем за 4 квартала


Прошу помощи






Добавлено: 14 авг 2019, 11:06


Код печати
Функция Печать(КалендарьНаборЗаписей, ГодПечати = Неопределено) Экспорт

Если Не ЗначениеЗаполнено(ГодПечати) Тогда
ГодПечати = ТекущийГод;
КонецЕсли;

ВыводитьИтогиПроизводственногоКалендаря = Истина;
ДатаНачалаИнтервала    = НачалоГода(ГодПечати);
ДатаОкончанияИнтервала  = КонецГода(ГодПечати);
ДнейВИнтервале = (КонецДня(ДатаОкончанияИнтервала) - НачалоДня(ДатаНачалаИнтервала) + 1) / мДлинаСуток;
Календарь = ПолучитьДниВПроизводственномКалендаре(ДатаНачалаИнтервала, ДатаОкончанияИнтервала); // это соответствие: дата - вид дня
Если ДнейВИнтервале <> Календарь.Количество() Тогда
Сообщить("Проверьте правильность заполнения регламентированного производственного календаря на " + Формат(Год(ГодПечати), "ЧГ=5") + " год", СтатусСообщения.Важное);
ВыводитьИтогиПроизводственногоКалендаря = Ложь;
КонецЕсли;

ПечатныйДокумент = Новый ТабличныйДокумент;
ПечатныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ГрафикиРаботы";
ПечатныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ПечатныйДокумент.Автомасштаб = Истина;

Макет = ПолучитьМакет("Макет");

ОбластьДанныхШапка           = Макет.ПолучитьОбласть("Шапка");

//ОТОБРАЖАЕМ ВСЕ ОБЛАСТЬ ШАПКИ ++
//++ ОбластьДанныхШапка           = Макет.ПолучитьОбласть("Шапка|Месяцы");


ОбластьДанныхКолонтитул       = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхРасширение       = Макет.ПолучитьОбласть("Расширение");
ОбластьДанныхДень             = Макет.ПолучитьОбласть("День|Месяцы");
ОбластьДанныхДеньПоДням       = Макет.ПолучитьОбласть("День|Дни");
ОбластьДанныхНочные           = Макет.ПолучитьОбласть("НЧ");
ОбластьИтогиЗаМесяц           = Макет.ПолучитьОбласть("День|Итоги");
ОбластьИтогиЗаКвартал         = Макет.ПолучитьОбласть("Квартал");
ОбластьИтогиЗаКварталНЧ       = Макет.ПолучитьОбласть("КварталНЧ");
ОбластьИтогиЗаГод   = Макет.ПолучитьОбласть("Год");
ОбластьИтогиЗаГодНЧ   = Макет.ПолучитьОбласть("ГодНЧ");
ОбластьКалендаря   = Макет.ПолучитьОбласть("Календарь");
ОбластьПодписи   = Макет.ПолучитьОбласть("Подпись");
ОбластьРасширениеИтоги   = Макет.ПолучитьОбласть("РасширениеИтоги");
//Получаем мою область ++
//ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
 

//ОбластьКалендаря.Параметры.ОтклЧасов=111;
//ПечатныйДокумент.Вывести(ОбластьКалендаря);


ОбластьДанныхШапка.Параметры.Наименование = "График работы '" + СокрЛП(ЭтотОбъект.Наименование) + "' на " + Формат(Год(ГодПечати), "ЧГ=5") + " год";
    ПечатныйДокумент.Вывести(ОбластьДанныхШапка);



ОбластьДнейЗаголовок = "Часов за день";
Если УчитыватьНочныеЧасы Тогда
ОбластьДнейЗаголовок = ОбластьДнейЗаголовок + ", в том числе ночных";
КонецЕсли;
ОбластьДанныхКолонтитул.Параметры.Установить(0, ОбластьДнейЗаголовок);
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);

ДнейЗаКвартал = 0;
ЧасовЗаКвартал = 0;
НочныхЧасовЗаКвартал = 0;
ДнейЗаГод = 0;
ЧасовЗагод = 0;
НочныхЧасовЗаГод = 0;
ДнейПоКалендарю = 0;
ЧасовПоКалендарю = 0;
ВыходныхПоКалендарю = 0;
ДнейЗаКварталПоКалендарю = 0;
ЧасовЗаКварталПоКалендарю = 0;
ВыходныхЗаКварталПоКалендарю = 0;
ДнейЗаГодПоКалендарю = 0;
ЧасовЗаГодПоКалендарю               = 0;
ВыходныхЗаГодПоКалендарю = 0;
Квартал  = 0;
ИндексСтраницы = 0;




Для Индекс = 0 По 11 Цикл

НомерМесяца = Индекс + 1;
НазваниеМесяца = КалендарьНаборЗаписей[Индекс].Месяц;
Дней           = КалендарьНаборЗаписей[Индекс].ДнейЗаМесяц;
Часов          = КалендарьНаборЗаписей[Индекс].ЧасовЗаМесяц;
НочныхЧасов    = КалендарьНаборЗаписей[Индекс].НочныхЧасовЗаМесяц;

Если НомерМесяца = 4 ИЛИ НомерМесяца = 7 ИЛИ НомерМесяца = 10 Тогда
ДнейЗаКвартал  = 0;
ЧасовЗаквартал = 0;
НочныхЧасовЗаКвартал = 0;
КонецЕсли;

ДнейЗаКвартал  = ДнейЗаКвартал + Дней;
ЧасовЗаКвартал = ЧасовЗаКвартал + Часов;
ДнейЗаГод = ДнейЗаГод + Дней;
ЧасовЗаГод = ЧасовЗаГод + Часов;
НочныхЧасовЗаГод = НочныхЧасовЗаГод + НочныхЧасов;

ДанныеМесяца = КалендарьНаборЗаписей[Индекс];
ОбластьДанныхДень.Параметры.Заполнить(ДанныеМесяца);






СтрокаСПодвалом = Новый Массив; // создадим массив для проверки вывода
СтрокаСПодвалом.Добавить(ОбластьДанныхДень);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКвартал);
СтрокаСПодвалом.Добавить(ОбластьИтогиЗаКварталНЧ);

Если Не УниверсальныеМеханизмы.ПроверитьВыводДляТабличногоДокумента(ПечатныйДокумент, СтрокаСПодвалом) Тогда
ПечатныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ПечатныйДокумент.Вывести(ОбластьДанныхКолонтитул);
ИндексСтраницы = ИндексСтраницы+1;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьДанныхДень);

ОбластьДанныхДеньПоДням.Параметры.Заполнить(ДанныеМесяца);
ОбластьИтогиЗаМесяц.Параметры.Заполнить(ДанныеМесяца);
Если УчитыватьНочныеЧасы Тогда
ОбластьДанныхНочные.Параметры.Заполнить(ДанныеМесяца);
НочныхЧасовЗаКвартал = НочныхЧасовЗаКвартал + НочныхЧасов;
ОбластьИтогиЗаКварталНЧ.Параметры.Установить(0, НочныхЧасовЗаКвартал);
КонецЕсли;

ДнейВМесяце = КоличествоДнейВМесяце(НомерМесяца, Год(ГодПечати));
Если ДнейВМесяце < 31 Тогда
ЛишнийДень = ДнейВМесяце + 1;
Пока ЛишнийДень <= 31 Цикл
ОбластьДанныхДеньПоДням.Параметры.Установить(ЛишнийДень-1, "X");
ОбластьДанныхНочные.Параметры.Установить(ЛишнийДень-1, "X");
ЛишнийДень = ЛишнийДень + 1;
КонецЦикла;
КонецЕсли;

//Установим параметры производственного календаря
ДанныеПроизводственногоКалендаря = ДанныеПроизводственногоКалендаря(НомерМесяца);
ТаблицаИтоговКалендаря = ДанныеПроизводственногоКалендаряЗаГод(Год(ГодПечати));

Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ТаблицаИтогов = ТаблицаИтоговКалендаря[Индекс];
ОбластьИтогиЗаМесяц.Параметры.Установить(2, ТаблицаИтоговКалендаря[Индекс].ДнейПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(3, ТаблицаИтоговКалендаря[Индекс].ЧасовПоКалендарю);
ОбластьИтогиЗаМесяц.Параметры.Установить(4, ТаблицаИтоговКалендаря[Индекс].ВыходныхПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Присоединить(ОбластьДанныхДеньПоДням);
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаМесяц);
Если УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Вывести(ОбластьДанныхНочные);
Иначе
ПечатныйДокумент.Вывести(ОбластьДанныхРасширение);
КонецЕсли;

//Выделим цветом нерабочие дни в календаре
ТекущийМесяц = НачалоМесяца(Дата(Год(ГодПечати), НомерМесяца, 1));
ДеньНеделиМесяца = ДеньНедели(НачалоМесяца(ТекущийМесяц));
Для НомерДня = 1 По 31 Цикл
Если НомерДня <= ДнейВМесяце Тогда
Если ДанныеПроизводственногоКалендаря.Количество() > 0 Тогда
ВидДня = ДанныеПроизводственногоКалендаря[НомерДня - 1].ВидДня;
Если ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота
Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник Тогда
ОбластьВыходных = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьВыходных.Верх + НомерМесяца*2 + Квартал*2- 1, ОбластьВыходных.Лево, ОбластьВыходных.Верх + НомерМесяца*2  + Квартал*2, ОбластьВыходных.Лево);
ОбластьДляЗакрашивания.ЦветФона = КрасныйЦвет;
КонецЕсли;
КонецЕсли;
Иначе
ОбластьЛишнихДней = ПечатныйДокумент.НайтиТекст(Строка(НомерДня),,,,Истина);
ОбластьДляЗакрашивания = ПечатныйДокумент.Область(ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2 - 1, ОбластьЛишнихДней.Лево, ОбластьЛишнихДней.Верх + НомерМесяца*2 + Квартал*2, ОбластьЛишнихДней.Лево);
ОбластьДляЗакрашивания.ЦветФона = СерыйЦвет;
КонецЕсли;
КонецЦикла;

Если НомерМесяца = 3 ИЛИ НомерМесяца = 6 ИЛИ НомерМесяца = 9 ИЛИ НомерМесяца = 12 Тогда
Квартал = НомерМесяца/3;
ОбластьИтогиЗаКвартал.Параметры.Установить(0, "" + Квартал + " квартал");
ОбластьИтогиЗаКвартал.Параметры.Установить(1, ДнейЗаКвартал);
ОбластьИтогиЗаКвартал.Параметры.Установить(2, ЧасовЗаКвартал);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаКвартал.Параметры.Установить(3, ТаблицаИтоговКалендаря[НомерМесяца-1].ДнейЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(4, ТаблицаИтоговКалендаря[НомерМесяца-1].ЧасовЗаКварталПоКалендарю);
ОбластьИтогиЗаКвартал.Параметры.Установить(5, ТаблицаИтоговКалендаря[НомерМесяца-1].ВыходныхЗаКварталПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаКвартал);

Если  УчитыватьНочныеЧасы Тогда
ПечатныйДокумент.Присоединить(ОбластьИтогиЗаКварталНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
КонецЕсли;
КонецЕсли;

КонецЦикла;

ОбластьИтогиЗаГод.Параметры.Установить(0, ДнейЗаГод);
ОбластьИтогиЗаГод.Параметры.Установить(1, ЧасовЗаГод);
Если ВыводитьИтогиПроизводственногоКалендаря Тогда
ОбластьИтогиЗаГод.Параметры.Установить(2, ТаблицаИтоговКалендаря[11].ДнейЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(3, ТаблицаИтоговКалендаря[11].ЧасовЗаГодПоКалендарю);
ОбластьИтогиЗаГод.Параметры.Установить(4, ТаблицаИтоговКалендаря[11].ВыходныхЗаГодПоКалендарю);
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьИтогиЗаГод);

Если УчитыватьНочныеЧасы Тогда
ОбластьИтогиЗаГодНЧ.Параметры.Установить(0, НочныхЧасовЗаГод);
ПечатныйДокумент.Вывести(ОбластьИтогиЗаГодНЧ);
Иначе
ПечатныйДокумент.Вывести(ОбластьРасширениеИтоги);
ОбластьИтоговЗаГод = ПечатныйДокумент.НайтиТекст("Итого за год:");
СераяОбласть = ПечатныйДокумент.Область(ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево, ОбластьИтоговЗаГод.Верх + 1, ОбластьИтоговЗаГод.Лево + 37);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировкиВерхнегоУровня;
КонецЕсли;

ПечатныйДокумент.Вывести(ОбластьПодписи);

УниверсальныеМеханизмы.НапечататьДокумент(ПечатныйДокумент, , , "График работы " + Наименование);



КонецФункции

gribok

Накидал такой код
//Получаем мою область ++
ОбластьДеньКалендарь   = Макет.ПолучитьОбласть("День|Календарь");
ТестПеременная1= ОбластьДеньКалендарь.Параметры.ЧасовПоКалендарю;
ТестПеременная2= ОбластьИтогиЗаМесяц.Параметры.ЧасовЗаМесяц;


    //  Сообщить(ТестПеременная1);
Если  ТестПеременная1 = NULL или
ТестПеременная1 =  Неопределено тогда
ТестПеременная1=0;
КонецЕсли;

Если  ТестПеременная2 = NULL или
ТестПеременная2 =  Неопределено тогда
ТестПеременная2=0;

КонецЕсли;
ОбластьДеньКалендарь.Параметры.ОтклЧасов=ТестПеременная2-ТестПеременная1;


Никакого результата

Похожие темы (5)

Рейтинг@Mail.ru

Поиск