PDA

Просмотр полной версии : ЗУП 2.0 (2.0.18.3 Доработка графика работы



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);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировки� �ерхнегоУровня;
КонецЕсли;

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

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




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

gribok
14.08.2019, 14:41
файл экселя
https://fotolub.com/ZUNdQ

Fltr
14.08.2019, 15:34
обрый день. Имеет ЗУП 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);
СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировки� �ерхнегоУровня;
КонецЕсли;

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

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




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

У вас вывод "ОбластьКалендаря.Параметр� �.ОтклЧасов" закомментирован.

gribok
14.08.2019, 15:46
Это я сам закоментировал, проверял будит ли что либо вообще выводится
Ничего не получилось.

Мне нужно чтоб одно отнималось от другова и записывалось в мой параметр
как в файл

gribok
14.08.2019, 15:47
У вас вывод "ОбластьКалендаря.Параметр� �.ОтклЧасов" закомментирован.

Это я сам закоментировал, проверял будит ли что либо вообще выводится
Ничего не получилось.

Мне нужно чтоб одно отнималось от другова и записывалось в мой параметр
как в файл

Fltr
14.08.2019, 17:03
Это я сам закоментировал, проверял будит ли что либо вообще выводится
Ничего не получилось.

Мне нужно чтоб одно отнималось от другова и записывалось в мой параметр
как в файл

для вывода вашей колонки воспользуйтесь методом "Присоединить" , примерно как здесь https://forum.infostart.ru/forum9/topic97671/

gribok
16.08.2019, 09:00
Мне не нужно присоединять
Мне нужно Отнять часов по графику от часов по факту и записать в мой параметр

Fltr
16.08.2019, 09:48
Мне не нужно присоединять
Мне нужно Отнять часов по графику от часов по факту и записать в мой параметр

Не понимаю, в чем проблема?


ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
ОбластьКалендаря.Параметр� �.ОтклЧасов=ЧасовПоКаленда� �ю-Часов;
ПечатныйДокумент.Присоеди� �ить(ОбластьКалендаря);

gribok
16.08.2019, 09:52
Не понимаю, в чем проблема?
В том то и проблема что не знаю куда писать
и какой код именно писать
Мне нужно в мой параметр (ОтклЧасов)передать значения
ОтклЧасов=Часов по графику - Часов по произв календарю

Fltr
16.08.2019, 10:00
В том то и проблема что не знаю куда писать
и какой код именно писать
Мне нужно в мой параметр (ОтклЧасов)передать значения
ОтклЧасов=Часов по графику - Часов по произв календарю

В вашем запросе есть переменные "Часов" и "ЧасовПоКалендарю", ими и воспользуйтесь.

gribok
16.08.2019, 10:11
В вашем запросе есть переменные "Часов" и "ЧасовПоКалендарю", ими и воспользуйтесь.

Я понимаю что они там есть
как отнять одно от другова и записать в мой параметр

gribok
16.08.2019, 10:18
В вашем запросе есть переменные "Часов" и "ЧасовПоКалендарю", ими и воспользуйтесь.

Написал как то так

ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьДан� �ыхДеньПоДням.Параметры.Ча� �овЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;
ПечатныйДокумент.Вывести(О бластьДеньКалендарь);


Выдало ошибку

Справочник.ГрафикиРаботы.М одульОбъекта(693)}: Поле объекта не обнаружено (ЧасовЗаМесяц)
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьДан� �ыхДеньПоДням.Параметры.Ча� �овЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;

Fltr
16.08.2019, 10:36
Написал как то так

ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьДан� �ыхДеньПоДням.Параметры.Ча� �овЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;
ПечатныйДокумент.Вывести(О бластьДеньКалендарь);


Выдало ошибку

Справочник.ГрафикиРаботы.М одульОбъекта(693)}: Поле объекта не обнаружено (ЧасовЗаМесяц)
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьДан� �ыхДеньПоДням.Параметры.Ча� �овЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;


ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц .Параметры.ЧасовЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;

gribok
16.08.2019, 10:47
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц .Параметры.ЧасовЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;

так вот

ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц.Параметры.ЧасовЗ� �Месяц-ОбластьДеньКалендарь.Пара� �етры.ЧасовПоКалендарю;



Ошибка

{Справочник.ГрафикиРаботы.� �одульОбъекта(504)}: Преобразование значения к типу Число не может быть выполнено
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц.Параметры.ЧасовЗ� �Месяц-ОбластьДеньКалендарь.Пара� �етры.ЧасовПоКалендарю;

gribok
16.08.2019, 10:55
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц .Параметры.ЧасовЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;

????????

gribok
16.08.2019, 10:59
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц .Параметры.ЧасовЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;

Не дописано сообщение от Вас

gribok
16.08.2019, 11:00
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц .Параметры.ЧасовЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;

Не дописано сообщение от Вас

gribok
16.08.2019, 11:01
Что то сообщение цитируется и удаляется
От Вас сообщение не дописано

gribok
16.08.2019, 11:02
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц .Параметры.ЧасовЗаМесяц-ОбластьДанныхДеньПоДням.П� �раметры.ЧасовЗаМесяц;


{Справочник.ГрафикиРаботы.� �одульОбъекта(504)}: Преобразование значения к типу Число не может быть выполнено
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц.Параметры.ЧасовЗ� �Месяц-ОбластьДеньКалендарь.Пара� �етры.ЧасовПоКалендарю;



Вот такую ошибку выдало

gribok
16.08.2019, 11:05
Такую ошибку выдало

{Справочник.ГрафикиРаботы.� �одульОбъекта(504)}: Преобразование значения к типу Число не может быть выполнено
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц.Параметры.ЧасовЗ� �Месяц-ОбластьДеньКалендарь.Пара� �етры.ЧасовПоКалендарю;


По коду

ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
ОбластьДеньКалендарь.Пара� �етры.ОтклЧасов=ОбластьИто� �иЗаМесяц.Параметры.ЧасовЗ� �Месяц-ОбластьДеньКалендарь.Пара� �етры.ЧасовПоКалендарю;

gribok
16.08.2019, 11:58
Написал так
Ошибок нет
но и результата
//Получаем мою область ++
ОбластьДеньКалендарь = Макет.ПолучитьОбласть("День|Календарь");
ТестПеременная1= ОбластьДеньКалендарь.Пара� �етры.ЧасовПоКалендарю;
ТестПеременная2= ОбластьИтогиЗаМесяц.Парам� �тры.ЧасовЗаМесяц;


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

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

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


Почему?

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


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

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

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

Ничего не выводит