Имя: Пароль:
1C
1С v8
Можно ли развернуть свернутую ТЗ в другую вызываемую процедуру ?
,
0 Анастасия Изотова
 
22.05.16
17:31
Вечер добрый. У меня вопрос по 1С 8.1.
Можно ли свернув таблицу значений, передать эти значения в другую процедуру ?
У меня опрос табличной части:
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("СсылкаНаДок");
ТЗ.Колонки.Добавить("Услуга");
Для Каждого СтрТЧ из ДОк.Услуги Цикл
НовЭлТЗ=ТЗ.Добавить();                        НовЭлТЗ.СсылкаНаДок  = СтрТЧ.Док.Ссылка;
НовЭлТЗ.Услуга  = СтрТЧ.Услуга.Ссылка;
ТЗ.Свернуть("СсылкаНаДок, Услуга", "");

Могу ли я вызвав:
ОсобаяПроцедура();

в ней развернуть свернутую выше таблицу значений ?
Процедура ОсобаяПроцедура()
Для Каждого СтрТЗ из ТЗ Цикл
Сообщить(СтрТЗ.СсылкаНаДок);
Сообщить(СтрТЗ.Услуга);
КонецЦикла;

Подскажите пожалуйста, такое вообще технически возможно ?
Мне нужно поработать с полученными значениями, которые вошли в ТЗ выше, здоровым количеством Если,  и этот кусок кода лучше вынести в отдельно вызываемую процедуру,  но как в нее данные отдать без потерь ?
1 Александр_
Тверь
 
22.05.16
17:37
Было у вас три цифры, 10,20 и 5. Вы их сложили и получилось 35.

Передать 35 в другую процедуру можете?

А  35 обратно на 10,20 и 5 разложить сможете? Ну чисто технически.
2 Chameleon1980
 
22.05.16
17:38
(0) нет
3 Александр_
Тверь
 
22.05.16
17:38
При этом используя здровое количество Если.
4 Chameleon1980
 
22.05.16
17:38
а копию хранить кто мешает?
5 Darky
 
22.05.16
17:41
Обратно развернуть нельзя. Можете создать такую же

Процедура ОсобаяПроцедура()
      
   НоваяТЗ = СтрТЗ.СсылкаНаДок.Услуги.Выгрузить();

КонецПроцедуры
6 Serginio1
 
22.05.16
17:49
7 Матиус III
 
22.05.16
17:51
(0) Можно, но местные своих ноу-хау не выдают. Ищите ответ в другом месте, главное не сдаваться.
8 ДенисЧ
 
22.05.16
19:40
Фарш невозможно провернуть назад (с)
9 Chameleon1980
 
22.05.16
19:49
(8) хороший пример.
10 ДенисЧ
 
22.05.16
19:52
(9) Я знаю. У меня все примеры хорошие.
11 Лефмихалыч
 
22.05.16
20:17
(0) >но как в нее данные отдать без потерь

ИсходнаяТЗБезПотерь = ТЗ.Скопировать();
ТЗ.Свернуть("СсылкаНаДок, Услуга", "");
ОсобаяПроцедура(ИсходнаяТЗБезПотерь); //тут делай, что угодно с исходными данными
12 Chameleon1980
 
22.05.16
20:21
(10) я просто немного задумался в один момент - как бы объяснить (какой пример привести)
13 Анастасия Изотова
 
23.05.16
02:38
Попробовала так:
1)
Процедура ОсобаяПроцедура()    
НоваяТЗ = СтрТЗ.СсылкаНаДок.Услуги.Выгрузить();
КонецПроцедуры

Выдает ошибку, не понимает что он нее хотят ((

Попробовала так:

2)
ИсходнаяТЗБезПотерь = ТЗ.Скопировать();
ТЗ.Свернуть("СсылкаНаПервичку, Услуга", "");
ОсобаяПроцедура(ИсходнаяТЗБезПотерь);
КонецПроцедуры //******************

Процедура ОсобаяПроцедура(ИсходнаяТЗБезПотерь)
Сообщить("особая процедура включилась");
Для Каждого СтрТЗ из ТЗ Цикл
Сообщить(СтрТЗ.СсылкаНаПервичку);
Сообщить(СтрТЗ.Услуга);
КонецЦикла;
КонецПроцедуры

Выдает ошибку:
Переменная не определена (ТЗ)
Для Каждого СтрТЗ из <<?>>ТЗ Цикл     (((


Вот вы пишите "фарш,  фарш " ....
Но ведь сворачиваемые данные в ТЗ, всегда разворачиваются, что бы я туда не свернула.
Тот же "фарш" !!

А тут единственное отличие, нужно все что засунуто в ТЗ. , развернуть в другой процедуре, при чем вызываемой тут же, не где нибудь в общем модуле в другой несвязанной базе данных ))))))
14 Анастасия Изотова
 
23.05.16
03:49
Мальчики- мальчики ... ))
Надо было в модуле обьекта моего, в начале прописать:
Перем ТЗ Экспорт;

и теперь все что Свернуто в одной процедуре, разворачивается в другой процедуре, по принципу: Для Каждого ТЗ из (ЦИкл)


))))))  А вы "Фарш ... сыр ... патиссоны" ))))
15 hhhh
 
23.05.16
04:58
(14) не развернется она, всё равно свернутая будет.
16 Mikeware
 
23.05.16
06:59
(13) (14) Пятница только через 4 дня...
17 ДенисЧ
 
23.05.16
07:14
челом бью об стол...
18 фобка
 
23.05.16
07:16
(14) лихо ты всех здесь умыла
19 Провинциальный 1сник
 
23.05.16
07:22
"Но ведь сворачиваемые данные в ТЗ, всегда разворачиваются, что бы я туда не свернула. "
Какие будут ваши доказательства?
20 b_ru
 
23.05.16
07:35
Может (0) хотя бы борщ готовить умеет :)
21 ПростоеСтало Сложным
 
23.05.16
07:36
Копию ТЗ юзайте, а то конфетку съели, а по карманам ищите.
22 Рэйв
 
23.05.16
07:41
(0)Параметром передавай
23 Матиус III
 
23.05.16
07:45
(16) Это за прошлую, долгоиграющая
24 Матиус III
 
23.05.16
07:46
(14) Молодец, а я в (7) говорил!
25 Chameleon1980
 
23.05.16
07:54
да пля - хоть ты как захоти - не вернешь ты развернутую из свернутой. Только копия.

Как в голове то у вас не уложится данное?
26 Mikeware
 
23.05.16
07:55
(20)  Если она готовит так же, то я бы его есть не стал... поостерегся бы...
27 Chameleon1980
 
23.05.16
08:07
(26) может он уже после свертки повторно развернутый :)
28 Chameleon1980
 
23.05.16
08:08
+(27) нужные слова подставьте сами
29 Mikeware
 
23.05.16
08:09
(27) "этот винегрет уже кто-то ел... И видимо, не в первый раз..."
30 Матиус III
 
23.05.16
08:56
Вот видите, Анастсия, здешние обитатели не только тупые и жадные, но и злые.
31 Лефмихалыч
 
23.05.16
09:00
(14) надо было в ОсобаяПроцедура() параметр назвать ТЗ или внутри цикла обращаться к тому имени, что в параметре передается, а не к ТЗ
32 Лефмихалыч
 
23.05.16
09:01
а перед этим не плохо было почитать что-нибудь про программирование о том, что такое переменные, процедуры, функции и их параметры
33 Mikeware
 
23.05.16
09:02
(32) + и куда девается свет, если его выключить во всей квартире....
34 Dotoshin
 
23.05.16
09:06
(33) Открой секрет, куда он девается?
35 Mikeware
 
23.05.16
09:12
(34) а вот открой ночью холодильник, и увидишь...
36 Chameleon1980
 
23.05.16
09:20
(30) игра в хороший/плохой мент ? :)
37 Матиус III
 
23.05.16
09:59
(36) Я не тролль, я только учусь.