Имя: Пароль:
1C
 
Как создать еще один экземпляр внешней обработки?
0 Гений 1С
 
гуру
21.06.07
13:41
Нарпимер, при расшифровке я хочу создать еще один экземпляр самой себя. Можно это сделать, или очередная черная дыра?
1 Naumov
 
21.06.07
13:50
в отчете должен быть ключьУникальности разный
2 Гений 1С
 
гуру
21.06.07
14:31
(1) речь идет о внешней обработке, то что вы написали в (1) я знаю.
3 Гений 1С
 
гуру
22.06.07
09:21
апп
4 AversDik2
 
22.06.07
10:09
(2) Тебе нужна ВнешняяОбработкаОбъект или все еще экземпляр ее формы?
Если форма, то см (1).
5 Гений 1С
 
гуру
22.06.07
10:10
(4) Гм... ты предлагаешь ЭтаФорма.Открыть(,,Новый УникальныйИдентификатор()) - для формы это прокатит, но мне блин нужен новый экземпляр обработки.
6 AversDik2
 
22.06.07
10:13
(5) Ну и создай ее. Кто мешает?
ВнешняяОбработка1 = ВнешниеОбработки.Создать(ПолноеИмяФайла);
ВнешняяОбработка2 = ВнешниеОбработки.Создать(ПолноеИмяФайла);
7 Гений 1С
 
гуру
22.06.07
11:50
(6) не знаю имя файла
8 Гений 1С
 
гуру
22.06.07
11:51
Блин, через хранилище!
9 Гений 1С
 
гуру
22.06.07
12:18
(8) Блин, не прокатило:

Функция обСкопироватьВнешнююОбработку(ОбъектВнешнейОбработки)
   Перем Хр;
   Хр=Новый ХранилищеЗначения(ОбъектВнешнейОбработки);
   Возврат Хр.Получить();
КонецФункции

Не работает, зараза...
10 AversDik2
 
22.06.07
12:58
(9) А тебе точно нужна новая копия обработки?
   Может пойти другим путем?
11 snc
 
22.06.07
15:55
Если я правильно понял тему, то это можно решить.
Решение: храним копию в макете. Потом выгружаем в файл во временный каталог и запускаем. Ну и, естественно, при открытии новый идентификатор.
12 snc
 
22.06.07
15:56
и никаких черных дыр
13 Гений 1С
 
гуру
22.06.07
16:10
(10) точно, потому что реквизиты обработки используются в форме. Если я создам копию формы, затрутся реквизиты текущей обработки.
(11) чтото ты гонишь... У меня есть открытая обработка, кроме ЭтотОбъект больше ничего нет... Как создать копию?
14 AversDik2
 
22.06.07
16:20
(13) Сохрани данные текущей формы в структуру, а потом восстановишь обратно.
15 snc
 
22.06.07
16:30
(13) сохранить в макет как двоичные данные. Неужели никогда не ковырял типовые обработки по переносу данных - там это широко практикуется
16 Гений 1С
 
гуру
22.06.07
18:23
(15) не тупи СНК, как я получу файл, если я не знаю его местоположение. Я пишу универсальную обработку, имя файла не знаю...
17 snc
 
22.06.07
18:31
(16) Я все подробно объяснил. Если ты нехочешь понимать (или просто прикалываешься) я тебя заставлять небуду. Ищи решения сам. Все написано выше.
18 Гений 1С
 
гуру
25.06.07
09:12
(17) СНК, ты не понимаешь.
Вот я делаю поставку внешней обработки. Когда она запускается, она не знает, где она находится, понимаешь? Невозможно определить имя файла, поэтому твои методы не работают. А ты тупишь и не понимаешь ситуации!
19 AversDik2
 
25.06.07
09:24
(17) +1
(18)
ИмяФайла = ПолучитьИмяВременногоФайла("epf");
ЭтотОбъект.ПолучитьМакет("ДвоичныеДанныеОбработки").Записать(ИмяФайла);
НовыйЭкземпляр = ВнешниеОбработки.Создать(ИмяФайла);
20 Гений 1С
 
гуру
25.06.07
09:43
(19) клево. ;-) Офигеть как извращенно, но клево. ;-)
21 Гений 1С
 
гуру
25.06.07
09:57
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.