Значение "Ответственный" не присваивается

1. babLucy 15.05.21 20:05 Сейчас в теме
Подскажите как установить значение "Ответственный" в документе (ПереносДанных - не суть).
Ответственный = Пользователи.ТекущийПользователь() 
не устанавливается.
По теме из базы знаний
Найденные решения
15. webester 26 16.05.21 15:08 Сейчас в теме
(13)Перечитал 4 раза. Не вижу, чтобы документ записывался. Если документ не записывается, значит он не изменяется. Если он записывается, то где это происходит?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. M_A_D 184 15.05.21 20:23 Сейчас в теме
(1)
Вы передаете текущего пользователя в Переменную Ответственный, а далее где-то переменную "Ответственный" передаете в реквизит документа?
Если нет, то это и есть причина.
а вообще можно использовать следующую конструкцию:

Документ = Документы.ВАШДОКУМЕНТ.СоздатьДокумент();
Документ.Ответственный = Пользователи.ТекущийПОльзователь();
...
Документ.Записать(РежимЗаписи.Проведение);
3. babLucy 15.05.21 20:31 Сейчас в теме
(2) Почему-то поле остается пустым.
4. M_A_D 184 15.05.21 20:32 Сейчас в теме
(3)
1. ПРоходились отладкой? (что передается в "Ответственный")?
2. Весь код создания документа в студию)
8. babLucy 16.05.21 10:29 Сейчас в теме
(4) Как уже писала, документ создаю внешней обработкой.
Это модуль формы самого документа:
НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Ключ.Пустая() Тогда
		
		ЗначенияДляЗаполнения = Новый Структура("Организация, Ответственный, Месяц", 
		"Объект.Организация",
		"Объект.Ответственный",
		"Объект.ПериодРегистрации");
		ЗарплатаКадры.ЗаполнитьПервоначальныеЗначенияВФорме(ЭтаФорма, ЗначенияДляЗаполнения);
		
		ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(ЭтаФорма, "Объект.ПериодРегистрации", "МесяцНачисленияСтрокой");
		
	КонецЕсли;
	
Показать
- далее
Процедура ЗаполнитьПервоначальныеЗначенияВФорме(Форма, ЗапрашиваемыеЗначения) Экспорт
	
	ФиксированныеЗначения = Новый Массив;
	Для Каждого ЗапрашиваемоеЗначение Из ЗапрашиваемыеЗначения Цикл
		// Поддерживаемое значение по умолчанию "Ответственный" имеет особое поведение - заполняется безусловно.
		Если ЗапрашиваемоеЗначение.Ключ = "Ответственный" Тогда
			Продолжить;
		КонецЕсли;
		Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути(Форма, ЗапрашиваемоеЗначение.Значение)) Тогда
			ФиксированныеЗначения.Добавить(ЗапрашиваемоеЗначение.Ключ)
		КонецЕсли	
	КонецЦикла;

	ЗаполнитьЗначенияВФорме(Форма, ЗапрашиваемыеЗначения, ФиксированныеЗначения);
	
КонецПроцедуры
Показать
Попыталась по аналогии
ЗначенияДляЗаполнения = Новый Структура("Ответственный", "ЭтаФорма.Ответственный");
	ЗарплатаКадры.ЗаполнитьПервоначальныеЗначенияВФорме(ЭтаФорма, ЗначенияДляЗаполнения);
- результат 0
Прикрепленные файлы:
9. M_A_D 184 16.05.21 10:43 Сейчас в теме
Я, скорее всего, что-то не понимаю...

Процедура «при создании на сервере» в форме ОБРАБОТКИ берет данные по ОБЪЕКТУ и вытягивает оттуда данные для заполнения в структуру... но вот не понимаю, объект в момент создания формы уже хранит нужные данные? Или все же нет?


(8)
10. babLucy 16.05.21 10:54 Сейчас в теме
(9) Исправила свое сообщение, чтобы было понятнее - 1 и 2 - это модуль формы документа, а не обработки.
Получается, что хранит
Прикрепленные файлы:
11. M_A_D 184 16.05.21 11:07 Сейчас в теме
(10)
В таком случае я действительно не понимаю...

Вы пишите про проблемы в обработке, а прикладываете код модуля документа...

В чем проблема в итоге?)))
5. Leon75 15.05.21 21:20 Сейчас в теме
(1)Попытка
Ответственный = ПараметрыСеанса.ТекущийПользователь;
Исключение
Ответственный = ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка");
КонецПопытки
6. webester 26 16.05.21 05:02 Сейчас в теме
1. Давайте сначала уберем конструкцию "Попытка - Исключение", потому, что если ошибка есть, она её съест
2. Давайте разберем контекст выполнения кода, где он выполняется? В форме объекта, в модуле объекта или где то еще?
3. УФ или ОФ? Процедура где это происходит клиентская серверная?
4. Ответственный это реквизит документа?
7. babLucy 16.05.21 09:45 Сейчас в теме
(6) 2. Выполняется в модуле формы внешней обработки.
3. УФ, серверная процедура.
4. Ответственный - это реквизит документа.
14. Leon75 16.05.21 15:04 Сейчас в теме
(6)Сама по себе конструкция Попытка Исключение КонецПопытки не является антипаттерном. ТС в 0 дала исходные данные задачи в стиле ОФ. Получила ответ в стиле ОФ.
16. webester 26 16.05.21 15:11 Сейчас в теме
(14)Не особо смотрю на ники, сорян. Я думал это неработающий код ТС. Конструкция не является чем либо плохим или хорошим. Но у нее есть конкретное назначение: Поймать ошибку там, где ее не избежать и что-то предпринять по этому поводу. В данном случае пока ошибка не найдена эта конструкция позволяет очень удобно выстрелить себе в ногу по причинам описанным выше.
18. Leon75 17.05.21 10:25 Сейчас в теме
(16)"не особо смотрю на ники", не особо смотрю в код, и тут внезапно появляется гипервнимательность и настойчивость, которая выдавливает из ТС вместо одной строки кода, которая граничит с дезинформацией, внятные данные, которые позволяют до истины рукой дотянуться.
Вам в безопасности нужно работать. В государственной....
12. webester 26 16.05.21 14:28 Сейчас в теме
(7)Я вижу вы Переменная с именем "Ответственный" создается и ей возможно присваивается какое-то значение. Реквизиту документа ничего не присваивается. Значит все работает правильно. Сам документ я вообще не вижу. Если дело конечно происходит в модуле формы обработки, а не в модуле объекта документа. Могу я увидеть код, где вы создаете документ? И где заполняете реквизит документа? Не модуль объекта или формы документа. А код где вы этот документ создаете и заполняете этот несчастный реквизит?
13. babLucy 16.05.21 14:58 Сейчас в теме
(12)
&НаСервере
Процедура ЗаписатьИсправленныеДанныеНаСервере()
	УстановитьПривилегированныйРежим(Истина);

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	РеестрКадровыхПриказов.Регистратор КАК Регистратор,
		|	РеестрКадровыхПриказов.Активность КАК Активность,
		|	РеестрКадровыхПриказов.Сотрудник КАК Сотрудник,
		|	РеестрКадровыхПриказов.ФизическоеЛицо КАК ФизическоеЛицо,
		|	РеестрКадровыхПриказов.Организация КАК Организация,
		|	РеестрКадровыхПриказов.ДокументОснование КАК ДокументОснование,
		|	РеестрКадровыхПриказов.Дата КАК Дата,
		|	РеестрКадровыхПриказов.Подразделение КАК Подразделение,
		|	РеестрКадровыхПриказов.Должность КАК Должность,
		|	РеестрКадровыхПриказов.Разряд КАК Разряд,
		|	РеестрКадровыхПриказов.ТарифнаяСтавкаНадбавка КАК ТарифнаяСтавкаНадбавка,
		|	РеестрКадровыхПриказов.ВидДоговора КАК ВидДоговора,
		|	РеестрКадровыхПриказов.ВидСобытия КАК ВидСобытия,
		|	РеестрКадровыхПриказов.ДатаПриказа КАК ДатаПриказа,
		|	РеестрКадровыхПриказов.НомерПриказа КАК НомерПриказа,
		|	РеестрКадровыхПриказов.Основание КАК Основание
		|ИЗ
		|	РегистрСведений.РеестрКадровыхПриказов КАК РеестрКадровыхПриказов
		|ГДЕ
		|	РеестрКадровыхПриказов.Сотрудник = &Сотрудник";
	
	Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);
	РезультатЗапроса = Запрос.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	
	Если Выборка.Следующий() Тогда
		Док = Выборка.Регистратор.ПолучитьОбъект();
		Док.Ответственный = Пользователи.ТекущийПользователь();
	КонецЕсли;
	
	НаборЗаписей = РегистрыСведений.РеестрКадровыхПриказов.СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);
	//НаборЗаписей.Прочитать();
	НаборЗаписей.Записать();
	
	//ТЗ = РеквизитФормыВЗначение("КадровыеДанные", Тип("ТаблицаЗначений"));
	
	НомерСтроки = 1;
	Для каждого СтрТЧ Из КадровыеДанные Цикл
		НовСтрокаНабора = НаборЗаписей.Добавить();
		ЗаполнитьЗначенияСвойств(НовСтрокаНабора, Выборка);
		НовСтрокаНабора.Активность = Истина;
		НовСтрокаНабора.Регистратор = Док.Ссылка;
		НовСтрокаНабора.ДокументОснование  = Док.Ссылка;
		НовСтрокаНабора.Сотрудник = Выборка.Сотрудник;
		НовСтрокаНабора.ФизическоеЛицо = Выборка.ФизическоеЛицо;
		НовСтрокаНабора.Организация = Выборка.Организация;
		НовСтрокаНабора.Подразделение = СтрТЧ.Подразделение;
		НовСтрокаНабора.Должность = СтрТЧ.Должность;
		НовСтрокаНабора.НомерПриказа = СтрТЧ.НомерПриказа;
		НовСтрокаНабора.Дата = СтрТЧ.Дата;
		НовСтрокаНабора.ДатаПриказа = СтрТЧ.ДатаПриказа;
		НовСтрокаНабора.ТарифнаяСтавкаНадбавка = СтрТЧ.ТарифнаяСтавкаНадбавка;
		НовСтрокаНабора.Номер = НомерСтроки;
		НомерСтроки = НомерСтроки + 1;
		
	КонецЦикла; 
	НаборЗаписей.Записать();
	УстановитьПривилегированныйРежим(Ложь);
		
	КонецПроцедуры
Показать
15. webester 26 16.05.21 15:08 Сейчас в теме
(13)Перечитал 4 раза. Не вижу, чтобы документ записывался. Если документ не записывается, значит он не изменяется. Если он записывается, то где это происходит?
17. babLucy 16.05.21 16:55 Сейчас в теме
(15)
то где это происходит

Нигде. Спасибо!
Оставьте свое сообщение

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