Показано с 1 по 10 из 22
Древовидный режим
-
14.08.2019, 14:37 #1
- Регистрация
- 14.08.2019
- Сообщений
- 30
- Сказал(а) спасибо
- 3
- Поблагодарили 0 раз(а) в 0 сообщениях
ЗУП 2.0 (2.0.18.3 Доработка графика работы
обрый день. Имеет ЗУП 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); СераяОбласть.ЦветФона = ЦветаСтиля.ФонГруппировкиВерхнегоУровня; КонецЕсли; ПечатныйДокумент.Вывести(ОбластьПодписи); УниверсальныеМеханизмы.НапечататьДокумент(ПечатныйДокумент, , , "График работы " + Наименование); КонецФункции
Похожие темы
-
Графика в Vista и в XP SP2
от xastronomx в разделе Microsoft WindowsОтветов: 4Последнее сообщение: 17.08.2008, 22:35 -
3d графика унифицированной архитектуры
от radio666 в разделе ВидеосистемаОтветов: 3Последнее сообщение: 03.01.2007, 15:51
Социальные закладки