Товары с нулевым количеством, но не с нулевой себестоимостью

1. t955938 17.02.17 09:08 Сейчас в теме
Добрый день!
Пытаюсь написать функционал списания себестоимости товаров при реализации. Конфигурация самописная.
Расчет себестоимости повожу средней.
Написал запрос для определения себестоимости товара на определенный момент времени:

ВЫБРАТЬ
	ЗапасыОстатки.Номенклатура,
	ЗапасыОстатки.КоличествоОстаток,
	ЗапасыОстатки.СуммаОстаток
ИЗ
	РегистрНакопления.Запасы.Остатки(&Период, Номенклатура = &Номенклатура) КАК ЗапасыОстатки


Получил что количество 3 шт, , себестоимость 15.91 руб.
После этого создал три расходных документов с одинаковым временем (включая секунды) и в каждом продовал по одному товару.
При проводке каждого из документов запрос показывал, что осталось 3 шт. и их себестоимость 15.91.
Списывал на каждый документ 15.91/3.
В результате получил, что осталось 0 штук, но себестоимость 0,01 руб.
Как с этим бороться????
Т.е. остаются остатки с нулевым количеством, но не нулевой себестоимостью.
+
По теме из базы знаний
Найденные решения
10. t955938 17.02.17 10:10 Сейчас в теме
Момент времени = время документа? Но тогда получается остатки по суммам.
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisCh 17.02.17 09:10 Сейчас в теме
Обычно это делается так: при списании товара проверяется, не всё ли списываем. Если нет - считаем по среднему. Если всё - весь остаток суммы.
+
3. ludasovr 17.02.17 09:15 Сейчас в теме
есть еще проблема копеек как на экзамене на спеца.в книге есть код
+
4. t955938 17.02.17 09:29 Сейчас в теме
Спасибо за ответы.
Я так и пробовал.
Если Стр.Количество = Стр.СебестКол Тогда
Себестоимость = Стр.СебестСум;
Иначе
Себестоимость = Окр(Стр.Количество*Стр.СебестСум/Стр.СебестКол, 2);
КонецЕсли;

Но так как время одинаковое, во всех трех документах продажи, показывает, что осталось 3 штуки, списывается одна.

Если можно в кратце напишите, а как эту проблему решают на экзамене на спеца. Пожалуйста!
+
5. t955938 17.02.17 09:33 Сейчас в теме
Правильно ли будет в запросе на определения себестоимости указывать на одну секунду больше, чем время документа???
Но тогда если следующую секунду было поступление товаров, то их себестоимости соединяться. Но это лучше, чем себестоимость без количества.
+
6. starjevschik 17.02.17 09:35 Сейчас в теме
(5) сколько документов в день в базе делается? Если 10000, то, возможно, проблема и существует. Но как-то я сомневаюсь.
Если уж так приспичило, проще запретить записывать документы одним временем. Я подозреваю, что проблемы на самом деле нет и в реальности вероятность ее появления микроскопическая.
+
7. t955938 17.02.17 09:40 Сейчас в теме
Вопрос чисто теоретический. Меня интересует, как писать правильный код.
Как вы считаете, вариант с добавлением секунды в запросе от времени документа продаж правильный??? Или грамотнее запретить создавать документы с одинаковым временем.
Мне кажется первый вариант лучше.
+
8. t955938 17.02.17 09:45 Сейчас в теме
Разумеется если документ ранее был проведен, его нужно распровести, перед определением себестоимости через секунду.
+
9. alex-l19041 8 17.02.17 10:04 Сейчас в теме
В &Период надо передавать МоментВремени
+
10. t955938 17.02.17 10:10 Сейчас в теме
Момент времени = время документа? Но тогда получается остатки по суммам.
+
11. alex-l19041 8 17.02.17 10:16 Сейчас в теме
Момент времени <> время документа

Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методов других объектов, имеющих тип МоментВремени.
Момент времени используется в тех случаях, когда важно различать моменты времени для объектов, имеющих одинаковую дату и время, например для сравнения положений документов на временной оси.
+
12. t955938 17.02.17 10:21 Сейчас в теме
Большое спасибо. Сейчас прочитаю про это.
+
13. t955938 17.02.17 10:27 Сейчас в теме
Момент = Новый МоментВремени(ТекДокумент.Дата, ТекДокумент.Ссылка);


Большое спасибо за подсказку!!!!!!!!
+
14. Peltzer 17.02.17 10:36 Сейчас в теме
Окр(Стр.Количество*Стр.СебестСум/Стр.СебестКол, 2); - за счёт округления всегда будут копейки в плюс / в минус.
досписывайте копейку при продаже в ноль и контролируйте дополнительно превышение себестоимости за счет округления.
+
15. t955938 17.02.17 10:42 Сейчас в теме
Да. Моя ошибка была в том, что я использовал в запросе дату документа, а не момент времени.
+
Внимание! Тема сдана в архив

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