Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Связь Списка с Деревом в Форма в 8.2          
хакерок Подменю пользователя
сообщение 03.10.11, 10:22
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Допустим имнееться форма и в ней имееться 2 реквизита Дерево и Список (основная таблица например Справочники.Номенклатура)

В версии 8.1 была возможность СправочникСписок и СправочникДерево связать так что при выборе группы в дереве Список показывал содержимое группы.

Для этого достаточно было в СправочникеСписке Свойство Связь по родителю выставить СправочникДерево.ПриВыборе


В версии 8.2 только когда Список являеться основным реквизитом тогда в Форме можно указать что СписокГрупп Дерево


Вопрос как связать програмно Список и Дерево если Список не являеться основным реквизитом.

Тоесть в результате при выборе группы в Дереве в Списке отображалось то что в Группе.

logist Подменю пользователя
сообщение 03.10.11, 10:36
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

В событии Выбор у Дерева прописать нужный отбор для Списка?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

DartRomanius Подменю пользователя
сообщение 03.10.11, 10:39
Сообщение #3

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

В списке... "Связь по родителю"


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

logist Подменю пользователя
сообщение 03.10.11, 10:44
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(DartRomanius @ 03.10.11, 11:39) *
В списке... "Связь по родителю"

Ткните пальцем где там такое есть, не нашел.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

DartRomanius Подменю пользователя
сообщение 03.10.11, 11:00
Сообщение #5

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(logist @ 03.10.11, 11:44) *
Ткните пальцем где там такое есть, не нашел.


Свойства списка (на форме), раздел "Использование" последний пункт.


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

хакерок Подменю пользователя
сообщение 03.10.11, 11:40
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(DartRomanius @ 03.10.11, 11:39) *
В списке... "Связь по родителю"

В версии 8.2 "Связь по родителю" нет

Цитата(logist @ 03.10.11, 11:36) *
В событии Выбор у Дерева прописать нужный отбор для Списка?

Именно таким путём и пошол сделаю выложу

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

logist Подменю пользователя
сообщение 03.10.11, 11:54
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(DartRomanius @ 03.10.11, 12:00) *
Свойства списка (на форме), раздел "Использование" последний пункт.

Если Вас не затруднит, можно скрин. Ну в упор не вижу sad.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

DartRomanius Подменю пользователя
сообщение 03.10.11, 12:04
Сообщение #8

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(logist @ 03.10.11, 12:54) *
Если Вас не затруднит, можно скрин. Ну в упор не вижу sad.gif


Пожалуйста.


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

хакерок Подменю пользователя
сообщение 03.10.11, 12:16
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(DartRomanius @ 03.10.11, 13:04) *
Пожалуйста.

Это версия 8.1 приспособленная к 8.2

Vofka Подменю пользователя
сообщение 03.10.11, 12:17
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата
Это версия 8.1 приспособленная к 8.2

Это версия 8.2, а не управляемое приложение. Но про это ведь говорить не стоит.

DartRomanius Подменю пользователя
сообщение 03.10.11, 13:47
Сообщение #11

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Это для управляемого приложения. Предыдущий вариант был для "обычного".


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

хакерок Подменю пользователя
сообщение 03.10.11, 14:30
Сообщение #12

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

x
Причина редактирования: http://pro1c.org.ua/index.php?showtopic=2284

DartRomanius Подменю пользователя
сообщение 03.10.11, 14:46
Сообщение #13

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Согласен. Туплю.


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

хакерок Подменю пользователя
сообщение 04.10.11, 11:29
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(DartRomanius @ 03.10.11, 15:46) *
Согласен. Туплю.

Разобрался с этим вопросом можно поступить 2 способами

1 С помощью Отбора оно работет дольше

2 Можно для реквизита Список зделать произвольній запрос

например
ВЫБРАТЬ
    СправочникПрайсЛист.Ссылка,
    СправочникПрайсЛист.ВерсияДанных,
    СправочникПрайсЛист.ПометкаУдаления,
    СправочникПрайсЛист.Предопределенный,
    СправочникПрайсЛист.Родитель,
    СправочникПрайсЛист.ЭтоГруппа,
    СправочникПрайсЛист.Код,
    СправочникПрайсЛист.Наименование,
    СправочникПрайсЛист.Уточнение,
    СправочникПрайсЛист.ЦенаОпт,
    СправочникПрайсЛист.Цена,
    СправочникПрайсЛист.Валюта,
    СправочникПрайсЛист.Производитель,
    СправочникПрайсЛист.НомерНаУпаковке,
    СправочникПрайсЛист.НомерОсновной,
    СправочникПрайсЛист.Код1,
    СправочникПрайсЛист.Код2,
    СправочникПрайсЛист.Код3,
    СправочникПрайсЛист.Аналог,
    СправочникПрайсЛист.ПоисковыйКод,
    СправочникПрайсЛист.ВозможностьСкидки,
    СправочникПрайсЛист.МинимальныйЗапас,
    СправочникПрайсЛист.Поставщик,
    СправочникПрайсЛист.Примечание,
    СправочникПрайсЛист.Сортировка
ИЗ
    Справочник.ПрайсЛист КАК СправочникПрайсЛист
ГДЕ
    СправочникПрайсЛист.Родитель.Код = &КодГруппы


И при активизации строки Дерева

&НаКлиенте
Процедура ДеревоПриАктивизацииСтроки(Элемент)
    Если Не Элементы.Дерево.ТекущиеДанные = Неопределено  Тогда
        СписокПрайсЛист.Параметры.УстановитьЗначениеПараметра("КодГруппы", Элементы.Дерево.ТекущиеДанные.Код);
    КонецЕсли;
КонецПроцедуры

Спасибо сказали: vbi, Vofka, wauri,

Vofka Подменю пользователя
сообщение 04.10.11, 11:58
Сообщение #15

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

хакерок, плюсую за то, что выкладываете результаты работы (код) smile.gif

хакерок Подменю пользователя
сообщение 30.09.15, 21:56
Сообщение #16

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(хакерок @ 04.10.11, 12:29) *
Разобрался с этим вопросом можно поступить 2 способами

1 С помощью Отбора оно работет дольше

2 Можно для реквизита Список зделать произвольній запрос

например
ВЫБРАТЬ
    СправочникПрайсЛист.Ссылка,
    СправочникПрайсЛист.ВерсияДанных,
    СправочникПрайсЛист.ПометкаУдаления,
    СправочникПрайсЛист.Предопределенный,
    СправочникПрайсЛист.Родитель,
    СправочникПрайсЛист.ЭтоГруппа,
    СправочникПрайсЛист.Код,
    СправочникПрайсЛист.Наименование,
    СправочникПрайсЛист.Уточнение,
    СправочникПрайсЛист.ЦенаОпт,
    СправочникПрайсЛист.Цена,
    СправочникПрайсЛист.Валюта,
    СправочникПрайсЛист.Производитель,
    СправочникПрайсЛист.НомерНаУпаковке,
    СправочникПрайсЛист.НомерОсновной,
    СправочникПрайсЛист.Код1,
    СправочникПрайсЛист.Код2,
    СправочникПрайсЛист.Код3,
    СправочникПрайсЛист.Аналог,
    СправочникПрайсЛист.ПоисковыйКод,
    СправочникПрайсЛист.ВозможностьСкидки,
    СправочникПрайсЛист.МинимальныйЗапас,
    СправочникПрайсЛист.Поставщик,
    СправочникПрайсЛист.Примечание,
    СправочникПрайсЛист.Сортировка
ИЗ
    Справочник.ПрайсЛист КАК СправочникПрайсЛист
ГДЕ
    СправочникПрайсЛист.Родитель.Код = &КодГруппы


И при активизации строки Дерева

&НаКлиенте
Процедура ДеревоПриАктивизацииСтроки(Элемент)
    Если Не Элементы.Дерево.ТекущиеДанные = Неопределено  Тогда
        СписокПрайсЛист.Параметры.УстановитьЗначениеПараметра("КодГруппы", Элементы.Дерево.ТекущиеДанные.Код);
    КонецЕсли;
КонецПроцедуры


В этом примере есть недостаток лучше связь Дерева и Списка делать не по Коду а по Ссылке ... с ссылками платформе лучше работать

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 8:27
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!