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

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)
то где это происходит

Нигде. Спасибо!
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)