Дополнительный реквизит сотрудника ЗУП 3.1

1. user1065288 2 14.11.18 06:15 Сейчас в теме
Здравствуйте. В справочнике сотрудники добавлен доп.реквизит (тип строка, длина 15). В данный момент не у всех сотрудников заполнен этот реквизит. Нужен был внешний отчет, который выводит начисления сотрудников по этому реквизиту. Но мой вариант выводит только уже записанные реквизиты. Как сделать, чтобы тем, у кого не заполнен реквизит, присваивались значению, например 0.0.0 , и выводились под этим реквизитом?
Код
По теме из базы знаний
Найденные решения
2. insurgut 207 14.11.18 06:31 Сейчас в теме
Что-то вроде...

Для Каждого СтрокаСотрудника Из СписокСотрудников Цикл

	НайденнаяСтрока = СтрокаСотрудника.Сотрудник.ДополнительныеРеквизиты.Найти(Наше_Свойство, "Свойство");

	Если НайденнаяСтрока = Неопределено Тогда

		СотрудникОбъект = СтрокаСотрудника.Сотрудник.ПолучитьОбъект();
		СтрокаСвойства = СотрудникОбъект.ДополнительныеРеквизиты.Добавить();
		СтрокаСвойства.Свойство = Наше_Свойство;
		СтрокаСвойства.Значение = "0.0.0";
		СотрудникОбъект.Записать();

	КонецЕсли;

КонецЦикла;
Показать
4. RedIn 14.11.18 08:10 Сейчас в теме
проще в отчете запрос исправить, чем пустые реквизиты плодить
ВЫБРАТЬ
	Сотрудники.Ссылка КАК Ссылка,
	СотрудникиДополнительныеРеквизиты.Свойство КАК Свойство,
	ЕСТЬNULL(СотрудникиДополнительныеРеквизиты.Значение, "0.0.0") КАК Значение
ИЗ
	Справочник.Сотрудники КАК Сотрудники
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники.ДополнительныеРеквизиты КАК СотрудникиДополнительныеРеквизиты
		ПО (Сотрудники.Ссылка = СотрудникиДополнительныеРеквизиты.Ссылка
				И СотрудникиДополнительныеРеквизиты.Свойство.Имя = "ИмяДопРеквизита")
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. geka-geka 3 14.11.18 07:57 Сейчас в теме
(1) Я бы сначала в первый пакет соединил справочник сотрудники с тч дополнительные реквизиты, а его уже во втором пакете соединил с регистром начисления
2. insurgut 207 14.11.18 06:31 Сейчас в теме
Что-то вроде...

Для Каждого СтрокаСотрудника Из СписокСотрудников Цикл

	НайденнаяСтрока = СтрокаСотрудника.Сотрудник.ДополнительныеРеквизиты.Найти(Наше_Свойство, "Свойство");

	Если НайденнаяСтрока = Неопределено Тогда

		СотрудникОбъект = СтрокаСотрудника.Сотрудник.ПолучитьОбъект();
		СтрокаСвойства = СотрудникОбъект.ДополнительныеРеквизиты.Добавить();
		СтрокаСвойства.Свойство = Наше_Свойство;
		СтрокаСвойства.Значение = "0.0.0";
		СотрудникОбъект.Записать();

	КонецЕсли;

КонецЦикла;
Показать
6. user1065288 2 14.11.18 10:27 Сейчас в теме
(2) этот вариант конечно тоже подойдет, чтобы записать всем сотрудникам этот реквизит, учту и его, спасибо.
4. RedIn 14.11.18 08:10 Сейчас в теме
проще в отчете запрос исправить, чем пустые реквизиты плодить
ВЫБРАТЬ
	Сотрудники.Ссылка КАК Ссылка,
	СотрудникиДополнительныеРеквизиты.Свойство КАК Свойство,
	ЕСТЬNULL(СотрудникиДополнительныеРеквизиты.Значение, "0.0.0") КАК Значение
ИЗ
	Справочник.Сотрудники КАК Сотрудники
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники.ДополнительныеРеквизиты КАК СотрудникиДополнительныеРеквизиты
		ПО (Сотрудники.Ссылка = СотрудникиДополнительныеРеквизиты.Ссылка
				И СотрудникиДополнительныеРеквизиты.Свойство.Имя = "ИмяДопРеквизита")
Показать
5. user1065288 2 14.11.18 10:04 Сейчас в теме
(4) Спасибо, это помогло. Ставил ЕСТЬNULL для значения, но не допер, что надо в связях сразу прописать про свойство. Хотя по идее в условии использовал свойство.
Оставьте свое сообщение

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