Имя: Пароль:
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
попробуй догадайся, что такие параметры надо вручную толкать
Вот теперь точно все заработало!
Примного благодарен ))
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший