ОБСУЖДЕНИЕ

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

10 ответов 5,7 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

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

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

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

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

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

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

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

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

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

100% сработает
 
переделай так

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

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

В Таблице на форме в свойствах ОбработкаКликаПоТаблица(Таблица.ТекущаяСтрока(),Таблица.ТекущаяКолонка())
 
Насколько я понимаю, использование родителя или владельца через открыть форму прописано только для ввода нового элемента справочника, в остальных случаях (для справочника) это просто контекст, обработку которого надо ещё прописывать в процедуре приоткрытии()
 
Всем спасибо за помощь.

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

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

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