Данные в печатной форме из справочника

1. user1791360 10.05.23 10:16 Сейчас в теме
Добрый день! Помогите советом плиииз.
Имеется справочника студенты с фио студента и наименованием группы, факультета. Данные в группы, факультета берутся из другого справочика. Есть документ, в котором используется данные группы, факультета посредством который ссылки на объект (Объект.УчебнаяГруппа.Родитель). Как сделать так, чтобы в печатной форме документа отображались данные группы, факультета. Заранее спасибо!
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
34. karamazoff 124 10.05.23 14:02 Сейчас в теме
Ну в документе же есть ссылка на студента? Иначе - на кого-же мед. карта выписывается? А если есть ссылка, дальше, через точку, можно получить любые данные объекта и подчиненных объектов. Посмотрите через точку, что у вас в ссылке, у меня же нет вашей базы, я не волшебник
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Torin 847 10.05.23 10:39 Сейчас в теме
(1) Аля Объект.Студент.Факультет.Родитель.
3. user1791360 10.05.23 10:42 Сейчас в теме
(2)
Где конкретно это прописать?
4. Torin 847 10.05.23 10:43 Сейчас в теме
(3) ну вы же как то ФИОСтудент получаете :)
5. user1791360 10.05.23 11:04 Сейчас в теме
Через объект, прописываю Путь к данным в форме. Ну это в форме документа. А в печатной форме в каком параметре это указать?
6. user1791360 10.05.23 11:16 Сейчас в теме
Судя по всему нужно изменить что-то в коде, вот код:

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

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

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

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

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

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

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

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

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

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

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

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

		ВставлятьРазделительСтраниц = Истина;
	КонецЦикла;
	//}}
КонецПроцедуры
Показать
7. user1791360 10.05.23 11:21 Сейчас в теме
Или может все намного проще и все можно настроить в макете печати?
8. karamazoff 124 10.05.23 11:23 Сейчас в теме
(7)Да! В макете, в нужной области надо завести параметр, и в коде присвоить ему значение
9. user1791360 10.05.23 11:30 Сейчас в теме
Параметр уже есть, он называется Факультет, в каком месте прописать ему значение? Заранее спасибо за разъяснение
10. karamazoff 124 10.05.23 11:34 Сейчас в теме
вот где-то тут
ОбластьПрофилактика.Параметры.Факультет = Строка("что надо");

Перед Вывести
11. user1791360 10.05.23 12:49 Сейчас в теме
(10)
ОбластьПрофилактика.Параметры.Факультет = Строка("что надо");

Прописываю обычный текст все выводит, пытаюсь разместить ссылку пишет ошибку. Что нет так?
Прикрепленные файлы:
13. karamazoff 124 10.05.23 12:51 Сейчас в теме
(11)ну заверните в Строка, все выведет
14. user1791360 10.05.23 12:52 Сейчас в теме
(13Не понял, в кавычки что ли? :-)
16. karamazoff 124 10.05.23 12:54 Сейчас в теме
(14)нет, точка остонова здесь
Шапка.Параметры.Факультет = Строка(МедицинскиеКарты.ФИОСтудента.УчебнаяГруппа.Родитель);
смотрим что у нас есть по этому значению, делаем выводы
12. user1791360 10.05.23 12:51 Сейчас в теме
Так тоже не работает:
Шапка.Параметры.Заполнить(Выборка);
		Шапка.Параметры.Факультет = Строка(МедицинскиеКарты.ФИОСтудента.УчебнаяГруппа.Родитель);
		ТабДок.Вывести(Шапка, Выборка.Уровень());
15. user1791360 10.05.23 12:52 Сейчас в теме
Неее, в кавычках выводит то, что в кавычках
Шапка.Параметры.Факультет = Строка("ФИОСтудента.УчебнаяГруппа.Родитель");
17. user1791360 10.05.23 12:56 Сейчас в теме
Он даже на этапе проверке пишет, что ошибки, даже без отладки, а при запуске и нажатии на печать пишет переменная не определена
19. karamazoff 124 10.05.23 13:01 Сейчас в теме
(17)Кто он? надо в макете найти область, где прописан параметр Факультет и присвоить ему строковое значение, которое надо взять из результатов запроса, у вас же есть ссылка, берите из нее!
20. user1791360 10.05.23 13:06 Сейчас в теме
(19)
прописан параметр Факульте

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

Прописал код "ФИОСтудента.УчебнаяГруппа.Родитель)", но ошибка - переменная не найдена
21. karamazoff 124 10.05.23 13:08 Сейчас в теме
(20)может так? Выборка.Факультет? По точке отстанова посмотрите что у вас в Выборка
24. user1791360 10.05.23 13:13 Сейчас в теме
(21)
те что у вас в Выборка

Где прописать эту выборку?
25. karamazoff 124 10.05.23 13:16 Сейчас в теме
(24)У вас, в приведенном коде запрос, там цикл, где Выборка.Следующий() внутри цикла доступны все поля Выборки, к ним можно обратиться через точку
26. user1791360 10.05.23 13:20 Сейчас в теме
(25)
У вас, в приденном коде запрос, там цикл, где Выборка.Следующий() внутри цикла доступны все поля Выборки, к ним можно обратиться через точку

Извините, но у меня выборка следующий только для табличных частей, данные о факультете у меня в шапке, в ней нет никакого цикла
29. karamazoff 124 10.05.23 13:25 Сейчас в теме
(26)Вы издеваетесь? У вас есть ссылка, вы ее в запрос передаете, возьмите из нее все что надо и запихните в шапку
 Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.НужныйПараметр =
31. user1791360 10.05.23 13:50 Сейчас в теме
(29)
зьмите из нее все что надо и запихните в шапку
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.НужныйПараметр =

Нисколько не издеваюсь, пытаюсь реализовать:
Ссылка есть "ФИОСтудента.УчебнаяГруппа.Родитель" ,вставлю в шапку, ошибка неизвестная переменная
Шапка.Параметры.Факультет = Строка(ФИОСтудента.УчебнаяГруппа.Родитель);
18. user1791360 10.05.23 12:59 Сейчас в теме
Вот скрин:
Прикрепленные файлы:
22. user1791360 10.05.23 13:11 Сейчас в теме
Поставил точку останова, но до нее не доходит, посмотреть значение не представляется возможным...
Прикрепленные файлы:
23. user1791360 10.05.23 13:12 Сейчас в теме
подробно
Прикрепленные файлы:
27. user1791360 10.05.23 13:21 Сейчас в теме
Вот этот список полей имеется ввиду?
Запрос.Текст =
	"ВЫБРАТЬ
	|	МедицинскиеКарты.Дата,
	|	МедицинскиеКарты.ДатаРождения,
	|	МедицинскиеКарты.МестоЖительства,
	|	МедицинскиеКарты.МестоПрикрепленияПолиса,
	|	МедицинскиеКарты.Номер,
	|	МедицинскиеКарты.НомерПолиса,
	|	МедицинскиеКарты.ПаспортДатаВыдачи,
	|	МедицинскиеКарты.ПаспортМестоВыдачи,
	|	МедицинскиеКарты.ПаспортНомер,
	|	МедицинскиеКарты.ПаспортСерия,
	|	МедицинскиеКарты.Пол,
	|	МедицинскиеКарты.СтраховаяКомпания,
	|	МедицинскиеКарты.Телефон,
	|	МедицинскиеКарты.УчебнаяГруппа,
	|	МедицинскиеКарты.Факультет,
	|	МедицинскиеКарты.ФИОСтудента,
	|	МедицинскиеКарты.Профосмотры.(
	|		НомерСтроки,
	|		Возраст,
	|		ДатаПрохожденияПО,
	|		Заключение,
	|		ГруппаЗдоровья,
	|		МедицинскаяОрганизация
	|	),
Показать
28. user1791360 10.05.23 13:24 Сейчас в теме
Насколько я понял данные нужно помещать сюда, но какую контсрукцию разместить, чтобы вместо"ыаваыв" были данные из соответствующего справочника?
Шапка.Параметры.Заполнить(Выборка);
                Шапка.Параметры.Факультет = Строка("ыаваыв");
		ТабДок.Вывести(Шапка, Выборка.Уровень());
30. karamazoff 124 10.05.23 13:41 Сейчас в теме
Строка(Ссылка.Факультет) Если этот реквизит именно так называется в объекте
32. user1791360 10.05.23 13:53 Сейчас в теме
(30)
Факультет)

Извините, но в этом как раз и проблема, в документе нет такого реквизита, он берется из справочника Студенты, а туда он в свою очередь попадает из справочника Учебные группы, где факультет является родителем
33. user1791360 10.05.23 13:58 Сейчас в теме
Прописал, не работает:
Шапка.Параметры.Заполнить(Выборка);
		Шапка.Параметры.Факультет = Строка(Ссылка.ФИОСтудента.УчебнаяГруппа);
		ТабДок.Вывести(Шапка, Выборка.Уровень());

при нажатии на печать ошибка поле объекта не обнаружено
34. karamazoff 124 10.05.23 14:02 Сейчас в теме
Ну в документе же есть ссылка на студента? Иначе - на кого-же мед. карта выписывается? А если есть ссылка, дальше, через точку, можно получить любые данные объекта и подчиненных объектов. Посмотрите через точку, что у вас в ссылке, у меня же нет вашей базы, я не волшебник
35. user1791360 10.05.23 14:07 Сейчас в теме
(34)
Да, есть! Вот и я думаю, что данные то передаются, а как их выудить? Где в документе посмотреть ссылку на фамилию? У меня в печати конфигурирует только одно выражение МедицинскиеКарты.ФИОСтудента. Дальше чтобы я не подставлял, все равно ошибка... Может проблема в том, что фио напрямую берется как наименование из справочника студенты, а группа из другого справочника? Как узнать текущую ссылку на фио справочника студенты и как узнать ссылку на другой справочник? Извините за тупость...
36. пользователь 10.05.23 15:07
Сообщение было скрыто модератором.
...
37. пользователь 10.05.23 15:13
Сообщение было скрыто модератором.
...
38. user1791360 10.05.23 15:22 Сейчас в теме
Помогите, пожалуйста, кто-нибудь... :-)
39. user1791360 10.05.23 15:32 Сейчас в теме
Все, заработало, спасибо всем кто навел на мысли!
З
апрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	МедицинскиеКарты.Дата,
	|	МедицинскиеКарты.ДатаРождения,
	|	МедицинскиеКарты.МестоЖительства,
	|	МедицинскиеКарты.МестоПрикрепленияПолиса,
	...
	|   МедицинскиеКарты.ФИОСтудента.УчебнаяГруппа.Родитель КАК Факультет,
	...
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот