Добрый день. Прошу сильно тапочкой не бить, только начинаю программировать на 1С, в связи с чем у меня возникли трудности с решением задачи. Итак, задача:

Имеется документ "КадровоеПеремещение", который переводит сотрудника между подразделениями и должностями внутри одной организации. Имеется независимый регистр сведений "ШтатноеРасписание" и регистр накопления "ЗанятыеШтатыеПозиции". В "ШтатномРасписании" задаётся максимально доступное количество ставок по выбранной должности (например, подразделение IT, должность "Программист", 2 ставки). В регистре "ЗанятыеШтатныеПозиции" отражается движение документа "КадровоеПеремещение" и осуществляется расход по старым подразделению/должности и приход по новым (например, при переводе сотрудника с должности программиста на должность ведущего программиста, должно освободиться место программиста, заняться место ведущего программиста соответственно).

Далее прилагаю свой код:

```1c
    // регистр ЗанятиеШтатныеПозиции Приход/Расход

    //Получение информации о количестве ставок
    ЗапросПоРасписанию = Новый Запрос ("ВЫБРАТЬ
    | ШтатноеРасписание.КоличествоСтавок КАК КоличествоСтавок
    |ИЗ
    | РегистрСведений.ШтатноеРасписание КАК ШтатноеРасписание
    |ГДЕ
    | ШтатноеРасписание.Организация = &Организация
    | И ШтатноеРасписание.Подразделение = &Подразделение
    | И ШтатноеРасписание.Должность = &Должность");
    ЗапросПоЗанятымПозициям = Новый Запрос ("ВЫБРАТЬ
    | ЗанятиеШтатныеПозицииОстатки.КоличествоСтавокОстаток КАК КоличествоСтавокОстаток
    |ИЗ
    | РегистрНакопления.ЗанятиеШтатныеПозиции.Остатки КАК ЗанятиеШтатныеПозицииОстатки
    |ГДЕ
    | ЗанятиеШтатныеПозицииОстатки.Организация = &Организация
    | И ЗанятиеШтатныеПозицииОстатки.Подразделение = &Подразделение
    | И ЗанятиеШтатныеПозицииОстатки.Должность = &Должность");
    // Установка параметров выборки
    ЗапросПоРасписанию.УстановитьПараметр("Организация", Организация);
    ЗапросПоРасписанию.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоРасписанию.УстановитьПараметр("Должность", Должность);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Организация", Организация);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Должность", Должность);
    ВыборкаДетальныеЗаписиРасписание = ЗапросПоРасписанию.Выполнить().Выбрать();
    ВыборкаДетальныеЗаписиПозиции = ЗапросПоЗанятымПозициям.Выполнить().Выбрать();
    // Присвоение размера ставок переменным
    СтавкиРасписание = ?(ВыборкаДетальныеЗаписиРасписание.Следующий(), ВыборкаДетальныеЗаписиРасписание.КоличествоСтавок, 0);
    СтавкиПозиции = ?(ВыборкаДетальныеЗаписиПозиции.Следующий(), ВыборкаДетальныеЗаписиПозиции.КоличествоСтавокОстаток, 0);
    // Запрос для проверки, является ли выбранное лицо сотрудником
    ЗапросПоТрудоустройству = Новый Запрос ("ВЫБРАТЬ
    | СведенияОСотрудниках.Сотрудник КАК Сотрудник
    |ИЗ
    | РегистрСведений.СведенияОСотрудниках.СрезПоследних КАК СведенияОСотрудниках
    |ГДЕ
    | СведенияОСотрудниках.Сотрудник = &Сотрудник
    | И НЕ СведенияОСотрудниках.ПризнакУвольнения
    | И СведенияОСотрудниках.Регистратор <> &Регистратор");
    ЗапросПоТрудоустройству.УстановитьПараметр("Сотрудник", Сотрудник);
    ЗапросПоТрудоустройству.УстановитьПараметр("Регистратор", Ссылка);

    // Реализация логики проведения документа
    Если ЗапросПоТрудоустройству.Выполнить().Пустой() Тогда
    Отказ = Истина;
    Движения.СведенияОСотрудниках.Записывать = Ложь;
    Сообщить("Невозможно перевести лицо, не являющеется сотрудником!");
    Иначе
    Если СтавкиРасписание > СтавкиПозиции Тогда

    // Движение документа - расход
    Движения.ЗанятиеШтатныеПозиции.Записывать = Истина;
    Движение = Движения.ЗанятиеШтатныеПозиции.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подразделение = Подразделение;
    Движение.Должность = Должность;
    Движение.КоличествоСтавок = +1;

    // Движение документа - приход
    Движения.ЗанятиеШтатныеПозиции.Записывать = Истина;
    Движение = Движения.ЗанятиеШтатныеПозиции.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подразделение = НовоеПодразделение;
    Движение.Должность = НоваяДолжность;
    Движение.КоличествоСтавок = +1;

    Иначе

    Отказ = Истина;
    Движения.ЗанятиеШтатныеПозиции.Записывать = Ложь;
    Сообщить ("Недостаточно ставок по выбранной должности! Штат переполнен.");

    КонецЕсли;
    КонецЕсли;
```

Проблема в следующем: при установке параметров для двух запросов из регистров "ШтатноеРасписание" и "ЗанятыеШтатныеПозиции", возникает ошибка, переменные не определяются. Хочу отметить, что ровно такой же запрос с подобной установкой параметров при проведении другого документа (а именно "ПриёмНаРаботу") проходит гладко, без единой ошибки. Помогите, пожалуйста, разобраться, в чём моя ошибка, ведь запросы я полностью скопировал из модуля "ПриёмаНаРаботу", значит они должны быть рабочими. В теории, конечно.
---
Это главный минус копипаста ;)
 Так ведь CTRL-C, CTRL-V.) Всё абсолютно идентично.)
---
Движение.Подразделение = НовоеПодразделение;
    Движение.Должность = НоваяДолжность;
Наверно потому что вы переопределили как то...
---
Если ЗапросПоТрудоустройству.Выполнить().Пустой() Тогда
Я бы сначала выполнил запрос, а потом проверял бы его на пустоту

Рез = ЗапросПоТрудоустройству.Выполнить();
Если Рез.Пустой() и так далее.
---
Конкретно этот запрос функционирует так, как нужно. Ошибки возникают вот здесь:

```1c
    //Получение информации о количестве ставок
    ЗапросПоРасписанию = Новый Запрос ("ВЫБРАТЬ
    | ШтатноеРасписание.КоличествоСтавок КАК КоличествоСтавок
    |ИЗ
    | РегистрСведений.ШтатноеРасписание КАК ШтатноеРасписание
    |ГДЕ
    | ШтатноеРасписание.Организация = &Организация
    | И ШтатноеРасписание.Подразделение = &Подразделение
    | И ШтатноеРасписание.Должность = &Должность");

    ЗапросПоРасписанию.УстановитьПараметр("Организация", Организация);
    ЗапросПоРасписанию.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоРасписанию.УстановитьПараметр("Должность", Должность);

    ВыборкаДетальныеЗаписиРасписание = ЗапросПоРасписанию.Выполнить().Выбрать();

    ЗапросПоЗанятымПозициям = Новый Запрос ("ВЫБРАТЬ
    | ЗанятиеШтатныеПозицииОстатки.КоличествоСтавокОстаток КАК КоличествоСтавокОстаток
    |ИЗ
    | РегистрНакопления.ЗанятиеШтатныеПозиции.Остатки КАК ЗанятиеШтатныеПозицииОстатки
    |ГДЕ
    | ЗанятиеШтатныеПозицииОстатки.Организация = &Организация
    | И ЗанятиеШтатныеПозицииОстатки.Подразделение = &Подразделение
    | И ЗанятиеШтатныеПозицииОстатки.Должность = &Должность");

    ЗапросПоЗанятымПозициям.УстановитьПараметр("Организация", Организация);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Должность", Должность);

    ВыборкаДетальныеЗаписиПозиции = ЗапросПоЗанятымПозициям.Выполнить().Выбрать();

    // Вложение размера ставок в переменные
    СтавкиРасписание = ?(ВыборкаДетальныеЗаписиРасписание.Следующий(), ВыборкаДетальныеЗаписиРасписание.КоличествоСтавок, 0);
    СтавкиПозиции = ?(ВыборкаДетальныеЗаписиПозиции.Следующий(), ВыборкаДетальныеЗаписиПозиции.КоличествоСтавокОстаток, 0);
```

Конкретно там, где я пытаюсь задать параметры запроса.
---
У вас конструкция

Если ЗапросПоТрудоустройству.Выполнить().Пустой() Тогда

Иначе

КонецЕсли;

Что будет в ветке Иначе если запрос не пустой? Не проверял, но на первый взгляд немного коряво. Я только предположил, а проверять или нет ваш выбор.
---
В ветке "Иначе" в таком случае будет запускаться код, который позволяет проводить документ дальше, ведь если результат запроса не пуст, значит сотрудник существует. А вот далее следует ещё одна проверка на количество доступных ставок. То есть, если в регистре "ШтатноеРасписание" ставок больше, чем в данный момент занятые ставки в регистре "ЗанятыеШтатныеПозиции", тогда движение документы проходит, в противном случае документ не проводится, выводится сообщение об ошибке. Но опять же, проблема возникает не здесь, а в части кода выше. Данная часть рабочая, ибо уже проверил.
---
скрин ошибки приведите
---
Пожалуйста, скрин ниже.
---
В контексте чего вы выполняете код. В рабочем коде откуда брали этот код как определялось подразделение?
А увидел... Объект.Подразделение - попробуйте.
---
Подразделение и должность брал из "ШтатногоРасписания", ровно так же. В модуле "ПриёмНаРаботу" у меня сравнивается количество доступных ставок из регистра сведений "ШтатноеРасписание" для конкретных организации, должности и подразделения. Вот как выглядит модуль этого документа:
```1c
    // регистр ЗанятиеШтатныеПозиции Приход
    ЗапросПоРасписанию = Новый Запрос ("ВЫБРАТЬ
    | ШтатноеРасписание.КоличествоСтавок КАК КоличествоСтавок
    |ИЗ
    | РегистрСведений.ШтатноеРасписание КАК ШтатноеРасписание
    |ГДЕ
    | ШтатноеРасписание.Организация = &Организация
    | И ШтатноеРасписание.Подразделение = &Подразделение
    | И ШтатноеРасписание.Должность = &Должность");
    ЗапросПоЗанятымПозициям = Новый Запрос ("ВЫБРАТЬ
    | ЗанятиеШтатныеПозицииОстатки.КоличествоСтавокОстаток КАК КоличествоСтавокОстаток
    |ИЗ
    | РегистрНакопления.ЗанятиеШтатныеПозиции.Остатки КАК ЗанятиеШтатныеПозицииОстатки
    |ГДЕ
    | ЗанятиеШтатныеПозицииОстатки.Организация = &Организация
    | И ЗанятиеШтатныеПозицииОстатки.Подразделение = &Подразделение
    | И ЗанятиеШтатныеПозицииОстатки.Должность = &Должность");

    ЗапросПоРасписанию.УстановитьПараметр("Организация", Организация);
    ЗапросПоРасписанию.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоРасписанию.УстановитьПараметр("Должность", Должность);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Организация", Организация);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Должность", Должность);
    ВыборкаДетальныеЗаписиРасписание = ЗапросПоРасписанию.Выполнить().Выбрать();
    ВыборкаДетальныеЗаписиПозиции = ЗапросПоЗанятымПозициям.Выполнить().Выбрать();

    СтавкиРасписание = ?(ВыборкаДетальныеЗаписиРасписание.Следующий(), ВыборкаДетальныеЗаписиРасписание.КоличествоСтавок, 0);
    СтавкиПозиции = ?(ВыборкаДетальныеЗаписиПозиции.Следующий(), ВыборкаДетальныеЗаписиПозиции.КоличествоСтавокОстаток, 0);

    Если СтавкиРасписание > СтавкиПозиции Тогда
    Движения.ЗанятиеШтатныеПозиции.Записывать = Истина;
    Движение = Движения.ЗанятиеШтатныеПозиции.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подразделение = Подразделение;
    Движение.Должность = Должность;
    Движение.КоличествоСтавок = КоличествоСтавок;
    Иначе
    Отказ = Истина;
    Движения.ЗанятиеШтатныеПозиции.Записывать = Ложь;
    Сообщить ("Недостаточно ставок по выбранной должности! Штат переполнен.");
    КонецЕсли;
```

Поскольку эта проверка уже реализована, я не видел смысла изобретать велосипед, поэтому скопировал её и в документ "КадровоеПеремещение". Однако возникает ошибка, показанная выше.
---
Собственно в модуле объекта у вас не определено Подразделение, полагаю Объект.Подразделение и по всем остальным должно помочь, так как скорее всего это реквизит документа.
---
Меня интересует больше всего, почему в модуле "ПриёмНаРаботу" никаких проблем с установкой параметров не возникло, при абсолютно таком же коде.
---
Весь код у вас, мне не видно. Так что смотрите сами. Возможно где то в модуле приема вы или передали в параметре или определили как то иначе. А в модуле перемещения этого не сделали.
---
Так ведь CTRL-C, CTRL-V.) Всё абсолютно идентично.) Либо же как в фильме, я разницы не вижу, а она есть.

ПриемНаРаботу:

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)

    // регистр СведенияОСотрудниках
    Движения.СведенияОСотрудниках.Записывать = Истина;
    Движение = Движения.СведенияОСотрудниках.Добавить();
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Сотрудник = Сотрудник;
    Движение.Подразделение = Подразделение;
    Движение.Должность = Должность;
    Движение.ПризнакУвольнения = Ложь;

    // регистр ДанныеОбОкладах
    Движения.ДанныеОбОкладах.Записывать = Истина;
    Движение = Движения.ДанныеОбОкладах.Добавить();
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Сотрудник = Сотрудник;
    Движение.Оклад = Оклад;

    ////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­////////////

    // регистр ЗанятиеШтатныеПозиции Приход
    ЗапросПоРасписанию = Новый Запрос ("ВЫБРАТЬ
    | ШтатноеРасписание.КоличествоСтавок КАК КоличествоСтавок
    |ИЗ
    | РегистрСведений.ШтатноеРасписание КАК ШтатноеРасписание
    |ГДЕ
    | ШтатноеРасписание.Организация = &Организация
    | И ШтатноеРасписание.Подразделение = &Подразделение
    | И ШтатноеРасписание.Должность = &Должность");
    ЗапросПоЗанятымПозициям = Новый Запрос ("ВЫБРАТЬ
    | ЗанятиеШтатныеПозицииОстатки.КоличествоСтавокОстаток КАК КоличествоСтавокОстаток
    |ИЗ
    | РегистрНакопления.ЗанятиеШтатныеПозиции.Остатки КАК ЗанятиеШтатныеПозицииОстатки
    |ГДЕ
    | ЗанятиеШтатныеПозицииОстатки.Организация = &Организация
    | И ЗанятиеШтатныеПозицииОстатки.Подразделение = &Подразделение
    | И ЗанятиеШтатныеПозицииОстатки.Должность = &Должность");

    ЗапросПоРасписанию.УстановитьПараметр("Организация", Организация);
    ЗапросПоРасписанию.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоРасписанию.УстановитьПараметр("Должность", Должность);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Организация", Организация);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Должность", Должность);
    ВыборкаДетальныеЗаписиРасписание = ЗапросПоРасписанию.Выполнить().Выбрать();
    ВыборкаДетальныеЗаписиПозиции = ЗапросПоЗанятымПозициям.Выполнить().Выбрать();

    СтавкиРасписание = ?(ВыборкаДетальныеЗаписиРасписание.Следующий(), ВыборкаДетальныеЗаписиРасписание.КоличествоСтавок, 0);
    СтавкиПозиции = ?(ВыборкаДетальныеЗаписиПозиции.Следующий(), ВыборкаДетальныеЗаписиПозиции.КоличествоСтавокОстаток, 0);

    Если СтавкиРасписание > СтавкиПозиции Тогда
    Движения.ЗанятиеШтатныеПозиции.Записывать = Истина;
    Движение = Движения.ЗанятиеШтатныеПозиции.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подразделение = Подразделение;
    Движение.Должность = Должность;
    Движение.КоличествоСтавок = КоличествоСтавок;
    Иначе
    Отказ = Истина;
    Движения.ЗанятиеШтатныеПозиции.Записывать = Ложь;
    Сообщить ("Недостаточно ставок по выбранной должности! Штат переполнен.");
    КонецЕсли;

    КонецПроцедуры
```

КадровоеПеремещение:

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)
    // регистр СведенияОСотрудниках
    Движения.СведенияОСотрудниках.Записывать = Истина;
    Движение = Движения.СведенияОСотрудниках.Добавить();
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Сотрудник = Сотрудник;
    Движение.Подразделение = НовоеПодразделение;
    Движение.Должность = НоваяДолжность;
    // регистр ДанныеОбОкладах
    Движения.ДанныеОбОкладах.Записывать = Истина;
    Движение = Движения.ДанныеОбОкладах.Добавить();
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Сотрудник = Сотрудник;
    Движение.Оклад = НовыйОклад;
    ////////////////////////////////////////////////////////////­////////////////////////////////////
    // регистр ЗанятиеШтатныеПозиции Приход/Расход

    //Получение информации о количестве ставок
    ЗапросПоРасписанию = Новый Запрос ("ВЫБРАТЬ
    | ШтатноеРасписание.КоличествоСтавок КАК КоличествоСтавок
    |ИЗ
    | РегистрСведений.ШтатноеРасписание КАК ШтатноеРасписание
    |ГДЕ
    | ШтатноеРасписание.Организация = &Организация
    | И ШтатноеРасписание.Подразделение = &Подразделение
    | И ШтатноеРасписание.Должность = &Должность");

    ЗапросПоРасписанию.УстановитьПараметр("Организация", Организация);
    ЗапросПоРасписанию.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоРасписанию.УстановитьПараметр("Должность", Должность);

    ВыборкаДетальныеЗаписиРасписание = ЗапросПоРасписанию.Выполнить().Выбрать();

    ЗапросПоЗанятымПозициям = Новый Запрос ("ВЫБРАТЬ
    | ЗанятиеШтатныеПозицииОстатки.КоличествоСтавокОстаток КАК КоличествоСтавокОстаток
    |ИЗ
    | РегистрНакопления.ЗанятиеШтатныеПозиции.Остатки КАК ЗанятиеШтатныеПозицииОстатки
    |ГДЕ
    | ЗанятиеШтатныеПозицииОстатки.Организация = &Организация
    | И ЗанятиеШтатныеПозицииОстатки.Подразделение = &Подразделение
    | И ЗанятиеШтатныеПозицииОстатки.Должность = &Должность");

    ЗапросПоЗанятымПозициям.УстановитьПараметр("Организация", Организация);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Подразделение", Подразделение);
    ЗапросПоЗанятымПозициям.УстановитьПараметр("Должность", Должность);

    ВыборкаДетальныеЗаписиПозиции = ЗапросПоЗанятымПозициям.Выполнить().Выбрать();

    // Вложение размера ставок в переменные
    СтавкиРасписание = ?(ВыборкаДетальныеЗаписиРасписание.Следующий(), ВыборкаДетальныеЗаписиРасписание.КоличествоСтавок, 0);
    СтавкиПозиции = ?(ВыборкаДетальныеЗаписиПозиции.Следующий(), ВыборкаДетальныеЗаписиПозиции.КоличествоСтавокОстаток, 0);
    // Запрос для проверки, является ли выбранное лицо сотрудником
    ЗапросПоТрудоустройству = Новый Запрос ("ВЫБРАТЬ
    | СведенияОСотрудниках.Сотрудник КАК Сотрудник
    |ИЗ
    | РегистрСведений.СведенияОСотрудниках.СрезПоследних КАК СведенияОСотрудниках
    |ГДЕ
    | СведенияОСотрудниках.Сотрудник = &Сотрудник
    | И НЕ СведенияОСотрудниках.ПризнакУвольнения
    | И СведенияОСотрудниках.Регистратор <> &Регистратор");
    ЗапросПоТрудоустройству.УстановитьПараметр("Сотрудник", Сотрудник);
    ЗапросПоТрудоустройству.УстановитьПараметр("Регистратор", Ссылка);

    // Реализация логики проведения документа
    Если ЗапросПоТрудоустройству.Выполнить().Пустой() Тогда
    Отказ = Истина;
    Движения.СведенияОСотрудниках.Записывать = Ложь;
    Сообщить("Невозможно перевести лицо, не являющеется сотрудником!");
    Иначе
    Если СтавкиРасписание > СтавкиПозиции Тогда

    // Движение документа - расход
    Движения.ЗанятиеШтатныеПозиции.Записывать = Истина;
    Движение = Движения.ЗанятиеШтатныеПозиции.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подразделение = Подразделение;
    Движение.Должность = Должность;
    Движение.КоличествоСтавок = +1;

    // Движение документа - приход
    Движения.ЗанятиеШтатныеПозиции.Записывать = Истина;
    Движение = Движения.ЗанятиеШтатныеПозиции.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.Организация = Организация;
    Движение.Подразделение = НовоеПодразделение;
    Движение.Должность = НоваяДолжность;
    Движение.КоличествоСтавок = +1;

    Иначе

    Отказ = Истина;
    Движения.ЗанятиеШтатныеПозиции.Записывать = Ложь;
    Сообщить ("Недостаточно ставок по выбранной должности! Штат переполнен.");

    КонецЕсли;
    КонецЕсли;

    КонецПроцедуры
```

Хоть убейте, не понимаю, в чём заключается проблема. Кстати говоря, тапочкой разочек хлопнуть всё-таки можно. :)
---
не, убивать не буду... Посмотрите на сообщения об ошибке. В документе приема в модуле Подразделение у вас определено, в документе перемещения - нет.
---
Движение.Подразделение = НовоеПодразделение;
    Движение.Должность = НоваяДолжность;
Наверно потому что вы переопределили как то...
---
Разобрался, действительно, в параметрах нужно было задавать как "НоваяДолжность" и "НовоеПодразделение". Спасибо Вам большое!
---
Это главный минус копипаста ;)
 Так ведь CTRL-C, CTRL-V.) Всё абсолютно идентично.)
---
получение занятых ставок в ЗУП лучше делать через механизмы представлений с использованием функций общих модулей.

Параметры запроса проверяйте в отладке если вам охота делать функционал который перестанет работать после очередного обновления. ЗУП коварен и написанный вручную запрос опрометчиво включать в работу,
надеясь, что он будет функционировать хотя бы месяц.
---
Это не ЗУП. Эту задачу дал руководитель, конфигурация полностью моя. Нигде после этого оно всё использоваться не будет.
---
Причину таких неполадок находят в отладчике и консоли запросов.

а вообще у вас очень спорный вывод

в чём моя ошибка, ведь запросы я полностью скопировал из модуля "ПриёмаНаРаботу", значит они должны быть рабочими.
---
в перемещении пары должностьоткуда, должностькуда, подраздлениеоткуда, подраздлениекуда
или что-то подобное.

совет использовать отладчик так и не использован
---
Ну почему... на форуме был запущен отладчик....;)