Можно ли при получении цен из регистра сведений учитывать количество у последней покупки и...

1. user1069796 01.11.18 14:32 Сейчас в теме +0.32 $m
... и если количество например 2, то делить цену на это количество, что бы в документ подтягивалась правильная цена.

Предыстория: у меня есть конфигурация домашняя бухгалтерия, в ней я решил сохранять цены купленных товаров, что бы потом можно было смотреть сколько стоил товар когда-то. Написав функцию и поправив авто заполнение цены из регистра пришёл к такой ситуации, что в введённых мною данных товары приобретаются в количестве не одной штуки и цена получается в регистре некорректная...

Вот функция (она в общем модуле):

Функция Цена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт
	
	Отбор = Новый Структура ("Покупка", ЭлементНоменклатуры);
	
	ЗначениеРесурса = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);
	
	Возврат ЗначениеРесурса.Цена;
	
КонецФункции
Показать


И вот изменение цены:

&НаКлиенте
Процедура ТабличнаяЧасть4ТоварПриИзменении(Элемент)
	
	СтрокаТабличнойЧасти = Элементы.ТабличнаяЧасть4.ТекущиеДанные;
	
	СтрокаТабличнойЧасти.Цена = ЦеныТоваров.Цена(Объект.Дата, СтрокаТабличнойЧасти.Товар);
	
КонецПроцедуры


Я начинающий и пока только тренируюсь, спасибо за ответы.
+
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Timur.V 78 01.11.18 14:43 Сейчас в теме
у меня есть конфигурация домашняя бухгалтерия, в ней я решил сохранять цены купленных товаров, что бы потом можно было смотреть сколько стоил товар когда-то.

А что за структура регистра, такая как ниже?
дата - категория товара - наименование товара - количество- цена- сумма
+
3. Timur.V 78 01.11.18 14:47 Сейчас в теме
У вас в базе 1с должен быть:
справочник номенклатуры
справочник - категорий номенклатуры
документ - ввод покупки (откуда при проведении попадают записи в регистр накопления)
регистр накопления -
+
4. Климов Сергей 01.11.18 14:47 Сейчас в теме
Так а в чём проблема? Или вы в Цены.Цена сумму записали? Если да, то надо сами данные регистра править, а не их выборку.
+
5. YannikAlx 43 01.11.18 14:48 Сейчас в теме
Интересно где вы начитались что ЦЕНУ можно делить на КОЛИЧЕСТВО и получить что-то осмысленное?
Это что-то новое в бухгалтерии ?
klaus38; +1
6. DmitriiKopasov 13 01.11.18 14:49 Сейчас в теме
Я так догадываюсь, что в регистре цен не хранится количество.
Для получения цены рекомендую использовать запрос, а не "РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор)".
В запросе так же подтягиваешь документ-регистратор, в котором находишь строчку с этой номенклатурой и полученную цену делишь на количество из документа-регистратора.
А по хорошему - надо переписать механизм записи в этот регистр. Туда должна попадать цена на единицу.
+
7. user1069796 01.11.18 16:17 Сейчас в теме
(6) да я уже тоже подумал что надо просто проведение изменить и сделать деление на количество
+
8. d.batovskiy 01.11.18 17:19 Сейчас в теме
Зачем в проведении цену делить на количество? У вас что в документе поступления нет реквизита "Цена"?
+
9. d.batovskiy 01.11.18 17:19 Сейчас в теме
10. user1069796 01.11.18 17:25 Сейчас в теме
Да сумму. Только вот что-то я не пойму, почему вот этот код не отрабатывает?
Прикрепленные файлы:
+
11. kembrik 10 01.11.18 18:11 Сейчас в теме
(10) Потому что а) в коде вы делите всё-таки цену, а не сумму, б) не пишете вид движения с) используете регистр накопления вместо периодического регистра сведений
+
12. user1069796 01.11.18 18:58 Сейчас в теме
(11) Всем спасибо!

Всё работает!

Последний код рабочий. Не работало потому что у меня два документа и я проводил в одном, а результата ждал в другом!

* * *

Теперь другая штука!

Есть документы в которых строчка с товаром повторяется и у каждой стоит количество 1.

В регистр сведений Цены этот документ не пишется потому что ошибка из-за невозможности проведения повторок.

* * *

Как сделать так , может обработкой, что бы строки с одинаковым товаром схлопнуть и поставить им количество 2.

:)
+
13. гаврюша 2 02.11.18 08:06 Сейчас в теме
Табличная часть (Tabular section)
Свернуть (GroupBy)
Синтаксис:
Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)

Пример:
Процедура ПослеЗаписи()

Продукция.Свернуть("Номенклатура, ЕдиницаИзмерения, Цена", "Количество");	
КонецПроцедуры
+
14. user1069796 02.11.18 12:23 Сейчас в теме
(13) Попробовал так, ничего не свернулось..

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	Элементы.ТабличнаяЧасть4.Свернуть("Товар, Количество, ЕдИзмерения, ЦенаЗаКГ, Цена", "Количество");
КонецПроцедуры


Что не так?
+
15. kembrik 10 06.11.18 14:59 Сейчас в теме
(14) Вы применяете метод свернуть() к таблице формы, а у него совершенно другой синтаксис. Применять надо к табличной части и именно на стороне сервера.

ТаблицаНомеровГТД = ТаблицаВидыЗапасов.Скопировать(, "АналитикаУчетаНоменклатуры, НомерГТД, Количество");
ТаблицаНомеровГТД.Свернуть("АналитикаУчетаНоменклатуры, НомерГТД", "Количество");

Как то так
+
Внимание! Тема сдана в архив

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