Имя: Пароль:
1C
1С v8
8.2. Управляемая форма. Как перенести Данные ТЧ
,
0 Смешной 1С
 
06.10.11
11:04
Добрый день!

На одной форме документа есть ТЧ. Это ТЧ Документа. Я ее заполняю, потом по кнопке открываю вторую форму, где также разместил эту ТЧ документа.

Как сделать, чтобы данные из ТЧ первой формы, попали во ТЧ второй формы?
1 Mort
 
06.10.11
11:06
Две формы документа? А в чем прикол?
2 Mort
 
06.10.11
11:07
Можно конечно попытаться в параметры формы кинуть объект (который данные формы), но интересно зачем.
3 Смешной 1С
 
06.10.11
11:10
(1) Нужно перед Печатью печатной формы, какие строки из ТЧ печатать. Поэтому открывается вторая форма, где можно выбрать нужные строки.

Может кто предложит как по другому? Но на той же форме выбирать нельзя.
4 Phace
 
06.10.11
11:11
(0) подбор чтоль какой реализуешь?
5 Смешной 1С
 
06.10.11
11:12
(4) Да.
6 Конфигуратор1с
 
06.10.11
11:12
а через отбор?
7 Конфигуратор1с
 
06.10.11
11:12
создаешь реквизит формы и туда передаешь данные
8 Смешной 1С
 
06.10.11
11:13
Вопрос как
9 Stim213
 
06.10.11
11:15
10 Mort
 
06.10.11
11:15
ОткрытьФорму("ЖурналДокументов.XXXX.ФормаСписка", Новый Структура("ТЧ_Товары", Объект.Товары));

В ПриСозданииНаСервере открываемой формы палишь параметры.
11 Milok
 
06.10.11
11:22
Я бы использовал Временное хранилище.
12 Смешной 1С
 
06.10.11
11:39
(11) Расскажи как
13 Mort
 
06.10.11
11:40
Мда, легких путей не ищем. Ещё через жесткий диск по DMA гоняйте табличку..
14 Смешной 1С
 
06.10.11
11:41
(10) В МодулеКоманды нет Объект
15 Milok
 
06.10.11
11:51
(13) Решение с Временным хранилищем, на мой взгляд изящнее, чем в (10).
16 milan
 
06.10.11
11:54
(14) Куда делся ?
(15) Чем изящнее ? тем что на сервер надо будет данные перегнать, а при открытии формы с параметром все делается на клиенте ?
17 Mort
 
06.10.11
12:01
(14) Тогда передавай в форму тупо ссылку, а форма в ПриСозданииНаСервере пусть читает по ссылке строки. Запросом например, шоб сразу загрузить в данные формы печати.
18 Смешной 1С
 
06.10.11
12:03
(17) А ссылку откуда в модуле команды возьму? Тоже нету
19 Phace
 
06.10.11
12:03
(17) "Тогда передавай в форму тупо ссылку"

А документ новый, ссылки нет!
20 Mort
 
06.10.11
12:05
(18)(19) Если это не команда формы, в команда с параметром, не ссыте, ссылка будет.
21 Phace
 
06.10.11
12:06
(20) Откуда возмется ссылка если документ еще не записан, (но в ТЧ уже куча строк)?
22 Mort
 
06.10.11
12:08
(21) Параметризованные команды записывают объект.
23 Смешной 1С
 
06.10.11
12:10
(20) Вот, ПараметрКоманды, там все есть, спасибо, сейчас попробую пошаманить.
24 Смешной 1С
 
06.10.11
12:11
(21) Сделаю обязательное условие, что печать только после записи)
25 Milok
 
06.10.11
12:31
(16) На сервер данные перегоняются в любом случае.
26 Смешной 1С
 
06.10.11
12:32
Как в (10) передаю ссылку на Документ, сслыка есть, но в процедуре ПриСозданииНаСервере этот параметр почему то пустая ссылка на Документ
27 Mort
 
06.10.11
12:34
Покажи код модуля и код ПриСозданииНаСервере
28 Mort
 
06.10.11
12:34
*код модуля команды
29 Смешной 1С
 
06.10.11
12:36
КодКоманды:

&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
   Форма = Документы.Элтем_ЗаявкаНаРемонт.ПолучитьФорму("ФормаВыбораОборудования", Новый Структура("Ссылка", ПараметрКоманды[0].Ссылка));
   Форма.Открыть();
КонецПроцедуры

В ПриСозданииНаСервере отладчиком смотрю "Параметры", там вижу свой параметр, но он пустая ссылка
30 Mort
 
06.10.11
12:41
Ты обычную форму открываешь?
31 Mort
 
06.10.11
12:42
ОткрытьФорму("Документ.Элтем_ЗаявкаНаРемонт.Форма.ФормаВыбораОборудования", Новый Структура("Ссылка", ПараметрКоманды[0].Ссылка));
32 НастоящееИмя
 
06.10.11
12:44
Если в таб. части 1000 строк? Очень много данных будет передаваться между клиентом и сервером. Лучше через временное хранилище
33 НастоящееИмя
 
06.10.11
12:45
Используй ПоместитьВоВременноеХранилище() и ПолучитьИзВременногоХранилища()
34 Смешной 1С
 
06.10.11
12:46
(31) Ничего себе. я не знал что есть разница. Спасибо огромное!

(32) Столько не будет.
35 НастоящееИмя
 
06.10.11
12:47
(34) Это я преувеличил. Но всё равно, если работа ведется через Инет, то скорость увеличиться в разы
36 GROOVY
 
06.10.11
12:48
(34) Какая разница. Только через временное хранилище!
37 Mort
 
06.10.11
12:49
Ага. А из списка документ печатать пользователи обломятся. Вдруг большой документ попадется!
38 НастоящееИмя
 
06.10.11
12:51
(37) не понял?
39 Mort
 
06.10.11
12:52
Или вы советуете в модуле команды считать ТЧ объекта (с сервера естессна) во временное хранилище, чтобы не пришлось переть ТЧ вместе с формой? В чем выгода?
40 Mort
 
06.10.11
12:53
(38) Автор русским языком сказал что открывает форму по внешней (параметризованной) команде.
41 НастоящееИмя
 
06.10.11
12:55
(40)Да какая разница. ВременноеХранилище не для хранения там данных, а для перемещения этих данных между объектами/формами и т.п. Правильно в такой ситуации будет использования временного хранилища.
У меня такая ситуация была. Есть обработка с таб частью и данными в ней. На форме кнопка, которая создает документ и помещает в таб. часть документа данные из таб. части обработки
42 Mort
 
06.10.11
12:56
(41) Одна е*т, другая дразница. У него в команде гарантировано доступна только ссылка на объект.
43 Mort
 
06.10.11
13:00
+(42) Конечно если команда вызвана не из командной панели списка документов, а из формы документа, можно добраться до формы и объекта, и тем самым оптимизировать через это ваше хранилище (т.е. доп код к вызову по ссылке). Только с учетом что вызывается не всегда из формы и что документ с 1000 строк появится с вероятностью 0.00001, за средний прирост в быстродействии в 0.01% в редко вызываемой процедуре, серьезно усложнится код и будет потрачено время разработчика.
44 НастоящееИмя
 
06.10.11
13:01
(43) ну, кому как.
45 Phace
 
06.10.11
13:02
С одной стороны в типовых и печать и подборы сделаны с ипользованием временного хранилища, с другой через параметр передавать данные проще.
46 Phace
 
06.10.11
13:04
(45)+ лично я во всем самописных подборах использую параметр
47 Phace
 
06.10.11
13:04
"во всем" = "во всеХ"
48 Смешной 1С
 
06.10.11
13:05
Вот сейчас я в процедуре ПриСозданииНаСервере получил список из табличной части первой формы. Но записать ее в ТЧ на вторую форму не могу. На сервере говорит функции недоступны
49 НастоящееИмя
 
06.10.11
13:06
(43) Кстати почитай Грабеца "Разработка управляемого интерфейса" там всё написано
50 Mort
 
06.10.11
13:13
Это в каких типовых печать через временное хранилище делается, подскажи.
51 Mort
 
06.10.11
13:13
(50) -> (45)
52 Phace
 
06.10.11
13:14
(50) УНФ
53 Mort
 
06.10.11
13:14
И самое интересное, при чем тут подбор?
54 Mort
 
06.10.11
13:16
(52) Щас посмотрим. В УТ и БП КОРП 3.0 печать это внешняя команда объекта, которая может принимать массив ссылок и их всех печатать. Т.е. про никакие хранилища и речи нет. Да и что там передавать через хранилище - не представляю.
55 Phace
 
06.10.11
13:20
(54) // "печать это внешняя команда объекта, которая может принимать массив ссылок и их всех печатать"

Именно, но как печать происходит? Обрати внимание на общую форму "ПечатьДокументов".
56 Phace
 
06.10.11
13:21
(53) В подборе используется передача некоторых данных от одной формы в другую, в (0) требуется тоже.
57 Mort
 
06.10.11
13:23
(55) Принимает массив ссылок в Параметры.ПараметрКоманды и их отправляет в УправлениеПечатью.СформироватьПечатныеФормы,  который, в свою очередь отправляет их в функцию печати в модуле менеджера объекта. Где работа с хранилищем?
58 Mort
 
06.10.11
13:25
(56)
Подбор изменяет данные отображаемые на форме, вне формы подбор это ничто.

А печати пофиг на форму, она работает с ссылками. И сама может успешно проходить без участия каких-либо форм.

Разницу чуешь?
59 Phace
 
06.10.11
13:34
(57) посмотрел внимательно, признаю ошибку, в УНФ непосредственно для печати печатных форм документов временное хранилище не используется.
Независимо от того, куда вы едете — это в гору и против ветра!