Как ограничить типовой обмен УТ — БП по дате документов

Довольно часто случается, что бухгалтер требует ограничить выгружаемые из УТ документы по дате (чаще всего только слева). Как это сделать быстро и без внесения изменений в конфигурации? Оказывается достаточно просто и без навыков в программировании.

На входе имеем: уже настроенный обмен УТ -> БП, первый обмен уже совершен, что не маловажно.

Для начала открываем в УТ справочник «Настройки обмена данными» и выбираем нужную настройку. Находим и нажимаем кнопку «Сохранить правила в файл» и собственно сохраняем правила в файл.

Сохранение/загрузка правил

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

Далее можно идти двумя путями.

Сложный путь. Для тех, кто хочет понимать что делает.

  1. Загружаем файл правил в конфигурацию «Конвертация данных».
  2. Находим справочник «Конвертации», а в нем только что загруженную и жмем кнопку «изменить».
  3. В открывшемся диалоге выбираем закладку  «Перед выгрузкой данных» и вставляем в конец следующий текст:

             ДатаНачала = УзелДляОбмена.ДатаНачалаВыгрузкиДокументов;

             ВвестиДату(ДатаНачала,«Введите дату начала»,ЧастиДаты.Дата);                       

             Параметры.Вставить(«ДатаНачалаВыгрузкиДокументов»,ДатаНачала);

Редактирование конвертации

      4. Сохраняем и выгружаем новые правила в файл.

      5. Заменяем в УТ правила обмена на новые.

 

Простой путь.

Открываем выгруженный из УТ файл правил с помощью блокнота и находим такую фразу: . Перед ней вставляем текст:

ДатаНачала = УзелДляОбмена.ДатаНачалаВыгрузкиДокументов; ВвестиДату(ДатаНачала,»Введите дату начала»,ЧастиДаты.Дата); Параметры.Вставить(«ДатаНачалаВыгрузкиДокументов»,ДатаНачала);

Сохраняем изменения. В конфигурации УТ производим обратную загрузку правил обмена в настройку.


Готово, пользуйтесь на здоровье.

14 Comments

  1. smilejka

    А почему просто в настройках обмена не указать дату начала выгрузки документов?

    Смотреть

    Зачем свой велосипед изобретать?

    Reply
  2. Поручик

    (1) Потому, что эта дата выставляется один раз при настройке обмена, ранее неё идет сворачивание базы.

    Reply
  3. Misanets

    (1) smilejka, ну нет, автор предлагает механизм универсальный не требующий постоянных изменений правил.

    Reply
  4. smilejka

    (2) Поручик,

    Дату можно менять через определенный период — срабатывает. Проверено личным опытом — при начальной настройке стояла дата 01.01.2012. В конце 1 квартала поставил дату 01.04.2012 — при перепроведении документов за март — они не выгружаются.

    Reply
  5. Поручик

    (3) Ага, вот как раз правила требуется постоянно обновлять, с каждым релизом управления торговлей или бухгалтерии предприятия.

    Reply
  6. smilejka

    (3) Misanets,

    А что же это по Вашему, как не корректировка правил… Поручик правильно заметил: при обновлении — правила обновляются и их снова нужно редактировать.

    Reply
  7. borman

    (1) Вы совершенно правы. Думаю статейку надо удалить, как не актуальную.

    Век живи — век учись 🙂

    Reply
  8. Tiger77

    Статейка все же нужная, как пример фильтрации документов по другим реквизитам.

    Reply
  9. FedorovEvg

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

    Если статья предназначена программистам, то они сами разберутся с конвертацией, ничего сложного в ней нет, есть книжки+есть довольно подробная справка.

    В самой конвертации есть примеры разных фильтров и возможностей.

    Нужность статьи не понимаю.

    Reply
  10. SiriusM

    попробуйте по моему скрину, должно работать, в настройках узла…, для меня с каждым обменом какой-нибудь сюрприз)))

    Reply
  11. Lapitskiy

    Даже если ограничить выгрузку датой, то у узла останется «навечно» память об объектах, которые нужно было когда-то выгрузить, и если случайно как-то не укажем «дату с…», то весь многолетний «ворох» доков и справочников полезет прямо в БУХ.

    Reply
  12. antares_of

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

    Reply
  13. Elected

    Спасибо за статью! Раньше был настроен автоматический обмен между УТ и БП. Затирались доки в БП, которые зачем-то редактировались бухгалтерами. Сделал, чтобы был ручной обмен и все довольны!

    Reply
  14. WWWolfy

    Может кому пригодится.

    В УТ10 добавил код в процедуру

    Общие модули — ПроцедурыОбменаДанными — ПроизвестиОбменДаннымиПоНастройке()

    Доработка меняет дату ДатаНачалаВыгрузкиДокументов в узле (должны быть права) на основе даты запрета редактирования (границы).

    Код сработает при любом обмене — вручную или по регламенту.

    Должна стоять галка «Применять дату запрета редактирования для полных прав» (в настройках учёта),

    иначе ГраницыЗапретаИзмененияДанных будет всегда Неопределено и тогда даты по Организациям надо получать запросом.

    // Процедура поизводит обмен данными по настройке обмена
    Процедура ПроизвестиОбменДаннымиПоНастройке(СтруктураНастроекОбменаДанными)
    
    //MURDerобмен меняем дату ДатаНачалаВыгрузкиДокументов  для того, чтобы не выгружались старые данные
    СоответствиеГраницЗапрета = ПараметрыСеанса.ГраницыЗапретаИзмененияДанных.Получить();
    // Для пользователя с полными правами проверок выполнять не нужно
    Если НЕ (СоответствиеГраницЗапрета = Неопределено) Тогда
    текУзел = СтруктураНастроекОбменаДанными.ДанныеНастройки.УзелИнформационнойБазы;
    ДатаУзла = текУзел.ДатаНачалаВыгрузкиДокументов;
    ДатаМаксимум = ДатаУзла;
    
    спОрганизации = текУзел.Организации;
    Для Каждого текОрганизация из спОрганизации Цикл
    ГраницаПоОрганизации = СоответствиеГраницЗапрета[текОрганизация.Организация];
    // Если определена то используется общая дата запрета изменения данных
    Если ГраницаПоОрганизации = Неопределено Тогда
    ГраницаПоОрганизации = СоответствиеГраницЗапрета[«ОбщаяДатаЗапретаРедактирования»];
    КонецЕсли;
    
    Если НЕ ГраницаПоОрганизации = Неопределено Тогда
    ДатаМаксимум = Макс(ДатаМаксимум, ГраницаПоОрганизации);
    КонецЕсли;
    КонецЦикла;
    //исправляем
    Если ДатаУзла<ДатаМаксимум Тогда
    обУзел = текУзел.ПолучитьОбъект();
    обУзел.ДатаНачалаВыгрузкиДокументов = НачалоДня(ДатаМаксимум+1); //
    обУзел.Записать();
    КонецЕсли;
    КонецЕсли;
    

    Показать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *