|   |   | 
| 
 | Конвертация данных из БП 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) Явно где-то протупливаюсь.
 ПКС Источник: СчетУчета Приемник: Характеристика ПКО ПриВыгрузке: ИсходящиеДанные = Новый Структура("Наименование"); ИсходящиеДанные.Наименование = ?(Источник.Забалансовый, "Забаланс", "Баланс"); ВыгрузитьПоПравилу(ИсходящиеДанные,,,, ИмяПКО); Результат. Да никакого, в файл просто выгружается СчетУчета. Я же просил поподробнее, как для тупых. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |