Всем привет. Мне необходимо передать параметры из источника в приемник. Стандартный механизм передает параметры, но есть но. Они инициализируются в обработчике "ПослеЗагрузкиПараметров", а мне нужно знать значение в обработчике "ПередЗагрузкойДанных". Вот здесь просто чудесно описан механизм без изменения текстов модулей стандартных обработок. http://kb.mista.ru/article.php?id=811 Но только для переноса из 7.7 на 8.2. Подскажите люди добрые?
(2) insurgut, у меня есть правила, которые выгружают проводки из источника (v8) в приемник (v8). Берутся проводки и переносятся в документ "Операция БУ". 1 регистратор всегда равен документу операция. Иногда возникает ситуация что при первой выгрузке проводка существует, а при второй ее уже нет. И соответственно нужно ее убрать из приемника. Перед загрузкой данных, получаю все документы за этот период и убираю активность. Потом активность проставляется у нужных документов. Здесь все нормально. Мне нужно лишь отобрать документы не только за период, но и по организации. В параметрах хочу передать ИНН выгружаемой организации, чтобы сделать отбор.
(3) pyrkin_vanya, т.е. перед загрузкой Операция бух в базе за этот день могут быть уже вручную созданные документы операции? Или речь идет о ранее выгруженных операциях? По полям поиска они же "затрутся". Может тут скорее надо правильно поля поиска настроить? ИНН например в комментарий записывать и по нему искать?
(5) pyrkin_vanya, наверное потому, что не всегда так просто понять друг друга. У вас выгружаются именно определенные проводки, и перед загрузкой документа вам необходимо найти все документы с такой проводкой по конкретной организации за указанный период? :) Если так, то и делайте это в ПКО после загрузки объекта и просто из запроса исключайте сам объект. Если он новый (т.е. Объект.Ссылка еще не заполнен), то просто делайте Объект.Записать(), потом уже алгоритм поиска ненужных документов с исключением Объект.Ссылка
Прошу прощения, если нагрубил. Не хотел. Давайте еще разок. 1 регистратор источника всегда = 1 документу Операция приемника. Выгружается по проводкам. Т.е. берутся обороты по регистратору из регистра бухгалтерии в источнике. Здесь все четко. Документы операции "ищутся" прекрасно. Проблем с этим нет. Задача какая?! Бывают случаи когда в источнике проводки не стало больше. (НЕ ДОКУМЕНТА, А ПРОВОДКИ). Соответственно нужно тот документ в приемнике, что соответствует этому документу регистратору убрать у него проводки. Вот и все. Теперь понятно?
(8) а когда перевыгружаете по документу проводки, они же полностью перезатрутся, или вам надо, чтобы только лишние убрались? А где гарантия, что правильно выберете проводку, которую удалять / отключать?
(8) adva, как можно ее не правильно выбрать?! Это же регистр бухгалтерии. Народ, без обид, флуд идет опять. Механизм работает прекрасно на 7.7. Только в отличии от 7.7 в 8 не получается передать параметр. Я уже сказал несколько раз как я выгружаю и что, а также озвучил задачу.
Поддержу (8) - у вас допустим есть Реализация в базе-источнике. Вы ее правилами выгружаете в документ Операция в базе-приемнике. Формируете в ПКО соответственно таблицу проводок. Само собой если настроен поис объектов по внутреннему идентификатору, то любой документ источника будет всегда загружаться в свою операцию в приемнике, тут ошибок не будет. При загрузке - все проводки полностью будут заменены проводками источника. Зачем перед загрузкой проводки убирать? Может у вас некорректно создано ПКО, которое проводки в итоге не замещает?
в крайнем случае, если уж очень надо, то можно предварительно пройтись, определить выгружаемые данные, и заполнить параметры, которые должны будут передаться, а затем уже выгружать сами данные. В этом случае можно будет их использовать так, как вам требуется.
(9) adva, Вы походу не в курсе. Расскажу. В обмене между 8-ками есть стандартный механизм передачи параметров. НО... В процессе загрузки они инициализируются после этого обработчика "ПередЗагрузкойДанных".
(11) я возможно не в курсе, но я таким образом передавал нужные мне параметры, которые требовались при загрузке конкретных объектов. Ладно, флудить не буду. Извините.
Блин, я не знаю как еще объяснить. Прям на пальцах тогда
Выгрузка №1.
Выгружены проводки по Документ1 и документ2.
Загрузка №1.
Загружены 2 операции соответствующие каждому документу.
Выгрузка №2.
Выгружены проводки ТОЛЬКО документа2. Документ1 удален.
Загрузка №2.
В базе имеются уже Документ1 и Документ2. В файле с выгруженными данными только документ2. В этом случае по вашей логике, что должно произойти с документом1?
(20) pyrkin_vanya, вам скорее всего подойдет только событие "После загрузки параметров" самой конвертации данных.
Обработчики "Конвертация"
После загрузки параметров
Условия возникновения события
Событие выполняется после загрузки параметров переданных из информационной базы источника в информационную базу приемника. Только для обмена V8-V8.
Параметры:
Отказ - булево. Служит для отказа от продолжения загрузки.
ПричинаОтказа - Строка. Содердит информацию о причине отказа от загрузки.
Пример:
Если Параметры.КодИнформационнойБазы <> 100 Тогда
Отказ = Истина;
ПричинаОтказа = "Неверный код информационной базы источника";
КонецЕсли;
Показать
Непосредственно параметры, выгружаемые с конвертацией вероятно всего формировать в ПВД, в котором вы формируете документы операций.