Показано с 1 по 1 из 1
Тема: Помогите с условием
-
28.07.2014, 09: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, 04:21 -
Помогите поднять субдомен
от mikai в разделе В помощь вебмастеруОтветов: 4Последнее сообщение: 28.02.2008, 13:38
Социальные закладки