1с Работа с остатками

1. SweaterHen 03.05.23 10:13 Сейчас в теме
Есть у меня три документа: Поступление(для прибавления оборудования на склад), Выдача(для выдачи оборудования со склада сотруднику) и Возврат(для возвращения оборудования у сотрудника на склад.

Выдавать оборудование спокойно могу если на складе сделал поступление
Процедура ОбработкаПроведения(Отказ, Режим) 
	

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

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

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

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

   КонецПроцедуры
Показать

, пытаюсь понять как сделать возврат от сотрудника на склад. Идеи были, но когда пытался решить только запутался. Можете посоветовать способ реализации
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 81 03.05.23 10:29 Сейчас в теме
(1) что именно не работает?
4. SweaterHen 05.05.23 06:59 Сейчас в теме
(2)Всё работает. Мне нужно теперь у сотрудника забрать выданное оборудование и вернуть на склад
3. DesertPunk 03.05.23 10:38 Сейчас в теме
(1) В данном описании задача непроработанная от слова совсем. Из того, что в голову сразу пришло:
1) Нужен регистр сведений, где будет храниться состояние оборудования типа "Выдан", "На складе" и т.д. Тогда ты сможешь по срезу последних видеть где находится инструмент в нужный для тебя момент времени. Также можно будет отследить историю выдач и возвратов за период.
2) Нет аналитики в разрезе МОЛ.
3) Для выдачи/возврата нужны формы подбора. Ты же не собираешься заполнять ТЧ документов кнопкой "Добавить"?
4) Для контроля времени нужна константа.
5. dka80 21 05.05.23 11:26 Сейчас в теме
Создать два регистра:
1. Регистра накопления ОборудованиеНаСкладе для учета возможности выдачи оборудования. При выдаче проверяешь остатки
2. Регистр накопления ОборудованиеУМОЛ для учета наличия у МОЛ. При возврате проверяешь остатки
6. soft_wind 05.05.23 11:51 Сейчас в теме
вообще Выдача оборудования сотруднику и Возврат
это два симметричных документа,
просто пишите по тем же регистрам, те же данные, только с обратными движениями
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот