8.х Конвертация данных ПВД или что?

Тема в разделе "Другие решения", создана пользователем kosalex, 6 авг 2013.

  1. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Добрый день. столкнулся с задачей по выгрузке из УТП в другую конфигурацию справочника "Номенклатуры".

    В этом справочнике есть много папок - групп. Мне нужно выгрузить определённые группы, как это сделать?

    Пишу в ПВД перед выгрузкой такое:

    Код:
    Если Объект.ЭтоГруппа() Тогда
    Если НЕ Объект.ЭтоГруппа() И НЕ Объект.Наименование = "Изделия из золота с драгоценными камнями"  Тогда
    Отказ = Истина;
    КонецЕсли;
    Если НЕ Объект.ЭтоГруппа() И НЕ Объект.Наименование = "Изделия из золота с ситнетическими вставками" Тогда
    Отказ = Истина;
    КонецЕсли;
    Иначе
    Отказ = Истина;
    КонецЕсли;
    
    Ошибка: Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1638)}: Ошибка в обработчике события ПередВыгрузкойОбъекта
    ПВД = Номенклатура
    Объект = Камни в ассортименте (Номенклатура)
    Обработчик = ПередВыгрузкойОбъектаВыборки
    ОписаниеОшибки = Метод объекта не обнаружен (ЭтоГруппа)
    ПозицияМодуля = (1)
    КодСообщения = 33

    Я посмотрел действительно, этот элемент не является группой. Никак не додуплю как выгрузить нужную группу ?
  2. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    ЭтоГруппа - не функция, а реквизит - скобки не нужны

    а вообще - отборы настраиваются при выгрузке - зачем их программно настраивать?
  3. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    В смысле при выгрузке? В ПВД я настраиваю. что вы имеете ввиду, поясните.
  4. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    если выгружаете через v82exchange - то отборы можно настроить руками в форме.

    если обмен данными - то в ПВД лучше. только такое ограничение несколько странновато для обмена :)

    даже если вам нужно выгружать только номенклатуру определенных групп в обмене - лучше использовать условие:
    Код:
    СсылкаНаГруппу = Справочники.Номенклатура.НайтиПоНаименованию("Наименование группы");
    Если Не Объект.ПринадлежитЭлементу(СсылкаНаГруппу) И Объект<>СсылкаНаГруппуТогда
    Отказ = Истина;
    КонецЕсли;
  5. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Не выгружается как хочется ((

    [​IMG]

    хочу выгрузить полностью структуру папок как показано на рисунке.

    ТМЦ -> Продукция 26 -> Изделия из золота -> Изделия из золота с драг камнями -> Элементы папки.


    Код:
    Если НЕ Объект.ЭтоГруппа  = "Изделия из золота с ситнетическими вставками" Тогда
    
    Отказ = Истина;   
    
    КонецЕсли;

    Не получается....

    может нужно создать ручками такую же структуру папок в конфигурации в которую выгружаю?

    Наставьте на путь истинный!

    Выгружаю я через УниверсальныйОбменДанными XML
  6. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Код:
    СсылкаНаГруппу = Справочники.Номенклатура.НайтиПоНаименованию("Изделия из золота с ситнетическими вставками");
    Если Не Объект.ПринадлежитЭлементу(СсылкаНаГруппу) И Объект<>СсылкаНаГруппу И Не Объект.ЭтоГруппа Тогда
    Отказ = Истина;
    КонецЕсли;
    вот такое условие поставьте - в этом случае будет полностью выгружаться структура папок, а элементы поедут только те, которые в папке "Изделия из золота с ситнетическими вставками"
  7. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Код:
    СсылкаНаГруппу1 = Справочники.Номенклатура.НайтиПоНаименованию("Изделия из золота с драгоценными камнями");
    СсылкаНаГруппу2 = Справочники.Номенклатура.НайтиПоНаименованию("Изделия из золота с ситнетическими вставками");
    Если Не Объект.ПринадлежитЭлементу(СсылкаНаГруппу1) И  НЕ Объект.ПринадлежитЭлементу(СсылкаНаГруппу2) Тогда
    Отказ = Истина;
    КонецЕсли;
    

    вот что написал)

    а что такое у вас Объект<>СсылкаНаГруппу ?
  8. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    ПринадлежитЭлементу() даст Ложь, если Объект равен СсылкаНаГруппу, которая в параметре, т.е. корневая группа уйдет в отказ
  9. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Не выгружается вообще ничего ((

    Код:
    СсылкаНаГруппу1 = Справочники.Номенклатура.НайтиПоНаименованию("Изделия из золота с драгоценными камнями");
    СсылкаНаГруппу2 = Справочники.Номенклатура.НайтиПоНаименованию("Изделия из золота с ситнетическими вставками");
    Если НЕ Объект.ПринадлежитЭлементу(СсылкаНаГруппу2) Тогда
    Отказ = Истина;
    КонецЕсли;
    Если НЕ Объект.ПринадлежитЭлементу(СсылкаНаГруппу1) Тогда
    Отказ = Истина;
    КонецЕсли;
  10. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Вопрос закрыт, вместо НайтиПоНаименованию написал НайтиПоКоду. Заработало =)

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