8.х ОБМЕН Узнать значение реквизита

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

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Делаю правила конвертации, подскажите как узнать значение реквизита при загрузке.
    Допустим выгрузилось значение реквизита родитель=ааа, как мне узнать при загрузке что значение реквизита родитель = ааа
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Смотри обработчики ПриЗагрузке или ПослеЗагрузки
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    я делаю при загрузке
    Если Родитель.Значение="нкб" Тогда
    Родитель.Значение=Справочники.Сотрудники.НКБ;
    Иначе
    Родитель.Значение=Справочники.Сотрудники.БГК;
    КонецЕсли;
    но так не работает как правильно подскажите
  4. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    может правильнее Родитель.Наименование="ААА" ....


    т.к. Родитель.Значение имеет тип справочникСсылка...и сравниваешь его со строкой...Однозначно ЛОЖЬ...
  5. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Я при выгрузке получаю значение в текстовой форме из константы, при загрузке мне надо чтоб все элементы загрузились в группу справочника сотрудники с наименованием равное значению полученной при выгрузке, в файле наименование это есть я проверил
  6. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    То есть вам надо чтобы все сотрудники загрузились в одну предопределенную группу?
  7. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Да, из этой базы, выгрузка будет из двух баз
  8. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    как вы его получаете? и зачем сравниваете значение константы с родителем?
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    знач=константы.имяконстанты.получить()
    значение=знач;
    получаю при выгрузке в реквизите родитель
  10. fineosun
    Offline

    fineosun Опытный в 1С

    Регистрация:
    15 мар 2011
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Лучше сделайте не так. В вашем пко Сотрудники, для пкс Родитель создайте пко, (например, Сотрудники1), где будет одно ПКС - с флажком поиска! - наименование (Поиск по идентификатору уберите). В этом пкс Наименование в событии перед выгрузкой напишите
    Значение = "нкб"; (или из константы, или как вы его пролучаете)

    Так гораздо проще
  11. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    не совсем понял, для родителя создать новое правило? я так делал, но в базе приемнике группа просто не создается
  12. fineosun
    Offline

    fineosun Опытный в 1С

    Регистрация:
    15 мар 2011
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Должна создаваться, я так делала и не раз. попробуйте еще раз, если не получится - скиньте правила, я поищу ошибку.
  13. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    не создает, ошибка посмотрите пожалуйста

    Вложения:

  14. fineosun
    Offline

    fineosun Опытный в 1С

    Регистрация:
    15 мар 2011
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    1) откройте пко сотрудники, найдите пкс Родитель и в событии перед выгрузкой напишите
    Значение = 1; ( дело в том, что если переменная значение пустая, передачи управления в пко не происходит)
    2) откройте пко СотрудникиРодитель. пкс Код можно отключить, оно не нужно.
    3) в пкс ЭтоГруппа в событии перед выгрузкой напишите
    Значение = Истина;
    4) создайте пкс Наименование. Установите флажок поиска. Откройте событие перед выгрузкой. Перенесите туда то, что написано в пко сотрудникиРодитель в событии перед выгрузкой.

    так должно работать
  15. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Сделал вроде все как сказали, теперь создаетсяя только не группа, а элемент
  16. fineosun
    Offline

    fineosun Опытный в 1С

    Регистрация:
    15 мар 2011
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Надо проверить, чтобы поиск по свойству ЭтоГруппа был включен, и чтоб его значение было установлено в "истина". Но если не получается - выкладывайте правила, я посмотрю
  17. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26

    Вложения:

  18. fineosun
    Offline

    fineosun Опытный в 1С

    Регистрация:
    15 мар 2011
    Сообщения:
    57
    Симпатии:
    0
    Баллы:
    26
    Нет, вы изменили не так, как я написала. То, что касается наименования и это группа - я писала про пкс, подчиненные пко СотрудникиРодитель! А не ПКО Сотрудники.

    1) найдите пко СотрудникиРодитель. у вас там два пкс - код и этоГруппа.
    2) пкс код отключите, оно не нужно
    3) в пкс ЭтоГруппа в событии перед выгрузкой напишите
    Значение = Истина;
    4) в этом пко сотрудникиРодитель создайте пкс Наименование. Установите флажок поиска. Откройте событие перед выгрузкой. Перенесите туда то, что написано в пко сотрудникиРодитель в событии перед выгрузкой.
    5) откройте пко сотрудники
    6) в этом пко сотрудники найдите пкс этогруппа. Очистите там обработчик перед выгрузкой
    7) в этом пко Сотрудники найдите пкс Наименование. Очистите там обработчик перед выгрузкой
  19. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    Может это не совсем то, что нужно, но возможно пригодится.
    Была поставлена задача при переносе из УТ в БП выгружать номенклатуру в отдельные папки в БП. Три базы УТ - три папочки в БП. Задача была решена следующим образом:
    1. Определены наименования для каждой папки.
    2. Созданы три правила обмена. Абсолютно одинаковые, различие в имени папки в коде.

    Все действия выполняются при загрузке в базе-приемнике.
    Собственно как было сделано:

    1. В Обработчике "Перед загрузкой данных" ПК (правил конвертации) ищется папка в корне с заданным наименованием ("Товары УТ Ювелир"). Если не находится, то создается. Ссылка помещается в параметры.
    Код:
    СпрНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("Товары УТ Ювелир",Истина,Справочники.Номенклатура.ПустаяСсылка());
    Если СпрНоменклатура.Пустая() Тогда
    СпрНоменклатура = Справочники.Номенклатура.СоздатьГруппу();
    СпрНоменклатура.Наименование = "Товары УТ Ювелир";
    СпрНоменклатура.Записать();
    КонецЕсли;
    Параметры.Вставить("ПапкаУТ", СпрНоменклатура.Ссылка);
    
    
    
    2. В обработчике "После загрузки" ПКО "Номенклатура" подставляется родитель для всех корневых элементов. Как папок, так и отдельно взятых элементов. В результате вся номенклатура оказывается в базе-приемнике в одной папке с предопределенным именем.
    Код:
    Если Объект.Родитель = Справочники.Номенклатура.ПустаяСсылка() Тогда
    Объект.Родитель = Параметры.ПапкаУТ;
    КонецЕсли;
    
    
    Если передавать ваши наименования так же через параметры, потом можно использовать вышеприведенный код с заменой наименования.
  20. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Сейчас вроде сделал все как вы сказали, но переносятся в группу только те которые были в группе базе источник, а элементы которые в корне переносятся в корень, и еще пробовал перенести номенклатуру получилась ерунда группу вообще не создает, создает элемент, а в базе источника это группа

    Вложения:

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