Имя: Пароль:
1C
1С v8
Заполнение табличной части документа из внешней обработки
,
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
Спасибо. Попробую.
AdBlock убивает бесплатный контент. 1Сергей