Цикл с заданным шагом

1. FKLDOZ 8 16.10.24 14:30 Сейчас в теме
Добрый день!

Подскажите как правильно сделать вывод печатной формы с шагом: нужно, что бы раскраска чередовалась каждые пять строк. Сначала 5 строк нет раскраски, затем 5 строк закрашено и тд

Пока ВыборкаЗарплата.Следующий() Цикл 	
	
			ОбластьЗарплата.Параметры.Заполнить(ВыборкаЗарплата);  
						
			Если ФлПокраски Тогда

			       ОбластьЗарплата.Область(1,2,1,4).ЦветФона=WebЦвета.Фиолетовый;
     		Иначе
		          ОбластьЗарплата.Область(1,2,1,4).ЦветФона=WebЦвета.Белый;

			КонецЕсли; 

			ФлПокраски=Не ФлПокраски;			
			ТабДок.Вывести(ОбластьЗарплата, ВыборкаЗарплата.Уровень());

КонецЦикла;
Показать

Простите, что-то у меня не получается. Не особенно с программированием.

"Библиотека стандартных подсистем", редакция 3.1 (3.1.2.264)
По теме из базы знаний
Найденные решения
2. LeeAreHim 16.10.24 14:45 Сейчас в теме
Прямо в лоб
Покрасим = 1;
Пока ВыборкаЗарплата.Следующий() Цикл

ОбластьЗарплата.Параметры.Заполнить(ВыборкаЗарплата);

Если Покрасим > 5 Тогда

ОбластьЗарплата.Область(1,2,1,4).ЦветФона=WebЦвета.Фиолетовый;
Иначе
ОбластьЗарплата.Область(1,2,1,4).ЦветФона=WebЦвета.Белый;

КонецЕсли;

ТабДок.Вывести(ОбластьЗарплата, ВыборкаЗарплата.Уровень());

Если Покрасим = 10 тогда
Покрасим = 1;
Иначе
Покрасим = Покрасим +1;
КонецЕсли;

КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. spacecraft 17.10.24 10:33 Сейчас в теме
(1) "нет раскраски" и WebЦвета.Белый это разные цвета.
2. LeeAreHim 16.10.24 14:45 Сейчас в теме
Прямо в лоб
Покрасим = 1;
Пока ВыборкаЗарплата.Следующий() Цикл

ОбластьЗарплата.Параметры.Заполнить(ВыборкаЗарплата);

Если Покрасим > 5 Тогда

ОбластьЗарплата.Область(1,2,1,4).ЦветФона=WebЦвета.Фиолетовый;
Иначе
ОбластьЗарплата.Область(1,2,1,4).ЦветФона=WebЦвета.Белый;

КонецЕсли;

ТабДок.Вывести(ОбластьЗарплата, ВыборкаЗарплата.Уровень());

Если Покрасим = 10 тогда
Покрасим = 1;
Иначе
Покрасим = Покрасим +1;
КонецЕсли;

КонецЦикла;
Показать
3. FKLDOZ 8 16.10.24 14:57 Сейчас в теме
4. jmw 61 17.10.24 04:28 Сейчас в теме
ном = 0;
Пока ВыборкаЗарплата.Следующий() Цикл
	
	ОбластьЗарплата.Параметры.Заполнить(ВыборкаЗарплата);  
	ОбластьЗарплата.Область(1,2,1,4).ЦветФона = ?(ном % 10<5, WebЦвета.Фиолетовый, WebЦвета.Белый);
	
	ФлПокраски=Не ФлПокраски;            
	ТабДок.Вывести(ОбластьЗарплата, ВыборкаЗарплата.Уровень());
	
	ном = ном + 1;
КонецЦикла;
Показать
5. starik-2005 3089 17.10.24 10:10 Сейчас в теме
Вот зачем в приличных языках есть деление на цело и проверка на четность. Было бы просто одд(строка див 5), где одд - это признак четности, див - деление нацело. Если истина - красим, если нет - не красим (ну или наоборот).
7. lmnlmn 69 17.10.24 15:54 Сейчас в теме
(5) В 1С в этом плане относительно прилично так как остаток от деления завезли. В (4) через него как раз не хуже запилии.
9. starik-2005 3089 17.10.24 16:22 Сейчас в теме
(7)
В (4) через него как раз не хуже запилиииии
Не, ну тож норм. Х%1 как раз дает нечетность в условии, но "цел( Строка / 5 ) % 1" - это как-то менее понятно. А строка % 10 < 5 - это совсем выбивает из колеиииии ))))
8. spacecraft 17.10.24 16:09 Сейчас в теме
(5)
одд(строка див 5), где одд - это признак четности, див - деление нацело

не намного сложнее: (Номер % 5 = 0)
starik-2005; +1 Ответить
10. starik-2005 3089 17.10.24 16:25 Сейчас в теме
(8) Ну Номер % 5 = 0 - это 1 0 0 0 0 1 0 0 0 0 1 - не совсем то, что топикастеру надо...
11. lmnlmn 69 17.10.24 16:26 Сейчас в теме
12. spacecraft 17.10.24 16:45 Сейчас в теме
(10) ну, это как применять.
Цвета = Новый Соответствие;
Цвета.Вставить(Истина, Новый Цвет);
Цвета.Вставить(Ложь, WebЦвета.Фиолетовый);
	
Переключатель = Истина;
АктуальныйЦвет = Цвета[Истина];
Счетчик = 0;
Пока ВыборкаЗарплата.Следующий() Цикл     
	Счетчик = Счетчик + 1;
	ОбластьЗарплата.Параметры.Заполнить(ВыборкаЗарплата);  
	ОбластьЗарплата.Область(1,2,1,4).ЦветФона = АктуальныйЦвет;
	ТабДок.Вывести(ОбластьЗарплата, ВыборкаЗарплата.Уровень());
	Если Счетчик % 5 = 0 Тогда
    	Переключатель = Не Переключатель;
		АктуальныйЦвет = Цвета[Переключатель];
	КонецЕсли;
КонецЦикла;
Показать
13. starik-2005 3089 18.10.24 10:26 Сейчас в теме
(12) Ну а в каком-нить более серьезном языке было бы так:
for (i=0; i < count; i++) field[i].color = ?odd(i div 5): green, red;
И фсе...
1С - это монструозный малопонятный гиперсвязанный вообще без какого-либо синтаксического сахара унылый код...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот