Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запись реквизита документа.

Запись реквизита документа.
Я
   Vasya1c
 
12.10.19 - 10:59
Здравствуйте, есть простенький вопрос.
Необходимо через доп реквизит документа, записать в реквизит Расш1_ПоследнийРедактор_(СправочникСсылка.Пользователи) пользователя который записывает документ, реквизит выведен на форму.

В модуле формы док-та пишу

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


В отладчике ЭтотОбъект.Расш1_ПоследнийРедактор_ , все прекрасно то что нужно и сообщить тоже правильно выводит, но при открытии документа остается в этом реквизите старое значение.
 
 
   ads55
 
1 - 12.10.19 - 11:56
ЭтотОбъект.Записать();
   Фрэнки
 
2 - 12.10.19 - 12:11
Э... В модуле формы ЭтотОбъект ?!

Если обращаешься в контексте "на сервере" в модуль формы, т.е. это все-таки Форма - у формы есть реквизиты Формы, а значение из реквизита получается вызовом соотв. функции.
   Vasya1c
 
3 - 12.10.19 - 12:12
Добавил в конце
 ЭтотОбъект.Записать();

При попытке записать документ программа крашится, нажимаю записать она думает и закрывается без всяких окон.
а так, все работает ))//ЭтотОбъект.Записать();
   Фрэнки
 
4 - 12.10.19 - 12:19
Какой тип у этого ЭтотОбъект ? - глянь, не поленись, пжл
   Vasya1c
 
5 - 12.10.19 - 12:25
ЭтотОбъект    ФормаКлиентскогоПриложения
   Фрэнки
 
6 - 12.10.19 - 12:33
и? извиняюсь за мой французский - какой смысл в записи Формы? Она же не доступна для записи, т.к. пишется из режима конфигурировании.
   Фрэнки
 
7 - 12.10.19 - 12:36
Тебе же Объект в виде документа нужен или что?
   Vasya1c
 
8 - 12.10.19 - 12:38
Фрэнки, я туплю 
переделал так, но не записывается.

Объект.Расш1_ПоследнийРедактор_=КонтрагентДляПоиска.НайтиПоНаименованию(ИмяПользователь);


Объект    тип значения ДанныеФормыСтруктура
   Vasya1c
 
9 - 12.10.19 - 12:38
Мне нужно записать в реквизит значение и я пытаюсь это сделать.
   Vasya1c
 
10 - 12.10.19 - 13:00
Ребята спасибо, раньше работал с 7.7 пока много непонятного  , прочитал https://helpf.pro/faq82/view/1283.html и понял.

Мне нужен был модуль объекта, ПередЗаписью

Все ок
   Фрэнки
 
11 - 12.10.19 - 13:03
Не совсем понимаю логику установки некоего значения в форме в событии ПередЗаписью - может это не совсем логично? Не знаю.

Но допустим, что у твоей Формы есть реквизит Объект
---

ОбъектЗначение = РеквизитФормыВЗначение("Объект");// можно еще вторым параметром Тип этого объекта указать явно.

ОбъектЗначение.Расш1_ПоследнийРедактор_ = КонтрагентДляПоиска.НайтиПоНаименованию(ИмяПользователь);
ЗначениеВРеквизитФормы(ОбъектЗначение, "Объект");

---
С другой стороны, как ты сам уже написал, что тоже самое в модуле Объекта и в ПередЗаписью сделать намного удобней
   Vasya1c
 
12 - 12.10.19 - 13:32
Фрэнки, благодарю за помощь
   RomanYS
 
13 - 12.10.19 - 13:37
(11) Зачем в такой ситуации РеквизитФормыВЗначение-ЗначениеВРеквизитФормы?

Чем это лучше простого
Объект.Расш1_ПоследнийРедактор_ = ...
?
   Фрэнки
 
14 - 12.10.19 - 13:48
(13) А есть непростые примеры, на которых можно прямо, явно и однозначно увидеть, что пара методов
РеквизитФормыВЗначение - ЗначениеВРеквизитФормы
заведомо лучше прямого обращения к полям Реквизита формы через точку?

Под руками у меня ничего готового нет, кроме одного пояснения, что в Объект установлен тип значения ДанныеФормыСтруктура
   RomanYS
 
15 - 12.10.19 - 13:55
(14) Ну я только одну причину для таких преобразований вижу: вызов методов объекта. По самим полям ДанныеФормыСтруктура вполне соответствует объекту, а те свойства, которых нет в ДФС (например, ДополнительныеСвойства) всё равно потеряются при ЗначениеВРеквизитФормы.
   Rovan
 
16 - 12.10.19 - 14:36
может лучше
ТекущийОбъект.Реквизит = ...
   Фрэнки
 
17 - 12.10.19 - 15:09
(16) может и лучше...

Как думаешь, вот эта запись ниже произвольная или жестко предопределенная?

---
В модуле формы док-та пишу
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   RomanYS
 
18 - 12.10.19 - 15:18
(16) Если реквизит не выведен на форму, то лучше. Если выведен то лучше
&НаСервере
Процедура ПередЗаписью(...)
  Объект.Реквизит = ...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.