Здравствуйте!
Есть обработка по переносу сотрудников из одной базы в другую на управляемых формах.
Подскажите, пожалуйста, как из ходя из представленного кода, оформить создание должности, если она не найдена и подставить в необходимый элемент справочника.
На данный момент, если должность не найдена, то поле просто остается пустым.
Спасибо.
```1c
    &НаСервере
    Процедура СоздатьСотрудниковНаСервере()

    СоединениеMaster = ПодключитьБД();

    Для каждого СтрСотр Из Объект.Сотрудники Цикл

    НовСотр = СоединениеMaster.Справочники.Сотрудники.СоздатьЭлемент();
    НовСотр.Код = СтрСотр.ТабНомер;
    НовСотр.Наименование = СтрСотр.ФИО;
    НовСотр.ДатаПриема = СтрСотр.ДатаПриема;
    НовСотр.Должность = СоединениеMaster.Справочники.Должности.НайтиПоНаименованию(СтрСотр.ДолжностьПоШтатРасп).Ссылка;
    НовСотр.Тариф = СтрСотр.Тариф;
    НовСотр.ФОТ = СтрСотр.ФОТ;
    НовСотр.ДатаРождения = СтрСотр.ДатаРождения;
    НовСотр.Записать();

    КонецЦикла;
    Попытка

    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;

    КонецПроцедуры
```
---
Сделать отдельную функцию, в нее передавать наименование и соединение, в ней поиск по наименованию и условие.

```1c
    Функция НайтиДолжность(ДолжностьПоШтатРасп,СоединениеMaster)
    Если СоединениеMaster=Неопределено Тогда
    Возврат Неопределено;
    КонецЕсли;
    Должность = СоединениеMaster.Справочники.Должности.НайтиПоНаименованию(ДолжностьПоШтатРасп);
    Если Не ЗначениеЗаполнено(Должность ) Тогда
    ДолжностьОбъект = СоединениеMaster.Справочники.Должности.СоздатьЭлемент();
    ДолжностьОбъект .Наименование = ДолжностьПоШтатРасп;
    ДолжностьОбъект .Записать();
    Должность = ДолжностьОбъект.Ссылка;
    КонецЕсли;
    Возврат Должность;
    КонецФункции;
```

чтото типа такого. Эту функцию вызывать в НовСотр.Должность = НайтиДолжность(СтрСотр.ДолжностьПоШтатРасп,СоединениеMaster);
---
```1c
    Должность = СоединениеMaster.Справочники.Должности.НайтиПоНаименованию(СтрСотр.ДолжностьПоШтатРасп);
    Если Должность.Пустая() Тогда
    Должность = СоединениеMaster.Справочники.Должности.СоздатьЭлемент();
    // заполняете реквизиты должности
    Должность = Должность.Ссылка;
    Конецесли

    НовСотр = СоединениеMaster.Справочники.Сотрудники.СоздатьЭлемент();
    НовСотр.Код = СтрСотр.ТабНомер;
    НовСотр.Наименование = СтрСотр.ФИО;
    НовСотр.ДатаПриема = СтрСотр.ДатаПриема;
    НовСотр.Должность = Должность;
    НовСотр.Тариф = СтрСотр.Тариф;
    НовСотр.ФОТ = СтрСотр.ФОТ;
    НовСотр.ДатаРождения = СтрСотр.ДатаРождения;
    НовСотр.Записать();
```
---
Сделать отдельную функцию, в нее передавать наименование и соединение, в ней поиск по наименованию и условие.

```1c
    Функция НайтиДолжность(ДолжностьПоШтатРасп,СоединениеMaster)
    Если СоединениеMaster=Неопределено Тогда
    Возврат Неопределено;
    КонецЕсли;
    Должность = СоединениеMaster.Справочники.Должности.НайтиПоНаименованию(ДолжностьПоШтатРасп);
    Если Не ЗначениеЗаполнено(Должность ) Тогда
    ДолжностьОбъект = СоединениеMaster.Справочники.Должности.СоздатьЭлемент();
    ДолжностьОбъект .Наименование = ДолжностьПоШтатРасп;
    ДолжностьОбъект .Записать();
    Должность = ДолжностьОбъект.Ссылка;
    КонецЕсли;
    Возврат Должность;
    КонецФункции;
```

чтото типа такого. Эту функцию вызывать в НовСотр.Должность = НайтиДолжность(СтрСотр.ДолжностьПоШтатРасп,СоединениеMaster);
---
Может я что-то не так скопировал, но ругается: "Проверка мутабельных значений на заполненность не поддерживается"
---
Я проверять не стал уже, но скорее всего нужно указать "Если Должность.Пустая() Тогда" вместо "Если Не ЗначениеЗаполнено(Должность ) Тогда".
---
Очевидно, аналогичным образом создавать новую должность
---
```1c
    Должность = СоединениеMaster.Справочники.Должности.НайтиПоНаименованию(СтрСотр.ДолжностьПоШтатРасп);
    Если Должность.Пустая() Тогда
    Должность = СоединениеMaster.Справочники.Должности.СоздатьЭлемент();
    // заполняете реквизиты должности
    Должность = Должность.Ссылка;
    Конецесли

    НовСотр = СоединениеMaster.Справочники.Сотрудники.СоздатьЭлемент();
    НовСотр.Код = СтрСотр.ТабНомер;
    НовСотр.Наименование = СтрСотр.ФИО;
    НовСотр.ДатаПриема = СтрСотр.ДатаПриема;
    НовСотр.Должность = Должность;
    НовСотр.Тариф = СтрСотр.Тариф;
    НовСотр.ФОТ = СтрСотр.ФОТ;
    НовСотр.ДатаРождения = СтрСотр.ДатаРождения;
    НовСотр.Записать();
```
---
Ваш вариант мне помог спасибо.
---
Спасибо. Проблема решена.