Как записать значение колонки, добавленной на форму документа реализации, в регистр "Продажи"?

1. I_train 06.09.21 16:08 Сейчас в теме
В УТ10.3 в таб. часть формы документа "РеализацияТоваровУслуг" добавил колонку "Бонус". В регистр "продажи " тоже добавил колонку для записи значения бонуса, пытаюсь записать его в регистр используя подписку на событие и общий модуль (Код №1), так все работает, но при проведении создается дополнительная строчка в регистре, и это не правильно мне говорят, пытаюсь сделать что то типо такого (Код №2), но как получить значение табличной части "Товары" не знаю, подскажите если не трудно


Код№1
Процедура ОбработкаПроведения(Объект, Отказ, РежимПроведения) Экспорт
		Объект.Движения.Продажи.Записывать = Истина;
		Движение = Объект.Движения.Продажи.Добавить();
		Движение.Стоимость = Объект.СуммаДокумента; 
		Движение.Период = Объект.Дата;
		Движение.Подразделение = Объект.Подразделение;
		Движение.Проект = Объект.Проект;
		Движение.Организация = Объект.Организация;
		Движение.Контрагент = Объект.Контрагент;
		Движение.Бонус_Добавленно = Объект.Товары.Итог("Бонус_Добавленно");
		Движение.Продавец_Добавленно = Объект.Ответственный;
		Движение.Стоимость = Объект.СуммаДокумента;                                                                                                                      
КонецПроцедуры     

Код№2
Процедура ОбработкаПроведения(Объект, Отказ, РежимПроведения) Экспорт
	Регистратор=Объект.Ссылка;
	НаборЗаписей=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
	НаборЗаписей.Прочитать();	
	Для каждого Запись из НаборЗаписей Цикл
		Запись.Бонус_Добавленно=Объект.Товары.Бонус_Добавленно;		
	КонецЦикла;
	КонецЦикла;
	НаборЗаписей.Записать();		
КонецПроцедуры

Показать
По теме из базы знаний
Найденные решения
26. user790708 07.09.21 11:21 Сейчас в теме
(25)Что значит не принимает: Ошибка возникает? Данные не те, что вы ожидаете?
По алгоритму приведенному в (23) у вас во всех записях, по идее, будет значение скидки последней строки документа.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisVol 2 06.09.21 16:24 Сейчас в теме
"но как получить значение табличной части "Товары" не знаю" что Вы имеете ввиду?
4. I_train 06.09.21 16:27 Сейчас в теме
(2) в коде №2 есть строчка "Запись.Бонус_Добавленно=Объект.Товары.Бонус_Добавленно; " пытаюсь из табличной части Товары взять значение бонуса(Бонус_Добавленно), но как то неправлено это делаю и в отладке значение Бонус_Добавленно недоступно
3. user790708 06.09.21 16:26 Сейчас в теме
Какой тип у параметра Объект? Если это ссылка на документ, то выбирайте запросом данные ТЧ по этой ссылке. Если это ДокументОбъект, либо берите из него данные, либо снова запросом с отборм по Объект.Ссылка
5. I_train 06.09.21 16:29 Сейчас в теме
(3)
Посмотрите на код№2 "Запись.Бонус_Добавленно=Объект.Товары.Бонус_Добавленно;" вроде бы в этой строчке пытаюсь взять данные табличной части товары, но не доступны они, ка правельно обратится к Бонус_Добавленно?
11. user790708 06.09.21 17:01 Сейчас в теме
(5)Еще раз: Какой тип у параметра Объект?
12. I_train 06.09.21 17:03 Сейчас в теме
(11)Параметр - ДокументОбъект.РеализацияТоваровУслуг
13. I_train 06.09.21 17:03 Сейчас в теме
(12)
Прикрепленные файлы:
22. user790708 06.09.21 19:32 Сейчас в теме
(13) В коде № 2 вы обращаетесь к ТЧ объекта, у ТЧ нет реквизита Бонус_Добавленно
У ТЧ Есть строки, вам надо перебрать строки или обратится к строке ТЧ по номеру и уже в строке ТЧ Будет добавленное вами поле Бонус_Добавленно и оно бужет содержать значение

НомерСтроки = 0;
Запись.Бонус_Добавленно = Объект.Товары[НомерСтроки].Бонус_Добавленно;
23. I_train 06.09.21 20:21 Сейчас в теме
(22) так, к сожалению не работает, я пытаюсь наг@внокодить хоть как то запихнув значение табличной части бонус "Строка.Бонус_Добавленно" в значение строк регистра "Запись.Бонус_Добавленно", но и это не работает.....

Процедура ОбработкаПроведения(Объект, Отказ, РежимПроведения) Экспорт
    Регистратор=Объект.Ссылка;
    НаборЗаписей=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);
    НаборЗаписей.Прочитать();
	ЗначениеБонуса =0;
			Для каждого Строка из Объект.Товары Цикл
 				ЗначениеБонуса=Строка.Бонус_Добавленно;				
					Для каждого Запись из НаборЗаписей Цикл
					Запись.Бонус_Добавленно=ЗначениеБонуса;
				КонецЦикла;
	КонецЦикла;
    НаборЗаписей.Записать();        
КонецПроцедуры
Показать
24. user790708 07.09.21 11:12 Сейчас в теме
(23)Что именно не работает?
25. I_train 07.09.21 11:16 Сейчас в теме
(24) Запись.Бонус_Добавленно=ЗначениеБонуса;

"Запись.Бонус_Добавленно" не принимает значение от "ЗначениеБонуса" хотя они оба имеют значение число
26. user790708 07.09.21 11:21 Сейчас в теме
(25)Что значит не принимает: Ошибка возникает? Данные не те, что вы ожидаете?
По алгоритму приведенному в (23) у вас во всех записях, по идее, будет значение скидки последней строки документа.
27. I_train 07.09.21 11:25 Сейчас в теме
(26) а да, действительно.... ладно, забью на это))
6. DenisVol 2 06.09.21 16:31 Сейчас в теме
Вы хотите писать туда итог по ТЧ или для каждой номенклатуры свой бонус?
8. I_train 06.09.21 16:46 Сейчас в теме
(6) Сначала делал как итог, но когда сказали что мой первый вариант не правильный, решил по каждой номенклатуре отдельно
7. DenisVol 2 06.09.21 16:34 Сейчас в теме
//надо обходить строки в цикле, и у каждой строки будет свое значение:
Для Каждого СтрокаТЧ Из Объект.Товары
   Запись.Бонус_Добавленно = СтрокаТЧ.Бонус_Добавленно;
КонецЦикла;
9. homer_ 78 06.09.21 16:55 Сейчас в теме
Правильно и сточке зрения работы и обновления сделать так:
1. Подписка.
2. Код взять из документа и в код добавить колонку которую необходимо вычислить.
3. Очистить исходную таблицу и записать свои данные полученные из п 2.
10. I_train 06.09.21 17:01 Сейчас в теме
(9) я пробовал так но не совсем понятно какие реквизиты регистр соответствуют какие реквизитам Документа реализации ,например что указывать в ресурсе "Стоимость" и "СтоимостьБезскидки"? Она ведь как то рассчитывается
14. I_train 06.09.21 17:06 Сейчас в теме
(9) я пробовал делать так, но не всегда понятно какие реквизиты регистра сопоставлять с какими реквизитами документа. Например, что указать в стоимость и в стоимость без скидки, стоимость ведь как то рассчитывается, включая разные скидки
Прикрепленные файлы:
16. homer_ 78 06.09.21 17:07 Сейчас в теме
(14) поэтому я и написал что код взять из документа. Где за тебя все подумали.
17. I_train 06.09.21 17:11 Сейчас в теме
(16) Этот код еще бы найти... В обработке проведения есть такая строчка, но в ней нет регистра продаж
ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоСкидкам, ТаблицаПоТаре,
		                    ТаблицаПоУслугам, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок);
18. homer_ 78 06.09.21 17:13 Сейчас в теме
(17) а здесь смотрел ДвиженияПоРегистрамУпр
20. I_train 06.09.21 18:38 Сейчас в теме
(19)
(18)
а здесь смотрел ДвиженияПоРегистрамУпр
а в самой процедуре ДвиженияПоРегистрамУпр куда нужно смотреть, укажите пожалуйста, если не в тягость, просто очень важно решить
21. I_train 06.09.21 18:38 Сейчас в теме
(20)могу скинуть код процедуры ДвиженияПоРегистрамУпр
15. I_train 06.09.21 17:07 Сейчас в теме
(9)я бы и хотел так сделать
19. homer_ 78 06.09.21 17:19 Сейчас в теме
Я могу ошибаться но мне кажется если имя новой колонке = реквизиту в регистре то работать должно без доработок.
Оставьте свое сообщение

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