Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Конвертация данных 2 Исходящие данные

Конвертация данных 2 Исходящие данные
Я
   Быдло замкадное
 
07.10.20 - 12:53
Как передать строку в исходящие данные?!
Есть живой пример?

Пишу в ПКО документа:
Перед выгрузкой:

ВходящиеДанные = Новый Структура;
ВходящиеДанные.Вставить("КодБК", "АХАХАХАХА");

ИЛИ:

ИсходящиеДанные = Новый Структура;
ИсходящиеДанные .Вставить("КодБК", "АХАХАХАХА");

и в формируемом файле нет это строки "АХАХАХАХА" вообще. Каааак сделать то, что только не пробовал уже
   fisher
 
1 - 07.10.20 - 13:06
Данные передаются по следующим правилам:

1.      ПВД.ИсходящиеДанные -> ПКО.ВходящиеДанные
2.      ПКО.ВходящиеДанные -> ПКС.ВходящиеДанные
3.      ПКС.ИсходящиеДанные -> ПКО.ВходящиеДанные
   fisher
 
2 - 07.10.20 - 13:07
Оно и не должно попадать в файл. Это для передачи между обработчиками при конвертации в источнике.
   fisher
 
3 - 07.10.20 - 13:10
Вообще в типовой ситуации вся конвертация производится в источнике. В файл пишется только результат конвертации - готовый образ объектов-приемника для загрузки.
   Быдло замкадное
 
4 - 07.10.20 - 13:12
(2) "Оно и не должно попадать в файл." ппц а как мне передать произвольную инфу?
В приемнике есть реквизит, которого нет в источнике. Но заполнить надо.

Для понимания например: Если в источнике в поле комментарий написано "Васька дурак" то в приемнике надо Реквизит1 = Справочники.Контрагенты.ВаськаДурак;

В источнике нет справочника контрагенты, в приемнике нет реквизита Комментарий.
Можно реализовать?
   Быдло замкадное
 
5 - 07.10.20 - 13:13
вот хочу куда то записать "Васька дурак", а потом уже ПРИ ЗАГРУЗКЕ это анализировать.
ПОтому что при выгрузке я даже не могу написать СПравочники.Контрагенты. Нет такого...
   Жан Пердежон
 
6 - 07.10.20 - 13:15
в ПКС "Передавать данные в параметр"
   fisher
 
7 - 07.10.20 - 13:16
(4) С предопределенными вообще просто. ЕМНИП, оно при загрузке хавает текстовые значения для предопределенных. Для непредопределенных можно создать ПКО, которое будет искать нужные по коду.
Т.е. в ПКС для Реквизит1 пишешь в ПередВыгрузкой
Если Источник.Комментарий = "Васька дурак" Тогда
    Значение = "ВаськаДурак";
КонецЕсли;
   Быдло замкадное
 
8 - 07.10.20 - 13:21
(7) с Васькой это пример. Мне на самом деле в базе источнике надо искать справочник по реквизиту.
Т.е.
Справочники.ВидыНалоговИПлатежейВБюджет.НайтиПоРеквизиту("КодБК", "Васька дурак");

Это уже детали.
Я хочу хоть как-то передать текстовую строку, что бы ее анализировать при загрузке можно было.

(6) попробовал так, в файле все равно нет "Васька дурак" :(
   fisher
 
9 - 07.10.20 - 13:21
Если (4) системный пример и надо кучу разных комментариев конвертить в контрагентов, то можно создать ПКО для контрагентов у которого на входе будет строка и просто назначить это ПКО в ПКС "Комментарий". КД очень гибкая, нужно только один раз разобраться и "вхрустнуть" мозги в ее логику.
   Быдло замкадное
 
10 - 07.10.20 - 13:22
(6) а нет вру, через параметр выгрузилось.. щас буду думать как прочитать этот параметр при загрузке
   fisher
 
11 - 07.10.20 - 13:24
(8) > Я хочу хоть как-то передать текстовую строку, что бы ее анализировать при загрузке можно было.
Я понял, что ты хочешь. Но КД реализует другую логику - конвертация в источнике. Переть супротив - быть ССЗБ.
   fisher
 
12 - 07.10.20 - 13:27
(8) >  в базе источнике надо искать справочник по реквизиту
Просто создаешь ПКО для этого справочника, где нужный реквизит отмечаешь как поле поиска, на вход - строка, а в ПКС для этого реквизита пишешь Значение=Источник;
После этого просто назначаешь это ПКО во всех ПКС где надо и в этих ПКС пишешь Значение=<нужное значение>;
В итоге КД будет находить их сама штатно при загрузке плюс это будет переиспользуемое ПКО.
   Быдло замкадное
 
13 - 07.10.20 - 13:28
Получилось через параметр, спасибо (6)

после загрузки объекта:
Объект.Налог = Справочники.ВидыНалоговИПлатежейВБюджет.НайтиПоРеквизиту("КодБК", ПараметрыОбъекта.Получить("КодБК"));

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.