Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как передать табличную часть как параметр дополнительной формы

Как передать табличную часть как параметр  дополнительной формы
Я
   1сЮлия
 
06.05.19 - 15:55
Добрый день! Как передать табличную часть как параметр  дополнительной формы добавила у дока форму дополнительную в модуле формы дока прописала Процедура КоманднаяПанель1ДействиеЗаполнитьПоПеремещению(Кнопка)
    ФормаОтбораПеремещения=ЭтотОбъект.ПолучитьФорму("Форма", ЭтаФорма);
    СсылкаНаОбъект=ЭтотОбъект.Серии;
    ФормаОтбораПеремещения.СсылкаНаОбъект=СсылкаНаОбъект;
    ФормаОтбораПеремещения.Открыть();
КонецПроцедуры  // КоманднаяПанель1ДействиеЗаполнитьПоПеремещению А,в самой форме

Процедура ОсновныеДействияФормыДействиеЗаполнитьПоПеремещению(Кнопка)
    Если СсылкаНаОбъект.Серии.Количество() > 0 Тогда
        
        ТекстВопроса = "Перед заполнением табличная часть будет очищена. Заполнить?";
        Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да,);
        Если Ответ <> КодВозвратаДиалога.Да Тогда
           Возврат;
        КонецЕсли;
        
    КонецЕсли;
    
    ТекстЗапроса =
        "ВЫБРАТЬ
        |    ПеремещениеТоваровТовары.СерияНоменклатуры,
        |    ПеремещениеТоваровТовары.Номенклатура
        |ИЗ
        |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
        |ГДЕ
        |    ПеремещениеТоваровТовары.Ссылка = &Ссылка";
        
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("Ссылка",   Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
        Предупреждение("Нет данных для заполнения!");
        Возврат;
    Иначе
        СсылкаНаОбъект.Серии.Очистить();
    КонецЕсли;
    
    Обход = РезультатЗапроса.Выбрать();
    Пока Обход.Следующий() Цикл
                
        НоваяСтрока = СсылкаНаОбъект.Серии.Добавить();
        НоваяСтрока.Номенклатура               = Обход.Номенклатура;
        НоваяСтрока.СерияНоменклатуры          = Обход.СерияНоменклатуры;
        
    КонецЦикла;

КонецПроцедуры Почему то не заполняет табличную часть дока я так думаю но ее не видит
 
 
   1сЮлия
 
1 - 06.05.19 - 15:56
СсылкаНаОбъект=ЭтотОбъект.Ссылка извиняюсь,но все равно не работает.
   RomanYS
 
2 - 06.05.19 - 16:35
НоваяСтрока = СсылкаНаОбъект.Серии.Добавить(); 

И здесь не ругается? А чем у вас является СсылкаНаОбъект?
   Ёпрст
 
3 - 06.05.19 - 16:46
(0) передаете
  СсылкаНаОбъект=ЭтотОбъект.Серии; 
    ФормаОтбораПеремещения.СсылкаНаОбъект=СсылкаНаОбъект; 

и потом к табличной части делаете 
  Если СсылкаНаОбъект.Серии.Количество() > 0 Тогда 

вы не находите тут противоречий ?
   Cyberhawk
 
4 - 06.05.19 - 16:55
ТЧ сконвертировать в ТЗ, ТЗ - в массив структур. Этот массив и передавать.
   RomanYS
 
5 - 06.05.19 - 16:57
(4) Зачем? Это ОФ и форма того же объекта. У них общий контекст ЭтотОбъект, ничего передавать не надо.
   Cyberhawk
 
6 - 06.05.19 - 17:00
(5) Я лишь заголовок прочитал )

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.