Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 01:52

Не заполняет внешний набор данных

Автор mashencev_anton, 01 июн 2015, 16:35

0 Пользователей и 1 гость просматривают эту тему.

mashencev_anton

у меня тупняк((( выручайте подскажите плиз. Внешняя обработка с двумя формами. В первой заполняется ТЧ,потом по кнопке открывается вторая форма с табличным документом (Отчет). проблема в том что Номенклатура не передается.
код с первой формы &НаКлиенте
Процедура СформироватьОтчет(Команда)
КомандаНаСервере();
структура=Новый Структура;
Структура.Вставить("ТипЦен",Объект.ТипЦен);
Форм = ПолучитьФорму("ВнешняяОбработка.АнализПрайсаПоставщика.Форма.ФормаОтчета",Структура,ЭтотОбъект);
Форм.Открыть();
   
КонецПроцедуры

&НаСервере
Процедура КомандаНаСервере()

ОбъектОбработка = РеквизитФормыВЗначение("Объект");
    ОбъектОбработка.СформироватьОтчетНаСервере();
   
КонецПроцедуры

Код из модуля объекта Процедура  СформироватьОтчетНаСервере()   Экспорт

ТЗ = товары.Выгрузить(,"Атрикул,Номенклатура,ЦенаИзПрайса");

    ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТЗ",ТЗ);
         
СхемаКомпоновкиДанных =ЭтотОбъект.ПолучитьМакет("МакетОбработки");
НайденныйПараметр=СхемаКомпоновкиДанных.Параметры.Найти("ТипЦен");
НайденныйПараметр.Значение=ТипЦен;
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

ПользовательскиеНастройкиКД=Новый ПользовательскиеНастройкиКомпоновкиДанных;
ДопНастройки=ПользовательскиеНастройкиКД.ДополнительныеНастройки;

КомпоновщикНастроекДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроекДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроекДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроекДанных.ЗагрузитьПользовательскиеНастройки(ДопНастройки);

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ЭтотОбъект.ТабДок);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

КонецПроцедуры

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

Рек = РеквизитФормыВЗначение("Объект");
Рек.СформироватьОтчетНаСервере();

КонецПроцедуры


Дмитрий@

СхемаКомпоновкиДанных =ЭтотОбъект.ПолучитьМакет("МакетОбработки");
В макете обработки что у вас?
Добавлено: 01 июн 2015, 19:02


И сделайте точку останова после строчки
ТЗ = товары.Выгрузить(,"Атрикул,Номенклатура,ЦенаИзПрайса");
и посмотрите что в переменной ТЗ

vitasw

На первый взгляд: у вас разные объекты

КомандаНаСервере(); -Это объект 1
    структура=Новый Структура;
    Структура.Вставить("ТипЦен",Объект.ТипЦен);
    Форм = ПолучитьФорму("ВнешняяОбработка.АнализПрайсаПоставщика.Форма.ФормаОтчета",Структура,ЭтотОбъект);   /Это Объект 2 форму, которую вы получаете не имеет отношения к тому объекту, в котором выполнялся отчет.
    Форм.Открыть();
Ну и во вторых очень сильно сомневаюсь, что "ТипЦен"  заполняется.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск