Изменить реквизиты документа в обработке

1. user824565 28.09.24 10:23 Сейчас в теме
Управляемые формы.
У документа есть реквизит1 = перечисление
реквизит2 = строка.
Создаю обработку с тремя полями: 1. Выбор документа. 2. Перечисление. 3. строка.
Необходимо, чтобы при выборе документа заполнялись поля 2 и 3 из документа.
Не пойму как ПолучитьОбъект() из выбранного в п.1...
По теме из базы знаний
Найденные решения
3. BarsukM 28.09.24 13:37 Сейчас в теме
ДокОбъект = ЭтаФорма.ВыбранныйДокумент.ПолучитьОбъект();

Только для решения указанной задачи объект не нужен.Лучше получать значения реквизитов документа запросом в событии ПриИзменении поля выбора.
Хотя если строка неограниченной длины, то наверное проще брать из объекта, да.
9. user2107191 29.09.24 13:40 Сейчас в теме
(8)
Поле объекта не обнаружено СтатусСтарый и на СтатусНовый...
И в каком объекте не обнаружено? И в какой процедуре? В той, в которой ты на клиенте собрался получить серверный объект?
Что говорит отладчик?

Вангую, у тебя и в модуле формы есть переменная Документ или Док, и на форме есть такой реквизит...
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107191 28.09.24 10:28 Сейчас в теме
1. ПриИзменении()
2. Зачем тебе объект? Объект предназначен только для изменения и последующей записи данных в нем.
5. user824565 29.09.24 13:00 Сейчас в теме
(2) Это и требуется. При выборе документа, подтягиваются реквизиты именно для изменения этой обработкой. Я просто забыл это указать... Обработка именно для того, чтобы откорректировать реквизиты..
6. user2107191 29.09.24 13:07 Сейчас в теме
(5) Ну ок, продолжай. Как подтянутся - сообщи.
7. user824565 29.09.24 13:24 Сейчас в теме
8. user824565 29.09.24 13:25 Сейчас в теме
(7)
&НаКлиенте
Процедура ДокументПриИзменении(Элемент)
	ЭтаФорма.СтатусСтарый = ЭтаФорма.Документ.СтатусСтарый;
	ЭтаФорма.СтатусНовый = ЭтаФорма.Документ.СтатусНовый;
КонецПроцедуры

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



Поле объекта не обнаружено СтатусСтарый и на СтатусНовый...
9. user2107191 29.09.24 13:40 Сейчас в теме
(8)
Поле объекта не обнаружено СтатусСтарый и на СтатусНовый...
И в каком объекте не обнаружено? И в какой процедуре? В той, в которой ты на клиенте собрался получить серверный объект?
Что говорит отладчик?

Вангую, у тебя и в модуле формы есть переменная Документ или Док, и на форме есть такой реквизит...
10. user1936660 29.09.24 15:42 Сейчас в теме
(8)
Поле объекта не обнаружено
Не стоит разыменовывать ссылки и получать объекты на клиенте.
user2107191; +1 Ответить
3. BarsukM 28.09.24 13:37 Сейчас в теме
ДокОбъект = ЭтаФорма.ВыбранныйДокумент.ПолучитьОбъект();

Только для решения указанной задачи объект не нужен.Лучше получать значения реквизитов документа запросом в событии ПриИзменении поля выбора.
Хотя если строка неограниченной длины, то наверное проще брать из объекта, да.
4. user2107191 28.09.24 14:02 Сейчас в теме
(3)
Хотя если строка неограниченной длины, то наверное проще брать из объекта, да.
Обоснуй?
А если следовать логике - то строки неограниченной длины из регистра проще читать с помощью Менеджера Записи или НабораЗаписей?

// Обожаю слово "проще". Этакая лёгкая подмена понятий, когда стыдно говорить "это неправильно, но мне лень делать правильно".
11. user824565 30.09.24 08:26 Сейчас в теме
Спасибо всем большое. Разобрался!!!
Оставьте свое сообщение

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