Отбор документов при выгрузке из УТ 10.3 в БП 2.0 и БП 3.0 по типовым механизмам обмена (Без доработок конфигурации)

Обмен - Перенос данных из 1C8 в 1C8

Выгрузка БП УТ 3.0 2.0 обмен данными отбор фильтрация

65
Обработка позволяет выполнять отбор документов при выгрузке данных из УТ 10.3 в БП 3.0 и в БП 2.0.

28.04.2013. Обновил обработку для обмена с Бухгалтерией предприятия 3.0.

 По сравнению с прошлой версией в обработку добавлено:

  1. Отбор по организации - при выборе будут выгружаться только документы данной организации;
  2. Возможность просмотра зарегистрированных объектов плана обмена;
  3. Сохранение установленных отборов.
 

Нередко встречаются компании, в которых бухгалтерам требуется выгрузка не всех измененных данных из УТ, а лишь документов за определенный период.

Использование "левых", доработанных правил обмена усложняет поддержку обмена - при изменении конфигураций требуется переделка правил. В данной настройке используются типовые правила обмена.

Суть настройки заключается в том, что при выполнении обмена происходит корректировка регистрации изменений плана обмена.

Настройка фильтрует только документы, т.к. по практике выгрузка справочника проблем не вызывает. Если кому-то требуется фильтровать другие объекты базы - пишите в комментарии.

При обмене с БП 2.0. возможна настройка двумя способами: с доработками конфигурации УТ и без доработок.

При использовании БП 3.0 доработка конфигурации не предполагается.

 

Перед использованием обработки в УТ должен быть настроен обмен с БП стандартными средствами.

Использование настройки без доработок УТ.

В таком варианте  используем приложенную обработку. В обработке фильтруем документы и выполняем обмен.

Необходимо помнить, что в таком случае обмен нужно делать только из обработки, иначе - фильтрация документов производиться не будет. При использовании обмена с БП 2.0 способов запустить обмен довольно-таки много - из справочника "Настройка обмена данными", из общей формы "Выполнение обмена данными", из монитора обмена - поэтому ниже предложен вариант доработки УТ.

 

С небольшими доработками конфигурации УТ (для обмена с БП 2.0).

1. В процедуру ПроцедурыОбменаДанными.ВыполнитьОбменДаннымиПоПроизвольнойНастройке() 

добавляем кусок кода выделенный жирным (то, что между линиями):

Процедура ВыполнитьОбменДаннымиПоПроизвольнойНастройке(НастройкаОбменаДанными, РучнойЗапускОбменов = Истина,
                 ОбработкаАвтообменаНаКлиенте = Неопределено, Знач СоответствиеТекстовЭлектронныхПисем = Неопределено,                   ЗначОбменПриВходеВПрограмму = Ложь) Экспорт


Если ТипЗнч(НастройкаОбменаДанными) = Тип("СправочникСсылка.НастройкиОбменаДанными") Тогда

         Если НЕ ЗначениеЗаполнено(НастройкаОбменаДанными) Тогда
              Возврат;
         КонецЕсли;


//Фильтрация выгрузки
Если ТипЗнч(НастройкаОбменаДанными.УзелИнформационнойБазы) =  Тип("ПланОбменаСсылка.ОбменУправлениеТорговлейБухгалтерияКОРП") Тогда

          ФормаВыбораПериода = ПолучитьОбщуюФорму("ФормаВыбораПериодаВыгрузки");
          ФормаВыбораПериода.Узел = НастройкаОбменаДанными.УзелИнформационнойБазы;
          ФормаВыбораПериода.НастройкаОбменаДанными = НастройкаОбменаДанными; 

          ФормаВыбораПериода.ФормаОткрытаИзПроцедурыОбмена= Истина; 

           Если ФормаВыбораПериода.ОткрытьМодально() <> КодВозвратаДиалога.ОК Тогда
                  Возврат;
           КонецЕсли;

КонецЕсли;
//Фильтрация выгрузки



2. В конфигурацию добавляем общую форму "ФормаВыбораПериодаВыгрузки".

В приложенной обработке содержится форма, которую нужно перенести в общие формы.

 

Примечание:

Вы понимаете, что после непосредственного удаления объекта невозможно получить информацию о реквизитах объекта. Т.е. отфильтровать удаленные документы нельзя - в программе сохранена лишь ссылка на удаленный объект.

Т.о. после удаления документа в УТ, документ в БП будет помечен на удаление, несмотря на установленные фильтры перегрузки.

 

65

Скачать файлы

Наименование Файл Версия Размер
Фильтрация выгрузки документов УТ-БП 3.0
.epf 15,52Kb
28.04.14
123
.epf 2.1 15,52Kb 123 Скачать
Фильтрация выгрузки документов УТ-БП 2.0
.epf 13,56Kb
28.04.14
640
.epf 2.0 13,56Kb 640 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. artspeed 173 15.02.12 14:12 Сейчас в теме
2. В процедуру ПроцедурыОбменаДанными.ВыполнитьОбменДаннымиПоПроизвольнойНастройке()

Не совсем понятно где это процедура находится...
2. Wrols 74 15.02.12 15:11 Сейчас в теме
Изменения вносятся в конфигурацию УТ.

Процедура находится в общем модуле ПроцедурыОбменаДанными.
3. aronskiy 12 16.02.12 13:15 Сейчас в теме
Ага, и при каждом обновлении всё это будет слетать.
4. CnupT 46 16.02.12 14:34 Сейчас в теме
(3) aronskiy,
Ну... Обновления УТ 10.3 выходят, как бы по мягче сказать, не часто, можно это в расчет не брать.
Да и очень не многие организации оставили свою УТ типовой.
В целом, считаю статью автора полезной.

Единственный вопрос/предложение, почему бы не сделать это в чистом виде внешней обработкой?
8. Wrols 74 17.02.12 07:35 Сейчас в теме
(4)
Если делать через внешнюю обработку, то получается, что и вызов обмена должен осуществлять только из этой внешней обработки.
Это может быть не очень удобно и надежно.

Причина тому - в конфигурации много мест откуда можно вызвать обмен данными: из формы списка справочника "Настройки обмена данными", из формы элемента спр "Настройки обмена данными", из монитора обмена данными, из обработки обменов данными и прочее.
Пользователь может нажать где угодно. И получится, что обмен пройдет без фильтрации.

Поэтому и приходится изменять конфигурацию УТ.
Я исходил из того, что УТ настраивают под себя и она не является типовой.

(3)
Да, при обновлении конфигурации, конечно же, это нужно учесть.
Общая форма останется в любом случае, а общий модуль - обновить аккуратно.
5. aronskiy 12 16.02.12 15:32 Сейчас в теме
Я согласен, статья автора полезна. Однозначно +.
Но также у многих типовые базы. И поэтому (соглашусь с CnupT) в чистом виде внешняя обработка гораздо удобней.
6. v_clim 31 17.02.12 05:51 Сейчас в теме
А как сделать возможность выбора либо штатный обмен, либо с фильтром?
9. Wrols 74 17.02.12 07:41 Сейчас в теме
(6) v_clim,
Простым видится такой вариант - на общей форме разместить еще одну кнопку типа "Штатный обмен".
При нажатии - просто закрывать форму с кодом:

Закрыть(КодВозвратаДиалога.ОК);

Т.е. в таком случае не выполнется процедура по изменению регистрации.

ВыполнитьРегистрациюИзмененийДокументовЗаПериодВыгрузки(ТаблицаДокументов, НачПериода, КонПериода);
7. Performer 69 17.02.12 06:17 Сейчас в теме
Обработка хороша, особенно, если учесть что бухгалтерия каждый месяц обновляется и не нужно замарачиваться с внешней обработкой, каждый раз как изменились правила обмена.
10. antares_of 12 17.02.12 12:57 Сейчас в теме
В отношении взаимодействия торговли и бухгалтерии, такая реализация весьма полезна, а то что торговля будет изменена, это не так страшно, ведь обновления на торговлю выходят действительно реже чем на другие конфигурации
11. alma-soft 21.02.12 10:20 Сейчас в теме
согласен с тем что измененние торговли не так страшно как конфигурации бухгалтерии тем более 10.3 у меня релиз 10.3.14.3 доработат во многих позициях поэтому считаю мысль настройки грамотного обмена документами за период правильной, смущает только настройка правильности выгрузки- загрузки документов типа Комплектация, при выгрузке постоянно что нибудь теряется, также болезно былобы добавить синхронизацию справочников исключая код, столкнулись с такой проблемой при переносе данных из 7 торговли в 8.2 редакции 10.3, количество символов в коде разное а до момента перехода данные выгружались из 7 автору спасибо за труд
12. Zas1402 21.02.12 10:42 Сейчас в теме
Я согласен, статья автора полезна. Однозначно +.
Но также у многих типовые базы. И поэтому (соглашусь с CnupT) в чистом виде внешняя обработка гораздо удобней.

также +1
14. DTimkin 22.02.12 11:54 Сейчас в теме
Небольшое уточнение: данную настройку можно в рабочую базу добавить, где уже есть куча документов или же необходимо сначала доработать чистую УТ, а потом в ней работать?
15. Wrols 74 22.02.12 12:27 Сейчас в теме
(14) DTimkin, настройку можно выполнить в рабочей базе с уже существующими документами. Фильтр будет срабатывать именно в момент выгрузки.
16. DTimkin 22.02.12 12:36 Сейчас в теме
17. zbruy 15 28.02.12 11:39 Сейчас в теме
ЭЭЭ... а объясните для тупых.
Мои действия в конфе УТ 10.3.14.3:
Дописал код в общие модули->ПроцедурыОбменаДанными->Процедура ВыполнитьОбменДаннымиПоПроизвольнойНастройке.
в конец указанной процедуры.

А что делать потом? Если " 3. В конфигурацию УТ добавляем общую форму "ФормаВыбораПериодаВыгрузки"." то что в нее писать и где? Не пустую же создавать, а то у меня она пустая)

И что делать со скачанным файлом, глянул его в конфиге - ничего интересного не обнаружил) Открыл в клиенте, там пишет "{ВнешняяОбработка.ФормаНастройкиВыгрузки.МодульОбъекта(45,4)}: Процедура или функция с указанным именем не определена (ВыполнитьОбменПоНастройке)
<<?>>ВыполнитьОбменПоНастройке(НастройкаОбменаДанными, РучнойЗапускОбменов,

"
19. Wrols 74 28.02.12 18:16 Сейчас в теме
(17) zbruy, из внешней обработки форму можно скопировать в буфер обмена и вставить из буфера обмена в ветку "Общие формы" конфигурации. Т.о. в конфигурацию будет добавлена форма со всеми элементами и текстом модуля.

В модуле обработки находится текст процедуры "общие модули->ПроцедурыОбменаДанными->Процедура ВыполнитьОбменДаннымиПоПроизвольнойНастройке". Текст процедуры приведен для того, чтобы понять куда именно вставлять кусок кода, приведенный в публикации.
21. zbruy 15 06.03.12 09:29 Сейчас в теме
(19) спасибо, когда возникнет производственная необходимость в очередной перегрузке - буду пробовать)
20. kit 65 29.02.12 14:27 Сейчас в теме
Публикация однозначно полезная, очень часто бывают ситуации, когда нужно перегрузить документы из УТ в Бух только за определенный период. Автору спасибо!
22. pkv11 18 30.03.12 11:53 Сейчас в теме
Автору статьи:

Добавь в статью, что кусок кода надо в начало процедуры добавить :)
А то сначала в конец всунул...
25. Wrols 74 02.05.12 07:44 Сейчас в теме
23. Ламия 01.05.12 11:37 Сейчас в теме
не очень удобно, что код править надо
24. Wrols 74 02.05.12 05:55 Сейчас в теме
(23) Ламия, совершенно согласен. Если бы была возможность сделать без правки кода - было бы без правки.
Ранее писал:

Если делать через внешнюю обработку, то получается, что и вызов обмена должен осуществлять только из этой внешней обработки.
Это может быть не очень удобно и надежно.

Причина тому - в конфигурации много мест откуда можно вызвать обмен данными: из формы списка справочника "Настройки обмена данными", из формы элемента спр "Настройки обмена данными", из монитора обмена данными, из обработки обменов данными и прочее.
Пользователь может нажать где угодно. И получится, что обмен пройдет без фильтрации.

Поэтому и приходится изменять конфигурацию УТ.
Я исходил из того, что УТ настраивают под себя и она не является типовой.
26. alonzomozley 20 03.08.12 19:35 Сейчас в теме
Спасибо.
Выручила обработка. Для себя добавил отбор справочников и регистров сведений перед выгрузкой (тем самым удалось избежать полной выгрузки справочников при первом обмене в момент настройки плана ).
29. Wrols 74 10.08.12 21:07 Сейчас в теме
(26) alonzomozley, рад помочь ;)
Совсем не уверен стоит ли фильтровать первоначальную выгрузку...Там же происходить синхронизация...

Интересно узнать мнение коллег - нужно ли добавить фильтр по справочникам и РС...
Опрошу в публикации...
30. alonzomozley 20 12.08.12 19:21 Сейчас в теме
(29)
В моём случае как раз и хотелось избежать синхронизации - ну уж очень много лишней номенклатуры и контрагентов в УТ было. А так выгружается только по ссылкам из документов движения.
32. Wrols 74 13.08.12 05:42 Сейчас в теме
(30) alonzomozley, я так понимаю - в базе бухгалтерии до настройки обмена нет данных для синхронизации.
Мне кажется - это частный случай. Думаю не стоит давать такой инструмент в общее пользование, т.к. уровень грамотности пользователей разный...
27. krund 10.08.12 17:43 Сейчас в теме
Интересный вариант доработки программы. Хотя конечно не хотелось бы дорабатывать программу и было бы намного удобнее через внешнюю обработку (например для базовой версии).
Но автору всё равно спасибо. В крайнем случае этот вариант можно использовать.
31. Wrols 74 13.08.12 05:35 Сейчас в теме
(27) krund, теперь возможно использовать фильтр без доработки конфигурации
28. alex1077 10.08.12 17:58 Сейчас в теме
33. kit 65 15.08.12 14:25 Сейчас в теме
Спасибо автору! пригодилось.
34. megaalex 11.01.13 18:42 Сейчас в теме
+ однозначно! идея отличная.
Уточните, по механизму:
как конкретно корректируется регистрация для обмена?
1.на существующую регистрацию накладываем фильтры или
2.сняли всю регистрацию, и с учетом фильтров (в т.ч. и по периоду)побежали по документам и из них по ссылкам на справочники?
3.как решен вопрос с регистрами? (очень часто при активной и несинхронизированной работе в УТ и БП приходится после обмена чистить в БП пустые ссылки в регистрах)
виноват, попутался, эта проблема при работе в БП с РБД - там часто чистить пустые ссылки приходится.
36. Wrols 74 16.07.13 06:24 Сейчас в теме
(34) megaalex, Существующая регистрация документов полностью очищается. Регистрация справочников остается без изменений
35. DragonAgo 11 10.07.13 10:04 Сейчас в теме
megaalex, хороший вопрос! Как происходит процесс отбора данных? Что с регистрацией объектов в данном случае?
37. Wrols 74 16.07.13 06:26 Сейчас в теме
(35) DragonAgo, не понял твой вопрос.
38. BTRVODKA 10 15.09.13 04:40 Сейчас в теме
Спасибо автору за публикацию!
39. &rew 7 11.12.13 07:56 Сейчас в теме
Идея хороша. Автору +. Непонятно почему в 1с до этого не додумались. Хотя, возможно, потому что есть универсальный обмен данными в формате XML и можно правила выгрузить из конфы, подточить напильником и использовать. Но это как говориться "не то пальто".
40. Wrols 74 11.12.13 14:34 Сейчас в теме
(39) &rew, спасибо за оценку! Правила обмена напильником просто не переделаешь, они на план обмена подвязаны.
А по поводу фирмы 1С: если я не ошибаюсь подобный подход реализован в УНФ - т.е. 1С-ка двигается к этому )
41. verano 20.02.14 15:57 Сейчас в теме
Спасибо за обработку.

Но у меня при попытке выгрузить выдало ошибку:
{Форма.ФормаВыбораПериодаВыгрузки.Форма(55)}: Ошибка при вызове метода контекста (УдалитьРегистрациюИзменений)
ПланыОбмена.УдалитьРегистрациюИзменений(Узел, ОбъектМетаданных);
по причине:
Несоответствие типов (параметр номер '1')

Я сделала выборку по "поступление товаров", по одному поставщику и за определенное время.

Что я не так сделала?
42. Alexei_fox 41 14.11.15 10:36 Сейчас в теме
Классная обработка - но есть нюанс про который автор не написал. При первоночальной выгрузке, необходимо сделать хотя бы один раз выгрузку документов штатными средствами. Иначе документы не будут выгружаться. Загружать их не обязательно.
44. Wrols 74 16.11.15 05:58 Сейчас в теме
(42) Alexei_fox, спасибо за оценку!

С какой версией бухгалтерии потребовался первоначальный обмен?
43. Alexei_fox 41 14.11.15 10:36 Сейчас в теме
И еще полезным бы было сохранение последних настроек.
Оставьте свое сообщение