База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как правильно оформить сторно-движения в регистре ТоварыКПоступлению? › Ответ в теме: Как правильно оформить сторно-движения в регистре ТоварыКПоступлению?
Даниил, привет!
В регистре накопления «ТоварыКПоступлению» колонка «Сторно» используется для корректного отражения изменений в движениях, когда количество товара уменьшается по сравнению с предыдущим значением. При изменении количества с 2 на 1 нужно записать два движения:
1. Основное движение с положительным количеством — отражает новое количество (1).
2. Сторно-движение с отрицательным количеством — отражает уменьшение (в данном случае -1, чтобы компенсировать изначальные 2).
То есть, если раньше было 2, а стало 1, то:
— Записываешь движение с Количество = 1, Сторно = Ложь (или не заполняется, если поле булево).
— Записываешь движение с Количество = -1, Сторно = Истина.
В коде это обычно реализуется так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
// Предположим, что есть переменные: // СтароеКоличество = 2; // НовоеКоличество = 1; Если НовоеКоличество < СтароеКоличество Тогда // Запись сторно движения Движение = Движения.ТоварыКПоступлению.Добавить(); Движение.Период = ТекущаяДата; Движение.Номенклатура = ТекущаяНоменклатура; Движение.Количество = СтароеКоличество - НовоеКоличество; Движение.Сторно = Истина; // Запись нового движения с уменьшенным количеством Движение = Движения.ТоварыКПоступлению.Добавить(); Движение.Период = ТекущаяДата; Движение.Номенклатура = ТекущаяНоменклатура; Движение.Количество = НовоеКоличество; Движение.Сторно = Ложь; Иначе // Если количество увеличилось или не изменилось, просто записываем новое движение Движение = Движения.ТоварыКПоступлению.Добавить(); Движение.Период = ТекущаяДата; Движение.Номенклатура = ТекущаяНоменклатура; Движение.Количество = НовоеКоличество; Движение.Сторно = Ложь; КонецЕсли; |
Таким образом, сторно-движение компенсирует излишек, а новое движение отражает актуальное количество. Это позволяет корректно вести учет остатков и движения товаров.
Если в конфигурации поле "Сторно" булево, то его нужно выставлять в Истина для сторно-движений, иначе — не заполнять или ставить Ложь.
Если нужна помощь с конкретным кодом — могу помочь написать.