|   |   | 
| 
 | Заполнение табличной части документа из внешней обработки | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Спасибо. Попробую.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |