|
Заполнение табличной части документа из формы выбора | ☑ | ||
---|---|---|---|---|
0
VenedPS
25.06.14
✎
16:47
|
Здравствуйте. Помогите пожалуйста с кодом:
Есть кнопка которая открывает форму выбора, после выбора данные должны заполнять табличную часть. Вот код: &НаКлиенте Процедура ВыборКомпонента(Команда) ОткрытьФормуМодально ("Справочник.Комплектующие.ФормаВыбора"); КонецПроцедуры &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) ЗаполнениеТабДок(); КонецПроцедуры &НаСервере Процедура ЗаполнениеТабДок() Запрос = новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Наименование, | Материал, | КодКомпонента, | Инд |ИЗ | Справочник.Комплектующие"; Результат = Запрос.Выполнить(); Выборка=Результат.Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока =Объект.ТабДок.Добавить(); НоваяСтрока.НазваниеКомпонента = Выборка.Наименование; НоваяСтрока.Материал = Выборка.Материал; НоваяСтрока.КодКомпонента = Выборка.КодКомпонента; НоваяСтрока.Инд=Выборка.Инд; КонецЦикла; КонецПроцедуры Ошибок не выдает но и результат выбора из формы не заносится в таб часть Смутно догадываюсь что теряю результаты выбора... |
|||
1
Господин ПЖ
25.06.14
✎
16:49
|
(0) ты не теряешь, просто заполняешь объект и ищешь изменения на клиенте
|
|||
2
Wobland
25.06.14
✎
16:49
|
ОткрытьФормуМодально обязательно что-то возвращает. что у тебя возвращает форма?
|
|||
3
VenedPS
25.06.14
✎
16:57
|
Форма возвращает значение выбора а именно то комплектующее значение реквизитов которого нужно записать в таб часть.
|
|||
4
Господин ПЖ
25.06.14
✎
16:59
|
(3) ты набиваешь Объект (ДокументОбъект) на сервере. Клиент об этом не в курсе...
|
|||
5
Wobland
25.06.14
✎
16:59
|
(3) а что ты делаешь с этим самым знвчением выбора?
|
|||
6
Wobland
25.06.14
✎
16:59
|
(4) это при выборе, а не по кнопке ;)
|
|||
7
Wobland
25.06.14
✎
17:01
|
&НаКлиенте
Процедура Подбор(Команда) ОткрытьФорму("Обработка.ПодборТоваров.Форма"); КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия="АВотПодбор" Тогда НоваяСтрока=Объект.Товары.Добавить(); НоваяСтрока.Номенклатура=Параметр; КонецЕсли; КонецПроцедуры |
|||
8
Господин ПЖ
25.06.14
✎
17:06
|
>Объект.Товары
это ТЧ, она на клиенте недоступна... |
|||
9
Wobland
25.06.14
✎
17:07
|
(8) код довольно рабоч
|
|||
10
Господин ПЖ
25.06.14
✎
17:13
|
(9) может быть... тогда это ДанныеФормыКоллекция
путаюсь ху из кто иногда еще |
|||
11
Wobland
25.06.14
✎
17:16
|
(10) ага. там бы ещё флаг модифицированности взводить или на сервер уходить. но я тогда только начинал дружить с УФ ;)
|
|||
12
VenedPS
25.06.14
✎
17:21
|
По кнопке у меня открывается форма выбора и в зависимости от выбора заполняется ТЧ.
Думаю что без серверной процедуры ТЧ не заполню, и моя процедура ЗаполнениеТабДок работает (отдельно ее запускал) но вот привязать к выбору из формы не получается( |
|||
13
Wobland
25.06.14
✎
17:21
|
(12) может, тебе пример отсыпать?
|
|||
14
VenedPS
25.06.14
✎
17:22
|
Если не сложно)
|
|||
15
Господин ПЖ
25.06.14
✎
17:24
|
(12) так у тебя ни владельца формы не задано, где событие выбора всплывать должно...
ЗЫ и открывать формы модально уже не модно |
|||
16
Wobland
25.06.14
✎
17:27
|
каков наглец
&НаКлиенте Процедура Подбор(Команда) ОткрытьФорму("Обработка.ПодборТоваров.Форма", , ЭтаФорма); КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия="АВотПодбор" Тогда МаршНаСервер(Параметр); Модифицированность=Истина; КонецЕсли; КонецПроцедуры &НаСервере Процедура МаршНаСервер(Параметр) объ=РеквизитФормыВЗначение("Объект"); НоваяСтрока=объ.Товары.Добавить(); НоваяСтрока.Номенклатура=Параметр; ЗначениеВРеквизитФормы(объ, "Объект"); КонецПроцедуры |
|||
17
Господин ПЖ
25.06.14
✎
17:28
|
(16) а где Оповещение ? не по феншую.
|
|||
18
Wobland
25.06.14
✎
17:30
|
&НаКлиенте
Процедура НоменклатураВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) СтандартнаяОбработка=Ложь; Оповестить("АВотПодбор", ВыбраннаяСтрока); КонецПроцедуры |
|||
19
VenedPS
25.06.14
✎
17:36
|
3-ю неделю в 1С-е... понятия не имею что модно)
Ага... Открытию формы дописал , ЭтаФорма)... выходит я назначил владельца формы? Но в этом случае заполняются все элементы из справочника а не выбранный. Как понимаю нужно прописывать если и приравнивать элементы справочника с выбранным значением... щя покумекаю. Спасибо за помощь) |
|||
20
Wobland
25.06.14
✎
17:38
|
>в этом случае заполняются все элементы из справочника а не выбранный
как ты этого добился? |
|||
21
Господин ПЖ
25.06.14
✎
17:38
|
>Но в этом случае заполняются все элементы из справочника а не выбранный
а где написано что должен выбранный? У тебя в запросе и сказано - выгреби мне все что есть |
|||
22
VenedPS
25.06.14
✎
17:52
|
Как добился?) В процедуре Заполнение ТабДок какрас и записываю значения. А Обработке Выбора просто исполняю эту процедуру. Вот и выгребает все.
Передал значение выбора в новую переменную Выбор = ВыбранноеЗначение; Передал переменную Выбор серверной процедуре &НаСервере Процедура ЗаполнениеТабДок(Выбор) Заключил Запрос в серверной процедуре в Если: Если Справочники.Комплектующие = Выбор тогда //весь запрос КонецЕсли; И опять ничего не происходит) |
|||
23
Wobland
25.06.14
✎
18:08
|
юзер явно и недвусмысленно тычет мышью в какую-то комплектующую. но мы же программисты! нужен же запрос!
|
|||
24
Господин ПЖ
25.06.14
✎
18:12
|
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) ЗаполнениеТабДок(ВыбранноеЗначение); КонецПроцедуры &НаСервере Процедура ЗаполнениеТабДок(НеведомаяХрень) Запрос = новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Наименование, | Материал, | КодКомпонента, | Инд |ИЗ | Справочник.Комплектующие КАК Комплектующие |ГДЕ Комплектующие.Ссылка = &НеведомаяХрень"; Запрос.УстановитьПараметр("НеведомаяХрень", НеведомаяХрень); Результат = Запрос.Выполнить(); Выборка=Результат.Выбрать(); Выборка.Следующий(); НоваяСтрока =Объект.ТабДок.Добавить(); НоваяСтрока.НазваниеКомпонента = Выборка.Наименование; НоваяСтрока.Материал = Выборка.Материал; НоваяСтрока.КодКомпонента = Выборка.КодКомпонента; НоваяСтрока.Инд=Выборка.Инд; |
|||
25
VenedPS
25.06.14
✎
18:23
|
Блин, капец... параметры запроса потерял вот и не работало)
Спасибо большое, очень помогли. Может из меня и получится 1С-ник когда то) |
|||
26
Wobland
25.06.14
✎
18:25
|
а НеведомаяХрень.Наименование не спасёт?
|
|||
27
VenedPS
25.06.14
✎
18:28
|
Спасибо еще раз. Все заработало.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |