Передача параметров 8.2 --> 8.2. Конвертация данных.

1. pyrkin_vanya 488 01.11.15 22:30 Сейчас в теме
Всем привет. Мне необходимо передать параметры из источника в приемник. Стандартный механизм передает параметры, но есть но. Они инициализируются в обработчике "ПослеЗагрузкиПараметров", а мне нужно знать значение в обработчике "ПередЗагрузкойДанных". Вот здесь просто чудесно описан механизм без изменения текстов модулей стандартных обработок. http://kb.mista.ru/article.php?id=811
Но только для переноса из 7.7 на 8.2. Подскажите люди добрые?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. insurgut 207 02.11.15 13:56 Сейчас в теме
Интересно было бы услышать задачу, в которой нужно что-то делать до загрузки данных в принципе.
3. pyrkin_vanya 488 02.11.15 14:22 Сейчас в теме
(2) insurgut, у меня есть правила, которые выгружают проводки из источника (v8) в приемник (v8). Берутся проводки и переносятся в документ "Операция БУ". 1 регистратор всегда равен документу операция. Иногда возникает ситуация что при первой выгрузке проводка существует, а при второй ее уже нет. И соответственно нужно ее убрать из приемника. Перед загрузкой данных, получаю все документы за этот период и убираю активность. Потом активность проставляется у нужных документов. Здесь все нормально. Мне нужно лишь отобрать документы не только за период, но и по организации. В параметрах хочу передать ИНН выгружаемой организации, чтобы сделать отбор.
4. insurgut 207 02.11.15 14:31 Сейчас в теме
(3) pyrkin_vanya, т.е. перед загрузкой Операция бух в базе за этот день могут быть уже вручную созданные документы операции? Или речь идет о ранее выгруженных операциях? По полям поиска они же "затрутся". Может тут скорее надо правильно поля поиска настроить? ИНН например в комментарий записывать и по нему искать?
5. pyrkin_vanya 488 02.11.15 14:38 Сейчас в теме
(4) insurgut, при чем тут поля поиска? Документы нормально ищутся.
6. insurgut 207 02.11.15 15:00 Сейчас в теме
(5) pyrkin_vanya, наверное потому, что не всегда так просто понять друг друга. У вас выгружаются именно определенные проводки, и перед загрузкой документа вам необходимо найти все документы с такой проводкой по конкретной организации за указанный период? :) Если так, то и делайте это в ПКО после загрузки объекта и просто из запроса исключайте сам объект. Если он новый (т.е. Объект.Ссылка еще не заполнен), то просто делайте Объект.Записать(), потом уже алгоритм поиска ненужных документов с исключением Объект.Ссылка
7. pyrkin_vanya 488 02.11.15 15:06 Сейчас в теме
Прошу прощения, если нагрубил. Не хотел. Давайте еще разок. 1 регистратор источника всегда = 1 документу Операция приемника. Выгружается по проводкам. Т.е. берутся обороты по регистратору из регистра бухгалтерии в источнике. Здесь все четко. Документы операции "ищутся" прекрасно. Проблем с этим нет. Задача какая?! Бывают случаи когда в источнике проводки не стало больше. (НЕ ДОКУМЕНТА, А ПРОВОДКИ). Соответственно нужно тот документ в приемнике, что соответствует этому документу регистратору убрать у него проводки. Вот и все. Теперь понятно?
8. adva 45 02.11.15 15:18 Сейчас в теме
(8) а когда перевыгружаете по документу проводки, они же полностью перезатрутся, или вам надо, чтобы только лишние убрались? А где гарантия, что правильно выберете проводку, которую удалять / отключать?
10. pyrkin_vanya 488 02.11.15 15:23 Сейчас в теме
(8) adva, как можно ее не правильно выбрать?! Это же регистр бухгалтерии. Народ, без обид, флуд идет опять. Механизм работает прекрасно на 7.7. Только в отличии от 7.7 в 8 не получается передать параметр. Я уже сказал несколько раз как я выгружаю и что, а также озвучил задачу.
15. insurgut 207 02.11.15 17:18 Сейчас в теме
Поддержу (8) - у вас допустим есть Реализация в базе-источнике. Вы ее правилами выгружаете в документ Операция в базе-приемнике. Формируете в ПКО соответственно таблицу проводок. Само собой если настроен поис объектов по внутреннему идентификатору, то любой документ источника будет всегда загружаться в свою операцию в приемнике, тут ошибок не будет. При загрузке - все проводки полностью будут заменены проводками источника. Зачем перед загрузкой проводки убирать? Может у вас некорректно создано ПКО, которое проводки в итоге не замещает?
9. adva 45 02.11.15 15:22 Сейчас в теме
в крайнем случае, если уж очень надо, то можно предварительно пройтись, определить выгружаемые данные, и заполнить параметры, которые должны будут передаться, а затем уже выгружать сами данные. В этом случае можно будет их использовать так, как вам требуется.
11. pyrkin_vanya 488 02.11.15 15:24 Сейчас в теме
(9) adva, Вы походу не в курсе. Расскажу. В обмене между 8-ками есть стандартный механизм передачи параметров. НО... В процессе загрузки они инициализируются после этого обработчика "ПередЗагрузкойДанных".
14. adva 45 02.11.15 15:30 Сейчас в теме
(11) я возможно не в курсе, но я таким образом передавал нужные мне параметры, которые требовались при загрузке конкретных объектов. Ладно, флудить не буду. Извините.
12. adva 45 02.11.15 15:28 Сейчас в теме
еще один вариант, использовать параметры в свойствах. В этом случае можно будет просто не записывать объект, который не изменился.
13. pyrkin_vanya 488 02.11.15 15:29 Сейчас в теме
(12) adva, он уже записан предыдущей выгрузкой.
16. pyrkin_vanya 488 02.11.15 17:27 Сейчас в теме
Блин, я не знаю как еще объяснить. Прям на пальцах тогда
Выгрузка №1.
Выгружены проводки по Документ1 и документ2.
Загрузка №1.
Загружены 2 операции соответствующие каждому документу.
Выгрузка №2.
Выгружены проводки ТОЛЬКО документа2. Документ1 удален.
Загрузка №2.
В базе имеются уже Документ1 и Документ2. В файле с выгруженными данными только документ2. В этом случае по вашей логике, что должно произойти с документом1?
17. insurgut 207 02.11.15 17:32 Сейчас в теме
(16) pyrkin_vanya, а информация о пометке удаления Документ1 выгружается, или он удален непосредственно из базы безо всякой информации?
18. pyrkin_vanya 488 02.11.15 17:34 Сейчас в теме
(17) insurgut, выгружается не документ, а его проводки из регистра. Если проводок нет, то и документа нет в выгрузке.
19. insurgut 207 02.11.15 17:44 Сейчас в теме
(18) pyrkin_vanya, кажется я начинаю понимать, что нужно... А чтобы параметром служило в выгрузке? Период?
20. pyrkin_vanya 488 02.11.15 17:46 Сейчас в теме
(19) insurgut, нет. ИНН организации. Период есть в стандартных реквизитах ДатаНачала и ДатаОкончания.
21. insurgut 207 02.11.15 17:50 Сейчас в теме
(20) pyrkin_vanya, вам скорее всего подойдет только событие "После загрузки параметров" самой конвертации данных.
Обработчики "Конвертация"
После загрузки параметров
Условия возникновения события
Событие выполняется после загрузки параметров переданных из информационной базы источника в информационную базу приемника. Только для обмена V8-V8.

Параметры:
Отказ - булево. Служит для отказа от продолжения загрузки.

ПричинаОтказа - Строка. Содердит информацию о причине отказа от загрузки.

Пример:

Если Параметры.КодИнформационнойБазы <> 100 Тогда

Отказ = Истина;

ПричинаОтказа = "Неверный код информационной базы источника";

КонецЕсли;
Показать


Непосредственно параметры, выгружаемые с конвертацией вероятно всего формировать в ПВД, в котором вы формируете документы операций.
22. pyrkin_vanya 488 02.11.15 17:52 Сейчас в теме
(21) insurgut, да, только что про него и подумал. Попробую вечером. Спасибо за уделенное время.
23. adva 45 03.11.15 04:17 Сейчас в теме
(22) я это в (9) уже писал, и у меня так срабатывало, в вашем случае вроде тоже очень подходит.
Оставьте свое сообщение

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