Имя: Пароль:
1C
1С v8
Выбор из справочника по группе
0 alexsandrinia
 
20.10.11
16:09
Как можно реализовать выбор определенной группы из справочника Контрагенты?
1 CTmuB
 
20.10.11
16:10
Определись
Выбор из справочника по группе
или
выбор определенной группы
2 Maxus43
 
20.10.11
16:11
выбор где?
3 alexsandrinia
 
20.10.11
16:12
(1)в справочнике контрагенты есть несколько групп. мне нужно, чтобы в документе при выборе человека открывалась определенная группа, а не весь справочник Контрагенты
4 alexsandrinia
 
20.10.11
16:22
Справочник "Контрагенты" иерархический. В одном из документов есть реквизит "Покупатели" с типом "СправочникСсылка.Контрагенты". Необходимо при начале выбора в поле "Покупатели" открыть содержимое конкретной группы справочника "Контрагенты" (пусть это будет группа "Наши"), а не всего справочника.  Возможно ли такое реализовать, если да, то каким образом?
5 askharlov
 
20.10.11
16:59
Вот так я реализовывал ту же задачу для номенклатуры (открытие определенной папки). По аналогии можно сделать и контрагентов:
+code
Процедура ТоварыНоменклатураНоваяНачалоВыбора(Элемент, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   
   ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(, Элемент);
   
   Если ЗначениеЗаполнено(Элемент.Значение) Тогда
       
       ФормаВыбора.НачальноеЗначениеВыбора = Элемент.Значение;
       
   Иначе    
       // Открываем форму выбора в папке "Нормативные материалы"
       Запрос = Новый Запрос;

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

       Запрос.УстановитьПараметр("Родитель", Справочники.Номенклатура.НайтиПоКоду("00000030969"));
       
       Результат = Запрос.Выполнить().Выбрать();

       Если Результат.Следующий() Тогда
           
           ФормаВыбора.НачальноеЗначениеВыбора = Результат.Ссылка;
           
       КонецЕсли;
       
   КонецЕсли;    
   
   ФормаВыбора.Открыть();
   
КонецПроцедуры
6 DrShad
 
20.10.11
17:01
(5) в топку такую реализацию
7 askharlov
 
20.10.11
17:04
(6) Чем плохо, прокомментируй, пож-та. Спрашиваю не ради спора, а искренне желая поучиться.
Сам вижу одно некрасивое место: "Справочники.Номенклатура.НайтиПоКоду("00000030969")". Тут возможно лучше реализовывать через констану или еще как-нибудь
8 vmv
 
20.10.11
17:23
в 8.1 возможно только через элемент отбора "ссылка", доступ к которому программый, но в отборе будет видна и доступна, если программно установить.

ВидСравнения ВСписке
Значение: Список групп, включая и группы вышестоящей иерархи.

усе - вариантов больше нет, инфа 100%
9 vmv
 
20.10.11
17:26
ну или элемент отбора "Родитель"
10 DrShad
 
20.10.11
17:49
(7) не константу а предопредленный элемент
зачем делать выборку запросом, если все равно потом только первое значение выборки используется? и т.п.
11 askharlov
 
20.10.11
18:03
(6), (10) Хорошо, спасибо, убедили. Вот второй вариант:

   СтандартнаяОбработка = Ложь;
   
   ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(, Элемент);
   
   Если ЗначениеЗаполнено(Элемент.Значение) Тогда
       
       ФормаВыбора.НачальноеЗначениеВыбора = Элемент.Значение;
       
   Иначе
       
       ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущийРодитель = Справочники.Номенклатура.НайтиПоКоду("00000030969");
       
   КонецЕсли;
   
   ФормаВыбора.Открыть();

(10) ну и понятно еще создать предопределенный элемент
12 alexsandrinia
 
21.10.11
12:53
(11) сделал так, не работает: открывается всё-равно сперва весь справочник Контрагенты, а не определённая группа.
13 alexsandrinia
 
21.10.11
13:09
ест ещё какие-нибудь варианты?
14 alexsandrinia
 
21.10.11
14:00
когда первый раз открываю - показывает справочник "контрагенты", когда повторно открываю, не закрывая окно с контрагентами - в нём появляется уже открытая группа "Дизайнеры"
15 Reset
 
21.10.11
14:35
(14) СтандартнаяОбработка=Ложь забыл поди.
16 alexsandrinia
 
21.10.11
14:46
(15) нет, не забыл. написано
17 hhhh
 
21.10.11
14:51
(14) пользователь пусть в настройке списка поставит галочку "Восстанавливать позицию", она у него постоянно и будет открываться в нужной группе. Зачем лишние телодвижения?
18 alexsandrinia
 
21.10.11
14:52
(17) а где это находится?
19 hhhh
 
21.10.11
14:56
(18) правой кнопкой мыши щелкаешь на списке и там Настройка списка
20 alexsandrinia
 
21.10.11
14:58
(19) правой кнопкой по чему щёлкать? по какому списку?
Закон Брукера: Даже маленькая практика стоит большой теории.