Имя: Пароль:
1C
1С v8
Отбор списка справочника
,
0 alexsandrinia
 
24.07.15
13:14
Может быть вопрос и раньше звучал, но спрошу ещё раз. Как открыть определённый справочник с уже заранее сделанным отбором?
1 asady
 
24.07.15
13:16
уф?
2 Azverin
 
24.07.15
13:16
(0) то есть влом поискать?
3 Дмитрий
 
24.07.15
13:17
(0) Получить форму списка, передать ей значение отбора, открыть форму
4 alexsandrinia
 
24.07.15
13:18
(1)
делаю так:
&НаКлиенте
Процедура ОборудованиеДемонтажПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    
    СтандартнаяОбработка = Ложь;
    
    ЗначениеОтбора = Новый Структура("Статус", "Подключено");
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
    ОткрытьФорму("Справочник.ХХХ.ФормаСписка", ПараметрыВыбора, Элемент);
    

    
КонецПроцедуры

но ничего не выводит
5 asady
 
24.07.15
13:23
(4)вместо формысписка формувыбора попробуй
6 alexsandrinia
 
24.07.15
13:27
(5) пробовал, так же
7 Lexey_
 
24.07.15
13:27
(4) у статуса тип какой?
8 AllJoke
 
24.07.15
13:29
Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));    
Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Автор").Поле;    
Отбор.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;
9 alexsandrinia
 
24.07.15
13:30
(7) ПеречислениеСсылка.СтатусОборудования
10 AllJoke
 
24.07.15
13:32
ЗначениеОтбора = Новый Структура("Статус", ПеречислениеСсылка.СтатусОборудования.Подключено);
11 Lexey_
 
24.07.15
13:33
(10) ЗначениеОтбора = Новый Структура("Статус", Перечисления.СтатусОборудования.Подключено);
12 alexsandrinia
 
24.07.15
13:35
(11) выходит ошибка
Переменная не определена (Перечисления)
    ЗначениеОтбора = Новый Структура("Статус", <<?>>Перечисления.СтатусОборудования.Подключено); (Проверка: Тонкий клиент)
13 Lexey_
 
24.07.15
13:39
(12) а НаКлиенте же
ЗначениеОтбора = Новый Структура("Статус", ПредопределенноеЗначение("Перечисление.СтатусОборудования.Подключено");
14 Lexey_
 
24.07.15
13:39
(13) скобку в конце забыл
15 alexsandrinia
 
24.07.15
13:48
теперь вот такая ошибка выходит
Ошибка при вызове метода контекста (ПредопределенноеЗначение)
    ЗначениеОтбора = Новый Структура("Статус", ПредопределенноеЗначение("Перечисления.СтатусОборудования.Подключено"));
по причине:
Предопределенное значение "Перечисления.СтатусОборудования.Подключено" не найдено.
16 AllJoke
 
24.07.15
13:50
НЕ "ПеречислениЯ.СтатусОборудования.Подключено", а
"ПеречислениЕ.СтатусОборудования.Подключено"
17 alexsandrinia
 
24.07.15
13:51
да, исправил. всё работает. но выходит список только после записи документа. можно сделать чтоб отображался до записи документа?
18 Lexey_
 
24.07.15
13:51
(15) сравни с (13)
19 AllJoke
 
24.07.15
13:55
(17) не понял?
20 alexsandrinia
 
24.07.15
13:56
как теперь сделать чтоб из этого полученного списка можно было выбирать и добавлять в таблицу? т.е я в табличной части нажимаю на строку - выходит список с отбором. теперь из этого списка по нажатию нужно добавить обратно в табличную часть
21 AllJoke
 
24.07.15
13:58
ОбработкаВыбора - есть такая процедура.
22 AllJoke
 
24.07.15
13:58
Выбор элементов в 1С - можно в гугле кучу инфомрации найти по этому вопросу.
23 Aprobator
 
24.07.15
14:00
...Говорю по английски со словарем.....
...Конфигурирую на 1С с мистой...
24 AllJoke
 
24.07.15
14:02
(23) +1 ))
25 Timon1405
 
24.07.15
14:02
(23) вожу вертолет в GTA
26 alexsandrinia
 
27.07.15
10:41
делаю теперь так:
&НаКлиенте
Процедура ТабличнаяЧастьПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    СтандартнаяОбработка = Ложь;
    ЗначениеОтбора = Новый Структура("Статус", ПредопределенноеЗначение("Перечисление.ХХХ.Подключено"));
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
    ВыбранныйЭлемент = ОткрытьФорму("Справочник.ХХХ.ФормаВыбора", ПараметрыВыбора, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТабличнаяЧастьОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    ЗаполнениеТабДок(ВыбранноеЗначение);
КонецПроцедуры
&НаСервере
Процедура ЗаполнениеТабДок(ВыбранноеЗначение)
    НайденныйЭлемент = Справочники.ХХХ.НайтиПоКоду(ВыбранноеЗначение).ПолучитьОбъект();
    Стр = Объект.ТабличнаяЧасть.Добавить();
    Стр.Оборудование = НайденныйЭлемент.Оборудование.Наименование;
КонецПроцедуры

заполняются 2 строки. вернее, первая строка не заполняется, а вторая заполняется. как сделать, чтоб заполнение происходило по одной строке?
27 DrShust
 
27.07.15
10:56
(0)     СтрокаТабЧасти = Элементы.ДиапазоныЯчеек.ТекущиеДанные;
    
    СтандартнаяОбработка = Ложь;
    
    ФормаВыбора = ПолучитьФорму("Справочник.МестаХранения.Форма.ФормаВыбораЯчейки");
    ЭлементОтбора = ФормаВыбора.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = Объект.МестоХранения;        
    ВыбранноеЗначение = ФормаВыбора.ОткрытьМодально();  
    СтрокаТабЧасти.ЯчейкаНачальная = ВыбранноеЗначение;

Вот так у меня написано в событии НачалоВыбора Ячейки
Основная теорема систематики: Новые системы плодят новые проблемы.