• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

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

Dred

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

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

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

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

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

Процедура ПриВыбореСтроки()  
ТабНом.НоваяСтрока();
ТабНом.Номенклатура=Наименование;
КонецПроцедуры
 
Посмотрите типовую ТиС как реализован подбор в документы через кнопку Подбор
 
kaa
да я в первую очередь посмотрел ))) но что то не особо вьхел, там как то все замудренно.

Как я понимаю для того чтобы сделать что я хочу необходимо 3 процедуры и строчек 10 кода?
 
Попробуй так:
Процедура ОбработкаКликаПоТЗ()
Перем ПараметрыВыбора;

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

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

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

ОбработкаПодбора(Элем,КонтФормы)
Если ТипЗначенияСтр(Элем) = "ТаблицаЗначений" Тогда
Элем.ВыбратьСтроки();
Пока Элем.ПолучитьСтроку()=1 Тогда
//заполняем таблицу
КонецЦикла;
КонецЕсли;
 
А мона через открытии модально формы справочника , передавая в тз формы справочника текущюю ТЗ, там по кликам на строках добавлять в тз формы справочника новые строчки, а по закрытии формы - загружать изменную в справочнике ТЗ обратно.
 
kaa
реально написал, конечно я не знаю конфигурацию (как и мы все), но посмотрел комлексную в которой есть вот что в справочнике номенклатуры:
Код:
// ВыполнитьЗапись()
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Нет
//
// Вызывается из формул элементов диалога:
// Кнопка ОК
//
// Описание:
// 	Активизирует в документе процедуру ОбработкаПодбора и передает ей в качестве
// 	выбранного значения список значений. Параметр "ПоКнопкеПодбор" показывает,
// что подбор был инициирован кнопкой подбор.
//
Процедура ВыполнитьЗапись()

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

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

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab