Имя: Пароль:
1C
 
УТ 11.2. Логика вычисления БРУТТО в ТОРГ12 по реализации
,
0 es3000
 
18.10.16
12:33
В УТ 11.1 в колонке "БРУТТО" ничего не печаталось.
В УТ 11.2 теперь в эту колонку пишется вес, пересчитанный на килограммы.
Посмотрел запрос в базе.

Раньше было так:
    |    СУММА(ВЫБОР
    |        КОГДА &ЗаполненаЕдиницаИзмеренияВеса
    |            ТОГДА ВЫБОР
    |                    КОГДА ТаблицаТоваров.Упаковка.Вес ЕСТЬ NULL
    |                        ТОГДА ТаблицаТоваров.Количество * ТаблицаТоваров.Номенклатура.Вес
    |                    ИНАЧЕ ТаблицаТоваров.КоличествоУпаковок * ТаблицаТоваров.Упаковка.Вес



    |                КОНЕЦ

    |        ИНАЧЕ 0
    |    КОНЕЦ) КАК МассаБрутто,


Стало так:
    |    СУММА(ВЫБОР
    |        КОГДА &ЗаполненаЕдиницаИзмеренияВеса
    |            ТОГДА ВЫБОР
    |                    КОГДА ТаблицаТоваров.Упаковка.Вес ЕСТЬ NULL
    |                        ТОГДА ТаблицаТоваров.Количество
    |                    ИНАЧЕ ВЫБОР
    |                            КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = Значение(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                                ТОГДА 0
    |                            ИНАЧЕ ТаблицаТоваров.КоличествоУпаковок
    |                        КОНЕЦ
    |                КОНЕЦ * &ТекстЗапросаВесУпаковки
    |        ИНАЧЕ 0
    |    КОНЕЦ) КАК МассаБрутто,



И раньше и сейчас упаковка в документах не использовалась.
С какого перепуга он начал печатать БРУТТО?
Какая ветка в новом коде срабатывает?
1 es3000
 
18.10.16
12:34
Как можно не меняя кода сделать так, чтобы БРУТТО опять стало пустым?
2 DrShad
 
18.10.16
12:34
КОГДА ТаблицаТоваров.Упаковка.Вес ЕСТЬ NULL
    |                        ТОГДА ТаблицаТоваров.Количество


ну так если упаковок нет, тогда эта
3 DrShad
 
18.10.16
12:35
(1) &ЗаполненаЕдиницаИзмеренияВеса выставить в ложь
4 azernot
 
18.10.16
12:35
Кто-то заполнил константу "Единица измерения веса" и коэффициенты пересчёта.
5 es3000
 
18.10.16
12:36
(4) эта константа была и раньше выставлена в "кг",
но БРУТТО не печаталось
6 DrShad
 
18.10.16
12:38
(5) а вес в номенклатуре был заполнен?
7 azernot
 
18.10.16
12:38
(5) Значит раньше был не заполнен вес в номенклатуре
8 es3000
 
18.10.16
12:46
(7) похоже на правду:
раньше вес не был указан в номенлкатуре,
а после перехода на 11.2 в номенклатуре появилась галочка "вес" которая включена и недоступна для редактирования
9 es3000
 
18.10.16
12:49
(2) а как может сработать строка
"КОГДА ТаблицаТоваров.Упаковка.Вес ЕСТЬ NULL"?

Упаковка же не указана.
Поэтому движок до ".Вес" добраться не сможет, чтобы проверить его на NULL.
10 DrShad
 
18.10.16
12:50
(9) так поэтому и нул, что упаковка пустая ссылка
11 es3000
 
18.10.16
12:54
(10) я не знал...
всегда каждую ссылку проверяю поледовательно...

получается если есть например код:
Документ.Контрагент.Ссылка1.Ссылка2

и Контрагент - пустая ссылка,
то и весь этот код без ошибки вернет пустую ссылку?
12 DrShad
 
18.10.16
12:55
нет
13 DrShad
 
18.10.16
12:55
Документ.Контрагент.Ссылка1 тут будет нул, а дальше критическая ошибка
14 DrShad
 
18.10.16
12:56
вообще у пустой или битой ссылки все реквизиты равны нулл
15 Torquader
 
18.10.16
12:56
(11) В запросе, несколько точек разворачиваются во вложенные запросы с отдельными таблицами - соответственно, если в какой-то таблице кто-то не находится, то будет Null и в результате тоже будет Null.
16 es3000
 
18.10.16
13:01
(15) получается это так только в запросах срабатывает?
17 es3000
 
18.10.16
13:01
ну и что теперь делать, чтобы перестали печататься БРУТТО?
так чтобы без переделки кода?
18 DrShad
 
18.10.16
13:03
константу убирать
19 DrShad
 
18.10.16
13:03
теперь то там нет умножения на вес
20 es3000
 
18.10.16
13:07
(18) я посмотрел по конфигурации - эта константа много где используется,
на что кроме печати БРУТТО она повлияет?
21 DrShad
 
18.10.16
13:09
(20) ты предлагаешь нам это выяснять?
22 DrShad
 
18.10.16
13:10
сделай ВПФ и в ней не заполняй свой вес

и программу менять не надо
23 Мойдодыр
 
18.10.16
13:16
Сделать свою ТОРГ-12 - это на неделю работы
24 azernot
 
18.10.16
13:16
(23) Как это на неделю?! Лет пять, не меньше.
25 es3000
 
18.10.16
13:19
(21) ну может кто сходу знает,
может кто сталкивался уже с этим вопросом
26 es3000
 
18.10.16
13:21
(22)-(24) ВПФ - это уже сделано,
хотелось разобраться в механизме как оно работает,
и решить вопрос корректно в соответсвии с этим механизмом
27 DrShad
 
18.10.16
13:22
(26) ну так тебе все уже объяснили, даже почему реквизиты у пустых ссылок в нулл

дальше дело техники - разбирайся
28 azernot
 
18.10.16
13:23
(25) И ты поверишь?
Нет, ну правда, написали тебе "да ни на что больше!" и что? Ты начнёшь чистить константу?
Или написали тебе, на подсистему "Доставка", в которой сравнивается грузоподъёмность транспорта с весом в накладных.. и что? Ты такой "а я не использую доставку, поэтому мне не страшно"?

В любом случае, разбираться придётся самому. Но так ли оно надо? Если сама проблема решается через макет или ВПФ за время существенно меньшее, чем эта проблема уже обсуждается на форуме?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший