![]() |
|
Как реализовать подбор номенклатуры во внешней обработке на управляемых формах? | ☑ | ||
---|---|---|---|---|
0
Saari
21.08.20
✎
08:31
|
Есть обработка с табличной частью "Товары" содержащей 2 реквизита: "Наименование", "Количество".
На форме обработки есть кнопка "Подбор". Пытаюсь сделать подбор номенклатуры в табличную часть по аналогии с подбором в документах: "Реализация товаров и услуг", "Перемещение товаров". В команде кнопки "Подбор" написал следующее: &НаКлиенте Процедура КомандаПодбор(Команда) ПараметрыПодбора = Новый Структура; ПараметрыПодбора.Вставить("ЕстьКоличество" , Истина); ПараметрыПодбора.Вставить("ИмяТаблицы" , "Товары"); ПараметрыПодбора.Вставить("ЗакрыватьПриВыборе", Ложь); ПараметрыПодбора.Вставить("МножественныйВыбор", Истина); ПараметрыПодбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы); ОткрытьФорму("Обработка.ПодборНоменклатуры.Форма.Форма", ПараметрыПодбора, ЭтаФорма, ЭтаФорма.УникальныйИдентификатор); КонецПроцедуры Форма открывается, выбор номенклатуры с указанием количества происходит. Но по кнопке "Перенести в документ" выбранная номенклатура не переносится в табличную часть моей обработки. Что и как сделать, чтобы выбранная номенклатура переносилась в табличную часть обработки? Помогите, пожалуйста. |
|||
1
Галахад
гуру
21.08.20
✎
08:39
|
(0) Почитай про ОбработкаВыбора.
|
|||
2
FIXXXL
21.08.20
✎
08:39
|
(0) ну посмотри как в типовых доках реализовано
ЕМНИП через ОбработкаВыбора, т.е. ответ от формы подбора разбирать надо в форме твоей обработки |
|||
3
Saari
21.08.20
✎
09:09
|
(2) Посмотрел документ "РеализацияТоваровУслуг" и прошелся отладчиком.
В процедуре "ОбработкаВыбора()" вызвываются процедуры, в которой есть строка: ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресПодобраннойНоменклатурыВХранилище); У себя в обработке создал процедуру "ОбработкаВыбора()" и в ней написал эту строку. Получаю сообщение об ошибке: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища) ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресПодобраннойНоменклатурыВХранилище); по причине: Ошибка получения значения из временного хранилища по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: НачалоСвойства: {http://v8.1c.ru/8.2/mngsrv/ws}response Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/core}ValueTable Причем в ВыбранноеЗначение.АдресПодобраннойНоменклатурыВХранилище значение заполнено. |
|||
4
Saari
21.08.20
✎
09:11
|
кажется понял. Исправляю...
|
|||
5
Saari
21.08.20
✎
09:20
|
УРА! Реализовал.
&НаКлиенте Процедура КомандаПодбор(Команда) ПараметрыПодбора = Новый Структура; ПараметрыПодбора.Вставить("ЕстьКоличество" , Истина); ПараметрыПодбора.Вставить("ИмяТаблицы" , "Товары"); ПараметрыПодбора.Вставить("ЗакрыватьПриВыборе", Ложь); ПараметрыПодбора.Вставить("МножественныйВыбор", Истина); ПараметрыПодбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы); ОткрытьФорму("Обработка.ПодборНоменклатуры.Форма.Форма", ПараметрыПодбора, ЭтаФорма, ЭтаФорма.УникальныйИдентификатор); КонецПроцедуры &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) ОбработкаВыбораПодборВставкаИзБуфераНаСервере(ВыбранноеЗначение, ИсточникВыбора.ИмяТаблицы); КонецПроцедуры &НаСервере Процедура ОбработкаВыбораПодборВставкаИзБуфераНаСервере(ВыбранноеЗначение, ИмяТаблицы) ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресПодобраннойНоменклатурыВХранилище); ОбъектОтчет.Товары.Загрузить(ТаблицаТоваров); КонецПроцедуры Загружает в табличную часть "Товары" обработки выбранные значения на форме подбора. Всем спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |