Имя: Пароль:
1C
1С v8
Как в управляемом приложении открыть форму починенного справочника?
,
0 Knowledge
 
20.11.12
15:30
Вопрос: Как в управляемом приложении открыть форму починенного справочника?
Именно программно, а не с помощью команды, указав её в настройках формы.
Кстати форма списка у подчиненного справочника явно не описана в конфигураторе.
Тема, наверное, заезженная, но у меня что-то не получается.
Я попробовал такой код:
Процедура ОткрытьФормуПодчинённогоСправочникаНажатие(Элемент)
   ФормаПодчиненных= ПолучитьФорму("Справочник.РасчетныеСчетаКонтрагентов.ФормаСписка",);
   Список = ФормаПодчиненных.Список;
   ЭлементыОтбора = Список.Отбор.Элементы;
   ЭлементыОтбора.Очистить();
ЭлементОтбора =ЭлементыОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
   ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ЭлементОтбора.Использование = Истина;
   ЭлементОтбора.ПравоеЗначение = ВыбКонтрАгент;
   ФормаПодчиненных.Открыть();
КонецПроцедуры// ОткрытьФормуПодчинённогоСправочникаНажатие

Здесь ВыбКонтрАгент – реквизит формы, справочник «РасчетныеСчетаКонтрагентов» подчинён справочнику «Контрагенты».

При исполнении этой процедуры открывается форма списка справочника  «РасчетныеСчетаКонтрагентов» без отбора (показаны все элементы справочника).  В меню «Все действия»- «настройка списка» на закладке «отбор» появляется активная  строка  (отмечена галочкой): «Поле»- Контрагент, «Вид сравнения»- Равно,  «Значение» - значение реквизита  «ВыбКонтрАгент».  Только в колонке «поле» Контрагент отмечен красным крестиком. Если здесь же перевыбрать колонку «Поле» и выбрать его как Контрагент, то отбор срабатывает.  Может в код нужно что - добавить или он вообще неправильный?
1 1Сергей
 
20.11.12
15:31
см параметры ПолучитьФорму
2 Сергей Д
 
20.11.12
15:34
Понравилась тема - починенного справочника. :)
3 5 Элемент
 
20.11.12
15:38
ПараметрыФормы = Структура("Отбор", Структура("Контрагент", ВыбКонтрАгент));
ОткрытьФорму("", ПараметрыФормы);
4 Knowledge
 
20.11.12
15:52
<Параметры> (необязательный)
Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры

Расширение управляемой формы для справочника (Managed form extension for catalogs)
Ключ (Key)
Использование:
Ключевой.
Описание:
Тип: СправочникСсылка.
Ключ объекта.
В случае отсутствия или неверного значения создается новый объект с использованием остальных параметров.
Другие свойства расширения формы: ЗначениеКопирования, ЗначенияЗаполнения, Ключ, Основание, ЭтоГруппа.

Разве это имеет отношение к отбору?

Сделал:
ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Контрагент", ВыбКонтрАгент)); ФормаПодчиненных= ПолучитьФорму("Справочник.РасчетныеСчетаКонтрагентов.ФормаСписка",ПараметрыФормы);
ФормаПодчиненных.Открыть();
Не помогает.
5 Knowledge
 
20.11.12
15:54
(4)+ Это к посту (3)
6 Knowledge
 
20.11.12
16:05
ну и...
7 MSII
 
20.11.12
16:09
Поди не контрагент, а владелец.
8 5 Элемент
 
20.11.12
16:12
(7) скорее всего, но я спецом взял его код, чтобы он включил мозги, но видно не судьба )
9 Knowledge
 
20.11.12
16:16
(7) Точно. спасибо (8) Мозги включил.
10 Knowledge
 
20.11.12
16:37
(9)+ Кстати в в моём коде если изменить
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
На:
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец");

То тоже всё работает. Просто с толку сбило, что в режиме "Предриятие" это поле обзывается "Контрагент"

Думать нужно глубже :)
2 + 2 = 3.9999999999999999999999999999999...