Автоматическая подставновка значений из справочника
Всем привет.
1с 8.3
Суть проблемы:
Имеется справочник Сотрудники, в котором находятся реквизиты Наименование (стандартный, тип Строка), а так же Должность (тип СправочникСсылка.Должность). Так же имеется документ НачисленияСотрудникам с табличной частью Начисления, в которой хранятся реквизиты Сотрудник (тип СправочникСсылка.Сотрудники) и Должность (тип Строка). В свою очередь, я хочу сделать автоматическую подстановку должности при выборе сотрудника.
1с 8.3
Суть проблемы:
Имеется справочник Сотрудники, в котором находятся реквизиты Наименование (стандартный, тип Строка), а так же Должность (тип СправочникСсылка.Должность). Так же имеется документ НачисленияСотрудникам с табличной частью Начисления, в которой хранятся реквизиты Сотрудник (тип СправочникСсылка.Сотрудники) и Должность (тип Строка). В свою очередь, я хочу сделать автоматическую подстановку должности при выборе сотрудника.
Найденные решения
(7)
&НаСервереБезКонтекста
Функция ПолучитьДолжность(Сотрудник)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СпрСотрудники.Должность
|ИЗ
| Справочник.Сотрудники КАК СпрСотрудники
|ГДЕ
| СпрСотрудники.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Сотрудник);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Должность;
Иначе
Возврат "";
КонецЕсли;
КонецФункции
Показать
Вот рабочий код события ПриИзменении() для колонки "Сотрудники":
&НаСервере
Функция ПолучитьДолжностьСотрудника(Сотрудник)
Возврат Сотрудник.Должность;
КонецФункции
&НаКлиенте
Процедура СотрудникиСотрудникПриИзменении(Элемент)
ТекущиеДанные = Элементы.Сотрудники.ТекущиеДанные;
ТекущиеДанные.Должность = ПолучитьДолжностьСотрудника(ТекущиеДанные.Сотрудник);
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаСервереБезКонтекста
Процедура получитьДолжность(Сотрудник)
возврат Сотрудники.Должность
конецеПроцедуры
а далее, в событии при изменении поля Сотрудник
делать
ТекущиеДанные.Должность = Процедура получитьДолжность(ТекущиеДанные.Сотрудник);
PS преобразование в тип строка тут неявное.
(3)
или есть БСП, то можно
Либо запросом
&НаСервереБезКонтекста
Функция ПолучитьДолжность(Сотрудник)
Возврат Сотрудник.Должность;
КонецФункции
или есть БСП, то можно
&НаСервереБезКонтекста
Функция ПолучитьДолжность(Сотрудник)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сотрудник, "Должность");
КонецФункции
Либо запросом
(7)
&НаСервереБезКонтекста
Функция ПолучитьДолжность(Сотрудник)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СпрСотрудники.Должность
|ИЗ
| Справочник.Сотрудники КАК СпрСотрудники
|ГДЕ
| СпрСотрудники.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Сотрудник);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Должность;
Иначе
Возврат "";
КонецЕсли;
КонецФункции
Показать
Вот рабочий код события ПриИзменении() для колонки "Сотрудники":
&НаСервере
Функция ПолучитьДолжностьСотрудника(Сотрудник)
Возврат Сотрудник.Должность;
КонецФункции
&НаКлиенте
Процедура СотрудникиСотрудникПриИзменении(Элемент)
ТекущиеДанные = Элементы.Сотрудники.ТекущиеДанные;
ТекущиеДанные.Должность = ПолучитьДолжностьСотрудника(ТекущиеДанные.Сотрудник);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот