Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 23:03

взаимосвязанные табличные части.

Автор andron81_81, 10 ноя 2017, 12:02

0 Пользователей и 1 гость просматривают эту тему.

andron81_81

Добрый день.
Как бы можно было бы такую задачу реализовать в 1С ? Есть справочник(хотя можно и документом) в нем 2 табличные части( см. рисунок я упростил задачу по макс). в табличной части 2 мы можем добавлять элемент. Причем каждому такому элементу соответствует набор свойств (нижняя табличная часть ) . Скажем подсвечиваем Вася , его возраст 25, Стаж 3 года, З.п. 25000. Подсветив Петю получаем этот же набор свойств, но уже с другими значениями присуще Пете. (скажем: возраст 30 , стаж 8 лет, з.п. 30000). Причем свойства для Пети , Васи и других можно менять и чтобы они сохранялись для них. И свойства не обязательно м.б. поля ввода, возможен список.


Axcolodon

В нижнюю табличную часть добавь колонку "Владелец", на форму данную колонку не выводи.
Теперь используй процедуру ТабличнаяЧасть1ПриАктивизацииСтроки() для верхней табличной части.

то есть по сути тебе в данной процедуре необходимо программно прописать отбор для нижней табличной части по владельцу (владельца получишь по Элементы.ТабличнаяЧасть1.ТекущаяСтрока).

andron81_81

Цитата: Axcolodon от 10 ноя 2017, 12:51
В нижнюю табличную часть добавь колонку "Владелец", на форму данную колонку не выводи.
Теперь используй процедуру ТабличнаяЧасть1ПриАктивизацииСтроки() для верхней табличной части.

то есть по сути тебе в данной процедуре необходимо программно прописать отбор для нижней табличной части по владельцу (владельца получишь по Элементы.ТабличнаяЧасть1.ТекущаяСтрока).


А хранить где данные с нижней табличной части?
Добавлено: 10 ноя 2017, 17:41


Цитата: andron81_81 от 10 ноя 2017, 13:22
Цитата: Axcolodon от 10 ноя 2017, 12:51
В нижнюю табличную часть добавь колонку "Владелец", на форму данную колонку не выводи.
Теперь используй процедуру ТабличнаяЧасть1ПриАктивизацииСтроки() для верхней табличной части.

то есть по сути тебе в данной процедуре необходимо программно прописать отбор для нижней табличной части по владельцу (владельца получишь по Элементы.ТабличнаяЧасть1.ТекущаяСтрока).


А хранить где данные с нижней табличной части?


аа, дошлло. пока всё понял. спасибо. напишу
Добавлено: 10 ноя 2017, 19:55


Цитата: Axcolodon от 10 ноя 2017, 12:51

пытаюсь сделать вот так :


&НаКлиенте
Процедура ТабличнаяЧасть2ПриАктивизацииСтроки(Элемент)
Элементы.ТабличнаяЧасть3.ОтборСтрок =   Новый ФиксированнаяСтруктура("Владелец", Строка(Элементы.ТабличнаяЧасть2.ТекущаяСтрока));
КонецПроцедуры



фильтр немножко работает , да не совсем как надо.
Если "Владелец" в нижней табл. части прописан 12 , а функция Строка(Элементы.ТабличнаяЧасть2.ТекущаяСтрока) возвращает 1, то тоже выводится.
а ведь 12!=1







Axcolodon

Цитата: andron81_81 от 10 ноя 2017, 13:22фильтр немножко работает , да не совсем как надо.
Если "Владелец" в нижней табл. части прописан 12 , а функция Строка(Элементы.ТабличнаяЧасть2.ТекущаяСтрока) возвращает 1, то тоже выводится.
а ведь 12!=1

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


Похожие темы (5)

Рейтинг@Mail.ru

Поиск