8.х Хранение ссылки на объект

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем aimax, 20 авг 2008.

  1. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Уважаемые, подскажите, пожалуйста...

    Есть ли возможность хранить в справочнике ссылку на объект конфигурации.

    Чтоб было понятно:
    У меня n бизнесс-процессов.
    Мне надо хранить в элементах справочника ссылки на любой из этих процессов, чтоб иметь возможность во время работы автоматически запускать тот или иной бизнесс-процесс в зависимости от того какой элемент справочника выбран в документе.

    Как это лучше реализовать.
    Заранее благодарен...
  2. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Есть такая возможность - добавьте реквизит с нужным типом и храните на здоровье.
  3. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    BabySG, в реквезите же можно хранить ссылку на бизнес-процесс уже стартованный (фактически существующий в базе бизнесс-прцессов), а мне нужно иметь возможность запускать заранее неопределенный БП (новый)...

    Скажем в конфе есть:
    - Бизнесс-процессы: БП1 и БП2.
    - Справочник: Спр1 (2 элемента: ЭлСпр1 и ЭлСпр2)
    - Документ: Док1

    У Док1 есть реквезит Спр (Тип Спр1) и кнопка Ок.
    При нажатии на Ок должен запуститься либо новый БП1 либо БП2 в зависимости от того какой Элемент Спр1 выбран...

    Какой должен быть ревезит тогда у справочника Спр1?
    Если я туплю, то можно пример какой-нить коротенький пожалста?
  4. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Должно же быть какое-нибудь решение???
  5. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Не практиковал никогда Бизнес процессов. И пробовать сейчас некогда. Если сделать реквизит - любой ссылкой получается ли в нее положить ссылку на новосозданный БП? или еще можно попробовать хранить просто УИд БП, и восстанавливать его через ПолучитьСсылку()?
  6. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Мне не ссылку на новосозданный процесс хранить нужно, а ссылку на объект, чтоб его получить и воспользоваться методом СоздатьБизнесПроцесс().

    То что я написал сделать вроде не получается, но выход быть должен, не писать же обработку которая будет брать реквезит из справочника (Тип строка) и проверять если спр1.Строка = "..." то запускай такой процесс, если "......." то другой.
  7. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Так а если сделать в справочнике реквизит с типом БизнесПроцессСсылка?
  8. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Собственно, именно так и надо сделать.
    Так же, как и ссылку на счет хранить.
    Автору надо изучить матчасть
  9. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Если сделать в справочнике реквизит с типом БизнесПроцессСсылка, то хранить в таком реквизите можно любой СОЗДАННЫЙ Бизнесс процесс!!! Нет у такой ссылки метода СоздатьБизнесПроцесс()...

    Еще раз пример:

    В конфе есть:
    - Бизнесс-процессы: БП1 и БП2.
    - Справочник: Спр1 (2 элемента: ЭлСпр1 и ЭлСпр2)
    - Документ: Док1

    У Док1 есть реквезит Спр (Тип Спр1) и кнопка Ок.
    При нажатии на Ок должен СОЗДАТЬСЯ либо новый БП1 либо БП2 в зависимости от того какой Элемент Спр1 (ЭлСпр1 и ЭлСпр2) выбран.

    Специально сделал конфу. Попробуйте заполнить Обработку проведения документа, чтоб дело дошло до момента создания нового БизнесПроцесса... Реквизиты в справочнике не заполнены, т.к. нечем их заполнять.

    Вложения:

    • Base.rar
      Размер файла:
      15,6 КБ
      Просмотров:
      35
  10. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Каой счет???
    Напишите тогда пожалуйста строку запроса для создания нового бизнес процесса, через реквизит элемента справочника выбираемого в форме документа при его проведении? Думаю не получиться!
  11. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Вы сами вдумайтесь, что вы хотите сделать... И вопрос отпадет.
  12. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Я весь позавчерашний день "вдумывался" переберал варианты решения своей задачи, прежде чем задать вопрос. Форум тоже просмотрел...

    Хорошо: если я тупица, то тогда не общими фразами, а конкретно по примеру который я привел - можно увидеть дельный совет?

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

    Я пециально базу прикрепил, попробуйте создать изначально неопределенный БП автоматически при проведении документа.

    Вложения:

    • Base.rar
      Размер файла:
      15,6 КБ
      Просмотров:
      38
  13. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Зачем вам реквизит, что бы создать БП? Когда ответите на этот вопрос - поймете, что его не стоило даже задавать.
  14. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Грубо говоря, потому, что пользователь, который работает с конфигурацией должен определять какой бизнес процесс будет запущен (сам того не видя, а просто выбирая к примеру элемент справочника). И в моем случае - самый удобный способ это реализовать - выбор элемента справочника пользователем у которого есть реквезит через который можно создать новый НЕОПРЕДЕЛЕННЫЙ заранее БП.

    Я хотел избежать написание обработки:
    Если Спр.Эл1.БП = "1" То СоздатьБП1
    Если Спр.Эл2.БП = "2" То СоздатьБП2

    и так для каждого эл-та справочника...

    Собственно говоря сделал я это уже, от Вас помощи не дождался. Убил 2 дня...
    Решение нормальное - обработка не нужна, но не через ссылку на ОбъектБП, а через его имя.
  15. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Вообще-то для таких случаев оптимальнее сделать было справочник БП или что-нить в этом духе.
    Я вот вижу - что задача поставлена странно и предлагать решение странной задачи - это самоубийство :)

    Если у вас БР заранее не определен - то как вы по имени эго создаете? Задача стоить нечетко.
  16. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Дык я с самого начала и спрашивал как сделать такой справочник... и кстати с удовольствием выслушаю вариант реализации.

    А бизнес процесс неопределен потому как человек (пользователь конфы) определяет как дальше себя поведет БП заявки.
    Как пример: менеджеру небходимо выбрать технологию обработки заявки между двумя существующими (для каждой технологии свой Бизнес-процесс). Если появиться третья технология - то будет сделан еще один БП, добавлен еще один элемент справочника с сылкой на него и пользователь сможет выбирать между тремя...

    По имени через МенеджерБП (я же знаю имя БП как оно записано в конфигурациии)...
    Хоть какое-то решение...
  17. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Струтура справочника (или РС) проста - владелец - это объект, для которого нужен БП, а список - это БП, которые и будут стартовать.
    Тут море вариантов для реализации....
    А вообще, варианты реализации можно сделать в основном БП и в нем делать ветление на нужный БП (который вложенный) и не надо будет изобретать никаких велосипедов.
    Посмотрите примеры у Радченко в Проф. разработке - так, конечно, не прямо так сделано - но сама идея описана.

    Тогда не нужно будет делать никаких справочников и т.п. - всё будет определять основной БП.
  18. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Именно так и сделанно... Есть основной БП, у которого в одной из ветвей появляется необходимость запустить сразу несколько (а может один или вообще ни одного) других Бизнес-процессов. Т.к. это количество и сами БП определяет пользователь, то заранее настроить основной БП на выполнение не получиться...

    Радченко давно хочу купить, время никак не выбрать...
  19. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Теперь понимаете, зачем я писал:
    :)
  20. TopicStarter Overlay
    aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    Все равно не понял... Какой тип должен быть у каждого элемента списка, чтоб с его помощью создать новый БП (ОбектБП??? так ведь). У справочника можно только имя задать или в реквезит какой-нить вставить, но ссылку на объект БП не получилось?

    Как будет выглядеть строка кода определяющая создание нового БП?

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