Конвертация данных. Привязка складов #622864


#0 by ХочуСпец
Есть Документ источника и приемника. Есть реквизит склад. Нужно жестко указать есть в источнике склад такой то, то в приемнике склад такой то. В ПКС "склад" для этого документа: Источник - пусто. Приемник - склад. ПКО - пусто. В обработчике Перед Выгрузкой в ПКС: При выгрузке ошибка: метод найти по коду не обнаружен. В чем может быть проблема?
#1 by Господин ПЖ
разрешаю написать в правиле
#2 by bar0n0
Нада не так Приемник.НайтиПоНаименованию("МойСклад1"), а так Справочники.Склады.НайтиПоНаименованию("МойСклад1") и не так Источник.Склад.НайтиПоКоду("0001"), а так Источник.Склад.Код = "0001" Дальше сам разберешся
#3 by ХочуСпец
в данном случае: Справочники.Склады.НайтиПоНаименованию("МойСклад1") поиск будет произведен в Источнике или приемнике?
#4 by AndrewM
ты этот код пишешь в обработчике "ПередВыгрузкой". Значит, в источнике.
#5 by Naumov
а что гениальный кусок кода из Должен сделать? сдается вообще с ошибкой отвалится
#6 by Naumov
+ Как соотносятся склады в базах? есть ли возможность, например, одинаковые коды им назначить и синхронизировать по коду?
#7 by ХочуСпец
но нужно искать в приемнике
#8 by ХочуСпец
какой обработчик использовать?
#9 by ХочуСпец
нет по коду не синхронизируются
#10 by Naumov
Что мешает этому? Есть принципиальная невозможность?
#11 by ХочуСпец
мешает в описал как необходимо сделать
#12 by ХочуСпец
неужели такой вопрос мудренный?
#13 by Naumov
В Я не понял чего ты хотел конкретно написать. Кусок кода мягко говоря не нормален. Если опишешь постановку, то предложу варианты решения проблемы. Их как обычно несколько
#14 by akaBrr
Источник.Склад.НайтиПоКоду("0001") - это не будет работать на стороне приемника Значение = Приемник.НайтиПоНаименованию("МойСклад1") это не будет работать на стороне источника
#15 by ХочуСпец
кусок кода это просто пример На данный момент необходимо выгружать документы из источника в приемник. Синхронизации по складу этого документа пока нет. Т.е. пользователь может задать эту связь жестко: Если в Источнике склад1, то в приемнике Склад1111 да, работать не будет. Это просто пример Если прописать перед выгрузкой ПКС "Склад": Но в данном случае будет подставлять склад из Источника
#16 by akaBrr
Синхронизация складов должна стоять по наименованию. В ПКО склады должен быть указан реквизит Наименование и поиск по нему. Все.
#17 by akaBrr
+ но я бы сделал по ссылке
#18 by ХочуСпец
ну нет синхронизации! ни по наименованию ни по коду!
#19 by Йохохо
ПКО - Склады_ПоискПоНаименованию - только 2 поля, поиск по имени
#20 by Naumov
ДА блин. каленой кочергой вечно постановку выпытывать. В источнике можно либо в реквизит справочника складов запихать код из базы в БП и при выгрузке выгрузить нужный нам код для синхронизации, либо в свойства запихать и выуживать из них. Мешает-то что? в чем ограничения на синхрон?
#21 by akaBrr
новое ПКО Строка->Склады, строку в имя склада
#22 by akaBrr
+ в ПКС указать новое ПКО
#23 by akaBrr
+ и тогда Значение = "МойСклад2";
#24 by ХочуСпец
В какой момент (в каком обработчике) можно из приемника по наимованию достать нужный склад?
#25 by Йохохо
у тебя доступна или первая база, или вторая но никогда обе ты хочешь передать параметром СкладИсточник и потом найти его при загрузке?
#26 by ХочуСпец
именно так А если просто прописать: При условии что наименования складов в приемнике различны
#27 by akaBrr
ПКО : у Наименования ПередВыгрузкой Значение = Источник;
#28 by Naumov
можно, например так: ставишь полем поиска для склада Наименование, в правиле конвертации свойства Наименование для склада в событии перед выгрузкой пишешь что-то типа твоего как раз так работать будет. искать будет по указанному здесь наименованию
#29 by ХочуСпец
В новом ПКО какие конвертации свойств прописать?
#30 by akaBrr
у Наименования ПередВыгрузкой Значение = Источник;
#31 by Йохохо
в ПКС Склад пишешь и всё
#32 by ХочуСпец
Я создал новое ПКО "СкладыСтрока" Добавил в конвертацию свойств этого ПКО: Источник Пусто, Приемник: Наименование. Поиск по этому свойству. В ПКС Склад для документа выбрал это ПКО. В ПКС Перед выгрузкой: Если Источник.Склад.Код = "0001" тогда     но вылетает с ошибкой
#33 by akaBrr
у ПКС Наименование, в событии ПередВыгрузкой написал что в ?
#34 by akaBrr
+ и да в и более наглядный способ
#35 by ХочуСпец
да
#36 by akaBrr
в ПКО документа в ПКС Склад поменял правило?
#37 by ХочуСпец
естествно
#38 by akaBrr
ошибка какая?
#39 by Naumov
ну так у него источник пустой. не может она так. с пустым источником надо делать как в и выгрузить по правилу применять.
#40 by ХочуСпец
при загрузке правил обмена: Ссылка на несуществующий объект метаданных в правилах обмена    Объект                 =  Строка    ОписаниеОшибки         =  Значение не является значением объектного типа (ПКО) а выгрузка проходит
#41 by Йохохо
не надо ни чего по правилу выгружать, ПКО в ПКС Склад и все
#42 by akaBrr
источник может быть пустой
#43 by Йохохо
конечно, кд хочет сделать Склад["Наименование"], а Склад - строка
#44 by ХочуСпец
ну так и сделал. Ошибка. Добавил в конвертацию свойств этого ПКО: Источник Пусто, Приемник: Наименование. Поиск по этому свойству. Перед выгрузкой для этого свойства Значение = Источник В ПКС Склад для документа выбрал это ПКО. В ПКС Перед выгрузкой: Если Источник.Склад.Код = "0001" тогда
#45 by ХочуСпец
Самое что интересное загрузилось на УРА! Но вот ошибка при загрузки правил огорчает (
#46 by akaBrr
мой способ взят из книжки Бояркина и Филатова, если есть глянь там, может я где ошибся
#47 by Naumov
Источник - строка, а не пусто
#48 by ХочуСпец
нельзя выбрать Строка
#49 by akaBrr
у ПКС нельзя, у ПКО можно
#50 by ХочуСпец
у ПКО Строка!
#51 by akaBrr
очень подробно
#52 by Йохохо
зачем тебе Источник? Ошибка не потому, что нет источникав ПКС, а потому, что в ПКО Склад, для объектного типа, у которого есть реквизиты, которые должны быть доступны через [], ты передаешь ТипЗнч(Склад) = "Строка"
#53 by akaBrr
он там устанавливает значение Значение - Неопределено. Конвертируемое значение свойства. Если значение определить в теле обработчика, то стандартная процедура получения значения не будет происходить.
#54 by akaBrr
в каком событии прописал Значение = "Склад1"?
#55 by ХочуСпец
В ПКС склады документа "ПередВыгрузкой"
#56 by AndrewM
Зачем в ПКО "СкладыСтрока" создавать кучу ПКС? Достаточно одного ПКС "Строка -> Наименование". И в этом ПКС перед выгрузкой прописать "Значение = Источник".
#57 by akaBrr
это у него в ПКС Склад, ПКО какойтодокумент
#58 by Йохохо
Если Значение = Неопределено то обработчик выгрузки не выполнится ) афаик
#59 by akaBrr
Если значение определить в теле обработчика, то !стандартная процедура! получения значения не будет происходить. Что автор и делает.
#60 by ХочуСпец
так и сделано
#61 by Йохохо
все запутали и поломали, а было так просто )
#62 by akaBrr
не мы, нас так 1С учит :)
#63 by Йохохо
писалкин.
#64 by akaBrr
читалкин.
#65 by Йохохо
=) если Значение = Неопределено, то 1. то !стандартная процедура! получения значения не будет происходить sic 2. не будет вызван ПКО
#66 by akaBrr
Если значение определить в теле обработчика <> Значение = Неопределено домыслы, в описании правила об этом ни слова
#67 by akaBrr
чтобы не выполнялось правило есть флаг Отказ
#68 by AndrewM
Кстати, в свойствах ПКО "СкладыСтрока" надо галочку поставить "Автоматически генерировать новый номер или код, если он не задан", т.к. ты в ПКО "СкладыСтрока" добавил только ПКС на наименование. А если по указанной строке ничего не найдётся, кд попробует создать новый элемент, но с пустым кодом.
#69 by Йохохо
в общем случае нет, я взял и написал "Значение = Неопределено" а про эти домыслы лучше помнить
#70 by akaBrr
Если значение = Неопределено, то это штатный режим работы, КД сама определит значение. Впрочем это касается ПередВыгрузкой.
#71 by Абыр
Тему не читал) Но: 1) Создаем новое ПКО. Источник - пустой. Приемник - справочник Склады конфы-приемника. ПКС только одно - для наименования, по нему и поиск. Не забываем в нем написать Значение = Источник; 2) В ПКО документа устанавливаем наше новое правило для реквизита Склад. Ну и соответственно прописываем код для определения значения.
#72 by akaBrr
третьим будешь, но у нас здесь есть еретики, которые не признают православный способ :)
#73 by ХочуСпец
Да все таки источник ПКО должен быть пустой. Все выгрузилось и загрузилось без ошибок. Спасибо всем. В частности  Йохохо и  akaBrr
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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