КД 2.0 - Входящие данные #104216


#0 by fortax
Например, условно: ПКО-1 - в обработчике "перед выгрузкой" создается и заполняется структура ВД-1. ПКС-1,2,3 - получают параметры из ВД-1. ПКС-4 - вызывает ПКО-2, в котором в свою очередь в обработчике "перед выгрузкой" создается и заполняется структура ВД-2 (конечно другими данными). ПКС-5 - получает параметры из ВД. Какие данные сейчас находятся в ВД - ВД-1 или ВД-2? Раз десять перечитал помощь, так и не понял логику передачи параметров через ВходящиеДанные (ВД) и ИсходящиеДанные - описано несколько странно. Помогите, пожалуйста, разобраться.
#1 by Shaytan
Исходящие данные (ПВД, ПКС) -> Входящие данные (ПКО, и все обработчики ПКС данного ПКО). Понятно выразился?
#2 by Shaytan
В ПКО, и во всех обработчиках ПКС данного ПКО "ВходящиеДанные" можно переназначать или дополнить. Короче если заглянуть в код выгрузки ВходящиеДанные - параметр функции (или процедуры), а ИсходящиеДанные передаваемый в неё параметр. (Могу ошибаться, т. к. смотрел давно)
#3 by fortax
Спасибо, понятно. Но в  типовых правилах ТиС 9.2-УТ 10.2 ПКО-ДоговорыКонтрагентов - "перед выгрузкой" ВД = структура ("Организация", "ВидДоговора") ПКС-Владелец вызывает ПКО-Контрагенты, а у него "перед выгрузкой" ВД = структура ("Контрагент", "Покупатель", "Поставщик"). Далее ПКС-ВидДоговора получает из ВД данные "Организация". Если ВД переназначаются, то после ПКС-Владелец в ВД не должно быть никакой "Организации". Или переназначение действует только на это ПКС? Вообще ВД - это один объект для данного ПКО?
#4 by Shaytan
в Это не перназначение, т. к. ВД действуют внутри ПКО (в обработчиках ПКО И подчиненных ПКС и никуда не передаются)  Читайте внимательно . (+2) Параметр передается по значению.
#5 by fortax
С ВД как будто ясно. Просветите, пожалуйста, еще насчет ИсходящиеДанные. Из хелпа: ПКО - ИсходящиеДанные - Произвольный - произвольные вспомогательные данные, передаваемые правилам конвертации свойств (ПКС). -подчиненным ПКС? -тем ПКС, которые вызывают это ПКО? -или и тем и другим? ПКС - ИсходящиеДанные - Произвольный - произвольные вспомогательные данные, передаваемые правилам конвертации объектов (ПКО). -ПКО владельцу этого ПКС? -тому ПКО, которое вызывает это ПКС? -или и тем и другим? Простите за назойливость, я конечно понимаю, что можно посмотреть в коде, но я не профессионал и для меня это весьма затруднительно. С удовольствием заплатил бы за настройку правил, но все местные франчи и прочие отказываются в принципе. Поэтому выхода нет, приходится самому.
#6 by Shaytan
#7 by Shaytan
Код смотреть не обязательно, поэксперементируйте с ВД и ИД и Сообщить;
#8 by fortax
Цитата "Исходящие данные (ПВД, ПКС) -> Входящие данные (ПКО, и все обработчики ПКС данного ПКО). " Нельзя ли такую же классную фразу: Исходящие данные (ПКО) -> Входящие данные (???). Я так и делаю. А вот как в отладчике работать с правилами что-то не пойму.
#9 by Shaytan
В отладчике смотреть - это большой гемор Исходящие данные (ПКО + все изменения сделанные в ПКС этого ПКО) -> Входящие данные (ПКО вызываемого из ПКС).По-моему, так.
#10 by fortax
Понял, будем бороться дальше. И последний вопрос - написал алгоритм для перекодировки символов в UTF-8 (не в России живем). В конвертации есть обработчик "перед конвертацией объекта" (Из хелпа - По сути и назначению это тот же обработчик что и ПередВыгрузкойОбъекта в ПКО, но определенный на глобальном уровне - то есть вызываемый для всех ПКО.) Как по аналогии сделать глобально для всех ПКС, чтобы не прописывать вызов алгоритма в каждом.
#11 by Shaytan
Соответственно в ПКО и добавить во ВходящиеДанные (сделать соответствием, ключ название ПКС), у ПКС поставить галочку (Брать из входящих данных)
#12 by fortax
Плохо сформулировал. Например ПКО-Контрагенты, ПКС-Наименование, ПКС-Комментарий и т.д. Сейчас сделано так - есть Алгоритм(ЗаменаСимволов), в каждом ПКС, где Источник и Приемник - Тип Строка, в обработчике "При выгрузке свойства" стоит Выполнить(Алгоритмы.ЗаменаСимволов). Все работает, но таких ПКС много. Где бы в одном месте написать что-то вроде: Чтобы действовало на все ПКС по аналогии с обработчиком "перед конвертацией объекта" конвертации?
#13 by Shaytan
Сформулировал нормально. Чтобы в одном месте, скорее всего, нигде (если найдешь способ поделись).
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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