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

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

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

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

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

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

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

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

  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 не будет опубликован. Обязательные поля помечены *