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

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

  1. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    221
    Симпатии:
    5
    Баллы:
    29
    Как прописать в правилах обмена для справочника "Не брать предопределенных элементов"?

    Пробовал в ПВД справочника ПередВыгрузкой написать:

    Код:
    Если Объект.Передопределенный Тогда
        Отказ = Истина;
    КонецЕсли;
    Как надо правильно?
  2. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    7.415
    Симпатии:
    443
    Баллы:
    104
    Думаю тоже самое надо написать только в ПКО. Хотя вот Объект.Предопределенный что-то смущает.
  3. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    221
    Симпатии:
    5
    Баллы:
    29
    В элементе справочника есть поля ссылочного типа по ним создались у меня ПКО и ПВД. При выгрузке данных у меня вугрузилось 1300 объектов это при том что в справочнике который я хочу перезагрузить всего 181 элемент. Я так подозреваю что это выгрузились объекты ссылочного типа. Что мне надо установить чтобы они не наделали мне дублей с тем что есть?
  4. 1с-ник
    Offline

    1с-ник Профессионал в 1С

    Регистрация:
    5 окт 2014
    Сообщения:
    855
    Симпатии:
    149
    Баллы:
    104
    Перейти на закладку "Конвертация значений" и задать соответствия для предопределенных элементов
  5. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.363
    Симпатии:
    148
    Баллы:
    104
    В настройках ПКО поставить галку продолжать поиск если не нашло по внутреннему идентификатору, отметить поля поиска, если поиск не совсем простой по значениям полей, то написать обработчик поиска
    --- Объединение сообщений, 9 авг 2017 ---
    Что значит не брать предопределенных? Если надо чтобы предопределенный из одной базы переходил в соответствующего ему предопределенного из другой базы, а не переносился по ссылке, то смотри ответ 1с-ник
    Если наоборот, чтобы он переносил предопределенные одной базы в не предопределенные другой, то надо наоборот очистить соответствие предопределенных
  6. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    221
    Симпатии:
    5
    Баллы:
    29
    Сделал в ПКО
    Код:
    Если Источник.Предопределенный Тогда
        Отказ = Истина
    КонецЕсли
  7. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    221
    Симпатии:
    5
    Баллы:
    29
    Есть справочник который я хочу выгрузить. У него есть реквизиты ссылочного типа. Так вот я опасаюсь что по этим реквизитам выгрузятся лишние данные из других справочников. Чтобы этого не произошло я так понял надо правильно настроить поиск элементов (допустим по коду и наименованию). Если будут найдены то будут присвоены найденные если нет то будут созданы и будут присвоены новые. Я правильно понял?

    И еще за что отвечает вот эта галка?

    [​IMG]
  8. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.363
    Симпатии:
    148
    Баллы:
    104
    нет, это не то
    По какому принципу должны заполняться эти поля в приемнике?
  9. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    221
    Симпатии:
    5
    Баллы:
    29
    В источнике есть предопределенные папки в них есть не предопределенные элементы, и есть предопределенные элементы в не предопределенных папках.
    Так вот в приемник должны скопировать элементы справочника в новую папку, но без предопределенных.

    В ПКО для спр СтатьиЗатрат (поиск стоит по ВнутреннемуИдентификатору):

    Перед выгрузкой пишу
    Код:
    Если Источник.Предопределенный Тогда
        Отказ = Истина
    КонецЕсли
    После загрузки пишу:
    Код:
    Если Объект.Родитель.Пустая() Тогда
        Объект.Родитель = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Новая папка");
    КонецЕсли;
    Так вот элементы которые были в предопределенных папках не впрыгивают в новую а попадают в корень. Почему так получается? Что можно придумать чтобы они попадали в новую папку?
    --- Объединение сообщений, 10 авг 2017 ---
    Пробовал добавить в ПКО После загрузки:
    Код:
    //Вместо предопределенной групы создаем и подставляем новую с таким же названием
    Если НЕ Объект.Родитель.Пустая() И Объект.Родитель.Предопределенный Тогда
        СсылкаНовойГруппы = Справочники.СтатьиЗатрат.НайтиПоНаименованию(Объект.Родитель.Наименование);
        Если ЗначениеЗаполнено(СсылкаНовойГруппы) Тогда
            Объект.Родитель = СсылкаНовойГруппы;
        Иначе
            НовыйЭлемент = Справочники.СтатьиЗатрат.СоздатьЭлемент();
            НовыйЭлемент.ЭтоГруппа = Истина;
            НовыйЭлемент.Наименование = Объект.Родитель.Наиманование;
            НовыйЭлемент.Записть();
            Объект.Родитель = НовыйЭлемент;
        КонецЕсли;   
    КонецЕсли;
    
    Не помогло
  10. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.363
    Симпатии:
    148
    Баллы:
    104
    Объединение справочника статей затрат лучше делать руками, причем руками финансиста, а не программиста, а дальше перенос документов с учетом проставленных соответствий статей затрат.
    Это так, лирическое отступление на тему организации процесса :)

    В ПКО на закладке Конвертация свойств удалить все соответствия
    Если родитель предопределенный, то чистить его надо на этапе выгрузки (в ПКС Родитель в обработчике ПередВыгрузкой ставить значением пустую ссылку)
    Наименование такого подмененного родителя можно передавать в ПКС с передачей данных в параметр и по этому параметру уже в ПослеЗагрузки искать/создавать группу и менять родителя у загруженного документа
    Новая папка должна быть создана до того как начнут грузиться статьи. Можно это сделать в обработчике ПередЗагрузкойДанных и сохранить ссылку в параметрах
  11. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    221
    Симпатии:
    5
    Баллы:
    29
    Так и сделал. Но есть еще геморой. Что предопределенная папка может находится в предопределенной папке. А когда я подставляю вместо предопределенной созданную с таким же именем как у предопределенной, то теряю родителя этой предопределенной папки.
    Уже склоняюсь к решению развернуть копию базы там привести порядок с папками и перегрузить оттуда. Хлопот будет меньше.
  12. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.363
    Симпатии:
    148
    Баллы:
    104
    Статьи затрат и их группировка - это вообще большой геморрой при слиянии баз :)
    Лучше все-же взять хозяина справочника в базе-приемнике и руками сопоставить все. Дальше все грузить по этому соответствию, сам справочник не трогая, а отсутствующие статьи в приемнике, если они действительно нужны, добавить руками.
Похожие темы
  1. Виталий
    Ответов:
    4
    Просмотров:
    829
  2. tgr11
    Ответов:
    6
    Просмотров:
    560
  3. AlenkaInt
    Ответов:
    10
    Просмотров:
    598
  4. daab
    Ответов:
    21
    Просмотров:
    1.302
  5. bluntschi
    Ответов:
    17
    Просмотров:
    464
Загрузка...

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