|
Конвертация данных из БП 2 в УТ 11 | ☑ | ||
---|---|---|---|---|
0
Reorun
15.07.14
✎
09:26
|
Настраиваю обмен из БП 2 в УТ 11 и возникла следующая задача.
В документах товародвижения, например "Поступление товаров и услуг", в БП есть реквизит СчетУчета который нужно в УТ перенести в реквизит ХарактеристикаНоменклатуры. Который может принимать одно из двух значений "Баланс" и "Забаланс" в зависимости от соответствующего параметра счета. Каким образом это лучше реализовать? Если можно поподробнее, для тупых. |
|||
1
Поpyчик-4
15.07.14
✎
09:33
|
(0) Если тупой, то лучше к специалисту за деньги.
|
|||
2
Reorun
15.07.14
✎
09:40
|
(1) Ну я не совсем тупой, просто первый раз с Конвертацией данных работаю.
|
|||
3
Azverin
15.07.14
✎
09:43
|
(1)(2) значит жадный)))))
|
|||
4
Reorun
15.07.14
✎
09:49
|
(3) И не жадный, это моя работа, я должен это сам реализовать, но мне нужна помощь.
И хватит уже оффтопить. |
|||
5
Azverin
15.07.14
✎
09:53
|
(4) какие у тебя варианты есть? что нарыл в инете? или ждёшь на блюдечке?
|
|||
6
Reorun
15.07.14
✎
10:04
|
(5) Говорю, перепробовал, все на что хватило фантазии. Решений подходящих под эту задачу не нашел.
Что пробовал: 1. Сделать 2 отдельных ПКС. В первом выгружать в параметр "Баланс" или "Забаланс"(это получилось). Во втором хотел из параметра взять параметр и по наименованию найти, тут пробовал несколько различных вариантов, ничего не сработало. Вероятно я просто не понял как это нужно правильно делать. 2. Пробовал сделать одно ПКС и в нем самом Перед выгрузкой переопределять "Значение". В информаци по обработчикам написано что можно. При попытке выгрузить данные в базе выпадала ошибка связанная с Уникальным идентификатором. В общем все это делалось методом тыка и с помощью обрывочной информации из интернета. |
|||
7
Naumov
15.07.14
✎
10:08
|
(6) 1. ну нормальное направление. читаешь параметр и ищешь нужное.
2. можно на этапе выгрузке сделать ПКС для ТЧ из пустого реквизита в характеристику. в событии Перед выгрузкой для ПКС, определяй значение как Соответствие с подходящими полями (определенными в ПКО для характеристики) |
|||
8
Armin
15.07.14
✎
10:10
|
(6) реквизит ХарактеристикаНоменклатуры какого типа? ПВХ? Тогда нужно выгружать через "ВыгрузитьПоПравилу()" и указывать правило переноса данного ПВХ, а в качестве ИсходящихДанных наполнить структуру со значениями выгружаемых полей.
|
|||
9
Reorun
15.07.14
✎
10:11
|
(6) Еще делал просто в тупую, без настроек и изучал файл обмена, там он вроде все нормально прописывает, но выгружает он наименование счета и по нему видимо ищет и очевидно не находит. Просто подменить выгружаемое значение и все должно заработать. Но у меня это сделать не получилось.
|
|||
10
Reorun
15.07.14
✎
10:13
|
(8) ХарактеристикаНоменклатуры - справочник ХарактеристикиНоменклатуры.
|
|||
11
Armin
15.07.14
✎
10:17
|
(10) ну тогда все просто - должно все работать через "Значение" в "ПослеВыгрузки" свойства "СчетУчета".
А вообще лучше делать через новое ПКО как я описывал в (8) |
|||
12
Armin
15.07.14
✎
10:18
|
(11) тьфу "ПередВыгрузкой"
|
|||
13
Reorun
15.07.14
✎
10:32
|
(12) Вот провел тест.
ПКС Источник: СчетУчета Приемник: Характеристика Перед выгрузкой: Если ОбъектКоллекции.СчетУчета.Забалансовый Тогда Значение = "Забаланс"; Иначе Значение = "Баланс"; КонецЕсли; (При выгрузке в параметр это код отрабатывает правильно). ПКО - все стандартно, только поменял поле поиска на наименование(по умолчанию было код). Результат: ошибка при выгрузке. {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(10939)}: Значение не является значением объектного типа (УникальныйИдентификатор) УникальныйИдентификатор = СсылкаНаИсточник.УникальныйИдентификатор(); Если убрать код из ПКС ошибка пропадает, но соответственно не достигается необходимый результат. |
|||
14
Reorun
15.07.14
✎
10:33
|
(7) А как правильно искать? В ПКО? Судя по информации по обработчикам "ПараметрыОбъекта" доступны только в обработчике "ПослеЗагрузки". Как я понимаю там уже искать поздно, хотя пробовал там пытаться переопределять "Объект" или "Ссылка" - ноль результата.
|
|||
15
mikecool
15.07.14
✎
10:38
|
в передвыгрузкой присваивать значению "Баланс" или "Забаланс"
пкс строка в пвх, если значения предопределенные в приемнике - вообще все мышью кликается |
|||
16
Armin
15.07.14
✎
10:43
|
(13) Не юзал данную обработину. "УниверсальныйОбменВФорматеXML" нормально скармливает. Пробуй через ПКО, раз твоя обработка не поддерживает простую выгрузку.
|
|||
17
Reorun
15.07.14
✎
10:49
|
(15) Это все понятно. В параметр выгружается вполне успешно. Там не ПВХ а справочник, я писал выше. Тут вопрос в каком обработчике и как конкретно искать? "При загрузке" "Объект" вроде можно переопределить, но там нет доступа к "ПараметрыОбъекта". "После загрузки" есть "ПараметрыОбъекта", но уже нельзя переопределять "Объект".
|
|||
18
Reorun
15.07.14
✎
10:49
|
(16) А как в ПКО выгрузить нужное значение?
|
|||
19
Armin
15.07.14
✎
11:03
|
(18) ИсходящиеДанные = Новый Стрктрура("Наименование,если есть еще какие то поля приемника, то тоже описываем тут");
ИсходящиеДанные.Наименование = ?(Объект.СчетУчета.Забалансовый(), "Забаланс", "Баланс"); // Заполняем доп поля если они есть // Выгружаем: ВыгрузитьПоПравилу(ИсходящиеДанные,,,,"<ИмяПКОХарактеристикаНомеклатуры>"); С замятыми мог напутать, не помню какой параметр по счету исходящие данные в функции |
|||
20
Armin
15.07.14
✎
11:07
|
(19) + В ПКО можно поставить галку "Получить из входящих данных" что бы не описывать левую часть.
|
|||
21
Reorun
15.07.14
✎
12:30
|
(19) Явно где-то протупливаюсь.
ПКС Источник: СчетУчета Приемник: Характеристика ПКО ПриВыгрузке: ИсходящиеДанные = Новый Структура("Наименование"); ИсходящиеДанные.Наименование = ?(Источник.Забалансовый, "Забаланс", "Баланс"); ВыгрузитьПоПравилу(ИсходящиеДанные,,,, ИмяПКО); Результат. Да никакого, в файл просто выгружается СчетУчета. Я же просил поподробнее, как для тупых. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |