Поле календаря на форме

1. PatrickX3 19.07.14 19:54 Сейчас в теме
Здравствуйте. На форме есть поле календаря и динамический список.
У меня 2 вопроса:
1) можно ли, не нарушая отбора, как-то установить текущей определенную строку в этом списке?
2) и как можно установить в календаре выделенную дату?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PatrickX3 19.07.14 23:18 Сейчас в теме
3. platon_ 10 21.07.14 12:32 Сейчас в теме
Не совсем понятно что именно не получается у вас.

1. Что мешает обратиться к текущему списку и установить в нем основную строку.
2. Передаёте ему нужную дату и вызываете процедуру ПриИзменении для этого элемента формы.
4. PatrickX3 21.07.14 15:42 Сейчас в теме
(3) platon_,
1) чтобы установить текущую строку, а как мне узнать номер нужной строки в динамическом списке?
2) для календаря не получается выделить дату
5. platon_ 10 21.07.14 15:45 Сейчас в теме
(4) PatrickX3,
давайте по порядку. 1. зачем вам текущая строка? по всей логике это первая строка в списке.
2. Что значит выделить?

P.S. Правильно заданный вопрос - половина ответа.
6. IvanBoychuk123 10 21.07.14 15:47 Сейчас в теме
(4) PatrickX3, ключем строки динамического списка является не номер строки, а ссылка. Если у вас основная таблица это Справочник.Номенклатура то в текущую строку просто передайте ссылку на эту позицию номенклатуры

P.S. Интерфейс управляемый?
7. PatrickX3 21.07.14 16:36 Сейчас в теме
IvanBoychuk123 , управляемый. Ссылку могу через запрос получить, а перебрать из списка никак нельзя?
platon_, с первым уже вроде разобрались. По второму выделить - установить курсор на дату.
8. PatrickX3 21.07.14 16:36 Сейчас в теме
Интерфейс управляемый.
9. platon_ 10 21.07.14 18:11 Сейчас в теме
(8) PatrickX3, вот в эту сторону гляньте.
&НаКлиенте
Процедура КалендарьДатаПриВыводеПериода(Элемент, ОформлениеПериода)
	Для Каждого ТекДата Из ОформлениеПериода.Даты Цикл
		Если ТекДата.Дата = ДатаУстановить Тогда
			ТекДата.ЦветФона = Новый Цвет(83,106,194);
			ТекДата.ЦветТекста = Новый Цвет(255,255,255);
		КонецЕсли; 
	КонецЦикла;
КонецПроцедуры
Показать
ybatiaev; +1 Ответить
10. PatrickX3 21.07.14 21:23 Сейчас в теме
(9) platon_, эту процедура у меня есть, но она срабатывает только при пролистывании календаря, и это не то, что мне было нужно.
Все оказалось проще - нашел в процедуре КалендарьПриИзменении реквизит ВыделенныеДаты, и добавил туда свою.
11. 7OH 70 06.05.20 16:23 Сейчас в теме
(10) Вас удалось сделать так, чтобы она ещё и проскролилась до выделенной ?
12. tainity 23.03.22 22:11 Сейчас в теме
(11) Потратила 3 часа, чтобы разобраться. Поиски ничего не дали. Поэтому пришлось шаманить. Вот мой вариант костылей:

Элементы.Календарь.НачалоПериодаОтображения = НачалоМесяца(ТекущийПериод.ДатаНачала);
Элементы.Календарь.КонецПериодаОтображения = КонецМесяца(ТекущийПериод.ДатаОкончания); 
Элементы.Календарь.НачалоПериодаОтображения = Дата(1,1,1);
Элементы.Календарь.КонецПериодаОтображения = Дата(1,1,1);
13. maxrubtsoff 19 13.09.23 13:58 Сейчас в теме
Вариант с простым изменением фона подошел хорошо
14. maxrubtsoff 19 13.09.23 14:00 Сейчас в теме
При изменении даты в календаре в другой процедуре вызываем процедуру обновления элемента календаря:
"Элементы.Календарь.Обновить()" - вызывается процедура ПриВыводеПериода календаря. В ней уже выполняем следующее:
Для Каждого ТекДата Из ОформлениеПериода.Даты Цикл
Если ТекДата.Дата >= Период.ДатаНачала И ТекДата.Дата <= Период.ДатаОкончания Тогда
ТекДата.ЦветФона = Новый Цвет(96, 96, 96);
ТекДата.ЦветТекста = Новый Цвет(218, 218, 218);
Иначе
ТекДата.ЦветФона = Новый Цвет();
ТекДата.ЦветТекста = Новый Цвет();
КонецЕсли;
КонецЦикла;
Показать
Оставьте свое сообщение

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