Показано с 1 по 1 из 1
Тема: Помогите с условием
Комбинированный просмотр
-
28.07.2014, 08:57 #1
- Регистрация
- 16.10.2011
- Сообщений
- 237
- Сказал(а) спасибо
- 441
- Поблагодарили 236 раз(а) в 79 сообщениях
Помогите с условием
Помогите пжл разобраться с условием не выполняется если выходной и нет отработанных часов то "в"
вместо ставит Х\З.
вот текст:
Функция СформироватьТ13()
ВыборкаПоРаботнику=Получи� �ьВыборкуДляТ13();
Макет = ПолучитьМакет("Т13");
ДокументРезультат = Новый ТабличныйДокумент;
ДокументРезультат.Ориента� �ияСтраницы = ОриентацияСтраницы.Ландша� �т;
ВидыВремениЗаДень = Новый Соответствие;
ПредыдущаяДата = 0;
ОбластьДанныхШапка = Макет.ПолучитьОбласть("Шап� �а");
ОбластьДанныхКолонтитул = Макет.ПолучитьОбласть("Кол� �нтитул");
ОбластьДанныхСтрока = Макет.ПолучитьОбласть("Стр� �ка");
ОбластьДанныхПодвал = Макет.ПолучитьОбласть("Под� �ал");
ПараметровВстроке = ОбластьДанныхСтрока.Парам� �тры.Количество();
КоличествоЭлементовВыборк и=ВыборкаПоРаботнику.Колич ество();
//Индикатор=скдРаботаСОтчет� �ми.ПолучитьИндикаторВыпол нения(0,КоличествоЭлементо� �Выборки,"Вывод формы Т13");
Пока ВыборкаПоРаботнику.Следую� �ийПоЗначениюПоля("Месяц") Цикл
ОбластьДанныхШапка.Параме� �ры.ДатаНач = НачалоМесяца(ВыборкаПоРаб� �тнику.Месяц);
ОбластьДанныхШапка.Параме� �ры.ДатаКон = КонецМесяца(ВыборкаПоРабо� �нику.Месяц);
//Пока ВыборкаПоРаботнику.Следую� �ийПоЗначениюПоля("Организ� �ция") Цикл
//
// Пока ВыборкаПоРаботнику.Следую� �ийПоЗначениюПоля("Подразд� �лениеОрганизации") Цикл
Если ДокументРезультат.ВысотаТ� �блицы > 0 Тогда
ДокументРезультат.Вывести� �оризонтальныйРазделитель� �траниц();
КонецЕсли;
НомерПП = 0;
ОбластьДанныхШапка.Параме� �ры.Заполнить(ВыборкаПоРаб� �тнику);
ОбластьДанныхШапка.Параме� �ры.ИмяОрганизации = СОКРЛП(ВыборкаПоРаботнику. Организация.Наименование);
ОбластьДанныхШапка.Параме� �ры.ИмяПодразделения = СОКРЛП(ВыборкаПоРаботнику. ПодразделениеОрганизации.� �аименование);
ОбластьДанныхПодвал.Парам� �тры.Заполнить(ВыборкаПоРа� �отнику);
ДокументРезультат.Вывести( ОбластьДанныхШапка);
ДокументРезультат.Вывести( ОбластьДанныхКолонтитул);
//Пока ВыборкаПоРаботнику.Следую� �ийПоЗначениюПоля("Сотрудн� �кНаименование") Цикл
Пока ВыборкаПоРаботнику.Следую� �ийПоЗначениюПоля("Сотрудн� �к") Цикл
НомерПП = НомерПП + 1;
ДниПерваяПоловина = 0;
ЧасыПерваяПоловина = 0;
ДниВтораяПоловина = 0;
ЧасыВтораяПоловина = 0;
ДнейНеявки = 0;
ЧасовНеявки = 0;
Для Сч = 1 По ПараметровВстроке Цикл
ОбластьДанныхСтрока.Парам� �тры.Установить(Сч - 1,"");
КонецЦикла;
ОбластьДанныхСтрока.Парам� �тры.НомерПП = НомерПП;
ОбластьДанныхСтрока.Парам� �тры.Работник = СокрП(ВыборкаПоРаботнику.С отрудник.Наименование) + ", " + Символы.ПС + ВыборкаПоРаботнику.Должно� �ть;
ОбластьДанныхСтрока.Парам� �тры.ТабельныйНомер = ВыборкаПоРаботнику.Сотруд� �ик.Код;
ОбластьДанныхСтрока.Парам� �тры.Заполнить(ВыборкаПоРа� �отнику);
Пока ВыборкаПоРаботнику.Следую� �ийПоЗначениюПоля("Период") Цикл
СимволДня = "Я";
ОтработаноЧасовЗаДень = 0; ////был 0
ОтработаноЧасовЗаДеньСтр = "";
НомерДня = Строка(День(ВыборкаПоРабот нику.Период));
ПерваяПоловина = День(ВыборкаПоРаботнику.Пе риод) <= 15;
УчитыватьВыходнойДень = Истина;
Пока ВыборкаПоРаботнику.Следую� �ий() Цикл
//скдРаботаСОтчетами.Добави� �ьЗначениеИндикатора(Индик атор,1);
Если НЕ ПредыдущаяДата = ВыборкаПоРаботнику.Период Тогда
// Очищаем соответствие
ВидыВремениЗаДень.Очистит� �();
КонецЕсли;
//Если ВыборкаПоРаботнику.Норма = 0 Тогда
//ОтработаноЧасовЗаДень = 0;
//ОтработаноЧасовЗаДеньСтр = "";
//СимволДня = "В";
//Иначе
Если ВыборкаПоРаботнику.Норма = 0 Тогда
ОтработаноЧасовЗаДень = "";
ОтработаноЧасовЗаДеньСтр = "";
СимволДня = "В";
ИначеЕсли ВыборкаПоРаботнику.Норма = 0 Тогда
ОтработаноЧасовЗаДень = 0;
ОтработаноЧасовЗаДеньСтр = "";
СимволДня = "В";
ИначеЕсли ВыборкаПоРаботнику.Норма <> 0 Тогда
ОтработаноЧасовЗаДень = "";
ОтработаноЧасовЗаДеньСтр = "";
СимволДня = "Я";
Норма = ОтработаноЧасовЗаДень ;
КонецЕсли;
Если ВыборкаПоРаботнику.Явка = 0 Тогда
ОтработаноЧасовЗаДень = 0;
ОтработаноЧасовЗаДеньСтр = "";
СимволДня = "Х\З";
ДнейНеявки = ДнейНеявки + 1;
ЧасовНеявки = ЧасовНеявки + ВыборкаПоРаботнику.Норма;
Иначе
ОтработаноЧасовЗаДень = Число(Формат(ВыборкаПоРабо тнику.Явка,"ЧДЦ=2"));
//Если ВыборкаПоРаботнику.Вечерн� �е = NULL или ВыборкаПоРаботнику.Вечерн� �е = 0 Тогда
// Вечерние = 0;
//Иначе
// Вечерние = Число(Формат(ВыборкаПоРабо тнику.Вечерние,"ЧДЦ=2"));
//КонецЕсли;
//Если ВыборкаПоРаботнику.Ночные = NULL или ВыборкаПоРаботнику.Ночные = 0 Тогда
// Ночные = 0;
//Иначе
// Ночные = Число(Формат(ВыборкаПоРабо тнику.Ночные,"ЧДЦ=2"));
//КонецЕсли;
//Явка = ОтработаноЧасовЗаДень - Вечерние - Ночные;
Явка = ОтработаноЧасовЗаДень ;
Норма = ОтработаноЧасовЗаДень ;
//ОтработаноЧасовЗаДеньСтр = Строка(Явка) + ?(Вечерние <> 0, "/" + Строка(Вечерние), "") + ?(Ночные <> 0, "/" + Строка(Ночные), "");
ОтработаноЧасовЗаДеньСтр = Строка(Явка);
//СимволДня = "Я" + ?(Вечерние <> 0, "/В", "") + ?(Ночные <> 0, "/Н", "");
//СимволДня = "Я";
КонецЕсли;
ПредыдущаяДата = ВыборкаПоРаботнику.Период;
КонецЦикла;
ОбластьДанныхСтрока.Парам� �тры["Символ"+НомерДня] = СимволДня;
ОбластьДанныхСтрока.Парам� �тры["ДополнительноеЗначение"+Н� �мерДня] = Формат(ОтработаноЧасовЗаД� �ньСтр );
//Если ОтработаноЧасовЗаДень <> 0 Тогда
Если ПерваяПоловина Тогда
ДниПерваяПоловина = ДниПерваяПоловина + 1;
ЧасыПерваяПоловина = ЧасыПерваяПоловина + ОтработаноЧасовЗаДень
Иначе
ДниВтораяПоловина = ДниВтораяПоловина + 1;
ЧасыВтораяПоловина = ЧасыВтораяПоловина + ОтработаноЧасовЗаДень
//КонецЕсли;
КонецЕсли;
КонецЦикла;
// заполняем раздел "Отработано за"
ОбластьДанныхСтрока.Парам� �тры.ДниПерваяПоловина = ДниПерваяПоловина;
ОбластьДанныхСтрока.Парам� �тры.ЧасыПерваяПоловина = ЧасыПерваяПоловина;
ОбластьДанныхСтрока.Парам� �тры.ДниВтораяПоловина = ДниВтораяПоловина;
ОбластьДанныхСтрока.Парам� �тры.ЧасыВтораяПоловина = ЧасыВтораяПоловина;
ОбластьДанныхСтрока.Парам� �тры.ДниЗаМесяц = ДниПерваяПоловина + ДниВтораяПоловина;
ОбластьДанныхСтрока.Парам� �тры.ЧасыЗаМесяц = ЧасыПерваяПоловина + ЧасыВтораяПоловина;
// заполняем раздел "Неявки по причинам"
Если ДнейНеявки <> 0 Тогда
ОбластьДанныхСтрока.Парам� �тры["НеявкаКод1"] = "НН";
ОбластьДанныхСтрока.Парам� �тры["НеявкаДниЧасы1"] = "" + ДнейНеявки + "(" + ЧасовНеявки + ")";
КонецЕсли;
// Проверим, уместится ли строка на странице или надо открывать новую страницу
Если Не скдРаботаСОтчетами.Провер� �тьВыводТабличногоДокумен� �а(ДокументРезультат, ОбластьДанныхСтрока) Тогда
ДокументРезультат.Вывести� �оризонтальныйРазделитель� �траниц();
ДокументРезультат.Вывести( ОбластьДанныхКолонтитул);
КонецЕсли;
ДокументРезультат.Вывести( ОбластьДанныхСтрока);
КонецЦикла;
//КонецЦикла;
Если Не скдРаботаСОтчетами.Провер� �тьВыводТабличногоДокумен� �а(ДокументРезультат, ОбластьДанныхПодвал) Тогда
ПоследняяСтрокаЛиста = ДокументРезультат.Получит� �Область(ДокументРезультат .ВысотаТаблицы - 3,,ДокументРезультат.Высота Таблицы,);
ДокументРезультат.Удалить� �бласть(ДокументРезультат.� �бласть(ДокументРезультат.� �ысотаТаблицы - 3,,ДокументРезультат.Высота Таблицы,),);
ДокументРезультат.Вывести� �оризонтальныйРазделитель� �траниц();
ДокументРезультат.Вывести( ОбластьДанныхКолонтитул);
ДокументРезультат.Вывести( ПоследняяСтрокаЛиста);
КонецЕсли;
ДокументРезультат.Вывести( ОбластьДанныхПодвал);
КонецЦикла;
//КонецЦикла;
//КонецЦикла;
//Индикатор.Закрыть();
Возврат ДокументРезультат;
КонецФункции
Похожие темы
-
Как правельно поставить запрос с условием
от DIZZID в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3Ответов: 1Последнее сообщение: 16.07.2014, 03:21 -
Помогите поднять субдомен
от mikai в разделе В помощь вебмастеруОтветов: 4Последнее сообщение: 28.02.2008, 12:38
Социальные закладки