Управляемая форма иерархического справочника

1. vladshnurkoff 82 26.12.11 02:31 Сейчас в теме
Имеется иерархический справочник. Нужно вывести его в управляемой форме в виде иерархии. Выводится все подряд. ВТФ??? В управляемых формах слабоват - надо сделать как в обычном приложении.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
19. FIERYLIONS 223 27.02.13 08:02 Сейчас в теме
(1) vladshnurkoff, в открой те в конфигураторе форму списка там в свойствах выберите отображать как иерархический список
2. 1cUserAndrew 64 26.12.11 05:15 Сейчас в теме
Да вроде по умолчанию должно в иерархии выводиться...
Попробуйте меню "Все действия - Режим просмотра - Иерархический список".

Речь ведь о форме списка справочника идет? Я правильно понял?
adhocprog; +1 Ответить
3. Korona 26.12.11 09:12 Сейчас в теме
Посмотри свойства табличной части галочка дерево стоит
4. vladshnurkoff 82 26.12.11 09:12 Сейчас в теме
1cUserAndrew пишет:
Речь ведь о форме списка справочника идет? Я правильно понял?
Да, все верно.
1cUserAndrew пишет:
"Все действия - Режим просмотра - Иерархический список"
- не активные кнопки
НатаМамонт; +1 Ответить
5. 1cUserAndrew 64 26.12.11 09:49 Сейчас в теме
не активные кнопки

Такое бывает при включенном поиске по списку.
Попробуйте отключить поиск (меню Все действия - Отменить поиск).
6. 1cUserAndrew 64 26.12.11 10:01 Сейчас в теме
Такое бывает при включенном поиске по списку

Либо когда форма открывается не стандартно, а программно.

Если отключение поиска не приводит к нужному результату, значит скорее всего так оно и есть.
Т.е. разработчик (или программист, внесший изменение в конфигурацию) специально сделал, чтобы список при открытии формы отображался именно так. Может смысл в этом какой-то есть :))
7. vladshnurkoff 82 26.12.11 10:25 Сейчас в теме
Программист - я, конфа с нуля, форма формируется динамически.
8. vladshnurkoff 82 26.12.11 10:25 Сейчас в теме
могу заслать базу - она маханькая совсем
9. 1cUserAndrew 64 26.12.11 10:30 Сейчас в теме
Засылайте.
Andrew8507@mail.ru

Или здесь можно выкладывать?
10. vladshnurkoff 82 26.12.11 10:35 Сейчас в теме
11. vladshnurkoff 82 26.12.11 11:02 Сейчас в теме
Вот если кому интересно, конфигурация. Справочник "Задачи"
Прикрепленные файлы:
КОНФА.cf
12. 1cUserAndrew 64 26.12.11 11:37 Сейчас в теме
Понятно...
Ваш справочник "Задачи" - ПОДЧИНЕННЫЙ.
Подчиненные справочники в иерархии можно просматривать только в пределах владельца.
Т.е. если в списке установить отбор по владельцу, тогда можно будет настроить иерархический просмотр.
Если отбор по владельцу не установлен, все элементы располагаются списком.
TreeDogNight; METAL; jimli; KolBbl4; OzzY; abasovit; user1450085; levante90; Marliiin; myoker; Pechatnik; ilyanet; AIFrankovich; dj_serega; 1c_developer; YLioY; brains_is_off@mail.ru; nexor; Xleo777; UPSoft; keern; Vovalnu; Programmierer; Expansion; pun4er; NaAc; NittenRenegade; mjane; dxprg; zoytsa; Exorcist; vladshnurkoff; ITEkb; +33 Ответить
13. vladshnurkoff 82 26.12.11 16:49 Сейчас в теме
(12)Спасибо, просветил!
43. dj_serega 394 12.12.17 13:12 Сейчас в теме
(12) Капец... Кучу лет в 1С и впервые с такой ошибкой сталкиваюсь. Спасибо Добрый Человек.
47. jimli 10 01.12.23 17:19 Сейчас в теме
(12)
Подчиненные справочники в иерархии можно просматривать только в пределах владельца.
Т.е. если в списке установить отбор по владельцу, тогда можно будет настроить иерархический просмотр.
Если отбор по владельцу не установлен, все элементы располагаются списком.

Спасибо, этот совет актуален и в 2023 :-)
14. ViteG 5 27.02.13 05:11 Сейчас в теме
Добрый день! А вот меня наоборот интересует вопрос как сделать режим просмотра в списке у формы выбора иерархического справочника, которую я открываю программно. В параметрах формы нет "РежимПросмотра". При открытии самой формы извращаться как-то нужно? Справочник не подчиненный. Устанавливаю отбор по одному из реквизитов справочника. Вместе с отобранными элементами в списке есть еще куча групп. Из-за того, что режим просмотра "Дерево".
15. zoytsa 27.02.13 06:48 Сейчас в теме
(14) ViteG,
В параметрах формы нет "РежимПросмотра"

По идее эта настройка не у формы, а у табличной части. :-)
16. ViteG 5 27.02.13 07:27 Сейчас в теме
Да, и я смог настроить только при открытии самой формы:

//Условие
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
//КонецУсловия

С помощью команды ОткрытьФорму() хотелось бы... Но не вздюжил.
Yan_Malyakov; +1 Ответить
17. 1cUserAndrew 64 27.02.13 07:32 Сейчас в теме
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора");
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
ФормаВыбора.Открыть();
Rataev; eugensn; Obertone; +3 Ответить
18. ViteG 5 27.02.13 07:46 Сейчас в теме
(17) Такой подход не работает на управляемых формах в тонком клиенте, к сожалению. Я пробовал.
20. 1cUserAndrew 64 27.02.13 08:27 Сейчас в теме
(18)
Такой подход не работает на управляемых формах в тонком клиенте, к сожалению. Я пробовал.

Значит как-то не так пробовали.
Еще раз попробуйте.
21. ViteG 5 27.02.13 09:10 Сейчас в теме
(20) блин, работает :) Как-то я и впрямь неправильно пробовал. Спасибо, 1cUserAndrew :)
22. Kitri 96 17.04.13 17:24 Сейчас в теме
(17) 1cUserAndrew, может вы и мне поможете.
Делаю как вы показали,

ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора");
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
ФормаВыбора.Открыть();


только у меня ещё стоит отбор

ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора");
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;

СписокНом = ФормаВыбора.Список;
ЭлементОтбора = СписокНом.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Артикул");	
ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование  = Истина;
ЭлементОтбора.ПравоеЗначение = "7232";

ФормаВыбора.Открыть();
Показать


форма открывается с отображением в виде списка, но не срабатывает отбор, а без использования оформления отбор работал
23. Kitri 96 17.04.13 17:49 Сейчас в теме
(17) 1cUserAndrew, вопрос снят. Парилась 3 часа, кто бы мог подумать, что достаточно сначала открыть форму, а уж потом отбор устанавливать. Но всё равно спасибо!
24. Kitri 96 18.04.13 10:12 Сейчас в теме
(17) 1cUserAndrew, вопрос снова возник.
Тот же код, только теперь открыть форму выбора нужно модально.
Форма открывается, но отбор не работает (((
32. 71nasm 29.04.13 23:37 Сейчас в теме
(17) 1cUserAndrew, может вы и мне поможете.
Делаю как вы показали,

Код
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора");
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
ФормаВыбора.Открыть();



только у меня ещё стоит отбор

Код
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора");
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;

СписокНом = ФормаВыбора.Список;
ЭлементОтбора = СписокНом.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Артикул");   
ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование  = Истина;
ЭлементОтбора.ПравоеЗначение = "7232";

ФормаВыбора.Открыть();
Показать



форма открывается с отображением в виде списка, но не срабатывает отбор, а без использования оформления отбор работал
Изменено: Kitri - 17.04.13 17:28 (указать кому сообщение)

23. Kitri 17.04.13 17:49
(17) 1cUserAndrew, вопрос снят. Парилась 3 часа, кто бы мог подумать, что достаточно сначала открыть форму, а уж потом отбор устанавливать. Но всё равно спасибо!

24. Kitri 18.04.13 10:12
(17) 1cUserAndrew, вопрос снова возник.
Тот же код, только теперь открыть форму выбора нужно модально.
Форма открывается, но отбор не работает (((

25. Kitri 18.04.13 11:41
Нашла решение, если кому-то интересно

Код
Отбор = Новый Структура("Артикул", "7232");
ПараметрыОтбора = Новый Структура("Отбор", Отбор);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыОтбора);
ФормаВыбора.ТекущийЭлемент.Отображение = ОтображениеТаблицы.Список;   
ФормаВыбора.ОткрытьМодально();
33. glime 106 30.04.13 10:38 Сейчас в теме
(32) 71nasm, вам можно намного проще, когда сравнение на "равно", через открыть форму с передачей туда параметров через структуру, что то типа


Отбор = Новый Структура("Артикул", "7232"); 

ОткрытьФормуМодально("МояФорма", Новый Структура("Отбор,Отображение", Отбор, ОтображениеТаблицы.Список), ЭтаФорма) 
landrev; Sun_Storm; +2 Ответить
25. Kitri 96 18.04.13 11:41 Сейчас в теме
Нашла решение, если кому-то интересно

Отбор = Новый Структура("Артикул", "7232");
ПараметрыОтбора = Новый Структура("Отбор", Отбор);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыОтбора);
ФормаВыбора.ТекущийЭлемент.Отображение = ОтображениеТаблицы.Список;	
ФормаВыбора.ОткрытьМодально();
26. glime 106 25.04.13 17:19 Сейчас в теме
эти методы хороши когда у вас тип сравнения "Равно" а если надо "Содержит", то как?
27. Kitri 96 26.04.13 13:04 Сейчас в теме
(26) да, согласна... К сожалению, другого способа я пока не нашла
28. glime 106 26.04.13 13:28 Сейчас в теме
у кого нить есть идеи? не поверю что не кто не делал это раньше.
29. glime 106 26.04.13 13:32 Сейчас в теме
По идее вариант:
ФормаВыбораНоменклатуры = ПолучитьФорму(
        "Справочник.Номенклатура.ФормаВыбора",
        ,
        ЭтаФорма
        );
        
        СписокНом = ФормаВыбораНоменклатуры.Список;
        ЭлементОтбора = СписокНом.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Наименование");   
        ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Содержит;
        ЭлементОтбора.Использование  = Истина;
        ЭлементОтбора.ПравоеЗначение = СокрНаименование;
        
        
        ФормаВыбораНоменклатуры.Параметры.РежимВыбора = Истина;
        ФормаВыбораНоменклатуры.ТекущийЭлемент.Отображение = ОтображениеТаблицы.Список;
        
        Номенклатура = ФормаВыбораНоменклатуры.ОткрытьМодально();
Показать


вроде как рабочий только не срабатывает, причем при открытии "Настройки отбора" есть строка с отбором, и остается только нажать ОК, но как сделать программно, или как то можно обновить динамический список?
30. glime 106 29.04.13 09:55 Сейчас в теме
еще раз подыму, вопрос актуален, но должен же быть рецепт
31. Kitri 96 29.04.13 17:36 Сейчас в теме
Неужели никто не сталкивался с этим?
Великие УМЫ помогите!
34. glime 106 30.04.13 10:38 Сейчас в теме
на не равно или содержит есть идеии???
35. Kitri 96 30.04.13 10:50 Сейчас в теме
Для "равно" я знаю решение. Мне тоже необходимо решение для "содержит".
36. glime 106 06.05.13 08:07 Сейчас в теме
37. glime 106 07.05.13 13:05 Сейчас в теме
38. aidaphill 07.05.13 14:06 Сейчас в теме
(37) glime, как вариант устанавливать отбор в модуле той формы, которую открываешь
39. glime 106 13.05.13 11:58 Сейчас в теме
(38) aidaphill, уже писал, трогать конфу, принципиально нельзя.
40. glime 106 13.05.13 16:51 Сейчас в теме
короче я разобрался, делов было в обращение к форме без ее получения, то есть
ФормаВыбораНоменклатуры = ПолучитьФорму(
		"Справочник.Номенклатура.ФормаВыбора",
		,
		ЭтаФорма
		);
- мы не получаем форму, мы получаем ... хз что
надо писать:
ФормаВыбораНоменклатуры = ПолучитьФорму(
		"Справочник.Номенклатура.Форма.ФормаВыбора",
		,
		ЭтаФорма
		);


обратите внеимаение на .Форма.ФормаВыбора - вот
41. Kitri 96 13.05.13 17:16 Сейчас в теме
(40) glime, в таком случае отображение не обязательно использовать, то есть
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;


это уже не нужно, там и так список.
Однако, огромное спасибо за информацию.
42. VasRogov 6 22.05.15 14:20 Сейчас в теме
Господа, решение не претендует на образцовое, но тоже мучался очень долго, но сделал вот так, может кому поможет:

  СтандартнаяОбработка = Ложь;
	
	СписокКонтрагентов = ВернутьОтобранныхКонтрагентов(Объект.Организация); // здесь СписокЗначений
	
	ФормаСпр = ПолучитьФорму("Справочник.Контрагенты.ФормаВыбора",,ЭтаФорма);

	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
	ФормаСпр.Список.Отбор, // ОбластьПоискаДобавления
	"Ссылка",    // ИмяПоля
	СписокКонтрагентов, //ПравоеЗначение
	ВидСравненияКомпоновкиДанных.ВСписке, // ВидСравнения
	, // Представление
	Истина, // Использование
	РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ, //РежимОтображения
	); //ИдентификаторПользовательскойНастройки
	
	ФормаСпр.Открыть(); // Вот здесь вся фишка )))
	ФормаСпр.Элементы.Список.Отображение  = ОтображениеТаблицы.Список; // Вот здесь вся фишка )))
	ФормаСпр.Закрыть(); // Вот здесь вся фишка )))
	
	ЗначениеСпр = ФормаСпр.ОткрытьМодально();

	Если НЕ ЗначениеСпр = Неопределено Тогда 
		Объект.Контрагент = ЗначениеСпр;
	КонецЕсли;
Показать
44. ixijixi 1992 30.06.21 11:17 Сейчас в теме
В форме выбора
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Элементы.Список.Отображение = ОтображениеТаблицы.Список;
КонецПроцедуры
45. vladshnurkoff 82 30.06.21 14:43 Сейчас в теме
(44) 10 лет прошло. Спасибо)
46. ixijixi 1992 30.06.21 16:03 Сейчас в теме
(45) Да, точно, на даты не посмотрел) С юбилеем!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот