8.х Передать значение адреса объекта с клиента на сервер

Тема в разделе "Установка платформы "1С:Предприятие 8"", создана пользователем GiGi, 19 апр 2017.

  1. TopicStarter Overlay
    GiGi
    Offline

    GiGi

    Регистрация:
    7 мар 2017
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Всем привет!
    Гуууу! Сколько уже вожусь и никак не получается...перерыл везде, где мог и ничего не нашел, как сделать следующее:
    Допустим есть справочник: "ОБЪЕКТ". И нужно, что бы из формы этого справочника по указанному адресу был найден указанный код реквизита на сервере в другом справочнике, на пример в списке справочника "ТОЧКА". Для чего есть команда: "НайтиПоКоду". И вроде бы с этим все получилось по вот такой схеме:

    &НаКлиенте
    Процедура Тест_Пойск(Команда)
    КодПойска="000000001";
    ПолучитьCсылку(КодПойска);

    КонецПроцедуры

    &НаСервере
    Процедура ПолучитьCсылку(ТекстПойска)
    Путь = Справочники.ТОЧКА;
    СтрокаСсылка = Путь.НайтиПоКоду(ТекстПойска);
    Сообщить(СтрокаСсылка.Наименование);

    КонецПроцедуры

    Сразу скажу, что с 1С подружился совсем недавно, и поэтому обращаюсь за помощь
    Как видно из выше указанного кода. КодПойска задан на клиенте и передан на сервер.
    И система вроде нормально реагирует и находит. Но как только сам адрес поиска указываешь на клиенте. На пример так:

    НаКлиенте
    Процедура Тест_Пойск(Команда)
    Адрес= Справочники.ТОЧКА;
    КодПойска="000000001";
    ПолучитьCсылку(Адрес, КодПойска);

    КонецПроцедуры

    &НаСервере
    Процедура ПолучитьCсылку(Путь, ТекстПойска)
    СтрокаСсылка = Путь.НайтиПоКоду(ТекстПойска);
    Сообщить(СтрокаСсылка.Наименование);

    КонецПроцедуры

    СИСТЕМА ТУТ ЖЕ НАЧИНАЕТ РУГАТЬСЯ!

    Ну это понятное дело почему!
    Пробовал разные варианты как перемененную: "Путь" передать с клиента на сервер, но ни в какую!

    Поэтому очень прошу подкорректировать и помочь как это сделать!

    БУДУ ОЧЕНЬ ПРИЗНАТЕЛЕН ЗА ПОМОЩЬ!
  2. TopicStarter Overlay
    GiGi
    Offline

    GiGi

    Регистрация:
    7 мар 2017
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Я уже сам поспрашивал на ДРУГИХ ФОРУМАХ и разобрался:
    Просто не знал, что есть одна очень полезная команда: "выполнить". В которую можно вогнать все что угодно.
    Теперь все уже будет выглядеть вот так:

    &НаКлиенте
    Процедура Тест_Пойск(Команда)
    ТекстКода
    ="000000001";
    АдреСпр
    ="Справочники.ТОЧКА";
    ТекЗначение
    =ПолучитьКод(АдреСпр, ТекстКода);
    сообщить(ТекЗначение);

    КонецПроцедуры

    &НаСервере
    Функция ПолучитьКод(Путь, ТекстПойска)
    ПутьОбъект
    = Неопределено;
    Выполнить("ПутьОбъект = "+ Путь);
    ТекЗначение
    = ПутьОбъект.НайтиПоКоду(ТекстПойска);
    Возврат ТекЗначение;

    КонецФункции

    Это если кто то столкнется с подобной проблемой!
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.408
    Симпатии:
    973
    Баллы:
    204
    Перестаньте говнокодить и ваши волосы станут мягкими и шелковистыми :)
  4. TopicStarter Overlay
    GiGi
    Offline

    GiGi

    Регистрация:
    7 мар 2017
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Ну да .... конечно
    . :):)
    Если имел бы большой опыт тогда, что я тут вообще потерял?
    Так что, на начальном этапе, шелковистыми вопросы никак не могут быть.
    Но ладно ... пусть не супер но худо бедно все таки нашел решение.

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