8.х ОБМЕН Правила обмен. Дата выгрузки документов.

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем TODD22, 29 июл 2015.

  1. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Здравствуйте.

    Есть правила обмена между одинаковыми конфигурациями.
    Из одной базы часть документов мигрирует в другую базу.
    Необходимо из одной базы выгружать данные только с определённой даты.
    Например документ "Зарплат к выплате" переносится из центральной базы.

    Как можно ограничить период выгрузки в правилах?

    Он у меня выгружает без отбора. Если их после выгрузки распровести/пометить на удаление/удалить всё равно после обмена они попадают в базу.

    Где в правилах указывать дату для обмена?
    --- Объединение сообщений, 29 июл 2015 ---
    В обработчике "ПередВыгрузкой" нужного мне документа нашёл вот такой код:
    Если я дополню первую строку проверкой на дату то это будет правильно?

    Если НЕ Источник.Проведен И Источник.Дата > '01.07.2015' Тогда

    Вложения:

    Последнее редактирование: 29 июл 2015
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Здарова. Можно в ПВД в двух обработчиках. ПередОбработкой и ПередВыгрузкой. Разница лишь в том, что ПередВыгрузкой срабатывает по каждому документу, а ПередОбработкой самый первый раз. Я бы его использовал.
    Собираешь запросом нужные документы. И результат запроса помещаешь в переменную ВыборкаДанных. И все будет гуд :)
    --- Объединение сообщений, 29 июл 2015 ---
    Вот, для примера мой код по выгрузки нужных мне контрагентов:
    Код:
    ИмяПКО = "Контрагенты_ВходящиеДанные";
    МОТОМ_Премиум = Справочники.Организации.НайтиПоКоду("10047"); // МОТОМ ПРЕМИУМ
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ХозрасчетныйОбороты.Субконто1.Код КАК Код,
    |    ХозрасчетныйОбороты.Субконто1.Наименование КАК Наименование,
    |    ХозрасчетныйОбороты.Субконто1.Родитель КАК Родитель,
    |    ХозрасчетныйОбороты.Субконто1.ЭтоГруппа КАК ЭтоГруппа,
    |    ХозрасчетныйОбороты.Субконто1.ИНН КАК ИНН,
    |    ХозрасчетныйОбороты.Субконто1.КодПоОКПО КАК КодПоОКПО,
    |    ХозрасчетныйОбороты.Субконто1.КПП КАК КПП,
    |    ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто1.НаименованиеПолное КАК СТРОКА(250)) КАК НаименованиеПолное,
    |    ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто1.Комментарий КАК СТРОКА(250)) КАК Комментарий,
    |    ХозрасчетныйОбороты.Субконто1.ОсновнойБанковскийСчет КАК ОсновнойБанковскийСчет,
    |    ХозрасчетныйОбороты.Субконто1.ПометкаУдаления КАК ПометкаУдаления,
    |    ХозрасчетныйОбороты.Субконто1.ОсновнойДоговорКонтрагента КАК ОсновнойДоговорКонтрагента,
    |    ХозрасчетныйОбороты.Субконто1.ЮрФизЛицо КАК ЮрФизЛицо
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &ДатаОкончания, , Счет В ИЕРАРХИИ (&Счет_60), , Организация = &МОТОМ_Премиум, , ) КАК ХозрасчетныйОбороты
    |
    |СГРУППИРОВАТЬ ПО
    |    ХозрасчетныйОбороты.Субконто1.КодПоОКПО,
    |    ХозрасчетныйОбороты.Субконто1.КПП,
    |    ХозрасчетныйОбороты.Субконто1.ИНН,
    |    ХозрасчетныйОбороты.Субконто1.ОсновнойБанковскийСчет,
    |    ХозрасчетныйОбороты.Субконто1.Наименование,
    |    ХозрасчетныйОбороты.Субконто1.ПометкаУдаления,
    |    ХозрасчетныйОбороты.Субконто1.ЭтоГруппа,
    |    ХозрасчетныйОбороты.Субконто1.ОсновнойДоговорКонтрагента,
    |    ХозрасчетныйОбороты.Субконто1.Родитель,
    |    ХозрасчетныйОбороты.Субконто1.ЮрФизЛицо,
    |    ХозрасчетныйОбороты.Субконто1.Код,
    |    ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто1.Комментарий КАК СТРОКА(250)),
    |    ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто1.НаименованиеПолное КАК СТРОКА(250))";
    Запрос.УстановитьПараметр("ДатаНачала"   , ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания));
    Запрос.УстановитьПараметр("Счет_60"      , ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками);
    Запрос.УстановитьПараметр("МОТОМ_Премиум", МОТОМ_Премиум);
    ВыборкаДанных = Запрос.Выполнить();
  3. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Мне нужно только с определённой даты. Что бы все грузились. И как можно проще.
    Это у меня обмен между ЗУПами с серой и белой ЗП.
    У меня из белого выгружаются старые данные. Потом сальдо не правильное. То есть ограничение по дате меня больше всего устроит.
    В том виде что я написал как думаешь отработает правильно?
    А то пока проверить не могу юзеры в базах сидят.
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Да. Так как ты написал, должно отработать. Просто по времени, чуть подольше. :)
  5. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Да у меня документов не много 10-15 в месяц.
    --- Объединение сообщений, 29 июл 2015 ---
    И обмен делают 1-2 раза неделю....
  6. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Ну тогда нормально.
  7. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    чего то я натупил похоже...

    Условие должно быть таким наверное:

    Если НЕ Источник.Проведен ИЛИ Источник.Дата > '20150701' Тогда
  8. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Если в ПВД в обработчике ПередВыгрузкой то ты вообще напутал. Должно быть как то так
    Код:
    Если Объект.Дата <= '20150701' Тогда
    Отказ = Истина;
    КонецЕсли;
  9. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    У меня нет выгрузки. У меня прямое подключение к базе.
    Код в ПКО в событии "ПередВыгрузкой".
    Вот такой код в правилах был. Я только условие по дате добавил. С ним всё работало.

    ПКО.jpg
  10. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Не важно. Данные все равно выгружаются по стандартному принципу. Просто хранятся в промежуточном (временном) файле. Я тебе про другой обработчик говорил. Короче можно и так и так. В твоем случае, еще чуть дольше будет. Но от твоих 15 документов, разницы особой не заметно.
  11. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Что то косяк какой то получился.... с чем связан не понятно.
    Документы которые приходят из первой базы пришли непроведёнными. Вернее распровелись в базе те что были, а те что пришли новые пришли непроведёнными.
    В базе источнике они проведены. Ничего не понимаю.... До этого приходили проведёнными. Но те что были до даты ограничения выгрузки вроде не выгрузились. По крайней мере пока они висят помеченными на удаление. Что уже радует.

    Код:
    Если НЕ Источник.Проведен ИЛИ Источник.Дата < '20150604' Тогда
        Отказ = Истина;
    Иначе
        РежимЗаписи = "Проведение";
        РежимПроведения = "Неоперативный";
    КонецЕсли
    Вот код... вроде кроме условия ничего же не менял.
  12. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Посоветовали переписать код на :
    Код:
    Если Источник.Проведен И Источник.Дата > '20150604' Тогда
        РежимЗаписи = "Проведение";
        РежимПроведения = "Неоперативный";
    Иначе
      Отказ = Истина;
    КонецЕсли
    И заработало....

Поделиться этой страницей