Имя: Пароль:
1C
1С v8
Возможно ли сделать отбор в форме списка док? Поле - не реквизит документа.
0 Босечка
 
29.03.17
11:49
Возможно ли сделать отбор в форме списка док? Поле - не является реквизитом документа. Заполняется с помощью запроса.
1 Босечка
 
29.03.17
11:54
Заполняется поле так:
мДок = Новый Массив;
соотв = Новый Соответствие;

Для каждого Оформление Из ОформленияСтрок Цикл
  мДок.Добавить(Оформление.ДанныеСтроки.Ссылка);
  соотв[Оформление.ДанныеСтроки.Ссылка] = Оформление;
КонецЦикла;

Запрос= новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
|    ОригиналыДокументов.Документ
|ИЗ
|    Справочник.ОригиналыДокументов КАК ОригиналыДокументов
|ГДЕ
|    ОригиналыДокументов.Документ В(&ТекДок)
|    И ОригиналыДокументов.Оригинал";
Запрос.УстановитьПараметр("ТекДок", мДок);

выб = Запрос.Выполнить().Выбрать();
Пока выб.Следующий() Цикл
  соотв[выб.Документ].Ячейки.НовыйОригинал.УстановитьФлажок(Истина);
соотв[выб.Документ].Ячейки.НовыйОригинал.ЦветТекста= Новый Цвет(0,0,255) ;  
КонецЦикла;
2 1dvd
 
29.03.17
11:54
в динсписке можно
3 catena
 
29.03.17
11:55
Динамическим списком решается штатно.
4 FIXXXL
 
29.03.17
12:04
(0) можно и без дин.списка
выбрать ссылки документов удовлетворяющих условию и наложить отбор Ссылка ВСписке МассивСсылок
5 Босечка
 
29.03.17
12:10
(4) Спасибо, попробую.
6 catena
 
29.03.17
12:15
(4)Ой, как тормозить будет...
7 FIXXXL
 
29.03.17
12:23
(6) не исключено
зависит от объема данных
8 Босечка
 
29.03.17
12:26
Так можно писать?
    ЭтаФорма.ДокументСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
9 1dvd
 
29.03.17
12:27
(8) я не против
10 FIXXXL
 
29.03.17
12:39
(8) ***.Использование не забудь :)
11 Босечка
 
29.03.17
12:48
мДок = Новый Массив;
соотв = Новый Соответствие;

Для каждого Оформление Из ОформленияСтрок Цикл
  мДок.Добавить(Оформление.ДанныеСтроки.Ссылка);
  соотв[Оформление.ДанныеСтроки.Ссылка] = Оформление;
КонецЦикла;

Запрос= новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
|    ОригиналыДокументов.Документ
|ИЗ
|    Справочник.ОригиналыДокументов КАК ОригиналыДокументов
|ГДЕ
|    ОригиналыДокументов.Документ В(&ТекДок)
|    И ОригиналыДокументов.Оригинал";
Запрос.УстановитьПараметр("ТекДок", мДок);

На оформление строк ругается. Как сделать запрос без оформления строк?
12 FIXXXL
 
29.03.17
13:42
(11) это код для чего?
13 Босечка
 
29.03.17
14:53
У меня все уже получилось
        СписокДокРеал= новый списокЗначений;
        Построитель = Новый ПостроительЗапроса;
        Источник = Новый ОписаниеИсточникаДанных;
        Источник.ИсточникДанных = ДокументСписок;
        Построитель.ИсточникДанных = Источник;
        Построитель.Выполнить();
        ТаблицаДокументов = Построитель.Результат.Выгрузить();
        МасДок = ТаблицаДокументов.ВыгрузитьКолонку("Ссылка");
        СписокДокРеал.ЗагрузитьЗначения(МасДок);
        
        
        
        Запрос= новый Запрос;
        Запрос.Текст=
        "ВЫБРАТЬ
        |    ОригиналыДокументов.Документ
        |ИЗ
        |    Справочник.ОригиналыДокументов КАК ОригиналыДокументов
        |ГДЕ
        |    ОригиналыДокументов.Документ В(&ТекДок)";
        Запрос.УстановитьПараметр("ТекДок", СписокДокРеал);
        
        СписокДокОриг= новый списокЗначений;
        ТЗ=Запрос.Выполнить().Выгрузить();
        Мас = ТЗ.ВыгрузитьКолонку("Документ");
        
        СписокДокОриг.ЗагрузитьЗначения(Мас);
        ЭтаФорма.ДокументСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
        ЭтаФорма.ДокументСписок.Отбор.Ссылка.Значение = СписокДокОриг;
        ЭтаФорма.ДокументСписок.Отбор.Ссылка.Использование = Истина;