Приходую один товар по одной цене первым документом, приходую тот же товар по другой цене вторым документом. Считаю себестоимость в регистре "продажи"
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
СтоимостьТовара = 0;
Иначе
СтоимостьТовара =
ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
КонецЕсли;
// регистр Продажи
..........
Движение.Стоимость = СтоимостьТовара;
КонецЦикла;
Проблема вот в чем. продаю товар первой расходной накладной, продаю его же в другом количестве другой расходной накладной. захожу в регистр продажи.
а себестоимость у него в одной строчке 2974,33, а у него же в другой строчке (по другому документу продан) 2974,34.
также с другим товаром, только там разница в 10-20 копеек. Как убрать эту разницу чтобы себестоимость везде была одинаковая? (с равным количеством копеек)
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
СтоимостьТовара = 0;
Иначе
СтоимостьТовара =
ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
КонецЕсли;
// регистр Продажи
..........
Движение.Стоимость = СтоимостьТовара;
КонецЦикла;
Проблема вот в чем. продаю товар первой расходной накладной, продаю его же в другом количестве другой расходной накладной. захожу в регистр продажи.
а себестоимость у него в одной строчке 2974,33, а у него же в другой строчке (по другому документу продан) 2974,34.
также с другим товаром, только там разница в 10-20 копеек. Как убрать эту разницу чтобы себестоимость везде была одинаковая? (с равным количеством копеек)
По теме из базы знаний
- Инвентаризация: заполнение фактических количеств по подчиненным документам списания/оприходования, учетных количеств по РАУЗ
- Материальный отчет для конфигурации УСН по счету 10.1 с отбором по месту хранения
- 1C:ERP, РАУЗ и встречный выпуск
- Автоматизация предприятий пищевой отрасли на базе 1С:ERP (прослеживаемость состава готовой продукции от сырья до реализации)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
пока при таких операциях (СтоимостьТовара =
ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество; ) не будете учитывать погрешность, у вас всегда будет разница
а с учетом погрешностей, себестоимость никогда не будет одинаковой, по крайней мере остаток партии будет списан +/- 1 коп
ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество; ) не будете учитывать погрешность, у вас всегда будет разница
а с учетом погрешностей, себестоимость никогда не будет одинаковой, по крайней мере остаток партии будет списан +/- 1 коп
На регистрах обычно 2 знака после запятой. И автоматом округляет до того количества знаков, которое указано в ресурсе.
Окр(ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество, 2) не всегда равно ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество
Разницу учитывать отдельно, и добавлять её на след строку...
Окр(ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество, 2) не всегда равно ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество
Разницу учитывать отдельно, и добавлять её на след строку...
У вас в любом случаи не сойдется
1000/3 себестоимость 1 ед. 333,33333333333333333333333.....
если округление 2 знака тогда
333,33
333,33
333,34
если 1 знак
333,30
333,30
333,40
в любом случаи одинаковыми все партии не будут
1000/3 себестоимость 1 ед. 333,33333333333333333333333.....
если округление 2 знака тогда
333,33
333,33
333,34
если 1 знак
333,30
333,30
333,40
в любом случаи одинаковыми все партии не будут
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
СтоимостьТовара = 0;
Иначе
СтоимостьТовара =
ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
КонецЕсли;
// регистр Продажи
..........
Движение.Стоимость = СтоимостьТовара;
КонецЦикла;
Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
СтоимостьТовара = 0;
Иначе
СтоимостьТовара =
ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
КонецЕсли;
// регистр Продажи
..........
Движение.Стоимость = СтоимостьТовара;
КонецЦикла;
На какой момент времени выполняется запрос?
(14)
.......
| Товар В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
| ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Товар
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
......
.......
| Товар В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
| ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Товар
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
......
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
| ,
| Товар В
меняем
| ,
| Товар В
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&ТекДата
| ,
| Товар В
перед Запрос2.Выполнить();
Запрос2.УстановитьПараметр("ТекДата", ТекДата); // ТекДата - заменить на дату из документа
(21)
то что при списании товара по средней, себестоимость скачет на одну две копейки это нормально
разница в несколько рублей это уже ошибка в расчете (разумеется при условии что не было приходов между двумя списаниями)
для начала нужно восстановить последовательность документов,
в вашем случае перепровести ВСЕ документы списания товара (расхода / реализации и т.п.) строго по порядку дат этих документов
то что при списании товара по средней, себестоимость скачет на одну две копейки это нормально
разница в несколько рублей это уже ошибка в расчете (разумеется при условии что не было приходов между двумя списаниями)
для начала нужно восстановить последовательность документов,
в вашем случае перепровести ВСЕ документы списания товара (расхода / реализации и т.п.) строго по порядку дат этих документов
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот