Что-то никто не обсуждает УФ
Моя инструкция с экзамена
6 – УФ
Создаем справочник ТипыЦен, вводим предопр, РС ЦеныПродажи (днев, незав., изм Номенклатура, ТипЦен, рес Цена).
У справочника Номенклатура добавляем не осн форму выбора, настраиваем список (произв. запрос, не забываем про NULL цены и кол-ва), добавляем параметры формы для передачи в запрос, добавляем элементы формы Цена и Остаток, настраиваем формат цены, у элемента формы Наименование меняем путь к данным на Ссылка. Создаем процедуру формы ПриСозданииНаСервере, в ней передаем параметры в список, например: Список.Параметры.УстановитьЗначениеПараметра("Период", Параметры.Период); и остальные.
В документе создаем реквизиты ТипЦен, Склад, переносим в форму (или создаем, если ее нет).
В модуле формы документа создаем процедуру НоменклатураНачалоВыбора:
&НаКлиенте
Процедура СписокНоменклатурыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = ложь;
ПараметрыФормы = Новый Структура("ТипЦен, Склад, Период", Объект.ТипЦен, Объект.Склад, ТекущаяДата());
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбораТипЦенИЦена", ПараметрыФормы, Элементы.СписокНоменклатуры);
КонецПроцедуры
В модуле формы справочника процедуру <имяТЧ>ВыборЗначения:
&НаКлиенте
Процедура СписокВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Тек = Элементы.Список.ТекущиеДанные;
СтрЗн = Новый Структура("Номенклатура, Цена", Тек.Ссылка, Тек.Цена);
ОповеститьОВыборе(СтрЗн);
КонецПроцедуры
В форме документа процедура СписокНоменклатурыОбработкаВыбора:
&НаКлиенте
Процедура СписокНоменклатурыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Тек = Элементы.СписокНоменклатуры.ТекущиеДанные;
ЗаполнитьЗначенияСвойств(Тек, ВыбранноеЗначение);
ЭтаФорма.ТекущийЭлемент.ЗакончитьРедактированиеСтроки(Ложь);
КонецПроцедуры
Помогло, огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!
Но правда один метод у меня не взлетел, я немного переделал:
//////////////////////////////////////////////////////////////
ВРАСХОДНОЙ
&НаКлиенте
Процедура СписокНоменклатурыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
// Вставить содержимое обработчика.
СтандартнаяОбработка = Ложь;
Сообщить("НачалоВыбораРасходная");
Структура = Новый Структура("ТипЦены",Объект.ТипЦены);
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора1",Структура, Элементы.СписокНоменклатуры);
КонецПроцедуры
&НаКлиенте
Процедура СписокНоменклатурыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
// Вставить содержимое обработчика.
СтандартнаяОбработка = Ложь;
Тек = Элементы.СписокНоменклатуры.ТекущиеДанные;
ЗаполнитьЗначенияСвойств(Тек,ВыбранноеЗначение);
КонецПроцедуры
ВСпикеНоменклатуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Вставить содержимое обработчика.
СтандартнаяОбработка = Ложь;
Список.Параметры.УстановитьЗначениеПараметра("ТипЦены",Параметры.ТипЦены);
КонецПроцедуры
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
СтандартнаяОбработка = Ложь;
Тек = Элементы.Список.ТекущиеДанные;
Структура = Новый Структура;
Структура.Вставить("Цена",Тек.Цена);
Структура.Вставить("Номенклатура",Тек.Ссылка);
ОповеститьОВыборе(Структура);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////