Отображение списка справочника

  • Автор темы Kiddy
  • Дата начала
K

Kiddy

Гость
#1
Народ, доброе время суток.
Столкнулся со следующей проблемой.
В групповой обработке по контрагенту, когда уже список отобран, возникает необходимость посмотреть скидки по контрагенту. Я написал обработчик

Прорцедура ПоказатьСкидку()
Скидка=СоздатьОбъект("Справочник.СкидкиКлиента");
Скидка.ИспользоватьВладельца(Таблица.Контрагент);
Скидка.Выбрать("Скидки",);
КонецПроцедуры

Всё отображается красиво, только отсутствует возможность редактировать записи (чего собственно я и добиваюсь).

Попробовал вместо Скидка.Выбрать("Скидки",); использовать ОткрытьФорму("Справочник.СкидкиКлиента",Контекст); - отображается форма с возможностью редактировать, но отсутствуют записи поскольку не задан владелец.

Попробовал ОткрытьФорму(Скидка,Контекст); - форма вообще не отображается.

Подскажите, плиз, где собака порылась.

Заранее спасибо, Валера.
 
K

kaa

Гость
#2
ОткрытьФорму("Справочник.СкидкиКлиента",Контекст); в место Контекст надо подставить владельца, тоесть получить Таблица.Контрагент
 
K

Kiddy

Гость
#3
Сделал

ОткрытьФорму("Справочник.СкидкиКлиента",Таблица.Контрагент)

к сожалению список отображается пустой !!!! На шапке надпись - не задан элемент владелец.

Я что-то не так сделал ?
 
K

Kiddy

Гость
#5
Процедура ПриОткрытии()
ВнешнийКонтекст = Форма.Параметр;
Форма.КнопкаПоУмолчанию("КнОК");
СохранениеПериодическихРеквизитов(2, "*");
ТоварнаяГруппа.ВыборГруппы(1);
КонецПроцедуры
 

vbs

Well-Known Member
18.02.2007
1 708
3
Санкт-Петербург
#6
А ты уверен, что Таблица.Контрагент является именно элементом справочника "Контрагенты", а не его наименованием, к примеру или группой этого справочника ?
Если таки да, есть предмет для обсуждения, в ином случае
Скидка=СоздатьОбъект("Справочник.СкидкиКлиента");
Скидка.ИспользоватьВладельца(Таблица.Контрагент);
Скидка.Выбрать("Скидки",);

100% сработает
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#7
переделай так

Процедура ПриОткрытии()
ВнешнийКонтекст = Форма.Параметр;
Попытка //на случай, если передаст не справочник, а число например
Если ВнешнийКонтекст.Вид() = "Контрагенты" Тогда // если у тебя справочник клиентов называется контрагенты
ИспользоватьВладельца(ВнешнийКонтекст);
КонецЕсли;
Исключение
КонецПопытки;
Форма.КнопкаПоУмолчанию("КнОК");
СохранениеПериодическихРеквизитов(2, "*");
ТоварнаяГруппа.ВыборГруппы(1);
КонецПроцедуры
 
K

kaa

Гость
#8
подозреваю что таблица это ТаблицаЗначений

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

В Таблице на форме в свойствах ОбработкаКликаПоТаблица(Таблица.ТекущаяСтрока(),Таблица.ТекущаяКолонка())
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#9
Насколько я понимаю, использование родителя или владельца через открыть форму прописано только для ввода нового элемента справочника, в остальных случаях (для справочника) это просто контекст, обработку которого надо ещё прописывать в процедуре приоткрытии()
 
K

Kiddy

Гость
#10
Всем спасибо за помощь.

Прошёл вариант с изменением процедуры ПриОткрытии().

Большое спасибо.

Народ, объясните, плиз, "для особо одарённых" как ВАМ плюсиков добавить.... - и + картинки. А при нажатии на число показывается общий рейтинг . Кнопки ПОДНЯТЬ и ЖАЛОБА тоже особого эффекта не приносят (или я его не замечаю)