|
v7: Глюки интерпретации кода | ☑ | ||
---|---|---|---|---|
0
brenli
04.03.15
✎
15:15
|
Версия платформы (7.70.027)
Конфа над которой "изголяюсь" ТиС 972. Нахожусь в глобальном модуле в процедуре глПересчетТабличнойЧасти(...) Задача: При достижении определенной суммы в документе, брать Оптовые цены из справочника. Идея: При добавлении или редактировании строки табличной части документа, запускается процедура ПересчетТабличнойЧасти. Предельная величина цены, после которой срабатывает пересчет задается в константах. Так же на форме документа существует "Флажок", если он отключен, остальные условия не влияют - цена расчитывается стандартным алгоритмом, если установлен и константа "Порогового значения цены" не равна 0 и если сумма документа превышает значение константы, берется оптовая цена из справочника цен...если конечно имеется у товара. Корректно не работает условие: Если не установлено количество, цена нормально пересчитывается при включении и отключении флажка. Как только устанавливается количество .. Не срабатывает оператор "Сообщить(3)", хотя итог по документу превышает размер константы, о чем свидетельствует операторы "Сообщить(2)" и "Сообщить(" "+СуммаКонстанты+" "+ИтогПоДокументу)" при выполнении 2 условия. //... ИначеЕсли ИмяРеквизита = "Цена" Тогда ИтогПоДокументу = Конт.Итог("Сумма"); Если (Конт.ВклОптЦены=1) Тогда Сообщить(1); Если (СуммаКонстанты > 0) Тогда Сообщить(2); Сообщить(" "+СуммаКонстанты+" "+ИтогПоДокументу); Если (СуммаКонстанты > ИтогПоДокументу) Тогда Сообщить(3); Конт.Цена = ВычислениеОптовойРозничнойЦены(Конт.Номенклатура, Конт.ДатаДок,1); КонецЕсли; КонецЕсли; Иначе Конт.Цена = ВычислениеОптовойРозничнойЦены(Конт.Номенклатура, Конт.ДатаДок,2); КонецЕсли; //... Условия специально раскидал так для наглядности... Что можете посоветовать, сравнение ">" не работает. p.s Периодически встречаются подобные баги в интерпретации кода. |
|||
1
ShoGUN
04.03.15
✎
15:19
|
(0) А итог-то точно считается? Проверял?
|
|||
2
altone1C
04.03.15
✎
15:20
|
Проверить, возможно "ИтогПоДокументу" или "СуммаКонстанты" где-то внезапно стали строковыми.
|
|||
3
altone1C
04.03.15
✎
15:21
|
При этом ИтогПоДокументу исключается, судя по коду.
СуммаКонстанты - тип? Откуда берется? |
|||
4
brenli
04.03.15
✎
15:21
|
(1) Считается точно.
(2) Типы проверял, - числа |
|||
5
brenli
04.03.15
✎
15:21
|
(3) Тип Число, берется из константы
|
|||
6
Масянька
04.03.15
✎
15:22
|
(4) А что значит " сравнение ">" не работает. "?
|
|||
7
brenli
04.03.15
✎
15:23
|
Ребята....ссори.
Я похоже лоханулся в 3 условии. Все правильно, снак сравнения нужно поставить в другую сторону =D |
|||
8
altone1C
04.03.15
✎
15:24
|
(5) Тестовый вывод Сообщить() скопируй сюда тоже
|
|||
9
Ёпрст
04.03.15
✎
15:24
|
СуммаКонстанты=?
ИтогПоДокументу=? |
|||
10
ShoGUN
04.03.15
✎
15:25
|
(7) ЛОЛ :)
|
|||
11
brenli
04.03.15
✎
15:26
|
Сумма же по документу появляется когда есть количество, поэтому оно и срабатывало когда константа больше.
p.s Тему удалить =D |
|||
12
Ёпрст
04.03.15
✎
15:30
|
не самое лучшее решение с константой.. мегатормоз. Ну, разве что кешировать значение константы где-нить
|
|||
13
brenli
04.03.15
✎
15:32
|
(12) Предложи лучше?
В форме документа в "Ценах" задать лимит? |
|||
14
palpetrovich
04.03.15
✎
15:59
|
(12) а в чем тормоз? один раз переменной присвоить знгачение константы, далее работать с пеерменной, я так понял - так и делается у автоаа, в чем тормоз?
|
|||
15
Новый участник
04.03.15
✎
16:03
|
С ГлПересчётом можно и тормоза от зацикливания получить, и мультивибратор - посчитал, сумма выше порога, сработала скидка, сумма выше порога, и т.д.
Определи событие, при котором пересчитываешь, и следи за частотой его срабатывания. |
|||
16
Ёпрст
04.03.15
✎
16:04
|
(13)
1. дергаешь константу 2.дергаешь цены из этой же таблички 1сконст..не самое лучшее решение. А так, кешировать хотя бы, и цены и константу. А то, подтормаживать будет |
|||
17
brenli
05.03.15
✎
06:30
|
(16) Спасибо, учту
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |