8.х ОБМЕН [РЕШЕНО] Перенос движений документов: отказ от записи, если документ не найден.

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

  1. TopicStarter Overlay
    Dragnir
    Offline

    Dragnir Новичок в 1С

    Регистрация:
    22 окт 2014
    Сообщения:
    39
    Симпатии:
    8
    Баллы:
    4
    Господа и дамы, доброго дня.
    необходима Ваша квалифицированная помощь в решении следующей задачки в Конвертации Данных (далее КД).

    Дано: Настраиваю правила обмена между конфигурацией на платформе 7.7 (источник) и конфигурацией на платформе 8.2 (приемник). Из источника я выгружаю документ и некоторую информацию, которую хочу в приемнике положить в Регистр Сведений (РС). РС в приемнике у меня подчинен регистратору. Поиск настраиваю допустим по дате и номеру. Иногда возникают ситуации, когда в приемнике действительно нет таких документов. В данном случае мне ничего делать не нужно. Моя задача записать РС только для тех документов, которые реально есть в базе приемника. Галочки в ПКО для документа стоят такие:

    upload_2014-11-12_17-3-27.png

    Однако при этом при загрузке ненайденные документы все равно создаются и записываются в РС их движения.
    На сколько я понимаю - документ создается, т.к. записи в РС не могут жить без регистратора. Но я не понимаю, почему система идет дальше и пытается эти записи создать, если я ей четко сказал - "не создавать документ".

    Что я делаю не так?

    За ранее благодарен.
  2. TopicStarter Overlay
    Dragnir
    Offline

    Dragnir Новичок в 1С

    Регистрация:
    22 окт 2014
    Сообщения:
    39
    Симпатии:
    8
    Баллы:
    4
    Господа и дамы форумчане, всем спасибо. Разобрался сам. Великая вещь эта RTFM.
    Хотя решение вышло "через буераки" и не совсем методологически верное.

    В обработчик "ПослеЗагрузки" моего ПКО добавил вот такой вот код:
    Если НЕ ОбъектНайден ИЛИ Ссылка = Документы.РеализацияТоваровУслуг.ПустаяСсылка() Тогда
    Объект.Движения.ПартииРеализации.Очистить();
    КонецЕсли;

    Частично моя задача оказалась решена - движений система в ИБ-Приемнике не создает, но вот объект все равно
    с завидным упорством в базу записывает. Для меня это не есть критично, т.к. обработка разовая.
    Но буду копать дальше, если добьюсь правильного результата - отпишусь.
  3. TopicStarter Overlay
    Dragnir
    Offline

    Dragnir Новичок в 1С

    Регистрация:
    22 окт 2014
    Сообщения:
    39
    Симпатии:
    8
    Баллы:
    4
    Вот так часто бывает: то ничего, то потом как польется мысль...
    Сделал и удаление излишне загруженных объектов.

    Это выглядит так:
    1. Обработчики самой конвертации.
    1.1. "Перед загрузкой данных". Добавлен код:
    Параметры.Вставить("СписокОбъектовДляУдаления", Новый Массив);
    1.2. "После выгрузки данных". Добавлен код:
    Для каждого ДокументОбъект Из Параметры.СписокОбъектовДляУдаления Цикл
    Попытка
    ДокументОбъект.Удалить();
    Исключение
    КонецПопытки;
    КонецЦикла;

    2. Обработчики ПКО
    2.1. "После загрузки". Добавлен код:
    Если НЕ ОбъектНайден ИЛИ Ссылка = Документы.РеализацияТоваровУслуг.ПустаяСсылка() Тогда
    Объект.Движения.ПартииРеализации.Очистить();
    Параметры.СписокОбъектовДляУдаления.Добавить(Объект);
    КонецЕсли;

    Теперь все красиво в базе.
    alexburn нравится это.

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