Добрый день! Уважаемые гуру! Вчера решил упрощенную задачу, все спасибо за это. Сегодня решил ее усложнить. Теперь данные в поле ТЧ Документа передаются из справочника. Но вчерашняя процедура уже не работает. Пишет поле не найдено. Где я туплю? Заранее спасибо!
---
да
---
Все правильно. Значение переменной еще не присвоено. Шагните на один шаг вперед.
Или можете прямо в этой точке в выражение написать "Элементы.УчастникиСтуденты.ТекущиеДанные"
---
Подскажите, пожалуйста, очень надо! :-)
---
Похоже не получиться так сделать?
---
В ТЧ документа данный реквизит не прописал, он добавляется на форму
---
Почитайте книгу Радченко "1С:Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы. Издание 3-е"
https://its.1c.ru/db/pubdevguide83
---
Разумеется, читал. Можете подсказать?
---
Как получить данные из справочника на сервере и прописать их в клиенте? Я так понимаю это надо сделать?
---
прописать их в клиенте? Что такое "прописать"?
---
То и значит - прописать! Ручками :-)
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Так?

```1c
    &НаКлиенте
    Процедура УчастникиСтудентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ПолучитьСсылкуНаПортфолио(Студент)
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьСсылкуНаПортфолио(Студент)
    Возврат Студенты.Студент.СсылкаНаПортфолио;
    КонецФункции
```
---
Вы хотите выбрать студента, получить из его реквизитов ссылку на портфолио и запустить приложение?
Зачем вы обращаетесь в функции как к процедуре? 1С разве не пишет вам об этом?
Студенты лишнее - Возврат Студент.СсылкаНаПортфолио;
---
Данный код я не запускал, это просто предположение, как это можно реализовать...
Мне нужно получить содержимое поля на портфолио для текущего студента (ссылку на портфолио), который в данной строке документа табличной части для того чтобы потом при клике в данном поле в табличной части формы данная ссылка открывалась. Выбор студента происходит из соответствующего справочника. Реквизита в данных документа ССылкаНаПортфолио нет, на форму оно помещается дополнительно и ссылается на соответствующий объект. Как такое реализовать? Заранее спасибо, Вам за помощь!
---
это просто предположение, как это можно реализовать... Можно тебя попросить самостоятельно проверять свои предположения, прежде чем вываливать их сюда?
---
115 ты раз пробовал, не просто так же я сюда обратился
---
115 ты раз пробовал, Данный код я не запускал, это просто предположение Ты путаешься в показаниях!
---
Пить надо меньше, и ты тоже не будешь
---
1. Какой параметр передать в процедуру?
2. Как правильно написать код процедуры?
Заранее спасибо!
---
Давайте по порядку. Я правильно понимаю, что нужно создавать процедуру на клиенте и функцию на сервере без контекста? ДА/Нет? Спасибо!
---
да
---
Ок, отлично! Как далее реализовать?
Вот есть код для ТЧ документа
&НаКлиенте
Процедура УчастникиСтудентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
 Если Поле.Имя = "СсылкаНаПортфолио" Тогда
 ТекДанные = Элементы.УчастникиСтуденты.ТекущиеДанные;
 ЗапуститьПриложение(ТекДанные.XXX);
 КонецЕсли;
КонецПроцедуры
---
Как и откуда взять значение XXX?
Заранее спасибо!
---
Возьмите из ТекДанные ссылку на студента, и своей Функцией получите на сервере значение ссылки на портфолио

```1c
    Процедура УчастникиСтудентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    Если Поле.Имя = "СсылкаНаПортфолио" Тогда
    ТекДанные = Элементы.УчастникиСтуденты.ТекущиеДанные;
    СсылкаНаПортфолио = ПолучитьСсылкуНаПортфолио(ТекДанные.Студент);
    ЗапуститьПриложение(СсылкаНаПортфолио );
    КонецЕсли;
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьСсылкуНаПортфолио(Студент)
    Возврат Студент.СсылкаНаПортфолио;
    КонецФункции
```
---
Сейчас попробую, спасибо! Напишу как проверю
---
Как взять из тек данных ссылку на студента? В этом как раз и загвозка :-(
---
В слове "гвоздь" есть буква "д".
---
Нет, учи Рашин
---
Непонятно ,что указывать в качестве параметра Студент?
---
Наименование колонки где у вас хранится ссылка на студента.
---
Я примерно пытался данный алгоритм реализовать но у меня не получить получить доступ к полю с фио студента - пишет поле на найдено
Вот код без процедуры а просто чтобы посмотреть что выводиться на экран, в результате поле не найдено. Как быть?
&НаКлиенте
Процедура УчастникиСтудентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "СсылкаНаПортфолио" Тогда
ТекДанные = Элементы.УчастникиСтуденты.ТекущиеДанные;
Сообщить (ТекДанные.УчастникиСтудентыФИО);
//СсылкаНаПортфолио = ПолучитьСсылкуНаПортфолио(ТекДанные.УчастникиСтудентыФИО);
//ЗапуститьПриложение(СсылкаНаПортфолио );
КонецЕсли;
КонецПроцедуры
---
Чо не найдено-то?
---
Не работает код:
&НаКлиенте
Процедура УчастникиСтудентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "СсылкаНаПортфолио" Тогда
ТекДанные = Элементы.УчастникиСтуденты.ТекущиеДанные;
Сообщить (ТекДанные.УчастникиСтудентыФИО);
//СсылкаНаПортфолио = ПолучитьСсылкуНаПортфолио(ТекДанные.УчастникиСтудентыФИО);
//ЗапуститьПриложение(СсылкаНаПортфолио );
КонецЕсли;
КонецПроцедуры
---
Чо не найдено-то?
---
ничего не найдено
---
Пилите, Шура, пилите!
---
У меня ведь поле с фио студента заполняется выбором из справочника а не вводиться вручную, может из-за этого?
---
У меня колонка называется "УчастникиСтуднетыФИО" я скрин выше приложил, в результате поле не найдено
---
Остановитесь отладчиком после присвоения значения переменной ТекДанные и посмотрите где у вас что в этой переменной.
---
Это уже интересно, я про этот функционал не знал. Можно поподробнее?
---
Тут подробнее можно долго писать ) Щелкните два раза на серой полоске слева от строки кода - появится точка останова, запустите Предприятие в режиме отладки и выполнение остановится на этом месте. Дальше через Shift+F9 смотрите содержимое переменных. Изучите, без этого нельзя работать.
---
Изучите, без этого нельзя работать.
Начал уже читать, поставил точку останова, он мне все равно выдает ошибку, тет такое ощущение, что он ее пролетает
---
Предприятие запустили через F5? Поставьте ТО до ошибки, на рабочей строке кода.
Откройте Отладка - Подключение и посмотрите, что ваш сеанс есть в нижней таблице.
---
Терпение настоящего берсерка!
---
А то как же под другому никак!
---
Серьёзно? Точка останова на строке с комментарием?
---
И что здесь такого? :-) Просили же рабочий код, вот коммент точно рабочий
---
вот с выделением важного
---
Отладчиком ранее не пользовался, выводи сообщениями на экран, по переменной текДанные на экран выводиться ДанныеФормыЭлементКоллекции. Я пытался с этим разобраться но запутался еще больше
---
Шифт+Ф9 ничего не показыавет :-(
---
так?
---
Отладка-Начать отладку
---
текданные не определено
---
вот
---
Все правильно. Значение переменной еще не присвоено. Шагните на один шаг вперед.
Или можете прямо в этой точке в выражение написать "Элементы.УчастникиСтуденты.ТекущиеДанные"
---
Элементы.УчастникиСтуденты.ТекущиеДанные
Результат как и писал ранее: ДанныеФормыЭлементКоллекции
---
Извините, я Вас, наверное, уже уморил своей тупостью...
---
Так может стоит потратить 30 минут и прочитать теорию, чтобы не задавать глупые вопросы?
---
За два дня потратил 8 часов на чтение и 5 на просмотр видео
---
Просмотр порно никак не помогает научению 1С. Если только вдохновляет... не более.
---
Порно потом, сначала работа
---
Как реализовать поставленную задачу не подскажете?
---
Не работает код:

```1c
    &НаКлиенте
    Процедура УчастникиСтудентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    Если Поле.Имя = "СсылкаНаПортфолио" Тогда
    ТекДанные = Элементы.УчастникиСтуденты.ТекущиеДанные;
    Сообщить (ТекДанные.УчастникиСтудентыФИО);
    //СсылкаНаПортфолио = ПолучитьСсылкуНаПортфолио(ТекДанные.УчастникиСтудентыФИО);
    //ЗапуститьПриложение(СсылкаНаПортфолио );
    КонецЕсли;
    КонецПроцедуры
```
---
Ну и пусть не работает. Пока ты не научишься пользоваться Отладчиком, пока ты не научишься сообщать текст ошибки, пока ты не научишься оформлять код в своих комментариях и постах в соответствии с возможностями форума - не надейся на помощь.
---
Вот я сейчас как раз и учусь :-)
---
Ладно, я сегодня добрый, мне предложили работу на 350К (net).
Поэтому я тебе помогу, несмотря на твой идиотизм и на твоё хамство.
Так вот, сравни две своих картинки, и подумай - что тут не так?
---
на твой идиотизм и на твоё хамство.
Так вот, сравни две своих картинки, и подумай - что тут не так?
Это где то я хамил?
А у меня ЗП 30тр. :-(
---
А у меня ЗП 30тр. :-( Вот поэтому и не хами и не выёживайся. Иначе тебе в профессии не вырасти.
---
Вот поэтому и не хами и не выёживайся. Иначе тебе в профессии не вырасти.
Я не хамлю и не выеживаюсь, а расти мне уже некогда, я итак уже член-корреспондент
---
Народ, походу заработало:

```1c
    &НаКлиенте
    Процедура УчастникиСтудентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    Если Поле.Имя = "СсылкаНаПортфолио" Тогда
    //Сообщить("ваыв");
    ТекДанные = Элементы.УчастникиСтуденты.ТекущиеДанные;
    //Сообщить (ТекДанные.УчастникиСтудентыФИО);
    СсылкаНаПортфолио = ПолучитьСсылкуНаПортфолио(ТекДанные.СписокСтудентов);
    //Сообщить (СсылкаНаПортфолио);
    ЗапуститьПриложение(СсылкаНаПортфолио );
    КонецЕсли;
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьСсылкуНаПортфолио(Студент)
    Возврат Студент.СсылкаНаПортфолио;
    КонецФункции
```
---
Да, все заработало! Спасибо всем огромное!!!
---
Если долго мучиться, что-нибудь получится. Изучите отладчик - без него работа, как спринт без левой ноги.