|
Значение не является значением объектного типа (ДокСкидка) | ☑ | ||
---|---|---|---|---|
0
amadeus2010
29.08.14
✎
17:23
|
добрый вечер, в очередной раз Заказчик изменил условие задания, теперь вместо расчета скидки по строке товара, он хочет расчитывать скидку от суммы документа и чтобы на строке проставлялась одинаковая скидка например если сумма больше 500 то скидка на всех строках была 3%. Изменил код процедуры
//////////////////////////////////////////////////////////////////// Процедура РасчетСкидки() //SIP-DIMA СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; //Если СтрокаТабличнойЧасти.Сумма>= 500 Тогда // СтрокаТабличнойЧасти.ДокСкидка = 3; // ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 300 Тогда // СтрокаТабличнойЧасти.ДокСкидка = 2; // ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 150 Тогда // СтрокаТабличнойЧасти.ДокСкидка = 1; // КонецЕсли; Если СуммаДокумента>= 500 Тогда СтрокаТабличнойЧасти.ДокСкидка = 3; ИначеЕсли СуммаДокумента>= 300 Тогда СтрокаТабличнойЧасти.ДокСкидка = 2; ИначеЕсли СуммаДокумента>= 150 Тогда СтрокаТабличнойЧасти.ДокСкидка = 1; КонецЕсли; КонецПроцедуры ///////////////////////////////////////////////////////////////// но мне дает ошибку {Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента(2712)}: Значение не является значением объектного типа (ДокСкидка) СтрокаТабличнойЧасти.ДокСкидка = 3; убрал вызов процедуры в строках сумма, цена, количество, ДокСкидка, также при выводе строки убрал из расчета всего вычет ДокСкидка.Не могу понять в чем ошибка |
|||
1
Ёпрст
29.08.14
✎
17:26
|
отладчик то че хоть говорит ?
|
|||
2
Ёпрст
29.08.14
✎
17:26
|
че там у тя в СтрокаТабличнойЧасти ?
|
|||
3
amadeus2010
29.08.14
✎
17:30
|
пока отладчик не запускал
|
|||
4
Ёпрст
29.08.14
✎
17:35
|
а ну ладно, форум телепатов подскажет, тут онлайн отладчик завсегда работает
|
|||
5
amadeus2010
29.08.14
✎
17:41
|
сейчас проверил отладчиком он срабатывает при создании документа, потом при выборе всех элементов ТЧ в итоге выбрал товар 20 шт. по цене 8.40 отладчик вошел в процедуру и показал после нажатия на кнопку записать в строке скидка 1%.
|
|||
6
Ёпрст
29.08.14
✎
17:43
|
Этот код (проца) где хоть вызывается то хоть ?
На чем висит ? |
|||
7
amadeus2010
29.08.14
✎
17:43
|
но если убрать отладчик тогда опять выходит ошибка Значение не является значением объектного типа ДокСкидка
|
|||
8
amadeus2010
29.08.14
✎
17:44
|
это УТ 10.3 вызывается в ОбновитьПодвал
|
|||
9
amadeus2010
29.08.14
✎
17:46
|
в Обновить подвал есть еще такие строки
ЭлементыФормы.Скидка.Значение = ОбщегоНазначения.ФорматСумм(Товары.Итог("ДокСкидка")); ЭлементыФормы.Всего.Значение = ОбщегоНазначения.ФорматСумм(Товары.Итог("Сумма")-Товары.Итог("Сумма")*(Товары.Итог("ДокСкидка")/100) + ?(СуммаВключаетНДС, 0, Товары.Итог("СуммаНДС"))); |
|||
10
Ёпрст
29.08.14
✎
17:48
|
(8) да уж..
а вам не кажется, что вызов этого кода там - это п..ц полный ? |
|||
11
Крошка Ру
29.08.14
✎
17:49
|
(0)Вариант только один на момент выполнения
СтрокаТабличнойЧасти.ДокСкидка = 3 в этой строке нет поля ДокСкидка |
|||
12
Ёпрст
29.08.14
✎
17:49
|
и это, на досуге, неплохо бы подумать, что есть
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; там.. а лучше поглядеть в отладчике :) особенно, если строк в ТЧ больше одной :) |
|||
13
Крошка Ру
29.08.14
✎
17:50
|
(10) Да обсуждали уже... И вызов кода, и установка скидок примо в коде...
|
|||
14
Крошка Ру
29.08.14
✎
17:50
|
*прямо
|
|||
15
Ёпрст
29.08.14
✎
17:54
|
(13) аа.. ну ладно, тогда пусть лепит, чего уж там.
|
|||
16
amadeus2010
29.08.14
✎
18:06
|
удивительно но код работает только когда открываешь заново документ выходит ошибка в (0)
|
|||
17
amadeus2010
29.08.14
✎
18:07
|
прошу вас если возможно ткните меня в причину ошибки
|
|||
18
Ёпрст
29.08.14
✎
18:10
|
Даже не знаю, как с помощью инета в тебя ткнуть пальцем, разве что кого попросить ?
Кто там у вас рядом работает, сидит ? Попросите его, пусть ткнёт вас от моего имени, я разрешаю. |
|||
19
shuhard
29.08.14
✎
18:12
|
(16) глянул я и действительно, окуительно, окуительно ...
|
|||
20
amadeus2010
29.08.14
✎
18:16
|
насчет ткнуть это я образно, сам что-то не соображу где ошибка в коде или не из той процедуры вызываю Расчет скидки()?
|
|||
21
hhhh
29.08.14
✎
19:05
|
(20) при открытии похоже нет ЭлементыФормы.Товары.ТекущиеДанные
сделай Процедура РасчетСкидки() //SIP-DIMA Если ЭлементыФормы.Товары.ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; //Если СтрокаТабличнойЧасти.Сумма>= 500 Тогда // СтрокаТабличнойЧасти.ДокСкидка = 3; // ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 300 Тогда // СтрокаТабличнойЧасти.ДокСкидка = 2; // ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 150 Тогда // СтрокаТабличнойЧасти.ДокСкидка = 1; // КонецЕсли; Если СуммаДокумента>= 500 Тогда СтрокаТабличнойЧасти.ДокСкидка = 3; ИначеЕсли СуммаДокумента>= 300 Тогда СтрокаТабличнойЧасти.ДокСкидка = 2; ИначеЕсли СуммаДокумента>= 150 Тогда СтрокаТабличнойЧасти.ДокСкидка = 1; КонецЕсли; КонецПроцедуры |
|||
22
amadeus2010
30.08.14
✎
11:02
|
большое спасибо за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |