Передача реквизита из ОбъектаИсточника в параметр

1. sys1c 16.11.16 03:50 Сейчас в теме
Всем привет.
Не уверен что Параметр, это то что мне надо, вот в чем суть вопроса.

Связка УТ 11 -> БП2
Выгружаю документ.ОтчетОРозничныхПродажах. В зависимости от реквизита "Подразделения", который есть в УТ11 и которого нет в БП2,
мне нужно принудительно подставлять в реквизит.Склад (в БП2), тот или иной склад.

В ПравилаКонвертацииСвойств добавил:



В ПКО Документ.ОтчетОРозничныхПродажах, в ПослеЗагрузки вот такой код:

Если Параметры.выбПодразделение.Код = "УТ-000002" Тогда
	Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад1");
ИначеЕсли Параметры.выбПодразделение.Код = "УТ-000026" Тогда	
	Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад2");
КонецЕсли;


Но при выгрузке, вижу ошибку:

Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Поле объекта не обнаружено (выбПодразделение)

Как правильно передать параметр?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kasper076 110 16.11.16 08:56 Сейчас в теме
(1)
Если ПараметрыОБЪЕКТА.выбПодразделение.Код = "УТ-000002" Тогда 
7. tusv 212 24.11.16 14:54 Сейчас в теме
(1) надо юзать свойство ПараметрыОбъекта, а не Параметры файла обмена
и Желательно в ПКС параметра установить правило
Если ПараметрыОбъекта["выбПодразделение"].Код = "УТ-000002" Тогда
    Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад1");
ИначеЕсли ПараметрыОбъекта["выбПодразделение"].Код = "УТ-000026" Тогда    
    Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад2");
КонецЕсли;
8. tusv 212 24.11.16 15:11 Сейчас в теме
(1) Но я бы все сделал на стороне источника
Создал бы ПКО СкладыСтрокой источник Строка , приемник СправочникСсылка.Склады. Галка поиск по уникальному идентификатору долой.
С одним ПКС источник Пусто Приемник Наименование и поиском по нему и В обработчике Перед выгрузкой
Источник = Новый Структура("Наименование",Источник);

Или в ПКС Наименование
Значение = Источник;

И использовал бы все это правило в ПКС Склады
Если Источник.Подразделение.Код = "УТ-000002" Тогда
Значение = "Склад1";
ИначеЕсли Источник.Подразделение.Код = "УТ-000026" Тогда
Значение = "Склад2";
КонецЕсли;
3. sys1c 16.11.16 14:26 Сейчас в теме
Тоже самое (
Вот полный лог ошибки:

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3405)}: ВНЕШНЕЕ СОЕДИНЕНИЕ: Ошибка при загрузке данных: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3748)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта
ИмяПКО = ОРП_ОтчетОРозничныхПродажах
ТипОбъекта = Отчет о розничных продажах
Объект = Отчет о розничных продажах 000965 от 14.11.2016 0:00:00
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Поле объекта не обнаружено (выбПодразделение)
ПозицияМодуля = (11)
КСообщенияОбОшибках = 21
ВызватьИсключение СтрокаСообщения;


Вот мой код в "После загрузки"
Если ПараметрыОБЪЕКТА.выбПодразделение.Код = "000002" Тогда
Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад1");
ИначеЕсли ПараметрыОБЪЕКТА.выбПодразделение.Код = "000026" Тогда
Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад2");
КонецЕсли;


Может что-то в ПравилаКонвертацииСвойств не правильно заполнил? сам параметр, на скриншоте в первом моем посте.
4. nuelectro 17.11.16 12:30 Сейчас в теме
Сам параметр добавлен, его тип указан?

Может легче сделать два отдельных ПКО, по одному на склад и вызывать их в зависимости от Подразделения?
5. artfa 58 24.11.16 12:42 Сейчас в теме
Если Параметры.выбПодразделение = "УТ-000002" Тогда
    Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад1");
ИначеЕсли Параметры.выбПодразделение = "УТ-000026" Тогда    
    Объект.Склад = Справочники.Склады.НайтиПоНаименованию("Склад2");
КонецЕсли;
6. igel9780 173 24.11.16 13:11 Сейчас в теме
А зачем вам параметр? Почему нельзя обратиться к реквизиту объекта "Источник.Подразделение"?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот