Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Открыть свою форму с переданной таб. частью

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

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

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

    ЗагрузитьИзВнешнегоФайлаНаСервере();
КонецПроцедуры
   singlych
 
4 - 15.10.19 - 14:51
(3)

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

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

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

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

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

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

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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.