Выбор в реквизите ТЗ

Версия для печатиPDF-версия

Платформа:

Есть готовая обработка которая формирует тз из контрагентов на форме как сделать чтобы в поле ТЗ была возможность выбора, чтобы при двойном щелчке открывался контрагент. 

Таблица значений на форме

Вот код процедуры, которая формирует ТЗ.

Попытка
ТЗ.Колонки.Добавить("Замена",новый описаниеТипов("Булево"));
ТЗ.Колонки.Добавить("Контрагент",новый описаниеТипов("СправочникОбъект.Контрагенты"));
ЭлементыФормы.ТЗ.СоздатьКолонки();
исключение
ТЗ.Очистить();
 
КонецПопытки;
 
 
Запрос= Новый Запрос;
Запрос.Текст="
|Выбрать
|Спр.ссылка как Контрагент
|Из
|Справочник.Контрагенты как спр
|Где
|спр.ОсновнойМенеджерПокупателя = &Менеджер";
Запрос.УстановитьПараметр("Менеджер",Менеджер1);
Вып=Запрос.Выполнить();
Выборка=Вып.Выбрать();
Пока Выборка.Следующий() Цикл
Стр=ТЗ.Добавить();
Стр.Контрагент=Выборка.Контрагент.получитьобъект();
сообщить("заполняем "+Стр.Контрагент);
КонецЦикла;
ТЗ.Сортировать("Контрагент");
И еще подскажите пожалуйста как выводить сообщения в строке состояния.

Можете объяснить, зачем выводить в ТЗ объекты контрагентов? Логичней выводить ссылки на контрагентов.

И зачем создавать колонки ТЗ программно? Не проще это сделать на этапе проектирования?

Для вывода сообщения в строке состояния используется метод Состояние(ТекстСостояния);

Как их создать средствами конфигуратора? Нашла только как ТЗ вставить.

Добавить в обработку табличную часть с нужными колонками.

Спасибо! Подскажите как программно установить ограничение для открытия формы справочника Контрагентов по типу отнощений Поставщик и Прочее, чтобы покупателей отсеять из вывода.

// Вставить содержимое обработчика.
спр=Справочники.CRM_ТипыОтношенийСКонтрагентами;
Спр1=Спр.НайтиПоНаименованию("Поставщик");
Спр2=Спр.НайтиПоНаименованию("Прочее");
ВидыВзаиморасчетов = Новый СписокЗначений;
ВидыВзаиморасчетов.Добавить(Спр1);
ВидыВзаиморасчетов.Добавить(Спр2);
ФормаВыбора = Справочники.Контрагенты.ПолучитьФормуВыбора(,Элемент,);
 
Если ВидыВзаиморасчетов<>Неопределено Тогда
 
// Оставим в выборе только "правильные" договоры
Если ТипЗнч(ВидыВзаиморасчетов) = Тип("СписокЗначений") Тогда
ФормаВыбора.СправочникСписок.Отбор.CRM_ТипОтношений.ВидСравнения                    = ВидСравнения.ВСписке;
Иначе
ФормаВыбора.СправочникСписок.Отбор.CRM_ТипОтношений.ВидСравнения                    = ВидСравнения.Равно;
КонецЕсли;
ФормаВыбора.СправочникСписок.Отбор.CRM_ТипОтношений.Значение                            = ВидыВзаиморасчетов;
ФормаВыбора.СправочникСписок.Отбор.CRM_ТипОтношений.Использование                       = Истина;
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.CRM_ТипОтношений.Доступность = Ложь;
КонецЕсли;
ФормаВыбора.Открыть();
 
Почему то выводит 2 формы простую и с отбором делаю привыборезначения
 

Сделайте в обработчике события НачалоВыбора у поля ввода колонки.

Нужно отключить стандартную обработку. Допишите СтандартнаяОбработка = Ложь; в начале процедуры.

Спасибо! Помогите с решением.

Для каждого строчка из товары Цикл
Запрос=новый Запрос;
Запрос.Текст= "
|ВЫБРАТЬ
|ТоварыОрганизацийБухОстатки.Организация как Организация,
|ТоварыОрганизацийБухОстатки.Номенклатура как Номенклатура,
|ТоварыОрганизацийБухОстатки.Склад как склад,
|ТоварыОрганизацийБухОстатки.КоличествоОстаток как количество
 
|ИЗ
|РегистрНакопления.ТоварыОрганизацийБух.Остатки КАК ТоварыОрганизацийБухОстатки";
Запрос.УстановитьПараметр("Склад",           Склад);
Запрос.УстановитьПараметр("Организация", Организация);
Ном=Строчка.Номенклатура;
Запрос.УстановитьПараметр("Номенклатура", Ном);
толькоучетные=1;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
 Почему то получает не по выбранной номенклатуре, а список всей дает.

 

Так у вас в запросе ни одного параметра нет.

Как их правильно установить в сточке и дату тоже
РегистрНакопления.ТоварыОрганизацийБух.Остатки КАК ТоварыОрганизацийБухОстатки";?

РегистрНакопления.ТоварыОрганизацийБух.Остатки(
&Дата,
Организация = &Организация
И Склад = &Склад
И Номенклатура = &Номенклатура) КАК ТоварыОрганизацийБухОстатки
 
А вообще-то запрос в цикле это неправильно. Нужно сразу одним запросом получать остатки по всей номенклатуре табличной части. А потом работать с результатами запроса.