Есть документ "Выдача" в нём я выдаю оборудование сотруднику и документ "Поступление" в котором по идее должно поступать оборудование на склад прежде чем его выдавать. Есть регистр накопления с приходом и расходом. Хочу сделать так чтоб если поступало оборудование в определённом количестве то и выдать я мог не больше этого количества. С 1с знаком где-то пару недель и поэтому многого не понимаю, можете наглядно объяснить как это делать?
---
Вышло вот это.

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

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

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

    Движения.РегистрОстаткаНаСкладе.Записывать = Истина;
    Движения.Записать();

    Запрос.Текст =
    "ВЫБРАТЬ
    | Остатки.Оборудование КАК Оборудование,
    | ПРЕДСТАВЛЕНИЕССЫЛКИ(Остатки.Оборудование) КАК ОборудованиеПредставление,
    | -Остатки.КоличествоОстаток КАК Дефицит
    |ИЗ
    | РегистрНакопления.РегистрОстаткаНаСкладе.Остатки(
    | &МоментВремени,
    | Оборудование В
    | (ВЫБРАТЬ
    | Таблица.Оборудование КАК Оборудование
    | ИЗ
    | Таблица КАК Таблица)) КАК Остатки
    |ГДЕ
    | Остатки.КоличествоОстаток < 0";

    ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая);
    Запрос.УстановитьПараметр("МоментВремени", ГраницаКонтроля);
    РезультатЗапроса = Запрос.Выполнить();

    Если Не РезультатЗапроса.Пустой() Тогда
    Отказ = Истина;
    ВыборкаОшибки = РезультатЗапроса.Выбрать();
    Пока ВыборкаОшибки.Следующий() Цикл
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Оборудования "+ВыборкаОшибки.ОборудованиеПредставление+" недостаточно в количестве "+ВыборкаОшибки.Дефицит+" шт.";
    Сообщение.Сообщить();
    КонецЦикла;
    КонецЕсли;

    КонецПроцедуры
```
---
Посмотрите в ютубе видео по задачам для подготовки к 1с специалисту по платформе, там наглядно показаны примеры контроля остатков.
---
https://infostart.ru/1c/articles/1341878/ вот еще пример тут же
---
Вышло вот это.

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

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

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

    Движения.РегистрОстаткаНаСкладе.Записывать = Истина;
    Движения.Записать();

    Запрос.Текст =
    "ВЫБРАТЬ
    | Остатки.Оборудование КАК Оборудование,
    | ПРЕДСТАВЛЕНИЕССЫЛКИ(Остатки.Оборудование) КАК ОборудованиеПредставление,
    | -Остатки.КоличествоОстаток КАК Дефицит
    |ИЗ
    | РегистрНакопления.РегистрОстаткаНаСкладе.Остатки(
    | &МоментВремени,
    | Оборудование В
    | (ВЫБРАТЬ
    | Таблица.Оборудование КАК Оборудование
    | ИЗ
    | Таблица КАК Таблица)) КАК Остатки
    |ГДЕ
    | Остатки.КоличествоОстаток < 0";

    ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая);
    Запрос.УстановитьПараметр("МоментВремени", ГраницаКонтроля);
    РезультатЗапроса = Запрос.Выполнить();

    Если Не РезультатЗапроса.Пустой() Тогда
    Отказ = Истина;
    ВыборкаОшибки = РезультатЗапроса.Выбрать();
    Пока ВыборкаОшибки.Следующий() Цикл
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Оборудования "+ВыборкаОшибки.ОборудованиеПредставление+" недостаточно в количестве "+ВыборкаОшибки.Дефицит+" шт.";
    Сообщение.Сообщить();
    КонецЦикла;
    КонецЕсли;

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