|
Заполнение табличной части документа из внешней обработки | ☑ | ||
---|---|---|---|---|
0
Igor1_777
16.10.19
✎
16:06
|
Задача.
В документ Заказ Поставщику нужно прикрутить внешнюю обработку. Во внешней обработке есть две табчасти: Список номенклатуры с остатками и некая Корзина. Из Списка номенклатуры накидываем в корзину товар и при нажатии "Перенести в документ" содержимое Корзины должно перенестись в табчасть документа Заказ Поставщику. Не могу понять почему не переносится товар из Корзины в Заказ Поставщику Описание Внешней обработки Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; МассивНазначений.Добавить("Документ.ЗаказПоставщику"); ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Подбор Номенклатуры в документе Заказ поставщику'")); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Подбор Номенклатуры в документе Заказ поставщику'")); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, НСтр("ru = 'Подбор Номенклатуры'"), НСтр("ru = 'Подбор Номенклатуры'"), "ВызовКлиентскогоМетода", Истина); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Команда, открывающая обработку: &НаКлиенте Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт ТекОбъект = ОткрытьФорму("ВнешняяОбработка.ЗаполнениеТабличнойЧастиЗаказПоставщику.Форма",,ЭтаФорма); ФормаВыбора = ПолучитьФорму("ВнешняяОбработка.ЗаполнениеТабличнойЧастиЗаказПоставщику.Форма",,ЭтаФорма); //Для каждого ТекущаяСтрока из ВладелецФормы.Объект.Материалы Цикл // ТекущаяСтрока.Количество = 100 ; Сообщить(ФормаВыбора) ; //КонецЦикла ; КонецПроцедуры Процедура, отр\правляющая данные в документ: &НаКлиенте Процедура ПеренестиВДокумент(Команда) Результат = Новый Структура; Результат.Вставить("Корзина", Объект.Корзина); ОповеститьОВыборе(Результат); КонецПроцедуры Подскажите, где не так делаю? |
|||
1
Temai
16.10.19
✎
16:14
|
Стесняюсь спросить где кусок кода, который должен делать то что вы хотите? И зачем сюда было тащить СведенияОВнешнейОбработке?
|
|||
2
elCust
16.10.19
✎
16:16
|
(1) Ctrl+A, на мисте разберутся же)))
|
|||
3
piter3
16.10.19
✎
16:18
|
Название должно быть иное:Напишите за меня и далее
|
|||
4
Igor1_777
16.10.19
✎
16:42
|
Вопрос по последней процедуре. Что туда нужно дописать, чтобы передать таблицу с товаром в вызывающий обработку документ.
|
|||
5
Temai
16.10.19
✎
16:46
|
В заказе поставщику в свойствах у основной формы есть событие - ОбработкаВыбора, там ты должен написать код который сделает то что ты хочешь.
Твой кусок кода - " ОповеститьОВыборе(Результат); " как раз передаёт в это событие твою "Корзину", там то и заполняй документ |
|||
6
Igor1_777
16.10.19
✎
16:51
|
Temai Спасибо. А не меняя сам документ нет возможности реализовать задачу?
|
|||
7
Temai
16.10.19
✎
17:03
|
Можно конечно, например:
В своей обработке на форму вынеси реквизит ссылка(создать новый), туда будет подставляться ссылка на документ заказ, при нажатии на кнопку на форме заказа поставщику (будет открываться форма обработки и заполняться реквизит ссылка). Далее они будут наполнять корзину на твой форме и при нажатии на "перенести", ты получаешь объект заказ и переносишь туда корзину. |
|||
8
Temai
16.10.19
✎
17:06
|
чукча не писатель) надеюсь понятно..
|
|||
9
Igor1_777
16.10.19
✎
17:08
|
То есть я не возвращаю данные а открываю ранее сохраненный документ по ссылке и заполняю как объект?
|
|||
10
Temai
16.10.19
✎
17:11
|
(9) Да, это первое что пришло в голову. Думаю вариантов еще масса)
|
|||
11
Igor1_777
16.10.19
✎
17:20
|
Спасибо. Попробую.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |