8.х Передача таблицы значений на управляемую форму

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Garnet27, 24 авг 2015.

  1. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Добрый день! Есть ТаблицаЗначений, формируемая в модуле обработки. Есть реквизит обработки ТЗОбщая. Нужно ТаблицуЗначений вывести на УправляемуюФорму2, получаемую при выполнении УправляемойФормы1. Копирую ТаблицуЗначений в реквизит обработки ТЗОбщая, теперь бы ее как-то передать в УправляемуюФорму2...
    Код в УФ1:
    &НаКлиенте
    Процедура Сформировать(Команда)

    ОбщаяТаблица = СформироватьНаСервереОбщуюТаблицу(ТаблицаДляВыгрузки);
    ФормаРезультата = ПолучитьФорму("ВнешняяОбработка.СтатистикаБД.Форма.ФормаОбщегоРезультата",,ЭтаФорма);
    ВыборкаДанных = ФормаРезультата.ОткрытьМодально();

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

    &НаСервере
    Функция СформироватьНаСервереОбщуюТаблицу(ТаблицаДляВыгрузки)

    Объект.ТаблицаОбщегоРезультата.Очистить();
    ОбщаяТаблица = Объект.ТаблицаОбщегоРезультата;
    Для каждого Стр Из ТаблицаДляВыгрузки Цикл
    НовСтр=ОбщаяТаблица.Добавить();
    НовСтр.Развернуть=Ложь;
    НовСтр.Наименование = Стр.Наименование;
    НовСтр.Общие = Стр.Общие;
    НовСтр.Счетчик = Стр.Счетчик;
    НовСтр.Норма = Стр.Норма;
    КонецЦикла;

    Возврат ОбщаяТаблица; // Здесь сформирована Объект.ТаблицаОбщегоРезультата, и она заполнена

    КонецФункции


    Код в УФ2:
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)

    ТабличныйДокумент = СозданиеТаблицы();

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

    &НаСервере
    Функция СозданиеТаблицы()


    ЭтаФорма.ТаблицаОбщегоРезультатаНаФорме.Загрузить(Объект.ТаблицаОбщегоРезультата); // А здесь она пустая!!!

    КонецФункции

    Что делаю не так? Большое спасибо.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Так вы после
    ФормаРезультата = ПолучитьФорму("ВнешняяОбработка.СтатистикаБД.Форма.ФормаОбщегоРезультата",,ЭтаФорма);

    делайте
    ФормаРезультата.ТЗ_Как_РеквизитФормы.Загрузить(ТЗ_Как_Переменная_Процедуры)
  3. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Метод недоступен на клиенте...(( ФормаРезультата там... Где прописать, что-то не соображу...(
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Так в серверном контексте, вестимо, все операции с ТЗ делать надо.
  5. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Так в серверном контексте первой формы, правильно я понимаю? До перехода в форму2? То есть:
    На клиенте: ФормаРезультата = ПолучитьФорму("ВнешняяОбработка.СтатистикаБД.Форма.ФормаОбщегоРезультата",,ЭтаФорма);
    На сервере: ФормаРезультата.ТЗ_Как_РеквизитФормы.Загрузить(ТЗ_Как_Переменная_Процедуры)
    потом опять возвращаемся на клиент и ВыборкаДанных = ФормаРезультата.ОткрытьМодально();
    Так?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    в первом приближении - да.
    могут быть конечно нюансы, ибо лично я так пока не заморачивался :)
  7. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    что-то.... не может он ФормуРезультата на сервер передать, ругается
    Код такой:
    На клиенте:
    ФормаРезультата = ПолучитьФорму("ВнешняяОбработка.СтатистикаБД.Форма.ФормаОбщегоРезультата",,ЭтаФорма);
    ЗагрузитьОбщуюТаблицу(ФормаРезультата);
    ВыборкаДанных = ФормаРезультата.ОткрытьМодально();

    //ТаблДок.Показать();

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

    &НаСервере
    Функция ЗагрузитьОбщуюТаблицу(ФормаРезультата)
    ФормаРезультата.ТаблицаОбщегоРезультатаНаФорме.Загрузить(Объект.ТаблицаОбщегоРезультата);
    Возврат ФормаРезультата;
    КонецФункции

    Послал таким образом:
    Ошибка при вызове метода контекста (ЗагрузитьОбщуюТаблицу)
    ЗагрузитьОбщуюТаблицу(ФормаРезультата);
    по причине:
    Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
    по причине:
    Ошибка преобразования данных XDTO:
    Запись значения свойства 'param':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}param
    по причине:
    Ошибка отображения типов:
    Отсутствует отображение для типа 'УправляемаяФорма'
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    ээээ....Объект.ТаблицаОбщегоРезультата - это ТЧ, а не ТЗ.
    А если так:

    Код:
    &На клиенте:
    ФормаРезультата = ПолучитьФорму("ВнешняяОбработка.СтатистикаБД.Форма.ФормаОбщегоРезультата",,ЭтаФорма);
    ЗагрузитьОбщуюТаблицу(ФормаРезультата.ТаблицаОбщегоРезультатаНаФорме);
    ВыборкаДанных = ФормаРезультата.ОткрытьМодально();
    
    //ТаблДок.Показать();
    
    КонецПроцедуры
    
    &НаСервере
    Процедура ЗагрузитьОбщуюТаблицу(ТЧРезультата)
    ТЧРезультата.Загрузить(Объект.ТаблицаОбщегоРезультата.Выгрузить());
    КонецПроцедуры
    ?
  9. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Ох.... низзя... низзя, грит:
    Ошибка при установке значения атрибута контекста (ТаблицаОбщегоРезультатаНаФорме)
    ЗагрузитьОбщуюТаблицу(ФормаРезультата.ТаблицаОбщегоРезультатаНаФорме);
    по причине:
    Нельзя изменять поле, содержащее объект данных формы
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Че-та я пас :)
    А к чему весь этот финт с двумя формами и ТЗ в них?
  11. TopicStarter Overlay
    Garnet27
    Offline

    Garnet27 Опытный в 1С

    Регистрация:
    1 июл 2015
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    26
    Да это большой-большой отчет с промежуточным результатом, на основании которого будем дальше данные получать... Ладна... я тут подумала... ну их эти две формы... сделаю страницами на одной. Спасибо вам большое все равно!!!
    --- Объединение сообщений, 24 авг 2015 ---
    Да, со страничками все влет пошло) Не усложняй, и будет счастье))

Поделиться этой страницей