Имя: Пароль:
1C
1С v8
v8: Помогите с циклом
,
0 Tumakota
 
28.01.13
12:57
Заказ = Новый ПостроительОтчета;
   Заказ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок);
   Выборка = Заказ.Результат.Выгрузить();
  Для каждого Строка из Выборка цикл
   //Данные = ЭтаФорма.ЭлементыФормы.Список.ТекущиеДанные;

   ЧислоДней = (КонецДня(Строка.ДатаПоступления) - КонецДня(Строка.Дата))/(60*60*24);
   ОткрытиеЗаказа =Число( (КонецДня(ТекущаяДата()) - КонецДня(Строка.ДатаПоступления))/(60*60*24));
       Если ЧислоДней = 1 или ЧислоДней = 2 или ЧислоДней = 3 тогда
                 Если ОткрытиеЗаказа = 1 тогда
                 ОформлениеСтроки.ЦветФона     = WebЦвета.Красный;
                 КонецЕсли;
       ИначеЕсли  ЧислоДней = 4 или ЧислоДней = 5 или ЧислоДней = 6 или ЧислоДней = 7 тогда
               Если ОткрытиеЗаказа = 2 тогда
                 ОформлениеСтроки.ЦветФона     = WebЦвета.Красный;
               КонецЕсли;
       Иначеесли  ЧислоДней = 8 или ЧислоДней = 9 или ЧислоДней = 10 или ЧислоДней = 11 или ЧислоДней = 12 или ЧислоДней = 13 или ЧислоДней = 14 тогда
                 Если ОткрытиеЗаказа = 4 тогда
                 ОформлениеСтроки.ЦветФона     = WebЦвета.Красный;
               КонецЕсли;        
       ИначеЕсли  ЧислоДней > 14 тогда
                 Если ОткрытиеЗаказа = 5 тогда
                 ОформлениеСтроки.ЦветФона     = WebЦвета.Бежевый;
               КонецЕсли;
       КонецЕсли;

   КонецЦикла;

Можете конечно по критиковать, но у меня вот такая вот проблема, в форме списка документа, пытаюсь покрасить определенные строки с Заказами, он мне красит полностью все, хотя по циклу не разу не доходит до покраски строки, скажите где я накосячил:)
1 samozvanec
 
28.01.13
12:58
где запрос-то?

где все это пишешь? при выводе строки?
2 Cube
 
28.01.13
12:59
Говоришь "v8: Помощь с запросом"??? И где запрос?
3 Tumakota
 
28.01.13
12:59
(1)Да при выводе строки, ой сорри там надо запрос на цикл поменять
4 Tumakota
 
28.01.13
12:59
Исправьте запрос на цикл, кто может ошибся
5 vicof
 
28.01.13
13:00
Мож покраска идет в другой процедуре?
6 Tumakota
 
28.01.13
13:00
(5) в другой не где не прописывал
7 Жан Пердежон
 
28.01.13
13:00
(2) как где, ты его сейчас напишешь)
8 samozvanec
 
28.01.13
13:01
(0) условие канеш варварское... прям не доходит до покраски?
9 pessok
 
28.01.13
13:01
(7) ололо!))0
10 Cube
 
28.01.13
13:02
(7) А, вононоче, Михалыч! (с) :D
11 Шапокляк
 
28.01.13
13:08
(3) Ты для вычисления цвета фона в каждой строке пробегаешься циклом по всему списку. Это как-то нелогично.
12 Tumakota
 
28.01.13
13:19
(0) Ну доходит до покраски в самом конце там пару документов, а остальные не попадают в условие но серовно красятся
13 Tumakota
 
28.01.13
13:22
(11) Ну я буду благодарен если подскажешь как полегче сделать
14 Cube
 
28.01.13
13:27
(13) Так:

Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   
   ЧислоДней = (КонецДня(ДанныеСтроки.ДатаПоступления) - КонецДня(ДанныеСтроки.Дата))/(60*60*24);
   ОткрытиеЗаказа = Число((КонецДня(ТекущаяДата()) - КонецДня(ДанныеСтроки.ДатаПоступления))/(60*60*24));
   Если ЧислоДней = 1 или ЧислоДней = 2 или ЧислоДней = 3 тогда
       Если ОткрытиеЗаказа = 1 тогда
           ОформлениеСтроки.ЦветФона     = WebЦвета.Красный;
       КонецЕсли;
   ИначеЕсли  ЧислоДней = 4 или ЧислоДней = 5 или ЧислоДней = 6 или ЧислоДней = 7 тогда
       Если ОткрытиеЗаказа = 2 тогда
           ОформлениеСтроки.ЦветФона     = WebЦвета.Красный;
       КонецЕсли;
   Иначеесли  ЧислоДней = 8 или ЧислоДней = 9 или ЧислоДней = 10 или ЧислоДней = 11 или ЧислоДней = 12 или ЧислоДней = 13 или ЧислоДней = 14 тогда
       Если ОткрытиеЗаказа = 4 тогда
           ОформлениеСтроки.ЦветФона     = WebЦвета.Красный;
       КонецЕсли;        
   ИначеЕсли  ЧислоДней > 14 тогда
       Если ОткрытиеЗаказа = 5 тогда
           ОформлениеСтроки.ЦветФона     = WebЦвета.Бежевый;
       КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры //ДокументСписокПриВыводеСтроки()
15 pessok
 
28.01.13
13:31
Иначеесли  ЧислоДней = 8 или ЧислоДней = 9 или ЧислоДней = 10 или ЧислоДней = 11 или ЧислоДней = 12 или ЧислоДней = 13 или ЧислоДней = 14 тогда

ЧислоДней >= 8 И ЧислоДней <= 14 хотя бы... а то читать невозможно
16 Шапокляк
 
28.01.13
13:35
Тогда уж Если ЧислоДней<=3 Тогда
...
ИначеЕсли ЧислоДней<=8 Тогда
....
ИначеЕсли ЧислоДней<=14 Тогда
17 Cube
 
28.01.13
13:36
(14) Кстати, там, кажется, надо писать не ДанныеСтроки.ДатаПоступления, а ДанныеСтроки.Ссылка.ДатаПоступления...