0. cbr900 154 13.10.11 10:07 Сейчас в теме

Выгрузка данных по организации через правила обмена

Делюсь опытом. Ниже представлен код, который необходимо добавить в секцию "Обработчики "Конвертация".
Данный метод можно использовать, когда необходимо выгрузить элементы справочников и регистров только по выбранной организации.
При этом в качестве объектов выгрузки следует выбрать документы и все объекты для которых есть поле "Организация" или владельцем является "Организация" будут выгружены.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. infosoft-v 13.10.11 10:07 Сейчас в теме
Здравствуйте.
Ваше сообщение направило меня искать решение в правильное русло, спасибо. У меня был задача перенести зарплату из Комплексной конфигурации в конфигурацию Зарплата и управление персоналом. Сразу скажу, вычленить только одну организацию не удалось. Трудоёмкость переноса превысила ценность того что перенесётся только одна организация, поэтому перенёс все три организации.
2. Stepan_1c 09.12.11 07:28 Сейчас в теме
Спасибо за статью. но нам пришлось немного дополнить её, чтобы не было ошибок. добавили Попытка-Исключение-КонецПопытки в каждом обработчике перед "Если...".
3. psih12 123 20.12.11 11:50 Сейчас в теме
(2) Stepan_1c, Перед каждым "Если" поставили?
4. psih12 123 20.12.11 12:41 Сейчас в теме
У меня всё равно выгружает данные по нескольким организациям(Предприятие 8.2, УТ 10.3).
5. НатальяАлекс 13 01.02.12 13:20 Сейчас в теме
Именно этим вопросом занималась. Прямо сейчас и попробую.
6. НатальяАлекс 13 01.02.12 14:27 Сейчас в теме
Спасибо. У меня все получилось.
7. psih12 123 21.02.12 08:33 Сейчас в теме
(6) НатальяАлекс, Как у тебя получилось? Что ты сделала?
8. НатальяАлекс 13 21.02.12 09:06 Сейчас в теме
По поводу справочников и регистров ничего сказать не могу. Меня интересовали только документы. С небольшими изменениями, но все чудесно работает.
9. psih12 123 21.02.12 13:42 Сейчас в теме
(8) НатальяАлекс, Меня тоже интересуют документы. Я всё сделал, как автор указывает. Вызываю свою настройку обмена и параметра "Организация" нигде нет. Где он должен появиться-в закладке "сопоставление объектов" ? И что за изменения ты сделала?
11. НатальяАлекс 13 22.02.12 09:00 Сейчас в теме
Параметр должен появиться на вкладке "Выгрузка" - закладка "Параметры".
Правила я использовала нетиповые, сама делала. Изменения сейчас посмотрю.
12. НатальяАлекс 13 22.02.12 09:04 Сейчас в теме
Нет, изменений нет. Все в точности, как описал автор. Спасибо ему еще раз. psih12 проверь еще раз все.
14. cbr900 154 16.03.12 05:33 Сейчас в теме
Уже и не помню почему закинул именно в "Перед конвертацией объекта" и "Перед выгрузкой объекта", видимо, какие-то объекты не выгружались полностью корректно.
15. rhtr 65 17.09.14 19:50 Сейчас в теме
Спасибо, но чуть переделал (явно указал организацию), может кому пригодится. А и в параметры в этом случаи не надо добавлять организацию.

//+ПередВыгрузкойОбъекта
МояОрг = Справочники.Организации.НайтиПоРеквизиту("ИНН","ТутИннОрганиазции").Ссылка;

Если Объект.Метаданные().Реквизиты.Найти("Организация") <> Неопределено Тогда

Если
//(Параметры.Организация <> Объект.Организация)
Объект.Организация <> МояОрг
Тогда

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

КонецЕсли;

КонецЕсли;


Если Объект.Метаданные().Реквизиты.Найти("Владелец") <> Неопределено Тогда

Если Объект.Владелец.Метаданные().Имя = "Организации" Тогда

Если //(Параметры.Организация <> Объект.Владелец)

Объект.Организация <> МояОрг

Тогда

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

КонецЕсли;

КонецЕсли;


ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Объект)) Тогда

Если Объект.Метаданные().Владельцы.Содержит(МояОрг.Метаданные()) Тогда

Если //Объект.Владелец <> Параметры.Организация
Объект.Организация <> МояОрг
Тогда

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

КонецЕсли;

КонецЕсли;


КонецЕсли;

//+ПередКонвертациейОбъекта

МояОрг = Справочники.Организации.НайтиПоРеквизиту("ИНН","ТутИННОрг").Ссылка;

Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Источник)) Тогда



Если Источник.Метаданные().Реквизиты.Найти("Организация") <> Неопределено Тогда

Если //(Параметры.Организация <> Источник.Организация)
Источник.Организация <> МояОрг

Тогда

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

КонецЕсли;

КонецЕсли;

Если Источник.Метаданные().Реквизиты.Найти("Владелец") <> Неопределено Тогда

Если Источник.Владелец.Метаданные().Имя = "Организации" Тогда

Если //(Параметры.Организация <> Источник.Владелец)
Источник.Владелец <> МояОрг

Тогда

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

КонецЕсли;

КонецЕсли;

ИначеЕсли Источник.Метаданные().Владельцы.Содержит(МояОрг.Метаданные()) Тогда

Если //Источник.Владелец <> Параметры.Организация
Источник.Владелец <> МояОрг

Тогда

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

КонецЕсли;



КонецЕсли;

КонецЕсли;
16. imagica 07.08.15 12:01 Сейчас в теме
17. kosko 11.10.15 16:54 Сейчас в теме
Автору спасибо, все отлично получилось. Кто не понял, то уже в настройках обмена нужно указать фильтр по организации
18. mm_84 27.01.16 13:55 Сейчас в теме
если выгрузка данных идет через произвольный набор, то эти отборы не работают, необходимо делать отборы в самих запросах, мне например при выгрузки данных из ЗУП 2.5 в ЗУП 3.0 где сплошь произвольные алгоритмы выборки переносимых данных, совсем не помогло. Хотя правила типовые. пришлось править запросы и алгоритмы, вставляя отборы.
19. bocharovki 7 22.02.16 08:42 Сейчас в теме
Немного не понятно зачем приведены разные алгоритмы в данных обработчиках. Я так понимаю отличие ведь должно быть только Объект - Источник?
И по второму ЕСЛИ. Разве Реквизиты.Найти("Владелец") не тоже самое что и Владельцы.Содержит?
20. musatov1c.ru 6 13.03.16 06:36 Сейчас в теме
Спасибо большое! Очень помогло! :)
21. cbr900 154 13.03.16 10:03 Сейчас в теме
Добрый день всем, кто задает вопросы!
Эта публикация была в 2010 году, тогда я еще программировал. Сейчас уже давно не программирую. Поэтому на вопросы по существу ответить не смогу.
Кому эта публикация помогла - супер!
22. Twirus 14.12.16 11:00 Сейчас в теме
Очень помогло! Спасибо автору.
23. tt33 15.03.17 13:56 Сейчас в теме
А если наоборот не нужно выгружать доки определьной организации
24. tt33 15.03.17 14:05 Сейчас в теме
Сам спросил сам ответил использовал вариант rhtr Иванов (rhtr) но вместо <> поставл =
25. wingnut 02.03.12 15:31 Сейчас в теме
Большое спасибо, как раз то что надо.

Вот только есть вопрос по оптимизации...
1. Вроде Обработчик "Перед конвертацией объекта" выполняется для вех объектов, как для выгружаемых напрямую, так и по ссылке. Зачем тогда отбор в обработчике "Перед выгрузкой объекта" ? Есть случаи, когда выгрузка есть, а конвертации нет?
26. user1090556 31.01.19 11:49 Сейчас в теме
Спасибо, пригодилось, единственное есть такие объекты у которых есть реквизит Организация, и они нужны всем если например этот реквизит не заполнен и Объект принадлежит всем организациям. Например справочник Соглашения с клиентами.

Если Объект.Метаданные().Реквизиты.Найти("Организация") <> Неопределено Тогда
Если (Параметры.Организация <> Объект.Организация) Тогда
Если Объект.Метаданные().Имя="СоглашенияСКлиентами" и НЕ ЗначениеЗаполнено(Объект.Организация)Тогда //типовое
Отказ=Ложь;
Иначе
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий инженер - программист 1С
Москва
зарплата от 200 000 руб.
Полный день

Ведущий программист 1С
Нижний Новгород
зарплата от 100 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству