8.х ОБМЕН перенос справочника в один элемент

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем x-a-d, 8 дек 2009.

  1. TopicStarter Overlay
    x-a-d
    Offline

    x-a-d Опытный в 1С

    Регистрация:
    3 сен 2009
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    26
    Вопрос по использованию Конвертации Данных 2.0
    Имеем:
    Источник - самописная конфигурация на 77
    Приемник - БП16 (Бухгалтерия Предприятия 1.6)
    в БП16 у справочника склад имеется элемент "Основной склад"

    Мне надо чтобы при выгрузке любого документа из 77, где есть склад, чтобы в БП16 он позиционировался на "Основной склад"

    испробовал кучу вариантов, но ничего не получается.
    Для складов сделал ПКО "Склады77-СкладБП16"
    в ПКС прописал только наименование, поиск тоже по наименованию делаю. Источник сделал пустой.
    А дальше не получается.
    Пробовал писать для приемника Значение = "Основной склад" (т.к. текстовый формат, думал пусть ищет по наименованию) и в справочнике в ПКС для "наименование"
    и для документа, в ПКС для склада.
    ничего не получается.

    Пробовал ИсходящиеДанные "перед выгрузкой" делать
    ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
    Скл = СоздатьОбъект("Справочник.Склады");
    Скл.Новый();
    Скл.Наименование = "Основной склад";
    ИсходящиеДанные.Установить("Склады",Скл);
    //справочник в 77 называется "Склады"

    тоже ничего не позиционируется при выгрузке
  2. TopicStarter Overlay
    x-a-d
    Offline

    x-a-d Опытный в 1С

    Регистрация:
    3 сен 2009
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    26
    В общем сам уже нарыл ответ.
    делюсь им, может кому пригодится.

    Для ПКО Справочника Склад создаем, например для выгрузки только по наименованию, только одно ПКС "Наименование"
    Источник пусто, данные брать из входящих ставим галку.
    ПКО и ПКС готово.

    Переходим К ПКО, где используется данный склад.
    Например идем в ПКО приходного документа.
    для ПКС Склад устанавливаем источник пустой.
    "Перед выгрузкой" для данного ПКС Склад
    (Код пишем для нашего примера "по наименованию" см. выше)
    ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
    в 8.1 имеем склад с наименованием "Основной склад". поэтому следующая строка имеет вид:
    ИсходящиеДанные.ДобавитьЗначение("Основной склад", "Наименование");

    Только т.к. нет источника, то необходимо добавить ВАЖНУЮ строчку

    Значение = "любое_уникальное_значение_для_данной_выгрузки"

    данная строчка нужна для того, чтобы не было пустого значения при обработке правила. При пустом значении при выгрузке считается, что выгружать нечего и правило не отрабатывается.
    Хотелось бы обратить внимание, что при выгрузке, "Значение" запоминается. И в следующий раз, если "любое_уникальное_значение_для_данной_выгрузки" будет равно уже выгруженному, то заново выгрузка не происходит, а подставляется результат уже выгруженных данных. Поэтому следует осознанно подходить к тому, что присваивать переменной "Значение".
    Например, если ПКО - документ, то можно передать в Значение Источник(сам документ):
    Значение = Источник;

    Итого имеем код:
    ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
    ИсходящиеДанные.ДобавитьЗначение("Основной склад", "Наименование");
    Значение = Источник;

    Все готово.
    Теперь при выгрузке любого приходного документа в поле склад устанавливается "Основной склад" из БП16.

    Стоит обратить внимание на то, что если в вышеописанном примере выгрузка идет всегда на один и тот же склад, то код можно сделать таким:
    ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
    ИсходящиеДанные.ДобавитьЗначение("Основной склад", "Наименование");
    Значение = 1; //или любое другое константное значение

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