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

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

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

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

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


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

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


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

А что за структура регистра, такая как ниже?
дата - категория товара - наименование товара - количество- цена- сумма
3. Timur.V 67 01.11.18 14:47 Сейчас в теме
У вас в базе 1с должен быть:
справочник номенклатуры
справочник - категорий номенклатуры
документ - ввод покупки (откуда при проведении попадают записи в регистр накопления)
регистр накопления -
4. Климов Сергей 01.11.18 14:47 Сейчас в теме
Так а в чём проблема? Или вы в Цены.Цена сумму записали? Если да, то надо сами данные регистра править, а не их выборку.
5. YannikAlx 43 01.11.18 14:48 Сейчас в теме
Интересно где вы начитались что ЦЕНУ можно делить на КОЛИЧЕСТВО и получить что-то осмысленное?
Это что-то новое в бухгалтерии ?
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 9 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 9 06.11.18 14:59 Сейчас в теме
(14) Вы применяете метод свернуть() к таблице формы, а у него совершенно другой синтаксис. Применять надо к табличной части и именно на стороне сервера.

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

Как то так
Оставьте свое сообщение
Вакансии
Старший программист 1С
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 200 000 руб. до 240 000 руб.
Полный день

Разработчик 1С (от middle до senior), до 300 К gross
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день