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

1с 8.2 Передача данных между формами документа

Автор cannabis_86, 06 мая 2011, 16:05

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

cannabis_86

Здравствуйте, Уважаемые форумчане. 1с 8.2 пишу свою конфу.
Имеется документ с 2-мя формами. Одна- форма элемента, вторая - произвольная форма.
В документе имеется табличная часть. На форме элемента она не отображается. При нажатии на кнопку вылазит 2-ая форма уже с табличной частью этого документа. На 2 форме создал реквизит1 тип = Документ.Объект.
Подскажите плз как это реализовать?
Я пытался это сделать след. образом, но что-то не добился жеалемого результата((:
1-ая форма - процедура обработки события нажатия на кнопку:

П = Новый Структура("Параметр1", Объект.Ссылка);
Форма= ПолучитьФорму("Документ.Судебный.Форма.Форма",П, ЭтаФорма);
Форма.Открыть();

2-ая форма:

&;НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗначениеВРеквизитФормы(Параметры.Параметр1.ПолучитьОбъект(),"Реквизит1");
//Реквизит1 -объект типа документ
КонецПроцедуры

Пытался не извращатся, а тупо передать сам объект, а не ссылку, но почему-то при попытке присвоить Реквизиту1=Параметры.Параметр1 1с начинала ругатсься, что мол нельзя так делать((((
После этих операций у меня на 2-ой форме появляется заполненная табличная часть, но есть некоторые проблемы:
Нет возможности редактирования табличной части документа(объекта)
Неужели все так сложно? Подскажите плз гуру, как это сделать?

zkolenko

В основной форме где нет табличной части делаете кнопку например ОткрытьТабЧасть и назначаете ей вот такую процедуру:

&НаКлиенте
Процедура ОткрытьТабЧасть(Команда)
   Параметр = новый Структура;
   Параметр.Вставить("Ключ", Объект.Ссылка);
   Форма = ПолучитьФорму("Документ.Судебный.Форма.Формаа", Параметр, ЭтаФорма);
   Форма.Открыть();
КонецПроцедуры

В параметры передаем следующую структуру, где значением будет Объект.Ссылка, а ключ структуры должен называться так как в примере "Ключ".

Далее открываем форму.

Но замечу сразу что когда в произвольной форме вы создали реквизит к примеру с названием РЕКВИЗИТ1 и типом  ДокументОбъект.Судебный, вы должны в его свойствах установить галочку "Основной реквизит"  и на всякий случай установите галочку "Сохраняемые данные".
В Произвольной форме раскройте реквизит РЕКВИЗИТ1 и перенесите табличную часть в элементы формы.
Все!
Теперь при нажатии на кнопку ОткрытьТабЧасть открывается произвольная форма с табличной частью того документа который мы передавали по ссылке в структуре
Параметр.Вставить("Ключ", Объект.Ссылка)
но мы же знаем что передается ссылка на текущий документ, значит табличная часть будет принадлежат нашему документу открытому в основной форме.
Прикрепляю фото своих двух форм ОСНОВНОЙ и ПРОИЗВОЛЬНОЙ на которых я и тренировался по вашему вопросу, для того чтобы вы визуально тоже это увидели.

Теги:

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

Рейтинг@Mail.ru

Поиск