Имя: Пароль:
1C
1С v8
Открыть свою форму с переданной таб. частью
,
0 lirt82
 
15.10.19
14:17
в документе Реализации сделал свою команду "Загрузить", при нажатии должна вызываться моя форма загрузки с переданной таб. частью Товары из документа Реализации, т.е. нажал открылась форма и в ней уже заполненная таб. часть Товары. Проблема в том что выгрузить в ТЗ могу на сервере, а открыть свою форму на клиенте. Подскажите?
1 lirt82
 
15.10.19
14:19
т.е. передать таб. часть с клиента на сервер и затем в мою форму
2 Kol Pecivanovich
 
15.10.19
14:37
при передаче ТЗ используйте ПоместитьВоВременноеХранилище() и передавайте адрес хранилища в открываемую форму, а в открываемой форме в ПриСозданииНаСервере() используйте ПолучитьИзВременногоХранилища() и загружайте полученную таблицу
3 lirt82
 
15.10.19
14:43
(2) пример кода нужен)

&НаСервере
Процедура ЗагрузитьИзВнешнегоФайлаНаСервере()
    ТЗ = Объект.Расходы.Выгрузить();
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьИзВнешнегоФайла(Команда)
    АдресХранилища = ПоместитьВоВременноеХранилище(ТЗ); // смысл???
    ЗагрузитьИзВнешнегоФайлаНаСервере();
КонецПроцедуры
4 singlych
 
15.10.19
14:51
(3)

&НаСервере
Функция АдресТЗВХранилище()
    ТЗ = Объект.Расходы.Выгрузить();
    АдресХранилища = ПоместитьВоВременноеХранилище(ТЗ);
    Возврат АдресХранилища;
КонецФункции

&НаКлиенте
Процедура ЗагрузитьИзВнешнегоФайла(Команда)
    АдресХранилища = АдресТЗВХранилище();
    ОткрытьМоюФорму(АдресХранилища);
КонецПроцедуры
5 lirt82
 
15.10.19
15:25
(4) в модуле документа
&НаСервере
Функция esc_АдресТЗВХранилище()
    
    ТЗ = Объект.Расходы.Выгрузить();
    АдресХранилища = ПоместитьВоВременноеХранилище(ТЗ);
    
    Возврат АдресХранилища;
    
КонецФункции

&НаКлиенте
Процедура esc_ЗагрузитьИзВнешнегоФайла(Команда)
    
    АдресХранилищаТЗ = esc_АдресТЗВХранилище();
    ПараметрыФормы = Новый Структура("Ключ", АдресХранилищаТЗ);
    ОткрытьФорму("Документ.ПриобретениеУслугПрочихАктивов.Форма.esc_ФормаЗагрузкиПредварительная", ПараметрыФормы);
    
КонецПроцедуры

а в модуле моей формы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ДанныеЭксель = ПолучитьИзВременногоХранилища(АдресХранилищаТЗ);// переменная не определена
    
КонецПроцедуры
6 singlych
 
15.10.19
15:31
в параметры посмотри
7 singlych
 
15.10.19
15:32
(6) только не в "Ключ" пихай, а в "АдресХранилищаТЗ"
8 lirt82
 
15.10.19
15:36
(7) в модуле моей формы нужно поймат эту переменную, экспортной что ли сделать?
9 lirt82
 
15.10.19
15:37
при создании не видит Адреса
10 RomanYS
 
15.10.19
15:38
(0) ТЗ является реквизитом формы? Тогда всё можно делать на клиенте без временного хранилища
11 lirt82
 
15.10.19
15:39
(10) таб. часть не ТЗ, ну пример кода
12 lirt82
 
15.10.19
15:41
(10) проблема в передаче таб части на мою форму, вот и все, а в каком виде не имеет значения можно таб. часть в ТЗ выгрузить можно через хранилище.
13 singlych
 
15.10.19
15:42
да блин

&НаСервере
Функция esc_АдресТЗВХранилище()
    
    ТЗ = Объект.Расходы.Выгрузить();
    АдресХранилища = ПоместитьВоВременноеХранилище(ТЗ, УникальныйИдентификатор);
    
    Возврат АдресХранилища;
    
КонецФункции

&НаКлиенте
Процедура esc_ЗагрузитьИзВнешнегоФайла(Команда)
    
    АдресХранилищаТЗ = esc_АдресТЗВХранилище();
    ПараметрыФормы = Новый Структура("АдресХранилищаТЗ", АдресХранилищаТЗ);
    ОткрытьФорму("Документ.ПриобретениеУслугПрочихАктивов.Форма.esc_ФормаЗагрузкиПредварительная", ПараметрыФормы);
    
КонецПроцедуры

а в модуле моей формы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ДанныеЭксель = ПолучитьИзВременногоХранилища(Параметры.АдресХранилищаТЗ)

    
КонецПроцедуры
14 lirt82
 
15.10.19
15:46
(13) ааааааа  все теперь допетрил))))), работает
15 RomanYS
 
15.10.19
15:46
(11) Если со стороны первой формы:

Процедура Команда2(Команда)
    Ф = ОткрытьФорму("Обработка.Обработка11.Форма.Форма1");
    
    Стр = Ф.РеквизитТЗ.Добавить();
    Стр.Реквизит1 = "тест";
    
КонецПроцедуры

Ещё проще во второй через ВладелецФормы
16 lirt82
 
15.10.19
15:49
(13) Нельзя изменять поле, содержащее объект данных формы
17 lirt82
 
15.10.19
15:49
это при открытии моей формы
18 hhhh
 
15.10.19
16:23
(17) делай не "=", а загрузить() тогда
19 lirt82
 
15.10.19
19:18
По итогу задача такая: нужно содержимое таб. части документа перенести на мою форму затем пользователь в этой моей форме меняет данные и потом изменённые данные загружаются обратно в таб. часть документа, вот такие интерактивные действия.
т.е. сначала выгрузить таб. часть "куда-то", затем пользователь отредактирует в этом "куда-то" и затем вернуть отредактированное "куда-то" обратно в таб. часть.
20 Мимохожий Однако
 
15.10.19
19:26
(19) "Куд-то"-отдельная общая форма
21 RomanYS
 
15.10.19
20:17
(19) Вторая форма берет данные из ВладелецФормы.Объект потом туда же кладёт. Всё.