Имя: Пароль:
1C
1С v8
Передача параметров между формами внешней обработки
0 LisaAlisa
 
29.04.16
11:17
В модуле формы обработки пишу

ОткрытьФорму(
            "ВнешняяОбработка.МояОбработка.Форма.ФормаСопоставленияНоменклатуры",
            Новый Структура("ТаблицаНесопоставленнойНоменклатуры", ТаблицаНесопоставленнойНоменклатуры),
            ЭтотОбъект,,,,
            Новый ОписаниеОповещения("СопоставлениеНоменклатурыЗавершение", ЭтотОбъект, ДополнительныеПараметры));

Произвольная форма ФормаСопоставленияНоменклатуры имеет реквизит ТаблицаНоменклатуры, куда мне нужно загрузить таблицу ТаблицаНесопоставленнойНоменклатуры, переданную из основной формы (ТаблицаНесопоставленнойНоменклатуры - реквизит основной формы, имеет те же колонки, что и реквизит-таблица на форме ФормаСопоставленияНоменклатуры )

В модуле формы ФормаСопоставленияНоменклатуры указываю
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ТаблицаНоменклатуры.Загрузить(Параметры.ТаблицаНесопоставленнойНоменклатуры);
    
КонецПроцедуры

ОШИБКА:
{Форма.ФормаСопоставленияНоменклатуры.Форма(5)}: Ошибка при вызове метода контекста (Загрузить)
    ТаблицаНоменклатуры.Загрузить(Параметры.ТаблицаНесопоставленнойНоменклатуры);
по причине:
Несоответствие типов (параметр номер '1')

Подскажите, что делаю не так
1 salvator
 
29.04.16
11:21
Какой тип у "ТаблицаНоменклатуры" и у "Параметры.ТаблицаНесопоставленнойНоменклатуры" ?
2 LisaAlisa
 
29.04.16
11:28
(1) в основной форме при передаче параметров в ОткрытьФорму ТаблицаНесопоставленнойНоменклатуры имеет тип ДанныеФормыКоллеккция, а в &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) почему-то отладчик не попадает, поэтому не могу посмотреть тип значения
3 LisaAlisa
 
29.04.16
11:31
(1) Сообщить(ТИП(Параметры.ТаблицаНесопоставленнойНоменклатуры)) выдает ДанныеФормыКоллкция
4 aleks_default
 
29.04.16
11:35
Заполняй обходом. Метод загрузить() здесь не сработает.
5 LisaAlisa
 
29.04.16
11:37
(4) спасибо, сработало
6 singlych
 
29.04.16
11:40
ТЗизКоллекции = ДанныеФормыВЗначение(Параметры.ТаблицаНесопоставленнойНоменклатуры, Тип("ТаблицаЗначений"));
ТаблицаНоменклатуры.Загрузить(ТЗизКоллекции);
7 LisaAlisa
 
29.04.16
11:46
(6) спасибо! тоже работает
8 LisaAlisa
 
29.04.16
13:36
В модуле произвольной формы заполняю реквизит-таблицу ТаблицаНоменклатуры.
Теперь значениями этой таблицы надо заполнить реквизит-таблицу Объекта ЗаказыСостав.

    Если ЗначениеЗаполнено(НоменклатураСсылка) Тогда
        МассивСтрокЗаказыСостав = Объект.ЗаказыСостав.НайтиСтроки(Новый Структура("Артикул",СокрЛП(НоменклатураСсылка.Артикул)));
        Для каждого СтрокаМассива из МассивСтрокЗаказыСостав Цикл
            СтрокаМассива.НоменклатураСсылка = НоменклатураСсылка;
        КонецЦикла;
    КонецЕсли;

Но Объект.ЗаказыСостав (если смотреть в модуле формы) имеет тип ДанныеФормыКоллекция и ничего не содержит, хотя на самом деле строки есть
9 LisaAlisa
 
29.04.16
13:36
вопрос: как правильно заполнить таблицу Объект.ЗаказыСостав?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.