Имя: Пароль:
1C
1С v8
передача параметров и Конвертация данных
0 КЕБО
 
25.08.12
18:50
Настраиваю обмен через Конвертацию данных 2.1
Для запуска обмена пользователем нарисовал однокнопочную обработку, вызывающую УниверсальныйОбменДанными  - возникла проблема с передачей параметров, т.к. при чтении правил обмена перед загрузкой/выгрузкой параметры очищаются и остаются только те что заданы в правилах обмена.

Подскажите, кто знает как это правильно реализовать...
1 Aleksey
 
25.08.12
18:52
а разве их нельзя передавать при открытии: Посмотри при открытии какие параметры считываются
2 Пуд
 
25.08.12
18:53
Добавить параметры на форму пользователя, один раз сохранить их в настройки и дальше брать и подставлять программно.
3 ILM
 
гуру
25.08.12
19:00
Выведи на форму параметры и инициализируй при открытии.
4 КЕБО
 
25.08.12
19:00
(1) так я форму универсальной обработки открывать и не собираюсь, а только вызываю процедуру загрузки

(2) проблема не с сохранением параметров, а их передачей
5 Aleksey
 
25.08.12
19:04
(4) А почему?
6 Aleksey
 
25.08.12
19:04
Там можно передать и имя правил и параметры и что делать, т.е. автовыгрузка
7 КЕБО
 
25.08.12
19:05
Возникла мысль добавить реквизит "ДопПараметры" в уни.обработку, но не хочется - наверняка же решение то есть...
8 КЕБО
 
25.08.12
19:05
(5) вызов с сервера например
9 Aleksey
 
25.08.12
19:09
(8) а причем тут обработка?
10 КЕБО
 
25.08.12
19:10
(6)

ОбработкаЗагрузки = Обработки.УниверсальныйОбменДаннымиXML.Создать();
........
ОбработкаЗагрузки.Параметры.Вставить("СтруктураНастроек", СтруктураНастроек);
ОбработкаЗагрузки.ВыполнитьЗагрузку();

В результате мои параметры обязательно очистятся при чтении правил обмена из файла загрузки и останутся только те, что в правилах обмена.
11 Пуд
 
25.08.12
19:17
(10) Почему они отчистятся то? Когда вы их добавили только что?
12 КЕБО
 
25.08.12
19:21
(11) при чтении правил обмена выполняется такая процедурка

Процедура ЗагрузитьПараметры(ПравилаОбмена, ЗаписьXML)

   Параметры.Очистить();
..............................

и привет (
13 Пуд
 
25.08.12
19:28
(12) Эмм...это в универсальной обработке обмена по XML? Сейчас 1с нет под рукой,но как-то странно.Как же тогда параметры передаются при интерактивной установке в обработке "Универсальный обмен"?
14 КЕБО
 
25.08.12
19:37
(13) да, в той самой универсальной обработке
Как-то не верится, что механизма передачи параметров нет. Разве что какой-то хитрый способ надо использовать, например "доп. обработки" - нафига так усложнять...?
15 andrewks
 
25.08.12
19:44
у тебя проблема с параметрами при выгрузке, или при загрузке?
16 КЕБО
 
25.08.12
19:59
(15) сейчас отлаживаю загрузку, но почти уверен, что при выгрузке тоже самое будет - механизмы то общие
17 andrewks
 
25.08.12
20:01
(16) при загрузке параметры берутся из файла выгрузки, это однозначно. какие параметры ты хочешь туда передавать? ты должен их передать при выгрузке, и записать их в файл выгрузки, откуда они потом и будут считаны
18 andrewks
 
25.08.12
20:06
кстати, откуда выгружаешь?
19 КЕБО
 
25.08.12
20:29
(17) Логично, так и есть.. спасибо ))
При выгрузке действительно параметры можно передать, если из подставлять после загрузки правил...

(18) обмен между БП и самописной конфой
20 КЕБО
 
25.08.12
21:31
ИТОГО: все равно криво механизм работает.

Невозможно передать параметр на стороне выгрузки через обработчик событий.
Приходится параметр заполнять в первичной обработке, а это уже совсем не универсально выходит...
21 andrewks
 
25.08.12
21:35
что за первичная обработка? галочки нужные поставил на параметре?
22 andrewks
 
25.08.12
21:37
нужно, чтобы галочка "испольщовать при загрузке" стояла.

в ПередВыгрузкойДанных пишешь, например, так:


Параметры.ПараметрСтрока="Наша строка";
Параметры.ПараметрЧисло=777.77;
Параметры.ПараметрБулево=Истина;

ПередатьОдинПараметрВПриемник("ПараметрСтрока",Параметры.ПараметрСтрока);
ПередатьОдинПараметрВПриемник("ПараметрЧисло",Параметры.ПараметрЧисло);
ПередатьОдинПараметрВПриемник("ПараметрБулево",Параметры.ПараметрБулево);
23 КЕБО
 
25.08.12
22:21
попробуй догадайся, что такие параметры надо вручную толкать
Вот теперь точно все заработало!
Примного благодарен ))
Программист всегда исправляет последнюю ошибку.