Имя: Пароль:
1C
1С v8
При выполнении операции резервирования не удалось записать документ
0 D1sly
 
22.02.22
08:39
Вообщем нужно в РМК добавить возможность использовать бумажные пакеты, они не должны ничего стоить, но по ним должно быть движение остатков. Сделал отдельную ТЧ через расширение, а вот движение по ним пока не выходит https://ibb.co/Cw9BxbX. Вылезает такая ошибка при пробитии чека: "При выполнении операции резервирования не удалось записать документ" https://ibb.co/2tt8NvG. Прошелся отладкой, при попытке: Результат = Записать(ПараметрыЗаписи) перекидывает в исключение. Не знаю что делать с этим.

1С:Предприятие 8.3.18.1483
УТ 11.4.13.51
1 D1sly
 
22.02.22
08:44
(0)Ошибка: https://ibb.co/2tt8NvG
Код Движения: https://ibb.co/Cw9BxbX
2 D1sly
 
22.02.22
08:49
Извиняюсь, скриншоты не загрузились почему то
https://radikal.ru/big/64gf8gi9v5d3z
3 D1sly
 
22.02.22
08:52
В модуле объекта Документа ЧекККМ код вот такой:

&После("ОбработкаПроведения")
Процедура ППК_ОбработкаПроведения(Отказ, РежимПроведения)

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

    КонецЦикла;
    Движения.ТоварыНаСкладах.Записать();
    Движения.СвободныеОстатки.Записать();
КонецПроцедуры
4 Смотрящий
 
22.02.22
09:25
(0) Отруби свое поделие
Настрой постоянную скидку на пакеты в 100%
Вруби пересчет чека при изменении строк, или как он там называется
5 D1sly
 
22.02.22
10:12
(4) Изначально хотел так делать, но надо именно через дополнительную ТЧ. Почему движение не проходит? Что надо исправить, куда копать?
6 PuhUfa
 
22.02.22
10:24
(5) Кто сказал, что "надо именно через дополнительную ТЧ"?
Движения не проходят, потому что ты нарушаешь логику УТ, да и всего учета. Ты бы хоть, для начала, посмотрел какие регистры и как затрагиваются в типовых движениях.
7 Смотрящий
 
22.02.22
10:35
(5) "надо именно через дополнительную ТЧ" - это постановка задачи такая ?
8 D1sly
 
22.02.22
11:10
(6) Тот кто дает мне эти задачи, чтобы я учился. Так я и посмотрел, на складе у меня пакеты есть, нужно всего лишь сделать движение остатков при проведении. Но эта ошибка меня ввела в ступор, ковыряюсь в коде и не могу понять что не так
9 D1sly
 
22.02.22
11:11
(7) Да, все верно
10 Смотрящий
 
22.02.22
11:13
(9) Тогда грамотнее всего будет эмулировать твоим кодом скидку на пакеты в 100%, чтобы не трогать потроха УГ
Оно там само дальше поедет и получишь свое "они не должны ничего стоить, но по ним должно быть движение остатков"
11 D1sly
 
22.02.22
11:18
(10) Номенклатура же не проведется при нулевой стоимости, если я сделаю скидку 100% на Пакет
12 Смотрящий
 
22.02.22
11:26
(11) Даладно )))
13 Смотрящий
 
22.02.22
11:27
У номенклатуры будет стоимость, сколько он там стоит пакет твой 10 рэ ? Так что тут 1с тебя не заблочит по причине цена = 0
14 PuhUfa
 
22.02.22
11:32
(8) Не делай сам движений. Оставь это типовому механизму. В самом начале обработки проведения УТ готовит таблицы по документу, дописывай в таблицу товаров свою строку и дальше пускай типовой механизм все делает сам. Или у тебя и это в задачи строго прописано?
15 Kassern
 
22.02.22
11:35
(0) почитайте вот это https://coderstar.ru/kurs-ut11/avtoskidki
вам уже подсказали какими типовыми возможностями решить проблему