|
Конвертация УТ-ТиС | ☑ | ||
---|---|---|---|---|
0
Eileen
05.06.12
✎
15:27
|
Помогите пожалуйста с конвертацией
Делаю конвертацию для выгрузки данных из УТ в ТиС В справочнике Контрагенты в 7-ке реквизит ЮрФИзЛицо - справочник (или ЮрЛица или ФизЛица). Пытаюсь выгрузить через узел: в ПКО Контрагенты при вырузке ИнформацияОЮрФИзЛице = СоздатьУзел("ИнформацияОЮрФИзЛице"); УстановитьАтрибут(ИнформацияОЮрФИзЛице, "Наименование", Источник.Наименование); УстановитьАтрибут(ИнформацияОЮрФИзЛице, "ИНН", Источник.ИНН); ДобавитьПодчиненный(Приемник, ИнформацияОЮрФИзЛице); Это выгружается в xml в таком виде <ИнформацияОЮрФИзЛице Наименование="Воронин" ИНН="7716648250" /> В ПриЗагрузке пишу следующее Если Объект.ЭтоГруппа() = 0 Тогда Пока ФайлОбмена.Прочитать() Цикл ИмяУзла = ФайлОбмена.ЛокальноеИмя; ТипУзла = ФайлОбмена.ТипУзла; Если ИмяУзла = "ИнформацияОЮрФИзЛице" И (ТипУзла = одТипУзлаXML_НачалоЭлемента) Тогда Спр = СоздатьОбъект("Справочник.ЮрЛица"); НовЮрФизЛицо = Спр.Новый(); НовЮрФизЛицо.ИНН= одАтрибут(ФайлОбмена, одТипСтрока, "ИНН"); НовЮрФизЛицо.Наименование = одАтрибут(ФайлОбмена, одТипСтрока, "Наименование"); НовЮрФизЛицо.ПолнНаименование = одАтрибут(ФайлОбмена, одТипСтрока, "Наименование"); НовЮрФизЛицо.Записать(); Объект.ЮрФизЛицо = НовЮрФизЛицо; Объект.Записать(); ИначеЕсли (ИмяУзла = "ИнформацияОЮрФИзЛице") И (ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда Прервать; КонецЕсли; КонецЦикла; КонецЕсли; и вот тут почему-то ничего не загружается, ошибок не выдает. |
|||
1
Eileen
05.06.12
✎
15:28
|
Юридическое лицо не создается и естественно в реквизит Контрагента ничего не запсывается. Подскажите, может я не так эти значения как-то читаю...
|
|||
2
Eileen
05.06.12
✎
16:49
|
Help!
|
|||
3
Eileen
05.06.12
✎
18:36
|
помогите, кто можете
|
|||
4
Eileen
06.06.12
✎
17:23
|
все ещё актуально
|
|||
5
palpetrovich
06.06.12
✎
17:25
|
уже все домой
|
|||
6
palpetrovich
06.06.12
✎
17:25
|
потопали :)
|
|||
7
palpetrovich
06.06.12
✎
17:26
|
а вообще - отладчиком посмотри, попадает-ли вообще в ЕСЛИ..
|
|||
8
Eileen
06.06.12
✎
17:29
|
(7) я вобще эту проверку на группу убирала - все-равно не воспринимает этот кусок, как будто его нет. Мож это какая-то особенность при загрузке в 7-ную конфу?
|
|||
9
Академик_
Келдыш 06.06.12
✎
17:31
|
объект источник контрагенты, а объект приемник юрлица???
|
|||
10
palpetrovich
06.06.12
✎
17:33
|
(8) сюда доходит, здесь поставь точку останова
Если ИмяУзла = "ИнформацияОЮрФИзЛице" И (ТипУзла = одТипУзлаXML_НачалоЭлемента) Тогда (9) ну и что? |
|||
11
Академик_
Келдыш 06.06.12
✎
17:33
|
контр= СоздатьОбъект("Справочник.Контрагенты");
Спр = СоздатьОбъект("Справочник.ЮрЛица"); НовЮрФизЛицо = Спр.Новый(); НовЮрФизЛицо.ИНН= одАтрибут(ФайлОбмена, одТипСтрока, "ИНН"); НовЮрФизЛицо.Наименование = одАтрибут(ФайлОбмена, одТипСтрока, "Наименование"); НовЮрФизЛицо.ПолнНаименование = одАтрибут(ФайлОбмена, одТипСтрока, "Наименование"); НовЮрФизЛицо.Записать(); контр.юрфизлицо= НовЮрФизЛицо ; Объект.ЮрФизЛицо = контр; Объект.Записать(); |
|||
12
Eileen
06.06.12
✎
17:35
|
(10) это ж в 7-ку загружается, там не знаю как отладить. Но в xml все выгружается нормально
|
|||
13
Eileen
06.06.12
✎
17:36
|
(11) Это в ПриЗагрузке? сейчас попробую
|
|||
14
Академик_
Келдыш 06.06.12
✎
17:36
|
както так..
короче сначала нужно создать и записать юрлицо с наименованием и инн из файла, потом создать новый элемент контрагента(луче его найти) присвоить ему реквизит юрфизлицо зхагруженное, и записать |
|||
15
Академик_
Келдыш 06.06.12
✎
17:36
|
стой!!!
|
|||
16
palpetrovich
06.06.12
✎
17:37
|
(15) ааааааааааааааааа, что? куда бежать??? :))
|
|||
17
Eileen
06.06.12
✎
17:38
|
(15) ой
|
|||
18
Академик_
Келдыш 06.06.12
✎
17:38
|
Если Объект.ЭтоГруппа() = 0 Тогда
Пока ФайлОбмена.Прочитать() Цикл ИмяУзла = ФайлОбмена.ЛокальноеИмя; ТипУзла = ФайлОбмена.ТипУзла; Если ИмяУзла = "ИнформацияОЮрФИзЛице" И (ТипУзла = одТипУзлаXML_НачалоЭлемента) Тогда Спр = СоздатьОбъект("Справочник.ЮрЛица"); НовЮрФизЛицо = Спр.Новый(); НовЮрФизЛицо.ИНН= одАтрибут(ФайлОбмена, одТипСтрока, "ИНН"); НовЮрФизЛицо.Наименование = одАтрибут(ФайлОбмена, одТипСтрока, "Наименование"); НовЮрФизЛицо.ПолнНаименование = одАтрибут(ФайлОбмена, одТипСтрока, "Наименование"); НовЮрФизЛицо.Записать(); контр= СоздатьОбъект("Справочник.Контрагенты"); контрагент=контр.Новый(); контрагент.наименование=НовЮрФизЛицо.наименование; контрагент.Юрфизлицо=НовЮрФизЛицо; Объект = контрагент; Объект.Записать(); ИначеЕсли (ИмяУзла = "ИнформацияОЮрФИзЛице") И (ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда Прервать; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
19
Академик_
Келдыш 06.06.12
✎
17:39
|
вот теперь должно все появится по идее
|
|||
20
Академик_
Келдыш 06.06.12
✎
17:39
|
пробывай!!!!
|
|||
21
Сияющий Асинхраль
06.06.12
✎
17:39
|
Зачем так сложно? А почему не сделать ПКО Контрагент->ЮрЛица
|
|||
22
palpetrovich
06.06.12
✎
17:40
|
(18) не, ну ты даешь... а если "контр" уже есть в базе?
|
|||
23
Академик_
Келдыш 06.06.12
✎
17:41
|
(22) ну и че??? переприсвоится.
|
|||
24
Академик_
Келдыш 06.06.12
✎
17:41
|
аа...понял)))) ну тогда нужно найти его
|
|||
25
Академик_
Келдыш 06.06.12
✎
17:43
|
вместо контрагент=контр.Новый();
нашли=контр.найтипореквизиту("юрфизлицо",НовЮрФизЛицо); если нашли = 0 тогда контрагент=контр.Новый(); иначе контрагент=контр.текущийэлемент(); конецесли; |
|||
26
Академик_
Келдыш 06.06.12
✎
17:45
|
(21)реквизит пко имееет тип контрагент.
а реквизит справочника контрагенты юрфизлицо имеет тип юрфизлицо |
|||
27
Академик_
Келдыш 06.06.12
✎
17:45
|
в общем ждем результата от (0)
|
|||
28
Eileen
06.06.12
✎
17:48
|
не загружается :(
|
|||
29
Eileen
06.06.12
✎
17:48
|
как будто этого ПриЗыгрузке вообще не видит
|
|||
30
Академик_
Келдыш 06.06.12
✎
17:48
|
ничего в базе нет? ни контрагентов с пустыми юрфизлицами не юрлиц?
|
|||
31
Eileen
06.06.12
✎
17:49
|
Контрагенты загружаются, а ЮрЛица нет
|
|||
32
Сияющий Асинхраль
06.06.12
✎
17:49
|
(26) Я прекрасно это знаю, ну и делайте два ПКО Контрагенты->Контрагенты, Контрагенты->ЮрЛица, в Справочнике Контрагенты Реквизит ЮрФизЛицо конвертить с помощью ПКО Контрагенты->ЮрЛица
|
|||
33
Академик_
Келдыш 06.06.12
✎
17:49
|
блин!!! там реквизит неопределенный!!!! тип назначай реквизиту юрфизлицо при загрузке!
|
|||
34
Академик_
Келдыш 06.06.12
✎
17:50
|
неее не поможет
|
|||
35
Академик_
Келдыш 06.06.12
✎
17:50
|
короче вечерело..
|
|||
36
Сияющий Асинхраль
06.06.12
✎
17:51
|
Да, кстати там выбирать ИмяПКО надо, либо ЮрЛица, либо физ. лица
|
|||
37
Eileen
06.06.12
✎
17:53
|
ну да, у меня все на самом деле сложнее написано, я сокращенный вариант выложила - там два справочника ЮрЛица и ФизЛица
|
|||
38
Eileen
06.06.12
✎
17:56
|
Это ПриВыгрузке
ИнформацияОЮрФИзЛице = СоздатьУзел("ИнформацияОЮрФизЛице"); УстановитьАтрибут(ИнформацияОЮрФИзЛице, "Наименование", Источник.Наименование); УстановитьАтрибут(ИнформацияОЮрФИзЛице, "ИНН", Источник.ИНН); УстановитьАтрибут(ИнформацияОЮрФИзЛице, "НаименованиеПолное", Источник.НаименованиеПолное); Если Источник.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда УстановитьАтрибут(ИнформацияОЮрФИзЛице, "ОКПО", Источник.КодПоОКПО); УстановитьАтрибут(ИнформацияОЮрФИзЛице, "ЮрЛицо", "1"); Иначе УстановитьАтрибут(ИнформацияОЮрФИзЛице, "ЮрЛицо", "0"); КонецЕсли; ДобавитьПодчиненный(Приемник, ИнформацияОЮрФизЛице); А это ПриЗагрузке Пока ФайлОбмена.Прочитать() Цикл ИмяУзла = ФайлОбмена.ЛокальноеИмя; ТипУзла = ФайлОбмена.ТипУзла; Если ИмяУзла = "ИнформацияОЮрФизЛице" И (ТипУзла = одТипУзлаXML_НачалоЭлемента) Тогда ИНН = ФайлОбмена.ЗначениеАтрибута("ИНН"); ОКПО = ФайлОбмена.ЗначениеАтрибута("ОКПО"); ЮрЛицо = одАтрибут(ФайлОбмена, одТипСтрока, "ЮрЛицо"); Если ЮрЛицо = "1" Тогда Спр = СоздатьОбъект("Справочник.ЮрЛица"); НовЮрФизЛицо = Спр.Новый(); НовЮрФизЛицо.ОКПО = одАтрибут(ФайлОбмена, одТипСтрока, "ОКПО"); Объект.ЮрФизЛицо = ПолучитьПустоеЗначение("Справочник.ЮрЛица"); Иначе Спр = СоздатьОбъект("Справочник.ФизЛица"); НовЮрФизЛицо = Спр.Новый(); Объект.ЮрФизЛицо = ПолучитьПустоеЗначение("Справочник.ФизЛица"); КонецЕсли; НовЮрФизЛицо.Наименование = одАтрибут(ФайлОбмена, одТипСтрока, "Наименование"); НовЮрФизЛицо.ПолнНаименование = одАтрибут(ФайлОбмена, одТипСтрока, "НаименованиеПолное"); НовЮрФизЛицо.ОКПО = одАтрибут(ФайлОбмена, одТипСтрока, "ОКПО"); НовЮрФизЛицо.ИНН = одАтрибут(ФайлОбмена, одТипСтрока, "ИНН"); НовЮрФизЛицо.Записать(); Контр= СоздатьОбъект("Справочник.Контрагенты"); нашли=контр.найтипореквизиту("юрфизлицо",НовЮрФизЛицо); если нашли = 0 тогда контрагент=контр.Новый(); иначе контрагент=контр.текущийэлемент(); конецесли; контрагент.наименование=НовЮрФизЛицо.наименование; контрагент.Юрфизлицо=НовЮрФизЛицо; Объект = контрагент; Объект.Записать(); Объект.ЮрФизЛицо = НовЮрФизЛицо; Объект.Записать(); ИначеЕсли (ИмяУзла = "ИнформацияОЮрФИзЛице") И (ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда Прервать; КонецЕсли; КонецЦикла; |
|||
39
Eileen
06.06.12
✎
18:03
|
....и не повляются элементы в справочнике ЮрЛица и ФизЛица
|
|||
40
Сияющий Асинхраль
06.06.12
✎
18:18
|
Примерно так можно делать:
http://fotoifolder.ru/view_full_size/m6cq0fnvakwg работает, хотя раньше делал криво, разделял контрагентов, которые делались из физ лиц и юр лиц. На самом деле этого делать не надо, достаточно программно выбирать ИмяПКО |
|||
41
Eileen
06.06.12
✎
18:20
|
(4) а как его программно выбрать?
|
|||
42
Eileen
06.06.12
✎
18:31
|
(40) напиши плих ещё хоть чуть-чуть подробностей
|
|||
43
Сияющий Асинхраль
06.06.12
✎
18:32
|
Например в ПКС реквизита ЮрФизЛицо ПередВыгрузкой написать:
Если Условие на ЮрЛицо Тогда Значение = Источник; ИмяПКО = "ЮрЛица"; Иначе Значение = Источник; ИмяПКО = "ФизЛица"; КонецЕсли; |
|||
44
Eileen
06.06.12
✎
18:35
|
(43) о, спасибо. буду пробовать
|
|||
45
Eileen
06.06.12
✎
18:50
|
(43) а в самом реквизите что писать в источнике?
|
|||
46
Eileen
06.06.12
✎
19:30
|
мож ещё кто чего подскажет?
|
|||
47
Сияющий Асинхраль
07.06.12
✎
00:17
|
(45) см (43)
значение=источник |
|||
48
Eileen
07.06.12
✎
00:55
|
Что-то я вообще уже запуталась, до сих пор мучаюсь с жтими контрагентами... а ты можешь мне выслать те правила, которые у тебя?
|
|||
49
Eileen
07.06.12
✎
01:24
|
Получилось с установкой ПКО! Спасибо!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |