gifts2017

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

Опубликовал Андрей Журавлев (Wrols) в раздел Обмен - Перенос данных из 1C8 в 1C8

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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


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

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


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

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

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

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

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



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

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

 

Примечание:

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

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

 

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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

Единственный вопрос/предложение, почему бы не сделать это в чистом виде внешней обработкой?
5. Виталий Аронский (aronskiy) 16.02.12 15:32
Я согласен, статья автора полезна. Однозначно +.
Но также у многих типовые базы. И поэтому (соглашусь с CnupT) в чистом виде внешняя обработка гораздо удобней.
6. Виталий Клим (v_clim) 17.02.12 05:51
А как сделать возможность выбора либо штатный обмен, либо с фильтром?
7. Forward Fader (Performer) 17.02.12 06:17
Обработка хороша, особенно, если учесть что бухгалтерия каждый месяц обновляется и не нужно замарачиваться с внешней обработкой, каждый раз как изменились правила обмена.
8. Андрей Журавлев (Wrols) 17.02.12 07:35
(4)
Если делать через внешнюю обработку, то получается, что и вызов обмена должен осуществлять только из этой внешней обработки.
Это может быть не очень удобно и надежно.

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

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

(3)
Да, при обновлении конфигурации, конечно же, это нужно учесть.
Общая форма останется в любом случае, а общий модуль - обновить аккуратно.
9. Андрей Журавлев (Wrols) 17.02.12 07:41
(6) v_clim,
Простым видится такой вариант - на общей форме разместить еще одну кнопку типа "Штатный обмен".
При нажатии - просто закрывать форму с кодом:

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

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

ВыполнитьРегистрациюИзмененийДокументовЗаПериодВыгрузки(ТаблицаДокументов, НачПериода, КонПериода);
10. Владимир Б (antares_of) 17.02.12 12:57
В отношении взаимодействия торговли и бухгалтерии, такая реализация весьма полезна, а то что торговля будет изменена, это не так страшно, ведь обновления на торговлю выходят действительно реже чем на другие конфигурации
11. alma soft (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) 22.02.12 12:27
(14) DTimkin, настройку можно выполнить в рабочей базе с уже существующими документами. Фильтр будет срабатывать именно в момент выгрузки.
16. Дмитрий (DTimkin) 22.02.12 12:36
17. Алексей Меньшиков (zbruy) 28.02.12 11:39
ЭЭЭ... а объясните для тупых.
Мои действия в конфе УТ 10.3.14.3:
Дописал код в общие модули->ПроцедурыОбменаДанными->Процедура ВыполнитьОбменДаннымиПоПроизвольнойНастройке.
в конец указанной процедуры.

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

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

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

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

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

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

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

Поэтому и приходится изменять конфигурацию УТ.
Я исходил из того, что УТ настраивают под себя и она не является типовой.
25. Андрей Журавлев (Wrols) 02.05.12 07:44
26. Alonzomozley (alonzomozley) 03.08.12 19:35
Спасибо.
Выручила обработка. Для себя добавил отбор справочников и регистров сведений перед выгрузкой (тем самым удалось избежать полной выгрузки справочников при первом обмене в момент настройки плана ).
27. Алексей Ромашов (krund) 10.08.12 17:43
Интересный вариант доработки программы. Хотя конечно не хотелось бы дорабатывать программу и было бы намного удобнее через внешнюю обработку (например для базовой версии).
Но автору всё равно спасибо. В крайнем случае этот вариант можно использовать.
28. Алексей Климов (alex1077) 10.08.12 17:58
29. Андрей Журавлев (Wrols) 10.08.12 21:07
(26) alonzomozley, рад помочь ;)
Совсем не уверен стоит ли фильтровать первоначальную выгрузку...Там же происходить синхронизация...

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

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

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

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

С какой версией бухгалтерии потребовался первоначальный обмен?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа