1с возврат расходов

1. SweaterHen 05.05.23 08:59 Сейчас в теме
как сделать возврат количества оборудования с видом движения расход из документа "Выдал" в другом документе "Возврат" с видом движения приход
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SweaterHen 05.05.23 09:39 Сейчас в теме
Я знаю что это нужно делать через регистр накопления в котором происходит расход, но я не знаю как должен выглядеть код
3. RustamZz 05.05.23 09:52 Сейчас в теме
(2) Точно также как расход, только там где написано "Расход" нужно заменить на "Приход".
4. SweaterHen 05.05.23 10:47 Сейчас в теме
(3)Я пытался
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   
    //  1. Получение запросом данных документа
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   Товары.Номенклатура КАК Номенклатура,
        |   СУММА(Товары.Количество) КАК Количество
        |ПОМЕСТИТЬ Товары
        |ИЗ
        |   Документ.РеализацияТоваровУслуг.Товары КАК Товары
        |ГДЕ
        |   Товары.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   Товары.Номенклатура
        |
        |ИНДЕКСИРОВАТЬ ПО
        |   Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////­////////////////////
        |ВЫБРАТЬ
        |   Товары.Номенклатура КАК Номенклатура,
        |   Товары.Количество КАК Количество
        |ИЗ
        |   Товары КАК Товары";
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    РезультатЗапроса = Запрос.Выполнить();
   
    //  2. Формирование движений-расход регистра
    Движения.СвободныеОстатки.Очистить();
    ВыборкаТовары = РезультатЗапроса.Выбрать();
    Пока ВыборкаТовары.Следующий() Цикл
        Движение = Движения.СвободныеОстатки.ДобавитьРасход();
        Движение.Период = Дата;
        Движение.Номенклатура = ВыборкаТовары.Номенклатура;
        Движение.Количество = ВыборкаТовары.Количество;
    КонецЦикла;
   
    //  3. Запись движений в БД
    Движения.СвободныеОстатки.Записывать = Истина;
    Движения.Записать();
   
    //  4. Запрос, получающий отрицательные остатки из регистра
    Запрос.Текст =
        "ВЫБРАТЬ
        |   Остатки.Номенклатура КАК Номенклатура,
        |   ПРЕДСТАВЛЕНИЕССЫЛКИ(Остатки.Номенклатура) КАК НоменклатураПредставление,
        |   -Остатки.КоличествоОстаток КАК Дефицит
        |ИЗ
        |   РегистрНакопления.СвободныеОстатки.Остатки(
        |           &МоментВремени,
        |           Номенклатура В
        |               (ВЫБРАТЬ
        |                   Товары.Номенклатура КАК Номенклатура
        |               ИЗ
        |                   Товары КАК Товары)) КАК Остатки
        |ГДЕ
        |   Остатки.КоличествоОстаток < 0";
   
    ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая);
    Запрос.УстановитьПараметр("МоментВремени", ГраницаКонтроля);
    РезультатЗапроса = Запрос.Выполнить();
   
    //  5. Вывод сообщений о недостатке товаров
    Если Не РезультатЗапроса.Пустой() Тогда
        Отказ = Истина;
        ВыборкаОшибки = РезультатЗапроса.Выбрать();
        Пока ВыборкаОшибки.Следующий() Цикл
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Товара "+ВыборкаОшибки.НоменклатураПредставление+" недостаточно в количестве "+ВыборкаОшибки.Дефицит+" шт.";
            Сообщение.Сообщить();
        КонецЦикла;
    КонецЕсли;
   
КонецПроцедуры
Показать


Вот такой у меня расход
5. RustamZz 05.05.23 11:05 Сейчас в теме
(4)
Движение = Движения.СвободныеОстатки.ДобавитьРасход();
Вот здесь заменить на Приход.
6. SweaterHen 05.05.23 11:24 Сейчас в теме
(5)Предположим, а как теперь сделать так чтобы я не мог прибавить больше чем отдал
7. RustamZz 05.05.23 11:56 Сейчас в теме
(6) В существующем решении - никак. Потому что ваш расход это не расход, а перемещение со склада на сотрудника.
8. SweaterHen 05.05.23 12:01 Сейчас в теме
(7)Я и хотел узнать новое решение
9. DesertPunk 05.05.23 12:58 Сейчас в теме
(8) Как реализован механизм возврата с точки зрения работы пользователя?
10. RustamZz 05.05.23 13:22 Сейчас в теме
(8) Да я вроде бы по-русски написал: вместо расхода делать перемещение со склада на сотрудника.
11. SweaterHen 10.05.23 08:54 Сейчас в теме
Ну хорошо, а как тогда сделать перемещение от сотрудника на склад
+ я там строку забыл
Движение.Сотрудник = Сотрудник;
Оставьте свое сообщение

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