Имя: Пароль:
1C
1С v8
Как при выгрузке xml-файла программно его изменить
0 Adgjj
 
22.11.11
10:38
Скажите, пжл, как при выгрузке сообщения обмена изменить программно в нем номер? Сейчас так:
<v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">
   <v8msg:Header>
       <v8msg:ExchangePlan>уатПолный</v8msg:ExchangePlan>
       <v8msg:To>KOR</v8msg:To>
       <v8msg:From>KOT</v8msg:From>
       <v8msg:MessageNo>2</v8msg:MessageNo>
               <v8msg:ReceivedNo>7</v8msg:ReceivedNo>
В предпоследней строчке программно надо ув. на 1, вместо 2 записывать 3.

На этом форуме сказали, что можно восстановить нумерацию сообщений обмена с помощью обработки РегистрацияИзмененийДляОбмена с ИТС, но я ее не нашла.
Если знать, как изменить без этой обработки, то наверно даже лучше будет без нее.
1 CyberDream
 
22.11.11
10:39
а фотка где?
2 Wobland
 
22.11.11
10:46
(0) дать обработку?
3 Adgjj
 
22.11.11
10:50
а эта обработка есть на ИТС январь2011-апрель2011 или июль2011, то не надо - правда я там не нашла.
[email protected]
4 Adgjj
 
22.11.11
10:51
а в Xml никогда непробовали программно менять что-то?
5 Adgjj
 
22.11.11
10:51
не пробовали
6 Wobland
 
22.11.11
10:52
не очень понимаю смысл этой манипуляции... в XML можно сразу писать правильное значение
7 Adgjj
 
22.11.11
10:56
(6) мне так и хочется, только никогда не пробовала и в гугле пока не нашла
8 Wobland
 
22.11.11
10:58
(7) ЗаписатьXML(ЗаписьXML, мОбъект); я о том, что у объекта надо сменить, потом писать
9 Adgjj
 
22.11.11
11:00
(7)
1. Xml-то я выгружаю программно из 1С и загружаю
2. но нет возможности в режиме предприятия менять вручную кол-во отправленных-принятых сообщения, поэтому хочу менять кол-во в Xml
10 Wobland
 
22.11.11
11:01
(9) сделай нумерацию верной и не занимайся ерундой. писал когда-то отдельную обработку для редактирования номеров сообщений у узла. дать?
11 Adgjj
 
22.11.11
11:01
выгружаю файл так:
ЗаписьXML = Новый ЗаписьXML();
                   ИмяФайлаСообщения = КаталогВременныхФайлов() + "Message_KOT_KOR.xml";  
                   ЗаписьXML.ОткрытьФайл(ИмяФайлаСообщения);
                   ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
                   ЗаписьСообщения.НачатьЗапись(ЗаписьXML,УзелЗагрузки);
                   ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);
                   ЗаписьСообщения.ЗакончитьЗапись();
                   ЗаписьXML.Закрыть();
12 Adgjj
 
22.11.11
11:02
(10) если можно, то буду благодарна
13 Adgjj
 
22.11.11
11:03
если можно, то не в почту, а с
14 Adgjj
 
22.11.11
11:03
сюда код
15 Wobland
 
22.11.11
11:04
всё уже, лови. открывать и копировать лениво
16 Adgjj
 
22.11.11
11:05
я смогу только дома открыть, вечером))
спасибо большое!
17 Wobland
 
22.11.11
11:06
так уж и быть ;)
так уж и быть ;)

Процедура КнопкаВыполнитьНажатие(Кнопка)
       УзелОбъект=Узел.ПолучитьОбъект();
       УзелОбъект.НомерОтправленного=НомерОтправленного;
       УзелОбъект.НомерПринятого=НомерПринятого;
       УзелОбъект.Записать();
КонецПроцедуры

Процедура УзелПриИзменении(Элемент)
       НомерОтправленного=Узел.НомерОтправленного;
       НомерПринятого=Узел.НомерПринятого;
КонецПроцедуры

Процедура ПриОткрытии()
       Узел=ПланыОбмена.ГлавныйУзел();
       НомерОтправленного=Узел.НомерОтправленного;
       НомерПринятого=Узел.НомерПринятого;
КонецПроцедуры
18 Wobland
 
22.11.11
11:06
(17) забавный глюк
19 Adgjj
 
22.11.11
11:07
спасибо огромное, сейчас буду применять ура!!!!!!!
20 Wobland
 
22.11.11
11:07
(19) я уже рассказывал о ветке и розе?
21 Wobland
 
22.11.11
11:07
так. что-то тут не то. открыть смогу только вечером, а применять начну сейчас...
22 Eugene_life
 
22.11.11
11:09
(20) А что там про ветку и розу?
23 Wobland
 
22.11.11
11:09
(22) тебе не расскажу ;)
24 Adgjj
 
22.11.11
11:09
(20) нет
(21) почта у меня только дома, здесь отключена Вы же код выложили, его и буду применять!
25 Wobland
 
22.11.11
11:10
(24) рассказываю: Тематическая ветка форума подобна нераспустившейся розе, которую нужно осветить солнцем, помочь ей подняться. Только когда вопрос уже решён, девушке можно намекнуть про фотку... И тогда распустившаяся роза будет прекрасна!
26 Eugene_life
 
22.11.11
11:12
(25) Ох, уж эти робингуды.... :D
27 Adgjj
 
22.11.11
11:12
хорошо, отправлю вам фото вечером по почте - только зачем Вам оно
28 Wobland
 
22.11.11
11:15
это такая традиция, и мы не в силах её нарушить ;)
(Вопрос + Фото) > (Вопрос)
PS а вдруг там кладезь неземной красоты?
29 Adgjj
 
22.11.11
11:33
пишет: св-во не может быть изменено для предопределенного узла
30 Wobland
 
22.11.11
11:36
(29) главному узлу поди присваиваешь?
31 Adgjj
 
22.11.11
11:37
главному
32 Adgjj
 
22.11.11
11:40
та же ошибка с периф. узлом
33 Живой Ископаемый
 
22.11.11
11:40
1С не работает...
34 Fish
 
22.11.11
11:41
А руками в режиме предприятия не судьба номера подправить?
35 Adgjj
 
22.11.11
11:41
работает, узлы все предопределенные
36 Wobland
 
22.11.11
11:41
у меня всё работало. может, в 8.2 что-то накрутили
37 Adgjj
 
22.11.11
11:42
(34) не даются
38 Wobland
 
22.11.11
11:42
(34) вот почему-то тогда не судьба была, обработку рисовал, не помню сейчас
39 Adgjj
 
22.11.11
11:42
у меня 8.1 UAT
там единственный типовой план обмена уатПолный, узлы заносила в режиме польз сама
40 Adgjj
 
22.11.11
11:43
потому что для предпр эл-в нельзя руками менять
как сделать их не предопр-ми? наверно никак
41 Fish
 
22.11.11
11:44
Что значит не даются? В плане обмена нажми кнопку "Зарегистрированные изменения" и там будет кнопка "Изменить номера сообщений"
42 Adgjj
 
22.11.11
11:44
два раза загружать файл обмена как-то не совсем хорошо
43 Живой Ископаемый
 
22.11.11
11:45
введите в курс дела, что нужно сделать?
44 Adgjj
 
22.11.11
11:45
у меня нет такой (41) кнопки, в uat вообще обмен только ручной изначально предусмотрен
45 Живой Ископаемый
 
22.11.11
11:48
2(29) измени (17) так:
Процедура КнопкаВыполнитьНажатие(Кнопка)
       УзелОбъект=Узел.ПолучитьОбъект();
       УзелОбъект.НомерОтправленного=НомерОтправленного;
       УзелОбъект.НомерПринятого=НомерПринятого;
УзелОбъект.ОбменДанными.Загрузка = Истина;// воот
       УзелОбъект.Записать();
КонецПроцедуры

Процедура УзелПриИзменении(Элемент)
       НомерОтправленного=Узел.НомерОтправленного;
       НомерПринятого=Узел.НомерПринятого;
КонецПроцедуры

Процедура ПриОткрытии()
       Узел=ПланыОбмена.ГлавныйУзел();
       НомерОтправленного=Узел.НомерОтправленного;
       НомерПринятого=Узел.НомерПринятого;
КонецПроцедуры
46 Adgjj
 
22.11.11
11:49
(43) при загрузке файла периф базы в центр. базу: номер сообщения < или = номеру ранее принятого сообщения
Надо изменить номер принятого сообщения в строке плана обмена или изменить этот номер в xml-файле (после изменения номер вручную в xml-файле загружается)
47 Fish
 
22.11.11
11:50
А еще раз выгрузить что мешает?
48 Живой Ископаемый
 
22.11.11
11:51
2(46) боже.. да просто выгрузите из периферии пару лишних раз
49 Adgjj
 
22.11.11
11:51
(45) спасибо, выдает то же: св-во номеротправленного не может быть изменено для предопр. узла
50 Adgjj
 
22.11.11
11:52
(48) придется
51 Adgjj
 
22.11.11
16:09
оказывается, с нумерацией все нормально было - из-зи каккой-то другой ошибки выскакивала эта, вы представляете?