|
Проблема при списании стоимости | ☑ | ||
---|---|---|---|---|
0
RisenAzazel
11.04.18
✎
10:48
|
Здравствуйте.
Имеется ведомость по товарам на складах. Товар у меня приходуется и расходуется по одной розничной цене. Но при изменении цены товар расходуется по последней цене(цены хранятся в регистре сведений). В итоге на конечных остатках у меня получается неправильная сумма. Например: Товар Приход Расход КонечныйОстаток Очки 20шт. 24р | 10шт. 13р | 10шт. 11р Куртка 15шт. 258р | 15шт. 259p | 0шт. -1р Фотокамера 15шт. 201р | 15шт. 200p | 0шт. 1р Подскажите как решить эту проблему. |
|||
1
Cool_Profi
11.04.18
✎
10:50
|
Менять цену в регистре на остатках при изменении цены
|
|||
2
catena
11.04.18
✎
10:52
|
А зачем вы приходуете товар по розничной цене?
|
|||
3
Масянька
11.04.18
✎
10:53
|
(2) Поддержу - зачем?
|
|||
4
igorPetrov
11.04.18
✎
10:57
|
(2) Да и бы спросил - зачем?
|
|||
5
RisenAzazel
11.04.18
✎
10:58
|
Задание такое.
В регистр товар должен приходоваться по продажной стоимости. |
|||
6
Pro1001C
11.04.18
✎
11:00
|
ну если задание такое... тогда расход должен идти по той цене, по которой пришел товар, а не которая сейчас. Партионный учет вам в помощь.
Хотя думаю что-то не договаривают и задачу можно решить проще |
|||
7
Масянька
11.04.18
✎
11:02
|
(5) А продажная стоимость как определяется?
|
|||
8
catena
11.04.18
✎
11:04
|
(6)А, ну тогда с получившейся проблемой к тому же задачнику. Почему проектировку регистров вы доверяете пользователям, а решать получившиеся проблемы пытаетесь силами программиста?
|
|||
9
RisenAzazel
11.04.18
✎
11:09
|
Масянька,
В форме документа, запросом выгружаю цену (срез последних) Функция ПолучитьЦену(Товар) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РозничныеЦеныСрезПоследних.Цена КАК Цена |ИЗ | РегистрСведений.РозничныеЦены.СрезПоследних(, Товар = &Товар) КАК РозничныеЦеныСрезПоследних"; Запрос.УстановитьПараметр("Товар", Товар); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ВыборкаДетальныеЗаписи.Следующий(); Возврат ВыборкаДетальныеЗаписи.Цена; КонецФункции Затем умножаю на количество запрашиваемого товара &НаКлиенте Функция ПолучитьСумму(ТекДанные) ТекДанные.Сумма = ТекДанные.Количество*ТекДанные.Цена; КонецФункции |
|||
10
Джинн
11.04.18
✎
11:10
|
(5) Переоценку нужно делать всегда.
|
|||
11
Масянька
11.04.18
✎
11:12
|
(9) Ты не понял...
"должен приходоваться по продажной стоимости" - откуда берется продажная стоимость? |
|||
12
RisenAzazel
11.04.18
✎
13:00
|
Масянька, Цена + наценка.
|
|||
13
КнОпка
11.04.18
✎
13:09
|
Но при изменении цены товар расходуется по последней цене(цены хранятся в регистре сведений).
учет товаров какой - по средней, по партиям? |
|||
14
КнОпка
11.04.18
✎
13:09
|
И да, озвучьте конфигурацию
|
|||
15
RisenAzazel
11.04.18
✎
13:21
|
КнОпка, по средней.
Приходная накладная: Процедура ОбработкаПроведения(Отказ, Режим) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриходнаяНакладнаяТовары.Товар КАК Товар, | СУММА(ПриходнаяНакладнаяТовары.Количество) КАК Количество |ПОМЕСТИТЬ ПНВрем |ИЗ | Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары |ГДЕ | ПриходнаяНакладнаяТовары.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ПриходнаяНакладнаяТовары.Товар |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РозничныеЦеныСрезПоследних.Товар КАК Товар, | РозничныеЦеныСрезПоследних.Цена КАК Цена |ПОМЕСТИТЬ РЦСПВрем |ИЗ | РегистрСведений.РозничныеЦены.СрезПоследних( | , | Товар В | (ВЫБРАТЬ | ПНВрем.Товар | ИЗ | ПНВрем)) КАК РозничныеЦеныСрезПоследних |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПНВрем.Товар, | ПНВрем.Количество, | РЦСПВрем.Цена КАК Цена, | Цена * ПНВрем.Количество КАК СуммаРЦ |ИЗ | ПНВрем КАК ПНВрем | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РЦСПВрем КАК РЦСПВрем | ПО ПНВрем.Товар = РЦСПВрем.Товар"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Движения.Остатки.Записывать = Истина; ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение = Движения.Остатки.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Товар = ВыборкаДетальныеЗаписи.Товар; Движение.Склад = Склад; Движение.Количество = ВыборкаДетальныеЗаписи.Количество; Движение.Стоимость = ВыборкаДетальныеЗаписи.СуммаРЦ; Движение.Цена = ВыборкаДетальныеЗаписи.Цена; КонецЦикла; КонецПроцедуры Расходная накладная: Процедура ОбработкаПроведения(Отказ, РежимПроведения) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | РасходТовары.Товар КАК Товар, | РасходТовары.Количество КАК Количество, | РасходТовары.Сумма КАК Сумма |ПОМЕСТИТЬ ПМВрем |ИЗ | Документ.Расход.Товары КАК РасходТовары |ГДЕ | РасходТовары.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | пврем.Товар КАК Товар, | пврем.Количество КАК Количество, | пврем.Сумма КАК Сумма |ИЗ | ПМВрем КАК пврем"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Движения.Остатки.Записывать = Истина; Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Движение = Движения.Остатки.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Товар = Выборка.Товар; Движение.Склад = Склад; Движение.Количество = Выборка.Количество; Движение.Стоимость = Выборка.Сумма; КонецЦикла; Движения.Записать(); Движения.Продажи.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.Продажи.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Товар = ТекСтрокаТовары.Товар; Движение.Склад = Склад; Движение.Количество = ТекСтрокаТовары.Количество; Движение.Стоимость = ТекСтрокаТовары.Сумма; КонецЦикла; Запрос.Текст = "ВЫБРАТЬ | ОстаткиОстатки.Товар, | ОстаткиОстатки.КоличествоОстаток КАК Остаток |ИЗ | РегистрНакопления.Остатки.Остатки( | , | Склад = &Склад | И Товар В | (ВЫБРАТЬ | ПМВрем.Товар | ИЗ | ПМВрем)) КАК ОстаткиОстатки |ГДЕ | ОстаткиОстатки.КоличествоОстаток < 0"; Запрос.УстановитьПараметр("Склад", Склад); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не хватает товара " + Выборка.Товар + ", после проведения документа остаток составит " + Выборка.Остаток; Сообщение.Сообщить(); Отказ = Истина; КонецЦикла; КонецПроцедуры |
|||
16
Йохохо
11.04.18
✎
13:30
|
(0) см (10) у тебя работа типа НПП, неавтоматизированная торговая точка, погугли
|
|||
17
Йохохо
11.04.18
✎
13:31
|
НТТ конечно
|
|||
18
Масянька
11.04.18
✎
13:32
|
(12) Я правильно понимаю, что продажная цена формируется так:
приход -> 1 фигня 100 рэ (в приходном док-те) -> формирование цены = 1 фигня 100 рэ + наценка ? |
|||
19
RisenAzazel
12.04.18
✎
09:33
|
Списывать стоимость из регистра остатков.
Тоесть как это сделать? |
|||
20
Михаил Козлов
12.04.18
✎
09:39
|
(19) СтоимостьСписуемого = СтоимостьОстаток/КоличествоОстаток*КоличествоСписуемого;
|
|||
21
hhhh
12.04.18
✎
09:46
|
(18) хрень какая-то. Розничная цена формируется из прайса. Документ Установка цен номенклатуры.
|
|||
22
RisenAzazel
12.04.18
✎
12:32
|
Михаил Козлов
20 - 12.04.18 - 09:39 (19) СтоимостьСписуемого = СтоимостьОстаток/КоличествоОстаток*КоличествоСписуемого; Спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |