Имя: Пароль:
1C
1С v8
Отбор в форме списка
,
0 maz
 
14.11.13
11:43
С виду задачка элементарная, но на деле, не соображу как правильно реализовать:)

Задача: В списке сотрудников должны отображаться только работающие, т.е. те, у которых дата увольнения либо пустая либо позже текущей даты.

Решение: Первая часть решается отбором по пустой дате. Вторая часть условием >= текущей даты. Реализовать каждую по отдельности труда не составляет, а как их совместить воедино - не догоняю...

Вопрос: Как сделать?:)

З.ы.: Пример кода первой части, второй аналогичен:

    //
    ФормаСпискаСотрудников.СправочникСписок.Отбор.ДатаУвольнения.Использование = Истина;
    ФормаСпискаСотрудников.СправочникСписок.Отбор.ДатаУвольнения.Значение = Дата(1,1,1);
    ФормаСпискаСотрудников.СправочникСписок.Отбор.ДатаУвольнения.ВидСравнения = ВидСравнения.Равно;
    //
1 Wobland
 
14.11.13
11:44
ВидСравнения.ВСписке?
2 maz
 
14.11.13
11:45
а в список тогда что?
3 Wobland
 
14.11.13
11:45
(2) нужные ссылки
4 maz
 
14.11.13
11:46
а список.. список дат? или список чего?:)
5 Wobland
 
14.11.13
11:46
(4) сотрудников
6 maz
 
14.11.13
11:47
(3)или имеется ввиду сначала определить всех нужных сотрудников (например запросом) и отбор делать по списку уже сотрудников?
7 maz
 
14.11.13
11:48
(5)Ааа, ну как-то не очень мне нравится такой вариант
8 maz
 
14.11.13
11:48
Я именно пытаюсь понять можно ли обойтись как-то отбором дат:)
9 maz
 
14.11.13
11:49
Если нет, то на крайний случай дам галку, которая по умолчанию будет снята, но при включении оной можно увидеть всех уволенных. Из двух зол, так сказать:)
10 zladenuw
 
14.11.13
12:04
(9) так если заполнить ЗначениеС и ЗначениеПо ,не ?
11 maz
 
14.11.13
12:10
(10) пробую, с ними играться, не выходит
12 zladenuw
 
14.11.13
12:10
(10) в сп написано что можно применять для интервала. у тебя как раз и есть интервал, где пустая дата и текущая дата
13 zladenuw
 
14.11.13
12:11
вид сравнение наверное надо выбрать

ВидСравнения (ComparisonType)
Интервал (Interval)
Описание:

Сравниваемое значение лежит в заданном интервале, не включая границы интервала
14 Wobland
 
14.11.13
12:19
(13) у него один интервал плюс одно значение
15 Wobland
 
14.11.13
12:20
(14) сторно
каковы границы интервала?
16 zladenuw
 
14.11.13
12:21
(14) то есть +1 ? он же написал пустая дата и текущая.
17 kochurovg
 
14.11.13
12:28
Попробуй добавить группу отбора как-то так :    

        Список.Отбор.Элементы.Очистить();
    Если НаДату>Дата(1,1,1) Тогда
        ГрО = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
        ГрО.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
        
        ЭлО = ГрО.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлО.ЛевоеЗначение     = Новый ПолеКомпоновкиДанных("ДатаДействия");
        ЭлО.ВидСравнения     = ВидСравненияКомпоновкиДанных.Больше;
        ЭлО.ПравоеЗначение     = НаДату;
        ЭлО.Использование    = Истина;
        
        ЭлО = ГрО.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлО.ЛевоеЗначение     = Новый ПолеКомпоновкиДанных("ДатаДействия");
        ЭлО.ВидСравнения     = ВидСравненияКомпоновкиДанных.Равно;
        ЭлО.ПравоеЗначение     = Дата(1,1,1);
        ЭлО.Использование    = Истина;
    КонецЕсли;
18 Wobland
 
14.11.13
12:29
(16) и дата увольнения. три значения
19 zladenuw
 
14.11.13
12:33
(18) разве :)

Задача: В списке сотрудников должны отображаться только работающие, т.е. те, у которых дата увольнения либо пустая либо позже текущей даты.
20 Wobland
 
14.11.13
12:34
(19) чой-то я совсем выпал.. как это натянут на интервал?
21 maz
 
14.11.13
12:42
:))) На интервал мне кажется всё же не натянуть
22 maz
 
14.11.13
12:43
(17) Попробую разобрать
23 zladenuw
 
14.11.13
12:45
(20)

ДокументСписок.Отбор.Дата.ВидСравнения=ВидСравнения.ИнтервалВключаяГраницы;
ДокументСписок.Отбор.Дата.ЗначениеС = Дата(1,1,1);
ДокументСписок.Отбор.Дата.ЗначениеПо = КонецДня(РабочаяДата);
ДокументСписок.Отбор.Дата.Использование = Истина;

Так не ?
24 maz
 
14.11.13
12:51
(23) Попадут все, кто не уволен и уволенные до текущей даты. Т.е. ровно наоборот.
Нужно что бы неуволенные и те, кого уволят будущей датой. Ну что бы они были видны до поры до времени, пока реально не наступит дата увольнения
25 maz
 
14.11.13
12:54
(17) это вроде только для динамического списка на управляемых формах. У меня неуправляемая. Причём совсем неуправляемая:)
26 zladenuw
 
14.11.13
13:31
тогда запрос и отбор по полю код.
AdBlock убивает бесплатный контент. 1Сергей