gribok
14.08.2019, 14:37
обрый день. Имеет ЗУП 2.0
Необходимо изменить стандартный график работы
Как в файле 51
Я поправил макет как нужно
Добавил доп столбец ОТКЛОНЕНИЕ от баланса (переработка/недоработка), в ней 3 параметра
ОтклЧасов
ОтклКвартал
ОтклГод
Весь график заполняется как положено
но мои параметры остаются пустые
Как их заполнить исходя из форму в файле 51
1С не когда не кодил.
Спасибо большое за помощь.
Код
Функция Печать(КалендарьНаборЗапи� �ей, ГодПечати = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(ГодПеча� �и) Тогда
ГодПечати = ТекущийГод;
КонецЕсли;
ВыводитьИтогиПроизводстве нногоКалендаря = Истина;
ДатаНачалаИнтервала = НачалоГода(ГодПечати);
ДатаОкончанияИнтервала = КонецГода(ГодПечати);
ДнейВИнтервале = (КонецДня(ДатаОкончанияИнт ервала) - НачалоДня(ДатаНачалаИнтер� �ала) + 1) / мДлинаСуток;
Календарь = ПолучитьДниВПроизводствен номКалендаре(ДатаНачалаИн� �ервала, ДатаОкончанияИнтервала); // это соответствие: дата - вид дня
Если ДнейВИнтервале <> Календарь.Количество() Тогда
Сообщить("Проверьте правильность заполнения регламентированного производственного календаря на " + Формат(Год(ГодПечати), "ЧГ=5") + " год", СтатусСообщения.Важное);
ВыводитьИтогиПроизводстве нногоКалендаря = Ложь;
КонецЕсли;
ПечатныйДокумент = Новый ТабличныйДокумент;
ПечатныйДокумент.ИмяПарам� �тровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ГрафикиРа боты";
ПечатныйДокумент.Ориентац� �яСтраницы = ОриентацияСтраницы.Ландша� �т;
ПечатныйДокумент.Автомасш� �аб = Истина;
Макет = ПолучитьМакет("Макет");
ОбластьДанныхШапка = Макет.ПолучитьОбласть("Шапка");
//ОТОБРАЖАЕМ ВСЕ ОБЛАСТЬ ШАПКИ ++
//++ ОбластьДанныхШапка = Макет.ПолучитьОбласть("Шапка|Месяцы");
ОбластьДанныхКолонтитул = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхРасширение = Макет.ПолучитьОбласть("Расширение");
ОбластьДанныхДень = Макет.ПолучитьОбласть("День|Месяцы");
ОбластьДанныхДеньПоДням = Макет.ПолучитьОбласть("День|Дни");
ОбластьДанныхНочные = Макет.ПолучитьОбласть("НЧ");
ОбластьИтогиЗаМесяц = Макет.ПолучитьОбласть("День|Итоги");
ОбластьИтогиЗаКвартал = Макет.ПолучитьОбласть("Квартал");
ОбластьИтогиЗаКварталНЧ = Макет.ПолучитьОбласть("КварталНЧ");
ОбластьИтогиЗаГод = Макет.ПолучитьОбласть("Год");
ОбластьИтогиЗаГодНЧ = Макет.ПолучитьОбласть("ГодНЧ");
ОбластьКалендаря = Макет.ПолучитьОбласть("Календарь");
ОбластьПодписи = Макет.ПолучитьОбласть("Подпись");
ОбластьРасширениеИтоги = Макет.ПолучитьОбласть("РасширениеИтоги");
//Получаем мою область ++
//ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
//ОбластьКалендаря.Параметр� �.ОтклЧасов=111;
//ПечатныйДокумент.Вывести(О бластьКалендаря);
ОбластьДанныхШапка.Параме� �ры.Наименование = "График работы '" + СокрЛП(ЭтотОбъект.Наименов ание) + "' на " + Формат(Год(ГодПечати), "ЧГ=5") + " год";
ПечатныйДокумент.Вывести(О бластьДанныхШапка);
ОбластьДнейЗаголовок = "Часов за день";
Если УчитыватьНочныеЧасы Тогда
ОбластьДнейЗаголовок = ОбластьДнейЗаголовок + ", в том числе ночных";
КонецЕсли;
ОбластьДанныхКолонтитул.П� �раметры.Установить(0, ОбластьДнейЗаголовок);
ПечатныйДокумент.Вывести(О бластьДанныхКолонтитул);
ДнейЗаКвартал = 0;
ЧасовЗаКвартал = 0;
НочныхЧасовЗаКвартал = 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);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировки� �ерхнегоУровня;
КонецЕсли;
ПечатныйДокумент.Вывести(О бластьПодписи);
УниверсальныеМеханизмы.На� �ечататьДокумент(ПечатныйД окумент, , , "График работы " + Наименование);
КонецФункции
Необходимо изменить стандартный график работы
Как в файле 51
Я поправил макет как нужно
Добавил доп столбец ОТКЛОНЕНИЕ от баланса (переработка/недоработка), в ней 3 параметра
ОтклЧасов
ОтклКвартал
ОтклГод
Весь график заполняется как положено
но мои параметры остаются пустые
Как их заполнить исходя из форму в файле 51
1С не когда не кодил.
Спасибо большое за помощь.
Код
Функция Печать(КалендарьНаборЗапи� �ей, ГодПечати = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(ГодПеча� �и) Тогда
ГодПечати = ТекущийГод;
КонецЕсли;
ВыводитьИтогиПроизводстве нногоКалендаря = Истина;
ДатаНачалаИнтервала = НачалоГода(ГодПечати);
ДатаОкончанияИнтервала = КонецГода(ГодПечати);
ДнейВИнтервале = (КонецДня(ДатаОкончанияИнт ервала) - НачалоДня(ДатаНачалаИнтер� �ала) + 1) / мДлинаСуток;
Календарь = ПолучитьДниВПроизводствен номКалендаре(ДатаНачалаИн� �ервала, ДатаОкончанияИнтервала); // это соответствие: дата - вид дня
Если ДнейВИнтервале <> Календарь.Количество() Тогда
Сообщить("Проверьте правильность заполнения регламентированного производственного календаря на " + Формат(Год(ГодПечати), "ЧГ=5") + " год", СтатусСообщения.Важное);
ВыводитьИтогиПроизводстве нногоКалендаря = Ложь;
КонецЕсли;
ПечатныйДокумент = Новый ТабличныйДокумент;
ПечатныйДокумент.ИмяПарам� �тровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ГрафикиРа боты";
ПечатныйДокумент.Ориентац� �яСтраницы = ОриентацияСтраницы.Ландша� �т;
ПечатныйДокумент.Автомасш� �аб = Истина;
Макет = ПолучитьМакет("Макет");
ОбластьДанныхШапка = Макет.ПолучитьОбласть("Шапка");
//ОТОБРАЖАЕМ ВСЕ ОБЛАСТЬ ШАПКИ ++
//++ ОбластьДанныхШапка = Макет.ПолучитьОбласть("Шапка|Месяцы");
ОбластьДанныхКолонтитул = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхРасширение = Макет.ПолучитьОбласть("Расширение");
ОбластьДанныхДень = Макет.ПолучитьОбласть("День|Месяцы");
ОбластьДанныхДеньПоДням = Макет.ПолучитьОбласть("День|Дни");
ОбластьДанныхНочные = Макет.ПолучитьОбласть("НЧ");
ОбластьИтогиЗаМесяц = Макет.ПолучитьОбласть("День|Итоги");
ОбластьИтогиЗаКвартал = Макет.ПолучитьОбласть("Квартал");
ОбластьИтогиЗаКварталНЧ = Макет.ПолучитьОбласть("КварталНЧ");
ОбластьИтогиЗаГод = Макет.ПолучитьОбласть("Год");
ОбластьИтогиЗаГодНЧ = Макет.ПолучитьОбласть("ГодНЧ");
ОбластьКалендаря = Макет.ПолучитьОбласть("Календарь");
ОбластьПодписи = Макет.ПолучитьОбласть("Подпись");
ОбластьРасширениеИтоги = Макет.ПолучитьОбласть("РасширениеИтоги");
//Получаем мою область ++
//ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
//ОбластьКалендаря.Параметр� �.ОтклЧасов=111;
//ПечатныйДокумент.Вывести(О бластьКалендаря);
ОбластьДанныхШапка.Параме� �ры.Наименование = "График работы '" + СокрЛП(ЭтотОбъект.Наименов ание) + "' на " + Формат(Год(ГодПечати), "ЧГ=5") + " год";
ПечатныйДокумент.Вывести(О бластьДанныхШапка);
ОбластьДнейЗаголовок = "Часов за день";
Если УчитыватьНочныеЧасы Тогда
ОбластьДнейЗаголовок = ОбластьДнейЗаголовок + ", в том числе ночных";
КонецЕсли;
ОбластьДанныхКолонтитул.П� �раметры.Установить(0, ОбластьДнейЗаголовок);
ПечатныйДокумент.Вывести(О бластьДанныхКолонтитул);
ДнейЗаКвартал = 0;
ЧасовЗаКвартал = 0;
НочныхЧасовЗаКвартал = 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);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировки� �ерхнегоУровня;
КонецЕсли;
ПечатныйДокумент.Вывести(О бластьПодписи);
УниверсальныеМеханизмы.На� �ечататьДокумент(ПечатныйД окумент, , , "График работы " + Наименование);
КонецФункции