|
Конвертация данных 2.1 | ☑ | ||
---|---|---|---|---|
0
MakaMaka
22.03.18
✎
09:04
|
Всем привет. Чет туплю на пустом месте:
В ПКО, в событии "Перед выгрузкой" определяю структуру ВходящиеДанные, в структуру добавляю элемент, присваиваю ему значение. В ПКС Создаю правило выгрузки свойства, указываю, получать из входящих данных, указываю правило конвертации свойства, но при выгрузке ничего не происходит. Т.е. выгрузка проходит, но значение реквизита не заполняется. Выгрузка проходит обработкой "Универсальный обмен в формате XML". |
|||
1
MakaMaka
22.03.18
✎
09:17
|
Чувство, что при выгрузке вообще игнорятся параметры. Или параметры используются только когда выгрузка идет через обарботка "КонвертацияОбъектовИнформационныхБаз"?
|
|||
2
Cyberhawk
22.03.18
✎
09:18
|
Попробуй определять структуру "ИсходящиеДанные"
|
|||
3
Cyberhawk
22.03.18
✎
09:18
|
Хотя из ПКО в ПКС оно и не должно вроде передаваться. Только из ПВД в ПКО и из ПКС в ПКО
|
|||
4
Cyberhawk
22.03.18
✎
09:19
|
Ты в событиях ПКС определяй исходящие данные, зачем это в ПКО? В какой ПКС думаешь они пойдут?
|
|||
5
MakaMaka
22.03.18
✎
09:21
|
(2) Определена в ПВД, в ПВД данные получаю в запросе, потом обхожу выборку циклом:
ВыгрузитьПоПравилу(ВыборкаДанных.Ссылка, ,Новый Структура ,Новый Структура , "ПоступлениеТоваровУслуг_ПриемНаОтветХранение"); |
|||
6
Cyberhawk
22.03.18
✎
09:22
|
Определять = заполнять
|
|||
7
MakaMaka
22.03.18
✎
09:23
|
Ты в событиях ПКС определяй исходящие данные, зачем это в ПКО?
- А в чем разница? В ПКО до этого определял и ПКС значения подхватывали. Тут наверное что то другое. В какой ПКС думаешь они пойдут? - В ПКС Выгружаемого объекта. Думаю так. (6) Ок. Спасибо. Есть еще одна идея. Кажется есть зацепка, сейчас проверю, отпишусь. |
|||
8
MakaMaka
22.03.18
✎
09:29
|
(6) Еще раз хотел сказать спасибо. Ларчик открывался просто.
В ПКО Объекта у меня пакетный запрос. Я одним запросом получаю нужные мне параметры. В итоге я просто забыл строчку Выборка_Шапка.Следующий(); перед тем как обращаться к запросу. Вывод: надо чаще писать запросы вручную, а не деградировать с конструктором. Еще раз всем спасибо! |
|||
9
MakaMaka
22.03.18
✎
13:43
|
Апну тему, вопрос все равно с КД связан.
Выгружаю документ, мне нужно, что бы он искался по гуиду, в настройках ПКО, в настройках, установлена галка "искать объект приемника по внутреннему идентификатору объекта истоника". Но чет не ищет, загружаю один и тот же файл, и на каждую загрузку создается новый документ. Примечание: я не выгружаю номер документа, установлена галка "Автоматически генерировать номер или код, если он не занят". Народ, что я опять делаю не так? Пните плиз! |
|||
10
MakaMaka
22.03.18
✎
14:03
|
Жесть какая то, галки стоят искать по гуиду, а документы создаются, хоть ты тресни. Видимо прийдется в отладчике копошиться.
|
|||
11
MakaMaka
22.03.18
✎
14:15
|
хоть идею подкиньте, что может быть не так. Почему не находится документ по гуиду?
|
|||
12
MakaMaka
22.03.18
✎
14:34
|
блин, только и разговоров : выборы и Путин. Программисты ау? Тут есть программисты???
|
|||
13
Marik1274
22.03.18
✎
14:35
|
Гуид может меняешь..? Правила старые? Например использовал отладку, правила обновил, а галочку "отладка" не убрал.
|
|||
14
Marik1274
22.03.18
✎
14:37
|
Посмотри в файле обмена гуид. Он не меняется?
|
|||
15
MakaMaka
22.03.18
✎
14:39
|
(14) Нет, загружаю один и тот же файл, он не меняется. Файл один, я его 2 раза загружу, 2 документа создается и т.д.
|
|||
16
Marik1274
22.03.18
✎
14:42
|
Возможно у тебя два похожих ПКО. Или может программно другое ПКО вызываешь (выгрузить по правилу).
А вообще проанализируй внимательно файл обмена. Там есть все, что нужно для загрузки. Только смотри не через осла, а хоть блокнотом. Удобно смотреть Нотепад+. Там цветом подсвечивается. |
|||
17
MakaMaka
22.03.18
✎
14:47
|
НужноПродолжитьПоиск = (Элемент.Значение.ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли = Истина);
|
|||
18
MakaMaka
22.03.18
✎
14:47
|
Что скажете товарищи?
|
|||
19
Cyberhawk
22.03.18
✎
14:47
|
Покажи фрагмент файла выгрузки с объектом с ГУИДом, который у тебя "задваивается"
|
|||
20
Cyberhawk
22.03.18
✎
14:48
|
Затем покажи то ПКО в КД, что указано в файле выгрузки для этого объекта
|
|||
21
MakaMaka
22.03.18
✎
14:54
|
</Объект>
<Объект Нпп="1" Тип="ДокументСсылка.ПриемНаОтветХранение" ИмяПравила="ПоступлениеТоваровУслуг_ПриемНаОтветХранение"><Ссылка Нпп="1"> <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка"> <Значение>c47ab9ea-1d12-11e8-872e-0025906ab1cc</Значение> </Свойство> </Ссылка> <Свойство Имя="Дата" Тип="Дата"> <Значение>2018-03-01T08:38:30</Значение> </Свойство><ЗначениеПараметра Имя="НомерЗаявки" Тип="Строка"> <Значение>ЕАED-000190</Значение> </ЗначениеПараметра><Свойство Имя="Организация" Тип="СправочникСсылка.Организации"><Ссылка Нпп="2" НеСоздаватьЕслиНеНайден="true"> <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка"> <Значение>bcd8a040-d052-11e7-a24a-0025906ab1cc</Значение> </Свойство><Свойство Имя="ИНН" Тип="Строка"> <Значение>6672346554</Значение> </Свойство><Свойство Имя="КПП" Тип="Строка"> <Значение>668501001</Значение> </Свойство> </Ссылка> |
|||
22
MakaMaka
22.03.18
✎
15:01
|
Я вот такой интересный кусок кода нашел:
АвтоматическиСоздаватьНовыйОбъект = (НЕ НеСоздаватьОбъектЕслиНеНайден И НЕ НужноПродолжитьПоискЕслиЭлементПоGUIDНеНайден) И НЕ ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD; |
|||
23
Marik1274
22.03.18
✎
15:03
|
ПКО-Настройки - тут эти галочки (ПКО документа)
|
|||
24
MakaMaka
22.03.18
✎
15:04
|
(23) Это знаю. Фигню я нашел. Не то что надо. Там дальше еще что то есть. Блин!
|
|||
25
MakaMaka
22.03.18
✎
15:14
|
||||
26
MakaMaka
22.03.18
✎
15:18
|
Поставил галку не создавать объект, если он не найден. Документы не создались. Значит что? Не находит по ГУИД?
|
|||
27
MakaMaka
22.03.18
✎
15:25
|
Галку снял, начал двоить) Вот же зараза такая, что то тут не чисто, какая то тонкость. Надо удалить документы и сравнить гуиды, тогда сразу станет ясно прав ли я. А если прав, то что делать?
|
|||
28
Marik1274
22.03.18
✎
15:25
|
ИмяПравила="ПоступлениеТоваровУслуг_ПриемНаОтветХранение"
Найди в файле обмена это правило и все что там выложи сюда |
|||
29
MakaMaka
22.03.18
✎
15:56
|
(28) Короче песня такая, у меня создаются документы с другим гуидом. Чешу репу. Как такое возможно?
|
|||
30
MakaMaka
22.03.18
✎
15:58
|
В файле выгрузки гуида, который был передан в фале нет.
|
|||
31
MakaMaka
22.03.18
✎
16:08
|
Как же так? Как же должно быть? Неужели все?
|
|||
32
MakaMaka
22.03.18
✎
16:18
|
Убрал галку генерировать номер, если он не задан, и о ЧУДО! Эта кнопулечка, маленькая галка, она мне мозг совокупила! Она генерирует не только новый код, но и гуид. Вот такой вот вывод
|
|||
33
MakaMaka
22.03.18
✎
16:31
|
нет, все равно глючит
|
|||
34
Ёпрст
22.03.18
✎
16:57
|
(32) неверный вывод. В базе приёмнике почисти рег сведений
|
|||
35
Ёпрст
22.03.18
✎
16:57
|
там твоё кривое соответствие мешает норм. поиску.
|
|||
36
Cyberhawk
22.03.18
✎
20:16
|
У тебя пади кэш выгрузки работает, вот и нет ГУИДа нужного
|
|||
37
Cyberhawk
22.03.18
✎
20:16
|
Т.е. первым выгружается этот документ по ПКО, в котором не стоит поиск только по ГУИДу
|
|||
38
Cyberhawk
22.03.18
✎
20:17
|
Переопределяй ключ выгружаемых данных в каждом из ПКО, где фигурирует твой объект
|
|||
39
MakaMaka
23.03.18
✎
08:11
|
(38) Зачет! Сработало. Буду разбираться, изучать, что это за ключ выгружаемых данных. Спасибо большое!
|
|||
40
AneJIbcuH
23.03.18
✎
08:20
|
(10) У тебя случайно ПВД не с произвольным алгоритмом выгрузки?
|
|||
41
MakaMaka
23.03.18
✎
08:24
|
(40) Я это вот тут указал (5) , да запросом получаю данные, и выгружаю.
|
|||
42
AneJIbcuH
23.03.18
✎
08:26
|
(41) а в ПВД в ВыгрузитьПоПравилу у тебя ссылка точно передавалась?
|
|||
43
AneJIbcuH
23.03.18
✎
08:34
|
(41) Как-то делал выгрузку документа таким образом (В ПВД):
Запрос с текстом, типа "Выбрать Док.Ссылка, Док.Контрагента, Док.Договор ... Док.Товары( ССылка, Номенклатура, ...) Из .." Потом ВыборкаДанных = Запрос.Выполнить().Выгрузить(); Так вот в запросе обязательно должна присутствовать (видимо и передаётся в ПКО) строка с получением ссылки: "Док.Ссылка". Иначе и не происходит поиск по ГУИД (даже если в ПКО стоит галка). |
|||
44
MakaMaka
23.03.18
✎
08:40
|
(43) была ссылка.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Первые 5 | ПоступлениеТоваровУслуг.Ссылка КАК Ссылка |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода | И ПоступлениеТоваровУслуг.Организация = &Организация | И ПоступлениеТоваровУслуг.Склад = &Склад | И НЕ ПоступлениеТоваровУслуг.ПометкаУдаления |УПОРЯДОЧИТЬ ПО | ПоступлениеТоваровУслуг.МоментВремени"; Запрос.УстановитьПараметр("Организация", Параметры.Организация); Запрос.УстановитьПараметр("Склад", Параметры.Склад); Запрос.УстановитьПараметр("НачалоПериода", Параметры.НачалоПериода); Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(Параметры.ОкончаниеПериода)); ВыборкаДанных = Запрос.Выполнить().Выбрать(); Пока ВыборкаДанных.Следующий() Цикл ОбщегоНазначенияКлиентСервер.СообщитьПользователю("0. Выгружается Объект :" + ВыборкаДанных.Ссылка +".",,,,,); ВыгрузитьПоПравилу(ВыборкаДанных.Ссылка, ,Новый Структура ,Новый Структура , "ПоступлениеТоваровУслуг_ПриемНаОтветХранение"); КонецЦикла; Отказ = Истина; |
|||
45
MakaMaka
23.03.18
✎
08:41
|
Я даже определял переменную ВыборкаДанных, в разных вариациях, и запрос в нее передавал и ТЗ и результат выборки запроса, не было результата. Помогло только определение ключа.
|
|||
46
AneJIbcuH
23.03.18
✎
08:51
|
(44) Ну да, не очень понятно. Зря конечно используешь Переменную "ВыборкаДанных", это зарезервированная переменная КД.
Вот так тоже пробовал?: .... "Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(Параметры.ОкончаниеПериода)); лВыборкаДанных = Запрос.Выполнить().Выбрать(); Пока лВыборкаДанных.Следующий() Цикл ОбщегоНазначенияКлиентСервер.СообщитьПользователю("0. Выгружается Объект :" + лВыборкаДанных.Ссылка +".",,,,,); ВыгрузитьПоПравилу(лВыборкаДанных.Ссылка,,,, "ПоступлениеТоваровУслуг_ПриемНаОтветХранение"); КонецЦикла; Отказ = Истина;" |
|||
47
MakaMaka
23.03.18
✎
08:55
|
(46) использовал, я смотрел как работает, если выборку определяю. Последнее не понял, ты мой код мне скопировал?
|
|||
48
MakaMaka
23.03.18
✎
08:56
|
Сейчас переменная выборкаданных не определена, без нее живу.
|
|||
49
AneJIbcuH
23.03.18
✎
09:01
|
(47) Ну там мелочи ВыгрузитьПоПравилу(лВыборкаДанных.Ссылка,,,, "ПоступлениеТоваровУслуг_ПриемНаОтветХранение");
|
|||
50
MakaMaka
23.03.18
✎
09:06
|
(49) тогда не будет определены структуры Входящих данных и исходящих данных, а они мне дальше нужны, я в них выгружаю данные как в параметр, и использую после загрузки объекта.
|
|||
51
AneJIbcuH
23.03.18
✎
09:10
|
Что-то вообще непонятное. Какие данные выгружаешь?
|
|||
52
AneJIbcuH
23.03.18
✎
09:11
|
(50) Ну в целом, это не повлияет на поиск по ГУИДу
|
|||
53
MakaMaka
23.03.18
✎
09:18
|
Я выгружаю строковые данные в параметр, а во время приемки по значение параметра пихаю в запрос. Там сложный схематоз, но заказчик как художник, он так видит. Не будем это обсуждать. А так, согласен, на поиск п огуиду это не влияет.
|
|||
54
AneJIbcuH
23.03.18
✎
09:20
|
(53) Думаю, что всё-таки у тебя, как (37) сказано
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |