Здравствуйте! Столкнулся с конфигурацией КД. Лес темный, литературы кроме Бояркина нет по ней нет, прошу помощи, пока Бояркин не пришел по почте. Что такое Входящие и Исходящие данные, чем они отличаются и в какой очередности срабатывают? Исходящие данные я так понимаю прописываются только в ПВД? А входящие в ПКС?
(1) bubus, это структуры, они не срабатывают. Описание можно посмотреть в самой конвертации. Находясь в обработчике ПКО ПриВыгрузке, открыть информацию по обработчикам (кнопка на панели инструментов формы ПКО).
(4) xFoG, термин срабатывают не совсем верен, но...ведь их нельзя в один обработчик запихнуть. Какая то из этих структур же раньше обрабатывается, какая то потом. Я думал что Входящие сначала, потом уже Исходящие. Ох и мудрено в этой СКД все
(6) bubus, по сути своей обработчики - это процедуры, а ВходящиеДанные и ИсходящиеДанные - это их параметры. Если у процедуры нет какого-то параметры, вы не сможете в нее его передать, тут все немудрено. Мне в свое время помогло понять принцип следующее. Я через универсальный обмен сформировал модуль обработки выгрузки и отладчиком прошел по нему. Что за чем выполняется стало намного понятнее.
(6) bubus, На само деле все просто. ИсходящиеДанные можно инициировать обработчике события и они передадутся следующему правилу как ВходящиеДанные можно их инициировать или нет можно узнать из описания обработчика вот и все). Данные передаются по следующим правилам:
ПВД.ИсходящиеДанные -> ПКО.ВходящиеДанные
ПКО.ВходящиеДанные -> ПКС.ВходящиеДанные
ПКС.ИсходящиеДанные -> ПКО.ВходящиеДанные
Вроде ничего сложного :) Конвертация вообще довольно простая штука :) Стоит написать правила руками пару раз и все понятно будет :)
(11) nSpirit2, простите за навязчивость. Вот к примеру док. реализация,в нем конечно есть контрагент, при создании ПКО реализация, в нем для контрагента создаю ПКО контрагент. Теперь я в контрагенте пишу Входящие Данные, а в реализации я я могу их заюзать как Исходящие Я верно понял что сначала отрабатывается ПКО для контрагента, который в свою очередь является частью дока реализации?!
(13) bubus, ты можешь в реализации при конвертации в Обработке перед выгрузкой реквизита контрагент инициализировать ИсходящиеДанные и они будут переданы правилу Контрагент -> Контрагент и будут там доступны как Входящие данные согласно ПКС.ИсходящиеДанные -> ПКО.ВходящиеДанные если я правильно понял то что вы спрашиваете.
(8) Xershi, Гилев молодец и умница, но я вот его смотреть не смог - засыпаю просто) Товарищу бы сказки начитывать.
(6) bubus, еще полезно полазить в типовых правилах обмена.
в интернете полно литературы по КД.
На ютубе наберите слова "Конвертация данных" - может поможет сдвинуться с места в понимании КД.
Я сам валенок и баран-баранович в КД :)
Отталкивайтесь от реальной задачи. "Хочу всё знать" - это в 1С не нужно. Требуется быстрое решение задачи клиента. А сделали вы это с изощренными методами КД или обменами через текстовые файлы - не имеет значения.
(17) ZOMI, оно так и есть. Реальная задача по переносу дока реализации со всеми потрохами. Но, к примеру в конфе приемнике всем контрагентам нужно одного и того же контрагента назначит, всем строчкам ТЧ одну и туже номенклатуру. Соответственно что бы не шлепать лишние ПКО для контрагента и номенклатуры я хотел через Входящие Данные задать номенклатуру и контрагента. Причем этой номенклатуры и контрагента нет в источнике. Номенклатуру получилось, тупо Значение = "моя номенклатура". С контрагентами пока не осилил. Сейчас смотрю то что по ссылкам дали. Гилев там бесплатный, отрывки, Сайтфутдинов вообще азы.
НужныйКонтрагент = Справочники.Контрагенты.НайтиПоКоду("123");
Объект.Контрагент = НужныйКонтрагент;
НужнаяНоменклатура = Справочники.Номенклатура.НайтиПоКоду("12345");
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
СтрокаТЧ.Товар = НужнаяНоменклатура;
КонецЦикла;
(19) bubus, если вам нужно подставить уже существующих и заранее известных (до начала загрузки) в приемнике номенклатуру и контрагента, то проще всего сделать так: ПКО для справочников, поиск по полю, например "Наименование". В ПКС реквизитов просто пишите Значение = "Моя номенклатура" или Значение = "Мой контрагент". Другой вариант, заполнять поля после загрузки объекта в приемник. Тогда размер файла обмена уменьшается, но для получения номенклатуры и контрагента придется использовать конструкции типа Справочники.Номенклатура.НайтиПоНаименованию("Моя номенклатура"). Еще вариант: добавить параметр "Контрагент". Перед началом загрузки использовать код Параметры.Контрагент = Справочник.Контрагенты.НайтиПоНаименованию("Мой контрагент"). В событиях после загрузки использовать код типа Объект.Контрагент = Параметры.Контрагент.
Выбирайте наиболее подходящий для вас вариант.
(21) jul8851,
Если переход на версию ЗиУП 2.5 - то полезно посетить сайт - мне он очень сильно помог. А потом по результатам - искать ошибки переноса (а они будут: начальное сальдо, больничные, "мамочки"...) и исправлять их.
...насколько я понял эти "входящие/исходящие данные" - они типа М+/М- на калькуляторе: чтобы заполнить пробелы Приемника - положил Таблицу во "входящие данные" (ВходящиеДанные = Новый Структура("Таблица", Таблица;) в ПКО "Перед выгрузкой", и в ПКС этого ПКО можно ставить галку "Получить из входящих данных" чтоб из этой Таблицы их брать; насколько отличается кухня "исходящих данных" - думаю, чтобы заполнять пробелы Источника.