Помогите новичку разобраться с запросом, пожалуйста...

1. Yulka_Pentagramma 06.11.19 22:44 Сейчас в теме
Как в правую часть добавить условие? Требуется чтобы ВремяСдачи было в промежутке между текущая дата и текущая дата - 10 минут....


	//Красим В ЗЕЛЕНЫЙ если просрочен срок
	УОЗ = ЭтотОбъект.Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы;
	
	//если условное оформление уже задано, то удалим его и создадим заново
	Для каждого Стр Из УОЗ Цикл
		Если Стр.Представление="Отбор_просрочки" Тогда
			УОЗ.Удалить(Стр);
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	//создание условного оформления
	ЭлементУОЗ = УОЗ.Добавить();
	ЭлементУОЗ.Представление="Отбор_просрочки";
	ЭлементУОЗ.Использование = Истина;
	ЭлементУОЗ.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Бирюзовый);
	ЭлементУсловияЗел = ЭлементУОЗ.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловияЗел.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("ВремяСдачи");
	ЭлементУсловияЗел.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
	ЭлементУсловияЗел.ПравоеЗначение =  ТекущаяДата()-10*60;
Показать
Найденные решения
15. erazh 06.11.19 23:46 Сейчас в теме
(13) Первый раз вижу такой подход к программированию к УО. Хотя для новичка это нормально. Обычно УО устанавливается при открытии формы и в процессе не изменяется.

Разбираться в таком подходе ТС нет желания. Сори.

Я бы пошел по-другому: В текст запроса дин. списка ввел бы доп.колонку, которые не обязательно выводить на форму, например,
ВЫБРАТЬ
  ...
  ВремяСдачи - &ТекущаяДата КАК РазницаВремени,
  ...


И использовал "РазницаВремени" в УО. И установку параметра дин. списка "ТекущаяДата" проводил в обработчике ожидания.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. AlexandrSmith 68 06.11.19 22:48 Сейчас в теме
(1)
    ЭлементУсловияЗел.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("ВремяСдачи");
    ЭлементУсловияЗел.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    ЭлементУсловияЗел.ПравоеЗначение =  ТекущаяДата()-10*60;


Что не получается, на что ругается? Объясните немного подробнее. Тут важный момент, хотелось бы конкретную ошибку.
3. Yulka_Pentagramma 06.11.19 22:52 Сейчас в теме
у меня всё даты, что больше текущего времени закрашиваются в зеленый. А мне надо добавить условие, чтобы за 10 минут до окончания закрашивалось желтым
(2)
4. Yulka_Pentagramma 06.11.19 22:57 Сейчас в теме
в общем и целом, хотелось бы в Правое значение записать условие: Больше ТекущаяДата()-10*60 И Меньше ТекущаяДата(). Как это сделать не знаю...
(2)
5. AlexandrSmith 68 06.11.19 23:01 Сейчас в теме
(4) Попробуйте

https://forum.mista.ru/topic.php?id=559018
УстановленныйОтбор = ЭлементОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
УстановленныйОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
УстановленныйОтбор.ЛевоеЗначение = ПолеОтбораКомпоновки;
УстановленныйОтбор.ПравоеЗначение = ЕдиничныйОтбор.ЗначениеС;
УстановленныйОтбор = ЭлементОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
УстановленныйОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
УстановленныйОтбор.ЛевоеЗначение = ПолеОтбораКомпоновки;
УстановленныйОтбор.ПравоеЗначение = ЕдиничныйОтбор.ЗначениеПо;
6. Yulka_Pentagramma 06.11.19 23:05 Сейчас в теме
(5)
КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление



СПАСИБО большое!!!!

Сейчас буду пробовать
7. AlexandrSmith 68 06.11.19 23:06 Сейчас в теме
(6) Буду рад, если мой ответ будет лучшим.
11. Yulka_Pentagramma 06.11.19 23:17 Сейчас в теме
(5)
Выругалась на несоответствие типов :(
на вот эту строку
ЭлементУсловия10.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
14. Yulka_Pentagramma 06.11.19 23:37 Сейчас в теме
(5)
УстановленныйОтбор = ЭлементОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
УстановленныйОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
УстановленныйОтбор.ЛевоеЗначение = ПолеОтбораКомпоновки;
УстановленныйОтбор.ПравоеЗначение = ЕдиничныйОтбор.ЗначениеС;
УстановленныйОтбор = ЭлементОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
УстановленныйОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
УстановленныйОтбор.ЛевоеЗначение = ПолеОтбораКомпоновки;
УстановленныйОтбор.ПравоеЗначение = ЕдиничныйОтбор.ЗначениеПо;


Так тоже не вышло... :( совсем не раскрашивает список...
8. erazh 06.11.19 23:06 Сейчас в теме
(4) Если нужно, чтобы постоянно было в диапазоне от текущего времени и до текущее время минус 10 минут, то в правой части надо заменить "ТекущаяДата()" на параметр Дин.списка. А сам этот параметр обновлять в обработчике ожидания, который вызывается, например, через полсекунды. Выражение "ТекущаяДата()-10*60" - просто фиксирует момент, но не делает его динамическим.

П.С. "10*60" - не есть 10 мин.
9. Yulka_Pentagramma 06.11.19 23:10 Сейчас в теме
(8)

не понятно... я на динамическом списке подключила обработчик ожидания, каждые 30 секунд он проверяет условия...

НО. Всё что дальше чем текущее время или текущее время -10 минут закрашивается в один цвет. а мне надо в разные...
10. erazh 06.11.19 23:17 Сейчас в теме
(9)Без кода - плохо соображается.
12. Yulka_Pentagramma 06.11.19 23:19 Сейчас в теме
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ОбновленияОтображенияПросрочкиНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ПериодАвтообновления = 30;//Здесь указываем период автообновления динамического списка
	ЭтотОбъект.Элементы.Список.ПериодАвтоОбновления = ПериодАвтообновления;
	
	ПодключитьОбработчикОжидания("ОбновленияОтображенияПросрочки", ПериодАвтообновления, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновленияОтображенияПросрочки() Экспорт
	ОбновленияОтображенияПросрочкиНаСервере();
КонецПроцедуры

&НаСервере
Процедура ОбновленияОтображенияПросрочкиНаСервере()
	//Красим в КОРАЛЛОВЫЙ если просрочен срок
	УО = ЭтотОбъект.Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы;
	
	//если условное оформление уже задано, то удалим его и создадим заново
	Для каждого Стр Из УО Цикл
		Если Стр.Представление="Отбор_просрочкиКор" Тогда
			УО.Удалить(Стр);
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	//создание условного оформления
	ЭлементУО = УО.Добавить();
	ЭлементУО.Представление="Отбор_просрочкиКор";
	ЭлементУО.Использование = Истина;
	ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Коралловый);
	ЭлементУсловияЗел = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловияЗел.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("ВремяСдачи");
	ЭлементУсловияЗел.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
	ЭлементУсловияЗел.ПравоеЗначение =  ТекущаяДата();

	
	

	

	
		//Красим В ЗЕЛЕНЫЙ если срок не вышел
	УОЗ = ЭтотОбъект.Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы;
	
	//если условное оформление уже задано, то удалим его и создадим заново
	Для каждого Стр Из УОЗ Цикл
		Если Стр.Представление="Отбор_просрочки" Тогда
			УОЗ.Удалить(Стр);
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	//создание условного оформления
	ЭлементУОЗ = УОЗ.Добавить();
	ЭлементУОЗ.Представление="Отбор_просрочки";
	ЭлементУОЗ.Использование = Истина;
	ЭлементУОЗ.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Бирюзовый);
	ЭлементУсловияЗел = ЭлементУОЗ.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловияЗел.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("ВремяСдачи");
	ЭлементУсловияЗел.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
	ЭлементУсловияЗел.ПравоеЗначение =  ТекущаяДата()-10*60;

	
	
			//Красим в Желтый если осталось 10 минут
	УО10 = ЭтотОбъект.Список.КомпоновщикНастроек.ФиксированныеНастройки.УсловноеОформление.Элементы;
	
	//если условное оформление уже задано, то удалим его и создадим заново
	Для каждого Стр Из УО10 Цикл
		Если Стр.Представление="Отбор_просрочки10" Тогда
			УО10.Удалить(Стр);
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	//создание условного оформления
	ЭлементУО10 = УО10.Добавить();
	ЭлементУО10.Представление="Отбор_просрочки10";
	ЭлементУО10.Использование = Истина;
	ЭлементУО10.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый);
	ЭлементУсловия10 = ЭлементУО10.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловия10.ЛевоеЗначение =  Новый ПолеКомпоновкиДанных("ВремяСдачи");
	ЭлементУсловия10.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
	ЭлементУсловия10.ЗначениеС = ТекущаяДата()-10*60;
	ЭлементУсловия10.ЗначениеПо = ТекущаяДата();
	
	

КонецПроцедуры
Показать


(10)
13. Yulka_Pentagramma 06.11.19 23:22 Сейчас в теме
(12)

скопипастила, конечно...
15. erazh 06.11.19 23:46 Сейчас в теме
(13) Первый раз вижу такой подход к программированию к УО. Хотя для новичка это нормально. Обычно УО устанавливается при открытии формы и в процессе не изменяется.

Разбираться в таком подходе ТС нет желания. Сори.

Я бы пошел по-другому: В текст запроса дин. списка ввел бы доп.колонку, которые не обязательно выводить на форму, например,
ВЫБРАТЬ
  ...
  ВремяСдачи - &ТекущаяДата КАК РазницаВремени,
  ...


И использовал "РазницаВремени" в УО. И установку параметра дин. списка "ТекущаяДата" проводил в обработчике ожидания.
16. Yulka_Pentagramma 06.11.19 23:49 Сейчас в теме
И на том спасибо. Попробую...

(15)
апроса дин. списка ввел бы доп.колонку, которые не обязательно выводить на форму, например,
18. Yulka_Pentagramma 07.11.19 12:03 Сейчас в теме
(15)

СПАСИБО, добрый человек!!!!

Сделала)

З.Ы.: Не знала что так можно было))))
17. PiotrLoginov 07.11.19 02:01 Сейчас в теме
ТС, так что, ответ AlexandrSmith не показался Вам лучшим?
19. Yulka_Pentagramma 07.11.19 12:37 Сейчас в теме
(17)
может у меня руки не оттуда... не получилось...
20. PiotrLoginov 08.11.19 07:43 Сейчас в теме
Мда.. не понимаю, как должна работать система вознаграждений. По факту зачастую как бы ни помогали форумчане, вознаграждение не находит получателя из-за некомпетентности ТС.

Никого не хочу обидеть. Просто я за справедливость.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день