Есть некий справочник с номенклатурой и Регистр накопления " Товары на складах" с измерениями: Склад,Номенклатура; ресурс: Количество.

Необходимо реализовать механизм перемещения номенклатуры между складами посредством документа "Перемещение товара". Склады определяются в документе с помощью реквизитов "Склад отправитель" и "Склад получатель". Данный документ регистрирует изменение складских остатков и так же в нём должен быть реализован контроль остатков.

Подскажите пожалуйста подробно,как с помощью конструктора запроса в Обработке проведения это реализовать?
---
вот, изучай

нашел 3 грубых ошибки (и это даже не текст запроса, хотя там тоже не хватало полей)
---
курс чистова посмотрите, да или публикации на эту тему..
в конце концов, ответы на билеты по подготовке к экзаменам на спеца.

Совершенно точно, данный вопрос относится к разряду учебных, и разжеван много раз...в различных вариациях (например сделать реализацию товаров с контролем остатка на складе). Совершенно точно у чистова есть и публикации подробные, есть и вебинар в нескольких частях, где также доходит до момента создания документа, с движениями и контролем остатков.

Ваша постановка вопроса, такова - что вам требуется курс пройти учебный, и попрактиковаться..а на форуме, мягко говоря, можно лишь пофлудить, ну или подсказать что-то конкретное.
---
вот нашел например статейку, где все понятным языком расписано
https://infostart.ru/public/195591/
---
Приход и расход получилось реализовать, но сообщение с остатками так и не выводит...

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

    Запрос = Новый Запрос ("ВЫБРАТЬ
    | Товары.Ссылка КАК Регистратор,
    | Товары.Ссылка.Дата КАК Период,
    | Товары.Ссылка.СкладПолучатель КАК Склад,
    | Товары.Номенклатура КАК Номенклатура,
    | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
    | Товары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    | Товары.Количество КАК Количество,
    | Товары.СерияНоменклатуры КАК СерияНоменклатуры,
    | Товары.Цена КАК Цена
    |ИЗ
    | Документ.ПеремещениеТовара.Номенклатура КАК Товары
    |ГДЕ
    | Товары.Ссылка = &Ссылка
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | Товары.Ссылка,
    | Товары.Ссылка.Дата,
    | Товары.Ссылка.СкладОтправитель,
    | Товары.Номенклатура,
    | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход),
    | Товары.ХарактеристикаНоменклатуры,
    | Товары.Количество,
    | Товары.СерияНоменклатуры,
    | Товары.Цена
    |ИЗ
    | Документ.ПеремещениеТовара.Номенклатура КАК Товары
    |ГДЕ
    | Товары.Ссылка = &Ссылка");
    Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);

    данные = Запрос.Выполнить().Выгрузить();

    Движения.ТоварыНаСкладах.Загрузить(данные);
    Движения.ТоварыНаСкладах.Записать();

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

    данные = запрос.Выполнить().Выгрузить();

    Если данные.Количество() > 0 Тогда
    Для Каждого стр Из данные Цикл
    Сообщить("Не хватает товара на складе. Товар:" + стр.Номенклатура + "; Характеристика: " + стр.ХарактеристикаНоменклатуры + " Не хватает: " + Строка(-стр.КоличествоОстаток));
    Отказ = Истина;

    КонецЦикла;
    КонецЕсли;

    КонецПроцедуры
```
---
Приход и расход получилось реализовать, но сообщение с остатками так и не выводит...
попробуйте использовать вместо Сообщить,
Новый СообщениеПользователю и т.д. см.СП
---
Уже пробовал и так и сяк. Срабатывание этого не происходит ни при каких условиях: "Если данные.Количество() > 0 Тогда"
---
так ты на каком складе остатки проверяешь ? У тебя же склад получатель там проверяется. А там, естественно всегда + т.к. туда и прибыло.

Смысл данного кода таков,
Сначала делаем движение - СкладИсточник (расход) --->СкладПолучатель (приход)
далее проверяем, остаток на СкладИсточник-е, если там ушло в минус, то отмена транзакции. Если там 0 или + значит все окейно.
---
На СкладеИсточник-е разумеется!

Приложил выгруженную базу.
---
а в приложенном коде написано

```1c
    Запрос.УстановитьПараметр("Склад", СкладПолучатель);
    Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
```

описка ?

З.Ы. У меня твой Дт шник не открывается, требует версию платформы 8.3.12 ))) Обновлять не буду )
---
Описка да. Выше выгрузил базу, там всё верно.

P.S. Блин, плохо. Я тогда и правда не знаю в чём дело...
---
у тебя движение то, при проведении вообще происходит ?

вообще мне кажется ты остаток некорректно берешь.
У тебя должен быть полный набор измерений, номенклатура, склад, характеристика, серийник ...что там еще
Ты двигаешь указываешь все измерения регистра, вот и считывать остаток тебе тоже надо точно по всем таким же измерениям регистра
---
Да ! С одного склада в минус и в другой сразу в плюс.

Вроде так и так указываю абсолютно все измерения которые есть. Просто я думаю, что остатка как такого вообще нету, т.к. с одного склада он уходит и сразу приходит на другой, то есть товар всегда в плюсе.
---
Просто я думаю, что остатка как такого вообще нету, т.к. с одного склада он уходит и сразу приходит на другой, то есть товар всегда в плюсе.
Ну так Склад - у тебя же измерение регистра ? Остаток же в разрезе склада надо смотреть.

Включи режим совместимости конфигурации 8.3.10 или 11
выложи еще раз свой дтшник
---
Да измерение. Прикладываю.
---
вот, изучай

нашел 3 грубых ошибки (и это даже не текст запроса, хотя там тоже не хватало полей)
---
Какие ещё ошибки помимо запроса и того что не указал неправильный тип Склад регистра накопления?
---
тип регистра накопления - строка, это ключевая ошибка.
в проверке на остатки, было если количество <0 в таблице значений не может быть отрицательного количества строк, условие никогда не выполнилось бы
ну и количество полей в запросе, как я и говорил. Добавил измерений. К тому же Сообщить в твоем случае сообще бы не сработало, т.к. оно ссылалось на несуществующие поля выборки.
---
Огромное спасибо вам!

Кол-во полей просто кучу раз менял и знак < > . Получается ошибка крылась только лишь в Типе регистра на которую я даже внимания не обратил.
---
С помощью конструктора запросов можно написать запрос.
А реализовать указанную задачу - никак. Потому что запрос в этой реализации не главное и уж точно не единственное...
---
Лучше бы по делу дали совет или что ещё, нежели загадками говорить!
---
Сообщение было скрыто модератором.