Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 02:31

Заполнить табличную часть беря данные из реквизита в табличной части с типом ссылка

Автор steeld, 01 июн 2023, 15:14

0 Пользователей и 1 гость просматривают эту тему.

steeld

Мне нужно в документе "МедицинскаяКарта" заполнить табличную часть "Операции". В ТЧ есть реквизит с типом ссылка, который ссылается на документ "РезультатОперацииИТерапии", мне нужно при нажатии на кнопку "Заполнить", заполнялись реквизиты. Я хочу чтобы у меня подставлялись в реквизит ссылки документов определенного пациента, который указан и в документе "МедицинскаяКарта" и в "РезультатОперацииИТерапии" и после заполнения реквизита ТЧ с типом ссылка из этой ссылки уже подставлялись остальные значения. Может это можно реализовать и не через ссылку, мне главное чтобы это все корректно заполнялось.

Приложил свой код и скрин того как он неправильно заполняет в документе ТЧ и еще скрин документа откуда нужно брать инфу.

&НаСервере
Процедура ЗаполнитьНаСервере()
      //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РезультатТерапииИлиОперации.Врач КАК Врач,
| РезультатТерапииИлиОперации.Терапия КАК Терапия,
| РезультатТерапииИлиОперации.Операция КАК Операция,
| РезультатТерапииИлиОперации.ВремяОкончания КАК ВремяОкончания,
| РезультатТерапииИлиОперации.ДатаНачала КАК ДатаНачала,
| РезультатТерапииИлиОперации.Продолжительность КАК Продолжительность
|ИЗ
| Документ.РезультатТерапииИлиОперации КАК РезультатТерапииИлиОперации";

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();

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

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

&НаКлиенте
Процедура Заполнить(Команда)
    ЗаполнитьНаСервере();
КонецПроцедуры

antoneus


steeld

С заполнением помогли, но я не понял как сделать чтобы заполнялись ссылки документов нужного мне пациента

antoneus

Условие в запросе

ГДЕ РезультатТерапииИлиОперации.Пациент = &Пациент

Запрос.УстановитьПараметр("Пациент", ИмяРеквизитаФормыВКоторомНаходитсяСсылкаНаПациента);
РезультатЗапроса = Запрос.Выполнить();

steeld

Спасибо, у меня добавляются в ТЧ строчки и их количество правильное, но данные не заполняются, в коде я сделал просто заполнение ссылки из запроса

&НаСервере
Процедура ЗаполнитьНаСервере()
      //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РезультатТерапииИлиОперации.Ссылка КАК Ссылка
|ИЗ
| Документ.РезультатТерапииИлиОперации КАК РезультатТерапииИлиОперации
|ГДЕ
| РезультатТерапииИлиОперации.Пациент = &Пациент";

Запрос.УстановитьПараметр("Пациент", Объект.Пациент);

РезультатЗапроса = Запрос.Выполнить();

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();

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

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

Как я понимаю нужно поменять что то здесь:

Выборка = РезультатЗапроса.Выбрать();

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

antoneus

ну если в тч Операции реквизит называется "СсылкаНаДокумент",то в запросе должно быть

ВЫБРАТЬ
|    РезультатТерапииИлиОперации.Ссылка КАК СсылкаНаДокумент


steeld


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск