|
Настройки.Отбор | ☑ | ||
---|---|---|---|---|
0
pet07
20.11.24
✎
13:04
|
Не работает ЭлементОтбора.Использование = Ложь;. Отбор все равно применяется. Что я делаю не так?
&НаКлиенте Процедура УстановитьОтборПоДате() ОтборыСписка = Список.КомпоновщикНастроек.Настройки.Отбор; Для Каждого ЭлементОтбора ИЗ ОтборыСписка.Элементы Цикл ЭлементОтбора.Использование = Ложь; Если ЭлементОтбора.Представление = "НачалоПериода" Тогда Если ЗначениеЗаполнено(ОсновнойПериод.ДатаНачала) Тогда ЭлементОтбора.ПравоеЗначение = ОсновнойПериод.ДатаНачала; //ЭлементОтбора.Использование = Истина; КонецЕсли; ИначеЕсли ЭлементОтбора.Представление = "КонецПериода" Тогда Если ЗначениеЗаполнено(ОсновнойПериод.ДатаОкончания) Тогда ЭлементОтбора.ПравоеЗначение = ОсновнойПериод.ДатаОкончания; //ЭлементОтбора.Использование = Истина; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
osa1C
20.11.24
✎
07:59
|
(0) Какой результат ты хочешь получить?
|
|||
2
SleepyHead
гуру
20.11.24
✎
08:28
|
(0) Уверен, что условие срабатывает? Что в ЭлементОтбора.Представление строка "КонецПериода" а не что-то другое?
Пройдись отладчиком, проверь. |
|||
3
toypaul
гуру
20.11.24
✎
08:35
|
(0) У динамического списка есть свойство Период. Отбор по периоду (если это про него речь). Нужно делать через это свойство. И скорее всего оно и срабатывает.
|
|||
4
Ненавижу 1С
гуру
20.11.24
✎
08:35
|
Полагаться на представление в коде, это моветон. Тем более, что представление скорее всего "Конец периода" или другое.
|
|||
5
toypaul
гуру
20.11.24
✎
08:36
|
+ (3) немного не так. не у ДС, а у таблицы формы, которая с ДС связана
|
|||
6
Ненавижу 1С
гуру
20.11.24
✎
08:36
|
(3) это неправда. Нет такого свойства у динамического списка.
|
|||
7
pet07
20.11.24
✎
09:11
|
ОсновнойПериод - это я добавил в форму реквизит СтандартныйПериод. НачалоПериода (и Конец также) - это представление в ДинамическийСписок - Настройки - Отбор:
Период - Больше или Равно - ПроизвольнаяДата. Если в ОсновнойПериод в интерфейсе установить и начало и конец, то все работает. Я хочу обработать ситуации, когда не задано начало, конец или оба. |
|||
8
Ненавижу 1С
гуру
20.11.24
✎
09:35
|
ладно, представления то заданы?
|
|||
9
pet07
20.11.24
✎
10:02
|
ДинамическийСписок - Настройки - Отбор:
Период - Больше или Равно - ПроизвольнаяДата - НачалоПериода Меньше или Равно КонецПериода Я закомментировал //ЭлементОтбора.Использование = Истина; и все равно работает отбор! На это свойство 1с не обращает внимания. |
|||
10
Ненавижу 1С
гуру
20.11.24
✎
10:13
|
я понял, автор писатель, а не читатель
|
|||
11
pet07
20.11.24
✎
10:29
|
Автор - еще и фотограф! Вот скриншот из окна настроек:
https://ibb.co/s61kx4j |
|||
12
mikecool
20.11.24
✎
10:39
|
программа работает так, как ее запрограммировали...
|
|||
13
pet07
20.11.24
✎
10:54
|
Что сделать, чтобы она работала как нужно?
|
|||
14
pet07
20.11.24
✎
13:05
|
Вот так работает:
Процедура УстановитьОтборПоДате() ОтборыСписка = Список.КомпоновщикНастроек.Настройки.Отбор; Для Каждого ЭлементОтбора ИЗ ОтборыСписка.Элементы Цикл Идентификатор = ЭлементОтбора.ИдентификаторПользовательскойНастройки; ЭлементПользовательскойНастройки = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Идентификатор); ЭлементПользовательскойНастройки.Использование = Ложь; Если ЭлементОтбора.Представление = "НачалоПериода" Тогда Если ЗначениеЗаполнено(ОсновнойПериод.ДатаНачала) Тогда ЭлементОтбора.ПравоеЗначение = ОсновнойПериод.ДатаНачала; ЭлементПользовательскойНастройки.Использование = Истина; КонецЕсли; ИначеЕсли ЭлементОтбора.Представление = "КонецПериода" Тогда Если ЗначениеЗаполнено(ОсновнойПериод.ДатаОкончания) Тогда ЭлементОтбора.ПравоеЗначение = ОсновнойПериод.ДатаОкончания; ЭлементПользовательскойНастройки.Использование = Истина; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры Как вам, не чрезмерное усложнение? Можно было как-то проще? |
|||
15
Ненавижу 1С
гуру
20.11.24
✎
12:09
|
(14) пользователь может удалить элемент отбора
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |