Автоматический ввод информации

1. user2090550 03.06.24 23:43 Сейчас в теме
1С: Предприятие 8.3 (учебная версия). Пишу дипломную работу и возник такой вот вопрос.

У меня есть документ Документы с реквизитами:
Истец,
Ответчик,
РезультатРассмотрения.

Также у меня есть документ Должники с реквизитами:
Дело (ДокументСсылка.Документы),
Истец,
Ответчик,
РезультатРассмотрения.
Реквизитов на самом деле больше, но остальные дела не касаются.

Как сделать так, чтобы реквизиты из документа Документы автоматически подтягивались в документ Должники в зависимости от выбранного реквизита Дело?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. jmw 60 04.06.24 05:07 Сейчас в теме
Напрямую не пробовали?
Объект.Истец = Дело.Истец;
Объект.Ответчик = Дело.Ответчик;
Объект.РезультатРассмотрения = Дело.РезультатРассмотрения;
3. user2090550 04.06.24 10:27 Сейчас в теме
(2)
Он почему-то не видит Дело...

{Документ.Должники.Форма.ФормаДокумента.Форма(3,17)}: Переменная не определена (Дело)
	Объект.Истец = <<?>>Дело.Истец; (Проверка: Тонкий клиент)
{Документ.Должники.Форма.ФормаДокумента.Форма(4,19)}: Переменная не определена (Дело)
Объект.Ответчик = <<?>>Дело.Ответчик; (Проверка: Тонкий клиент)
{Документ.Должники.Форма.ФормаДокумента.Форма(5,32)}: Переменная не определена (Дело)
Объект.РезультатРассмотрения = <<?>>Дело.РезультатРассмотрения; (Проверка: Тонкий клиент)


Пробовала что-то типа Объект.Дело.Истец, но тогда ругается уже в отладке

Поле объекта не обнаружено (Истец)
{Документ.Должники.Форма.ФормаДокумента.Форма(3)}:Объект.Истец = Объект.Дело.Истец;
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
4. KirillZ44 3 04.06.24 10:36 Сейчас в теме
(3) А какая у вас директива компиляции? Можете привести текст всей процедуры?
5. user2090550 04.06.24 10:52 Сейчас в теме
(4)
&НаКлиенте
Процедура ДелоПриИзменении(Элемент)
	Объект.Истец = Объект.Дело.Истец;
Объект.Ответчик = Объект.Дело.Ответчик;
Объект.РезультатРассмотрения = Объект.Дело.РезультатРассмотрения;
КонецПроцедуры
6. KirillZ44 3 04.06.24 11:17 Сейчас в теме
(5) Вы на клиенте пытаетесь получить реквизиты через точку от ссылки, это не сработает. Для получения данных вашего документа "Дело" программе необходимо обратиться к базе данных, а для этого нужны директивы компиляции &НаСервере или &НаСервереБезКонтекста, т.е. выполнить код на сервере.

Попробуйте так:

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

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


Возможно, не оптимально и не совсем правильно, но, возможно, меня поправят.
7. scarl1n 04.06.24 12:12 Сейчас в теме
(6)
&НаКлиенте
Процедура ДелоПриИзменении(Элемент)
	стРеквизитыДела = стЗначенияРеквизитовОбъектаПоСсылке(Объект.Дело, "Истец,Ответчик,РезультатРассмотрения");
	ЗаполнитьЗначенияСвойств(Объект, стРеквизитыДела);  
КонецПроцедуры

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

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