Подбор и таблицы значений

  • Автор темы Dred
  • Дата начала
D

Dred

Гость
#1
Всем Доброе время суток!!!
Вообщем требуется, что бы при кликаньи на кнопочку на форме отчета, открывалась форма справочника товаров, на которой помимо таблицы со значениями справочника, есть пустая таблица значений. В эту пустую таблицу значений при клике на значение справочника должно заноситься название товара. Потом при клике на кнопку эти значения из ТЗ должны переноситься в список значений расположенный на форме отчета и закрываться форма справочника.

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

Процедуры отчета
Код:
Процедура ОбработкаПодбора(ТабНом,ФормаТаблицы)
Номенклатура.ДобавитьЗначение(ТабНом.Номенклатура);
КонецПроцедуры	

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

Процедура ПриВыбореСтроки()  
ТабНом.НоваяСтрока();
ТабНом.Номенклатура=Наименование;
КонецПроцедуры
 
K

kaa

Гость
#2
Посмотрите типовую ТиС как реализован подбор в документы через кнопку Подбор
 
D

Dred

Гость
#3
kaa
да я в первую очередь посмотрел ))) но что то не особо вьхел, там как то все замудренно.

Как я понимаю для того чтобы сделать что я хочу необходимо 3 процедуры и строчек 10 кода?
 
N

NightWolf

Гость
#4
Попробуй так:
Процедура ОбработкаКликаПоТЗ()
Перем ПараметрыВыбора;

Если ТабНом.ТекущаяСтрока()=0 Тогда
Возврат;
КонецЕсли;
ПараметрыВыбора = ТабНом.Номенклатура;
Форма.ВыполнитьВыбор(ПараметрыВыбора);

КонецПроцедуры
 
K

kaa

Гость
#5
ПоКнопкеПодбор()
ОткрытьПодбор(Справочник.Номенклатура);//далее по справке
КонецПроцедуры

//нужна форма списка справочника с таблицей значений как в ТиС если есть используй ,нет создавай
в ней в процедуре ПриВыбореСтроки() описываешь заполнение таблицы и при выходе из формысписка передаешь в параметр

ОбработкаПодбора(Элем,КонтФормы)
Если ТипЗначенияСтр(Элем) = "ТаблицаЗначений" Тогда
Элем.ВыбратьСтроки();
Пока Элем.ПолучитьСтроку()=1 Тогда
//заполняем таблицу
КонецЦикла;
КонецЕсли;
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#6
А мона через открытии модально формы справочника , передавая в тз формы справочника текущюю ТЗ, там по кликам на строках добавлять в тз формы справочника новые строчки, а по закрытии формы - загружать изменную в справочнике ТЗ обратно.
 

SeverBap

Well-Known Member
18.09.2007
451
0
34
г. Брянск
#7
kaa
реально написал, конечно я не знаю конфигурацию (как и мы все), но посмотрел комлексную в которой есть вот что в справочнике номенклатуры:
Код:
// ВыполнитьЗапись()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Вызывается из формул элементов диалога:
// Кнопка ОК
//
// Описание:
// 	Активизирует в документе процедуру ОбработкаПодбора и передает ей в качестве
// 	выбранного значения список значений. Параметр "ПоКнопкеПодбор" показывает,
// что подбор был инициирован кнопкой подбор.
//
Процедура ВыполнитьЗапись()

Перем ПараметрыВыбора;

ПараметрыВыбора = СоздатьОбъект("СписокЗначений");
ПараметрыВыбора.ДобавитьЗначение(ЕстьВидТМЦ	, "ЕстьВидТМЦ");
ПараметрыВыбора.ДобавитьЗначение(ЦенаВподборе , "ЦенаВподборе");
ПараметрыВыбора.ДобавитьЗначение(ТипЦен		, "ТипЦен");	 
ПараметрыВыбора.ДобавитьЗначение(ТаблицаПодбора, "ТаблицаПодбора");
ПараметрыВыбора.ДобавитьЗначение(1			 , "ПоКнопкеПодбор");
Форма.ВыполнитьВыбор(ПараметрыВыбора);
ТаблицаПодбора.УдалитьСтроки(); // иначе при выходе еще раз можем перенести

КонецПроцедуры //ВыполнитьЗапись()
нам интересно значит вот это:
Код:
ПараметрыВыбора.ДобавитьЗначение(ТаблицаПодбора, "ТаблицаПодбора");
В отчете значит нужно в процедуре обработка подбора проработать:
Код:
Процедура ОбработкаПодбора(ВыбЗнач, КонтФормыПодбора)
Если ТипЗначенияСтр(ВыбЗнач)="СписокЗначений" Тогда
ТаблицаКотораяБылаЗаполненаПриПодборе=ВыбЗнач.Получить("ТаблицаПодбора");
ТаблицаКотораяБылаЗаполненаПриПодборе.ВыбратьСтроки();
Пока ТаблицаКотораяБылаЗаполненаПриПодборе.ПолучитьСтроку()=1 Цикл
МойСписок.ДобавитьЗначение(ТаблицаКотораяБылаЗаполненаПриПодборе.Номенклатура);
КонецЦикла;
КонецПроцедуры // ОбработкаПодбора()
Писал грубо, сам переделаешь под свое что тебе надо! ;)