Вход | Регистрация



Конвертация данных 2.1

Конвертация данных 2.1
Я
   MakaMaka
 
22.03.18 - 09:04
Всем привет. Чет туплю на пустом месте:
В ПКО, в событии "Перед выгрузкой" определяю структуру ВходящиеДанные, в структуру добавляю элемент, присваиваю ему значение.

В ПКС Создаю правило выгрузки свойства, указываю, получать из входящих данных, указываю  правило конвертации свойства, но при выгрузке ничего не происходит. Т.е. выгрузка проходит, но значение реквизита не заполняется. Выгрузка проходит обработкой "Универсальный обмен в формате XML".
 
 
   MakaMaka
 
1 - 22.03.18 - 09:17
Чувство, что при выгрузке вообще игнорятся параметры. Или параметры используются только когда выгрузка идет через обарботка "КонвертацияОбъектовИнформационныхБаз"?
   Cyberhawk
 
2 - 22.03.18 - 09:18
Попробуй определять структуру "ИсходящиеДанные"
   Cyberhawk
 
3 - 22.03.18 - 09:18
Хотя из ПКО в ПКС оно и не должно вроде передаваться. Только из ПВД в ПКО и из ПКС в ПКО
   Cyberhawk
 
4 - 22.03.18 - 09:19
Ты в событиях ПКС определяй исходящие данные, зачем это в ПКО? В какой ПКС думаешь они пойдут?
   MakaMaka
 
5 - 22.03.18 - 09:21
(2) Определена в ПВД, в ПВД данные получаю в запросе, потом обхожу выборку циклом:

ВыгрузитьПоПравилу(ВыборкаДанных.Ссылка, ,Новый Структура ,Новый Структура , "ПоступлениеТоваровУслуг_ПриемНаОтветХранение");
   Cyberhawk
 
6 - 22.03.18 - 09:22
Определять = заполнять
   MakaMaka
 
7 - 22.03.18 - 09:23
Ты в событиях ПКС определяй исходящие данные, зачем это в ПКО?
- А в чем разница? В ПКО до этого определял и ПКС значения подхватывали. Тут наверное что то другое.

В какой ПКС думаешь они пойдут?
- В ПКС Выгружаемого объекта. Думаю так.

(6) Ок. Спасибо.

Есть еще одна идея. Кажется есть зацепка, сейчас проверю, отпишусь.
   MakaMaka
 
8 - 22.03.18 - 09:29
(6) Еще раз хотел сказать спасибо. Ларчик открывался просто.
В ПКО Объекта у меня пакетный запрос. Я одним запросом получаю нужные мне параметры. В итоге я просто забыл строчку
Выборка_Шапка.Следующий();
перед тем как обращаться к запросу.

Вывод: надо чаще писать запросы вручную, а не деградировать с конструктором.
Еще раз всем спасибо!
   MakaMaka
 
9 - 22.03.18 - 13:43
Апну тему, вопрос все равно с КД связан.

Выгружаю документ, мне нужно, что бы он искался по гуиду, в настройках ПКО, в настройках, установлена галка "искать объект приемника по внутреннему идентификатору объекта истоника".

Но чет не ищет, загружаю один и тот же файл, и на каждую загрузку создается новый документ.
Примечание: я не выгружаю номер документа, установлена галка "Автоматически генерировать номер или код, если он не занят".

Народ, что я опять делаю не так? Пните плиз!
   MakaMaka
 
10 - 22.03.18 - 14:03
Жесть какая то, галки стоят искать по гуиду, а документы создаются, хоть ты тресни. Видимо прийдется в отладчике копошиться.
 
 Рекламное место пустует
   MakaMaka
 
11 - 22.03.18 - 14:15
хоть идею подкиньте, что может быть не так. Почему не находится документ по гуиду?
   MakaMaka
 
12 - 22.03.18 - 14:34
блин, только и разговоров : выборы и Путин. Программисты ау? Тут есть программисты???
   Marik1274
 
13 - 22.03.18 - 14:35
Гуид может меняешь..? Правила старые? Например использовал отладку, правила обновил, а галочку "отладка" не убрал.
   Marik1274
 
14 - 22.03.18 - 14:37
Посмотри в файле обмена гуид. Он не меняется?
   MakaMaka
 
15 - 22.03.18 - 14:39
(14) Нет, загружаю один и тот же файл, он не меняется. Файл один, я его 2 раза загружу, 2 документа создается и т.д.
   Marik1274
 
16 - 22.03.18 - 14:42
Возможно у тебя два похожих ПКО. Или может программно другое ПКО вызываешь (выгрузить по правилу).
А вообще проанализируй внимательно файл обмена. Там есть все, что нужно для загрузки. Только смотри не через осла, а хоть блокнотом. Удобно смотреть Нотепад+. Там цветом подсвечивается.
   MakaMaka
 
17 - 22.03.18 - 14:47
НужноПродолжитьПоиск = (Элемент.Значение.ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли = Истина);
   MakaMaka
 
18 - 22.03.18 - 14:47
Что скажете товарищи?
   Cyberhawk
 
19 - 22.03.18 - 14:47
Покажи фрагмент файла выгрузки с объектом с ГУИДом, который у тебя "задваивается"
   Cyberhawk
 
20 - 22.03.18 - 14:48
Затем покажи то ПКО в КД, что указано в файле выгрузки для этого объекта
   MakaMaka
 
21 - 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</Значение>
</Свойство>
</Ссылка>
   MakaMaka
 
22 - 22.03.18 - 15:01
Я вот такой интересный кусок кода нашел:

АвтоматическиСоздаватьНовыйОбъект = (НЕ НеСоздаватьОбъектЕслиНеНайден
            И НЕ НужноПродолжитьПоискЕслиЭлементПоGUIDНеНайден)
            И НЕ ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD;
   Marik1274
 
23 - 22.03.18 - 15:03
ПКО-Настройки - тут эти галочки (ПКО документа)
   MakaMaka
 
24 - 22.03.18 - 15:04
(23) Это знаю. Фигню я нашел. Не то что надо. Там дальше еще что то есть. Блин!
   MakaMaka
 
25 - 22.03.18 - 15:14
   MakaMaka
 
26 - 22.03.18 - 15:18
Поставил галку не создавать объект, если он не найден. Документы не создались. Значит что? Не находит по ГУИД?
   MakaMaka
 
27 - 22.03.18 - 15:25
Галку снял, начал двоить) Вот же зараза такая, что то тут не чисто, какая то тонкость. Надо удалить документы и сравнить гуиды, тогда сразу станет ясно прав ли я. А если прав, то что делать?
   Marik1274
 
28 - 22.03.18 - 15:25
ИмяПравила="ПоступлениеТоваровУслуг_ПриемНаОтветХранение"
Найди в файле обмена это правило и все что там выложи сюда
   MakaMaka
 
29 - 22.03.18 - 15:56
(28) Короче песня такая, у меня создаются документы с другим гуидом. Чешу репу. Как такое возможно?
   MakaMaka
 
30 - 22.03.18 - 15:58
В файле выгрузки гуида, который был передан в фале нет.
   MakaMaka
 
31 - 22.03.18 - 16:08
Как же так? Как же должно быть? Неужели все?
   MakaMaka
 
32 - 22.03.18 - 16:18
Убрал галку генерировать номер, если он не задан, и о ЧУДО! Эта кнопулечка, маленькая галка, она мне мозг совокупила! Она генерирует не только новый код, но и гуид. Вот такой вот вывод
   MakaMaka
 
33 - 22.03.18 - 16:31
нет, все равно глючит
 
 
   Ёпрст
 
34 - 22.03.18 - 16:57
(32) неверный вывод. В базе приёмнике почисти рег сведений
   Ёпрст
 
35 - 22.03.18 - 16:57
там твоё кривое соответствие мешает норм. поиску.
   Cyberhawk
 
36 - 22.03.18 - 20:16
У тебя пади кэш выгрузки работает, вот и нет ГУИДа нужного
   Cyberhawk
 
37 - 22.03.18 - 20:16
Т.е. первым выгружается этот документ по ПКО, в котором не стоит поиск только по ГУИДу
   Cyberhawk
 
38 - 22.03.18 - 20:17
Переопределяй ключ выгружаемых данных в каждом из ПКО, где фигурирует твой объект
   MakaMaka
 
39 - 23.03.18 - 08:11
(38) Зачет! Сработало. Буду разбираться, изучать, что это за ключ выгружаемых данных. Спасибо большое!
   AneJIbcuH
 
40 - 23.03.18 - 08:20
(10) У тебя случайно ПВД не с произвольным алгоритмом выгрузки?
   MakaMaka
 
41 - 23.03.18 - 08:24
(40) Я это вот тут указал (5) , да запросом получаю данные, и выгружаю.
   AneJIbcuH
 
42 - 23.03.18 - 08:26
(41) а в ПВД в ВыгрузитьПоПравилу  у тебя ссылка точно передавалась?
   AneJIbcuH
 
43 - 23.03.18 - 08:34
(41) Как-то делал выгрузку документа таким образом (В ПВД):
Запрос с текстом, типа  
"Выбрать
Док.Ссылка,
Док.Контрагента,
Док.Договор
...
Док.Товары(
   ССылка,
   Номенклатура,
   ...)
Из .."

Потом ВыборкаДанных = Запрос.Выполнить().Выгрузить();

Так вот в запросе обязательно должна присутствовать (видимо и передаётся в ПКО) строка с получением ссылки: "Док.Ссылка". Иначе и не происходит поиск по ГУИД (даже если в ПКО стоит галка).
   MakaMaka
 
44 - 23.03.18 - 08:40
(43) была ссылка.

Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ  Первые 5
|    ПоступлениеТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
|    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
|    ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
|    И ПоступлениеТоваровУслуг.Организация = &Организация
|    И ПоступлениеТоваровУслуг.Склад = &Склад
|    И НЕ ПоступлениеТоваровУслуг.ПометкаУдаления
|УПОРЯДОЧИТЬ ПО
|    ПоступлениеТоваровУслуг.МоментВремени";

Запрос.УстановитьПараметр("Организация", Параметры.Организация);
Запрос.УстановитьПараметр("Склад", Параметры.Склад);
Запрос.УстановитьПараметр("НачалоПериода", Параметры.НачалоПериода);
Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(Параметры.ОкончаниеПериода));

ВыборкаДанных = Запрос.Выполнить().Выбрать();

Пока ВыборкаДанных.Следующий() Цикл
    
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("0. Выгружается Объект :" + ВыборкаДанных.Ссылка +".",,,,,);
    
    ВыгрузитьПоПравилу(ВыборкаДанных.Ссылка, ,Новый Структура ,Новый Структура , "ПоступлениеТоваровУслуг_ПриемНаОтветХранение");
    
КонецЦикла;

Отказ = Истина;
   MakaMaka
 
45 - 23.03.18 - 08:41
Я даже определял переменную ВыборкаДанных, в разных вариациях, и запрос в нее передавал и ТЗ и результат выборки запроса, не было результата. Помогло только определение ключа.
   AneJIbcuH
 
46 - 23.03.18 - 08:51
(44) Ну да, не очень понятно. Зря конечно используешь Переменную "ВыборкаДанных", это зарезервированная переменная КД.

Вот так тоже пробовал?:

....
"Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(Параметры.ОкончаниеПериода));

лВыборкаДанных = Запрос.Выполнить().Выбрать();

Пока лВыборкаДанных.Следующий() Цикл
    
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("0. Выгружается Объект :" + лВыборкаДанных.Ссылка +".",,,,,);
    
    ВыгрузитьПоПравилу(лВыборкаДанных.Ссылка,,,, "ПоступлениеТоваровУслуг_ПриемНаОтветХранение");
    
КонецЦикла;

Отказ = Истина;"
   MakaMaka
 
47 - 23.03.18 - 08:55
(46) использовал, я смотрел как работает, если выборку определяю. Последнее не понял, ты мой код мне скопировал?
   MakaMaka
 
48 - 23.03.18 - 08:56
Сейчас переменная выборкаданных не определена, без нее живу.
   AneJIbcuH
 
49 - 23.03.18 - 09:01
(47) Ну там мелочи ВыгрузитьПоПравилу(лВыборкаДанных.Ссылка,,,, "ПоступлениеТоваровУслуг_ПриемНаОтветХранение");
 
 Рекламное место пустует
   MakaMaka
 
50 - 23.03.18 - 09:06
(49) тогда не будет определены структуры Входящих данных и исходящих данных, а они мне дальше нужны, я в них выгружаю данные как в параметр, и использую после загрузки объекта.
   AneJIbcuH
 
51 - 23.03.18 - 09:10
Что-то вообще непонятное. Какие данные выгружаешь?
   AneJIbcuH
 
52 - 23.03.18 - 09:11
(50) Ну в целом, это не повлияет на поиск по ГУИДу
   MakaMaka
 
53 - 23.03.18 - 09:18
Я выгружаю строковые данные в параметр, а во время приемки по значение параметра пихаю в запрос. Там сложный схематоз, но заказчик как художник, он так видит. Не будем это обсуждать. А так, согласен, на поиск п огуиду это не влияет.
   AneJIbcuH
 
54 - 23.03.18 - 09:20
(53)  Думаю, что всё-таки у тебя, как  (37) сказано


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует