Добрый день! Помогите советом плиииз.
Имеется справочника студенты с фио студента и наименованием группы, факультета. Данные в группы, факультета берутся из другого справочика. Есть документ, в котором используется данные группы, факультета посредством который ссылки на объект (Объект.УчебнаяГруппа.Родитель). Как сделать так, чтобы в печатной форме документа отображались данные группы, факультета. Заранее спасибо!
---
Ну в документе же есть ссылка на студента? Иначе - на кого-же мед. карта выписывается? А если есть ссылка, дальше, через точку, можно получить любые данные объекта и подчиненных объектов. Посмотрите через точку, что у вас в ссылке, у меня же нет вашей базы, я не волшебник
---
Аля Объект.Студент.Факультет.Родитель.
---
Где конкретно это прописать?
---
ну вы же как то ФИОСтудент получаете :)
---
Через объект, прописываю Путь к данным в форме. Ну это в форме документа. А в печатной форме в каком параметре это указать?
---
Судя по всему нужно изменить что-то в коде, вот код:

```1c
    Процедура Печать(ТабДок, Ссылка) Экспорт
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
    Макет = Документы.МедицинскиеКарты.ПолучитьМакет("Печать");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | МедицинскиеКарты.Дата,
    | МедицинскиеКарты.ДатаРождения,
    | МедицинскиеКарты.МестоЖительства,
    | МедицинскиеКарты.МестоПрикрепленияПолиса,
    | МедицинскиеКарты.Номер,
    | МедицинскиеКарты.НомерПолиса,
    | МедицинскиеКарты.ПаспортДатаВыдачи,
    | МедицинскиеКарты.ПаспортМестоВыдачи,
    | МедицинскиеКарты.ПаспортНомер,
    | МедицинскиеКарты.ПаспортСерия,
    | МедицинскиеКарты.Пол,
    | МедицинскиеКарты.СтраховаяКомпания,
    | МедицинскиеКарты.Телефон,
    | МедицинскиеКарты.УчебнаяГруппа,
    | МедицинскиеКарты.Факультет,
    | МедицинскиеКарты.ФИОСтудента,
    | МедицинскиеКарты.Профосмотры.(
    | НомерСтроки,
    | Возраст,
    | ДатаПрохожденияПО,
    | Заключение,
    | ГруппаЗдоровья,
    | МедицинскаяОрганизация
    | ),
    | МедицинскиеКарты.ПосещениеВрачей.(
    | НомерСтроки,
    | ДатаПосещенияВрача,
    | ДолжностьВрача,
    | ПричинаОбращенияКВрачу,
    | ПоставленныйДиагноз,
    | РекомендацииПоЛечению
    | ),
    | МедицинскиеКарты.Обследования.(
    | НомерСтроки,
    | НаименованиеОбследования,
    | ДатаОбследования,
    | МетоПрохожденияОбследовния,
    | ПричинаОбследования,
    | РезультатОбследования
    | ),
    | МедицинскиеКарты.БольничныеЛисты.(
    | НомерСтроки,
    | ДатаВыдачиБЛ,
    | НомерБольничного,
    | КодЗаболеваний,
    | ДопКодЗаболевания
    | ),
    | МедицинскиеКарты.Профилактика.(
    | НомерСтроки,
    | Возраст,
    | ДатаПрививки,
    | Прививка,
    | Вакцина,
    | СерияВакцины,
    | ПроизводительВакцины
    | )
    |ИЗ
    | Документ.МедицинскиеКарты КАК МедицинскиеКарты
    |ГДЕ
    | МедицинскиеКарты.Ссылка В (&Ссылка)";
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();

    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьПрофосмотрыШапка = Макет.ПолучитьОбласть("ПрофосмотрыШапка");
    ОбластьПрофосмотры = Макет.ПолучитьОбласть("Профосмотры");
    ОбластьПосещениеВрачейШапка = Макет.ПолучитьОбласть("ПосещениеВрачейШапка");
    ОбластьПосещениеВрачей = Макет.ПолучитьОбласть("ПосещениеВрачей");
    ОбластьОбследованияШапка = Макет.ПолучитьОбласть("ОбследованияШапка");
    ОбластьОбследования = Макет.ПолучитьОбласть("Обследования");
    ОбластьБольничныеЛистыШапка = Макет.ПолучитьОбласть("БольничныеЛистыШапка");
    ОбластьБольничныеЛисты = Макет.ПолучитьОбласть("БольничныеЛисты");
    ОбластьПрофилактикаШапка = Макет.ПолучитьОбласть("ПрофилактикаШапка");
    ОбластьПрофилактика = Макет.ПолучитьОбласть("Профилактика");
    Подвал = Макет.ПолучитьОбласть("Подвал");

    ТабДок.Очистить();

    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
    Если ВставлятьРазделительСтраниц Тогда
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;

    ТабДок.Вывести(ОбластьЗаголовок);

    Шапка.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(Шапка, Выборка.Уровень());

    ТабДок.Вывести(ОбластьПрофосмотрыШапка);
    ВыборкаПрофосмотры = Выборка.Профосмотры.Выбрать();
    Пока ВыборкаПрофосмотры.Следующий() Цикл
    ОбластьПрофосмотры.Параметры.Заполнить(ВыборкаПрофосмотры);
    ТабДок.Вывести(ОбластьПрофосмотры, ВыборкаПрофосмотры.Уровень());
    КонецЦикла;

    ТабДок.Вывести(ОбластьПосещениеВрачейШапка);
    ВыборкаПосещениеВрачей = Выборка.ПосещениеВрачей.Выбрать();
    Пока ВыборкаПосещениеВрачей.Следующий() Цикл
    ОбластьПосещениеВрачей.Параметры.Заполнить(ВыборкаПосещениеВрачей);
    ТабДок.Вывести(ОбластьПосещениеВрачей, ВыборкаПосещениеВрачей.Уровень());
    КонецЦикла;

    ТабДок.Вывести(ОбластьОбследованияШапка);
    ВыборкаОбследования = Выборка.Обследования.Выбрать();
    Пока ВыборкаОбследования.Следующий() Цикл
    ОбластьОбследования.Параметры.Заполнить(ВыборкаОбследования);
    ТабДок.Вывести(ОбластьОбследования, ВыборкаОбследования.Уровень());
    КонецЦикла;

    ТабДок.Вывести(ОбластьБольничныеЛистыШапка);
    ВыборкаБольничныеЛисты = Выборка.БольничныеЛисты.Выбрать();
    Пока ВыборкаБольничныеЛисты.Следующий() Цикл
    ОбластьБольничныеЛисты.Параметры.Заполнить(ВыборкаБольничныеЛисты);
    ТабДок.Вывести(ОбластьБольничныеЛисты, ВыборкаБольничныеЛисты.Уровень());
    КонецЦикла;

    ТабДок.Вывести(ОбластьПрофилактикаШапка);
    ВыборкаПрофилактика = Выборка.Профилактика.Выбрать();
    Пока ВыборкаПрофилактика.Следующий() Цикл
    ОбластьПрофилактика.Параметры.Заполнить(ВыборкаПрофилактика);
    ТабДок.Вывести(ОбластьПрофилактика, ВыборкаПрофилактика.Уровень());
    КонецЦикла;

    Подвал.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(Подвал);

    ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    //}}
    КонецПроцедуры
```
---
Или может все намного проще и все можно настроить в макете печати?
---
Да! В макете, в нужной области надо завести параметр, и в коде присвоить ему значение
---
Параметр уже есть, он называется Факультет, в каком месте прописать ему значение? Заранее спасибо за разъяснение
---
вот где-то тут

```1c
    ОбластьПрофилактика.Параметры.Факультет = Строка("что надо");
```

Перед Вывести
---
ОбластьПрофилактика.Параметры.Факультет = Строка("что надо");
Прописываю обычный текст все выводит, пытаюсь разместить ссылку пишет ошибку. Что нет так?
---
ну заверните в Строка, все выведет
---
(13Не понял, в кавычки что ли? :-)
---
нет, точка остонова здесь
Шапка.Параметры.Факультет = Строка(МедицинскиеКарты.ФИОСтудента.УчебнаяГруппа.Родитель);
смотрим что у нас есть по этому значению, делаем выводы
---
Так тоже не работает:

```1c
    Шапка.Параметры.Заполнить(Выборка);
    Шапка.Параметры.Факультет = Строка(МедицинскиеКарты.ФИОСтудента.УчебнаяГруппа.Родитель);
    ТабДок.Вывести(Шапка, Выборка.Уровень());
```
---
Неее, в кавычках выводит то, что в кавычках
Шапка.Параметры.Факультет = Строка("ФИОСтудента.УчебнаяГруппа.Родитель");
---
Он даже на этапе проверке пишет, что ошибки, даже без отладки, а при запуске и нажатии на печать пишет переменная не определена
---
Кто он? надо в макете найти область, где прописан параметр Факультет и присвоить ему строковое значение, которое надо взять из результатов запроса, у вас же есть ссылка, берите из нее!
---
прописан параметр Факульте
Так
```1c
    вроде бы нашел же где прописан параметр. Разве не здесь?
    Шапка.Параметры.Заполнить(Выборка);
    Шапка.Параметры.Факультет = Строка(МедицинскиеКарты.ФИОСтудента.УчебнаяГруппа.Родитель);
    ТабДок.Вывести(Шапка, Выборка.Уровень());
```

Прописал код "ФИОСтудента.УчебнаяГруппа.Родитель)", но ошибка - переменная не найдена
---
может так? Выборка.Факультет? По точке отстанова посмотрите что у вас в Выборка
---
те что у вас в Выборка
Где прописать эту выборку?
---
У вас, в приведенном коде запрос, там цикл, где Выборка.Следующий() внутри цикла доступны все поля Выборки, к ним можно обратиться через точку
---
У вас, в приденном коде запрос, там цикл, где Выборка.Следующий() внутри цикла доступны все поля Выборки, к ним можно обратиться через точку
Извините, но у меня выборка следующий только для табличных частей, данные о факультете у меня в шапке, в ней нет никакого цикла
---
Вы издеваетесь? У вас есть ссылка, вы ее в запрос передаете, возьмите из нее все что надо и запихните в шапку

```1c
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.НужныйПараметр =
```
---
зьмите из нее все что надо и запихните в шапку
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.НужныйПараметр =
Нисколько не издеваюсь, пытаюсь реализовать:
Ссылка есть "ФИОСтудента.УчебнаяГруппа.Родитель" ,вставлю в шапку, ошибка неизвестная переменная
Шапка.Параметры.Факультет = Строка(ФИОСтудента.УчебнаяГруппа.Родитель);
---
Вот скрин:
---
Поставил точку останова, но до нее не доходит, посмотреть значение не представляется возможным...
---
подробно
---
Вот этот список полей имеется ввиду?

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | МедицинскиеКарты.Дата,
    | МедицинскиеКарты.ДатаРождения,
    | МедицинскиеКарты.МестоЖительства,
    | МедицинскиеКарты.МестоПрикрепленияПолиса,
    | МедицинскиеКарты.Номер,
    | МедицинскиеКарты.НомерПолиса,
    | МедицинскиеКарты.ПаспортДатаВыдачи,
    | МедицинскиеКарты.ПаспортМестоВыдачи,
    | МедицинскиеКарты.ПаспортНомер,
    | МедицинскиеКарты.ПаспортСерия,
    | МедицинскиеКарты.Пол,
    | МедицинскиеКарты.СтраховаяКомпания,
    | МедицинскиеКарты.Телефон,
    | МедицинскиеКарты.УчебнаяГруппа,
    | МедицинскиеКарты.Факультет,
    | МедицинскиеКарты.ФИОСтудента,
    | МедицинскиеКарты.Профосмотры.(
    | НомерСтроки,
    | Возраст,
    | ДатаПрохожденияПО,
    | Заключение,
    | ГруппаЗдоровья,
    | МедицинскаяОрганизация
    | ),
```
---
Насколько я понял данные нужно помещать сюда, но какую контсрукцию разместить, чтобы вместо"ыаваыв" были данные из соответствующего справочника?

```1c
    Шапка.Параметры.Заполнить(Выборка);
    Шапка.Параметры.Факультет = Строка("ыаваыв");
    ТабДок.Вывести(Шапка, Выборка.Уровень());
```
---
Строка(Ссылка.Факультет) Если этот реквизит именно так называется в объекте
---
Факультет)
Извините, но в этом как раз и проблема, в документе нет такого реквизита, он берется из справочника Студенты, а туда он в свою очередь попадает из справочника Учебные группы, где факультет является родителем
---
Прописал, не работает:

```1c
    Шапка.Параметры.Заполнить(Выборка);
    Шапка.Параметры.Факультет = Строка(Ссылка.ФИОСтудента.УчебнаяГруппа);
    ТабДок.Вывести(Шапка, Выборка.Уровень());
```

при нажатии на печать ошибка поле объекта не обнаружено
---
Ну в документе же есть ссылка на студента? Иначе - на кого-же мед. карта выписывается? А если есть ссылка, дальше, через точку, можно получить любые данные объекта и подчиненных объектов. Посмотрите через точку, что у вас в ссылке, у меня же нет вашей базы, я не волшебник
---
Да, есть! Вот и я думаю, что данные то передаются, а как их выудить? Где в документе посмотреть ссылку на фамилию? У меня в печати конфигурирует только одно выражение МедицинскиеКарты.ФИОСтудента. Дальше чтобы я не подставлял, все равно ошибка... Может проблема в том, что фио напрямую берется как наименование из справочника студенты, а группа из другого справочника? Как узнать текущую ссылку на фио справочника студенты и как узнать ссылку на другой справочник? Извините за тупость...
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Помогите, пожалуйста, кто-нибудь... :-)
---
Все, заработало, спасибо всем кто навел на мысли!
З
```1c
    апрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | МедицинскиеКарты.Дата,
    | МедицинскиеКарты.ДатаРождения,
    | МедицинскиеКарты.МестоЖительства,
    | МедицинскиеКарты.МестоПрикрепленияПолиса,
    ...
    | МедицинскиеКарты.ФИОСтудента.УчебнаяГруппа.Родитель КАК Факультет,
    ...
```