КД перенос документа АвансовыйОтчет из БУ в УПП. #345342


#0 by Said_We
Спустя несколько месяцев пришлось опять обратиться к КД. Что-то я сегодня час почти потерял и так и не понял как мне перенести сей документ из БП в УПП. Суть проста. Вся загвоздка в единственном реквизите ЕдиницаИзмерения в табличной части Товары. В БП сей реквизит имеет тип классификатор единиц измерения. В УПП это справочник Единицы измерения, который в свою очередь подчинен справочнику Номенклатура. Т.е. необходимо при переносе реквизита подставить совсем другой справочник. В демо я подобного не нашел. Подозреваю что просто плохо смотрел. Что-то мне кажется раньше я подобное настраивал.
#1 by ТелепатБот
#2 by Defender aka LINN
Вторая ссылка Телепата
#3 by Said_We
Прочитал. Не понял.
#4 by Said_We
Я не понял куда мне запихнуть выгруженные данные из табличной части так что бы при загрузке я их мог взять и главное откуда. В моем случае источник есть и приемник есть, но типы совсем не совпадают. т.е. где та переменная и как она называется - куда я могу засунуть пусть даже строку и потом при загрузке смогу взять. Т.е. пусть я вместо выгрузки типа справочник выгружу только его наименование (в данном случае можно код так как классификатор единиц измерений и сам классификатор уже синхранизирован) и далее по нему найду то что мне надо в подчиненном справочнике. Писать это для объекта как-то не правильно, так как сами данные находятся в табличной части, т.е. если передавать в этом случае, то только сразу по всем строкам, а это уже некая структура данных. Тут не понятно как строку передать, а структуру тем более.
#5 by UnoMomento
В ПКС для Справочника КлассификаторЕдиницИзмерения укажи ВЛАДЕЛЬЦА(Номенклатуру), которого передавай через ИСХОДЯЩИЕ-ВХОДЯЩИЕ ДАННЫЕ. И для реквизита в ТЧ ЕдиницаИзмерения укажи правило обмена (ПКС для справочника Классификатор...)
#6 by Said_We
А по порядку?
#7 by Said_We
У меня нет в УПП владельца у классификатора единиц измерения. В БП СправочникСсылка.КлассификаторЕдиницИзмерения В УПП СправочникСсылка.ЕдиницыИзмерения Для того что бы указать правильную Ед. изм в табличной части документа авансовый отчет мне необходимо поискать у наменклатуры подчиненный справочник ЕдиницыИзмерения по полю ЕдиницаПоКлассификатору. Во первых надо знать у какой номенклатцры искать, а во сторых само значение по которому искать.
#8 by Said_We
Далее само правило конвертации для свойства ед изм необходимо указать новое созданное я так понимаю?
#9 by UnoMomento
...В УПП это справочник Единицы измерения, который в свою очередь подчинен справочнику Номенклатура. ... Этот справочник и указывай для ПКО КлассификаторЕдиницИзмерения. И там пропиши владельца. У меня нет конфы УПП. Поэтому не могу подробнее - только по наитию. В Обработчике ПриВыгрузке для реквизита Номенклатура укажи -   ИсходящиеДанные.Добавить(Источник,"Владелец"); А в ПКО для классификатора поставь галку "Получить из входящих данных" для реквизита  ВЛАДЕЛЕЦ.
#10 by Said_We
Я не пойму как мне в ПКО передать ТЗ или еще что. И самое интересное оно будет для каждой строки ПКС передаваться или один раз и надо будет только потом поиск осуществлять?
#11 by Said_We
И что передасться. номенклатура это справочник, а XML это файл в который засовывают строковые разные данные.
#12 by Said_We
Более того есть такая хрень как ОбъектКоллекции в ПКС - наверное же от туда можно взять?
#13 by Said_We
и там уже сразу ссылка должна быть на уже найденную номенклатуру - так же?
#14 by Said_We
Только к сожалению нет доступа при загрузке, а только при выгрузке есть. Почему не понятно.
#15 by Said_We
Еще вопрос. Вот я создал еще одно правило конвертации. Указал его для свойства Ед.Изм. В списке у меня появилось это свойство в разделе "Справочники". Написал я там некий код обработчик и т.д. Если я это же свойство открываю через ПКС, то нет там никаких обработчиков, а через список ПКО есть. Это как?
#16 by Said_We
Еще вопрос. Вот я создал еще одно правило конвертации. Указал его для свойства Ед.Изм. В списке у меня появилось это ****ПКО**** в разделе "Справочники". Написал я там некий код обработчик и т.д. Если я это же свойство открываю через ПКС, то нет там никаких обработчиков, а через список ПКО есть. Это как?
#17 by UnoMomento
В ПКО для табличной части ПРИЕМНИКа п обработчике событий ПередВыгрузкой описываешь Таблицу Значений с именем КоллекцияОбъектов. В ней прописываешь все поля табличной части ПРИЕМНИКа и заполняешь их, отталкиваясь от табличной части ИСТОЧНИКа.
#18 by Said_We
ну как понял... не туда глянул...
#19 by Said_We
"В ПКО для табличной части ПРИЕМНИКа " - а для табличной части разве можно указать ПКО? Там нельзя выбрать чего либо. Открывается сама табличная часть.
#20 by UnoMomento
Когда создаешь ПКС для ТЧ, выбираешь ее (ТЧ приемника), заходишь в "Сихронизация свойств..." выбираешь нужную табличную часть приемника, два клика по ней и открываются обработчики событий - и пиши все что нужно.
#21 by Said_We
Не пойму, а почему для ПКС нет событий после загрузки и т.д.
#22 by UnoMomento
А это там и не нужно. Все выгружается в текстовом формате, затем ищется по тем реквизитам, которые укажешь в ПКО.
#23 by Said_We
Я до сих пор не понял что мне надо сделать ... :-)) Или я туплю или спешу .... :-))
#24 by UnoMomento
На входе документ Авансовый отчет, а на выходе какой ?
#25 by Said_We
Тоже АвансовыйОтчет.
#26 by Said_We
Я сейчас одно не пойму. Вот я написал в ПКО Авансового отчета "ИсходящиеДанные = трам там там..." Написал в ПКС в ед.Изм у свойства владелец "трам там там ... = ВходящиеДанные" Да я их получил, но как мне теперь понять что это я за входящие данные получил и к чему это относится....
#27 by UnoMomento
Извини, САИД, но у меня в примерах ККД 2.0 залита конфа УПП видать очень старая - там еще нет Авансового отчета. Если конфа небольшая до 10 М в сжатом виде, то пришли мне файл 1cv8.cf(упакуй) на мыло Shavkat_59@mail.ru. сделаю зарисовку - отшлифуешь сам.
#28 by Said_We
Что-то по моему как-то проще должно быть...
#29 by Said_We
Да этот документ можно взять из БП, только у реквизита ед изм взять другой тип, который в УПП есть.
#30 by Said_We
модуль можно и не копировать совсем
#31 by UnoMomento
Для ПКС "Владелец" в Обработчике событий "Перед выгрузкой" напиши Если Не ВходящиеДанные = Неопределено Тогда
#32 by Said_We
А в исходящих тогда что я должен написать?..... я тогда должен передать конкретную номенклатуру, а у меня их целая табличная часть....
#33 by Said_We
Я так понял что Исходящие данные и входящие данные это-то что можно передать из ПКО в ПКС. ПКО отностися к документу АвансовыйОтчет ПКС относится к реквизиту табличной части товары этого же реквизита. Как ПКС узнает какую табличную часть какого документа и какую конкретную строку табличной части оно сейчас конвертирует?
#34 by Said_We
т.е. на самом деле я данные в ПКС передать могу, но только сразу целый набор, а как мне теперь из этого набора определить что конкретно мне необходимо?
#35 by UnoMomento
У тебя для ПКС есть такая колонка: "Правило конвертации". там и нужно указать какое правило (ПКО) будет использоваться для выгрузки реквизита.
#36 by UnoMomento
И в тот момент когда происходит обращение к этим правилам и передаются ВХОДЯЩИЕ ДАННЫЕ.
#37 by Худой
Может быть, вопрос не совсем в тему. А зачем кроме УПП иметь еще и БП? Да еще заниматься перебросками? УПП - это же такая круть, в которой и БП как то само по себе предполагается, что имеет место быть.
#38 by Рэйв
Выгрузи без едениц документы, а потом добрось их обработкой по СОМ или как удобно тебе. Быстрее будет чем через КД продираться. Я вообще для передачи чего-то в приемник я поправил универсальную загрузку . В Процедуре одЗначениеЭлемента(Объект, Тип, ИскатьПоСвойству="") добавил //---------- За то в реквизит могу теперь поло;ить что угодно и в ПКО в ПриЗагрузке написать обработку типа
#39 by Рэйв
+ в первом если Выполнить(Правило.ПриЗагрузке); Естествено:)
#40 by Said_We
В УПП данные переносятся из БП и БП далее выкинется, так что это не обмен, а именно перенос навсегда. Ну через ОЛЕ понятно, только не сильно интересно... Кое какие вещи и без ОЛЕ придется делать. У номенклатуры например установить вид в зависимости от счета в том же авансовом отчете и остальных документах. Это уже сделал. Но подозреваю что и с помощью КД можно при загрузке это счастье устанавливать.
#41 by Рэйв
Тогда пробуй курочить V8Exchan.epf по моему способу:) Потому что как передать параметр привязанный к конктерному реквизиту я так и не нашел в стандартной КД
#42 by UnoMomento
Ты еще долго будешь спрашивать: "А как это, А как это" см
#43 by Said_We
Получилось.... но по другому и просто до ужаса.
#44 by Said_We
В ПКО авансового отчета я не указывал ровным счетом не чего...
#45 by Рэйв
и что сделал?
#46 by Said_We
Делается все гораздо проще... 1. ПКО авансовый отчет не трогаем совсем. 2. Создаем новое правило конвертации для реквизита реквизита табличной части ЕдиницаИзмерения. 3. ПКС реквизита табличной части ЕдиницаИзмерения в событии ПередВыгрузкой прописываем код: ИсходящиеДанные = ОбъектКоллекции.Номенклатура; 4. В созданном правиле конвертации у свойства "Владелец" проставляем галочку "получить из входящих данных" и в собитии ПередВыгрузкой прописываем код: Значение = ВходящиеДанные; По моему не чего не упустил.
#47 by Said_We
по хорошему ИсходящиеДанные = должен быть некая структура если данных необходимо передавать несколько, но в данном случае можно и так.
#48 by Said_We
можно и всю строку табличной части передать и все что угодно.... я только одного не пойму зачем мне до этого рассказывали про ПКО АвансовогоОтчета, если там вообще не чего писать не надо?
#49 by Said_We
"Ты еще долго будешь спрашивать: "А как это, А как это" см" Вы конечно извените но вот как можно понять фразу в ПКС чего? ПКС какого свойства для какого объекта? Вообще я много почитал и на форуме сдесь и во встроенном помошнике (в котором просто замечательные примеры описаны). Везде одна и та же проблема. не пишистя в событии какого ПКО и ПКС и т.д. что писать. Не описано что из ПКС можно передавать параметры в ПКС. Пример: Событие ПередВыгрузкой для ПКС. "ИсходящиеДанные - Произвольный. Произвольные вспомогательные данные, передаваемые правилам конвертации объектов свойств (ПКО)." - А на самом деле это переданные параметры из правила (ПКС, ПКО...), которое собственно данное ПКС вызывает. "ВходящиеДанные - Произвольный. Произвольные вспомогательные данные, переданные правилу конвертации из других правил (например из правила выгрузки данных или правила конвертации свойств). Значение параметра, как правило, имеет тип Структура, где ключи значений соответствуют структуре свойств объекта приемника. Таким образом, при конвертации свойств (в ПКС), конвертируемые данные (или часть данных) могут быть получены из этого параметра." - А на самом деле тип не "как правило структура", а ровно такой какой его определили в правиле которое вызывает данное правило.
#50 by Said_We
Сейчас попробовал не указывать галочку "Получить из входящих данных". Получилось так же как и с ней. А она за чем собственно? :-)))
#51 by Said_We
Конвертация данных, редакция 2.0 (2.0.22.1)
#52 by Said_We
Так зачем эта галочка?
#53 by UnoMomento
Для ПКС "Владелец" (ПКО для Справочник.КлассификаторЕдиницИзмерения) в Обработчике событий "Перед выгрузкой" напиши Если Не ВходящиеДанные = Неопределено Тогда А до этого для ПКС Номенклатура в табличной части Товары в обработчике ПриВыгрузке нужно написать Извини, задержал с ответом - у нас тут день варенья у девочки - отмечаем...
#54 by Said_We
А я уже написал как примерно сделал в :-) Но все равно спасибо - на мысль натолкнул. Может все таки подобный случий описать в FAQ. к Ну и что бы поиск был по знаюению реквизита в ЕдиницаПоКлассификатору справочника УПП ЕдиницыИзмерения необходимо еще одно правило добавить. Если кому надо могу полностью описать полный алгоритм. Не чего сложного есть и как я писал в в самом конце я это когда-то уже делал. Только что натолкнулся на свое правило, которое писал в начале этого года. Если бы плотно и долго занимался КД наверное бы не забыл.... :-))
#55 by Said_We
А почему у темы секция УПП, а не обмен?
#56 by Said_We
еще Вопрос. А можно где нибудь в самом начале всей выгрузки выполнить какие-то действия сохранить результаты этого действия где нибудь (ТЗ, структура и т.д.), а потом обращаться к ним из всех правил. Объясню для чего. Для того же вида номенклатуры. Выполнил один раз запрос: И при установки реквизита вид номенклатуры можно обращаться к уже один раз выбранным данным. Т.е. не несколько вызывать один и тот же алгоритм для чего либо, а вообще его один раз вызывать и пользоваться уже готовыми данными. Я бы так сказал - общие глобальные данные для всех правил конвертации...
#57 by Said_We
АУ
#58 by GenV
для этого есть Параметры ...
#59 by Said_We
В какой а какой общее событие для всех правил в котором можно было бы их заполнить?
#60 by Said_We
У правила конвертации есть параметр, но где можнозадать алгоритм, который бы заполнил этот параметр или надо навесить его на то или иное ПКО и в собитии при загрузки правила нарисовать что-то?
#61 by Said_We
Вроде понял как. Только попробовать осталось.
#62 by Said_We
Забавно, сегодня на другой машине делаю как в и банан :-)))
#63 by Said_We
Один в один делаю и вижу просто банан... Передал просто строку и не получаю её во входящих данных.
#64 by Said_We
Востановил копию и попробовал перенсти ка переносил до этого. Понимаю что чудес не бывает, но .... В общем сразу тоже не заработало... Понарисовал Сообщить и наблюдаю. Сейчас в одном документе есть три строки, для одной строки вызывается сообщить и реальные данные получает через ВходящиеДанные и можно юзать... Для двух других строк не вызывается даже.... :-)) Бред какой-то...
#65 by Said_We
Если прописал в табличной части у реквизита правило конвертации новое, то почему оно вызывается один раз, а не для каждой строки табличной части? При этом пару дней назад как только не извращался - все было нормально и вызывалось и передавалось столько сколько строк.... Что я мог упустить.
#66 by Said_We
Прикольно еще с одной проблемой столкнулся... Есть документ СФ полученны. В качестве документа основания может быть документ разного вида... При поиске этого документа не осуществляется поиск по дате, а осуществляется только поиск по номеру, хотя в правиле конвертации любого объекта идет поиск по дате+номер.
#67 by Said_We
Косяк с теми же СФ. Установил принудительно загрузку по правилу по виду документа основания. Из порядка 6 000 документов 10 не грузятся - типа контрагент не совпадает. Посмотрел по отладчику - действительно не совпадает. такое подозрение что не находит и не создает.
#68 by Said_We
Все понятно - надо новую ветку открывать...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С