Имя: Пароль:
1C
1С v8
Какой из фрагментов кода более правильный?
0 makfromkz
 
14.06.23
08:38
ВЫБОР
КОГДА ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления ССЫЛКА Документ.ЗаказПоставщику
    ТОГДА ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления.СуммаДокумента
КОНЕЦ КАК СуммаЗаказа

//////////////////////////////

//ИЛИ

ВЫБОР
КОГДА ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления ССЫЛКА Документ.ЗаказПоставщику
  ТОГДА ВЫРАЗИТЬ(ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления КАК Документ.ЗаказПоставщику).СуммаДокумента
КОНЕЦ КАК СуммаЗаказа
1 2S
 
14.06.23
08:39
хм, а зачем выражать если и так условие на вид документа?
2 Мультук
 
14.06.23
08:48
(0)

Не могу найти пруф, но второй вариант правильный.
3 vicof
 
14.06.23
08:50
Второй вариант правильный, если документ поступления составного типа.
4 SleepyHead
 
14.06.23
08:52
Мне кажется, еще правильнее выбрать во временную таблицу документы заказа поставщикам, а потом выбирать сумму из этой временной таблицы.
5 Donkey_hot
 
14.06.23
09:03
(0) Можно в инструментах разработчика посмотреть план запроса к СУБД. Но интуитивно кажется, что в первом случае прицепит все возможные таблицы.
6 Гипервизор
 
14.06.23
09:08
(0) А если документ не Заказ? Зачем вам NULL?
(2) https://its.1c.ru/db/v8std/content/654/hdoc
https://its.1c.ru/db/metod8dev/content/2662/hdoc
7 НафНаф
 
14.06.23
09:10
ВЫРАЗИТЬ(ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления КАК Документ.ЗаказПоставщику).СуммаДокумента КАК СуммаЗаказа

можно обернуть, если NULL критично:

ЕСТЬNULL(ВЫРАЗИТЬ(ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления КАК Документ.ЗаказПоставщику).СуммаДокумента,0) КАК СуммаЗаказа

если видов документов больше одного, то второй вариант:

ВЫБОР
КОГДА ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления ССЫЛКА Документ.ЗаказПоставщику
  ТОГДА ВЫРАЗИТЬ(ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления КАК Документ.ЗаказПоставщику).СуммаДокумента
КОГДА ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления ССЫЛКА Документ.ЗаказКлиента
  ТОГДА ВЫРАЗИТЬ(ТоварыКПоступлениюОстаткиНаДату.ДокументПоступления КАК Документ.ЗаказКлиента).СуммаДокумента
КОНЕЦ КАК СуммаЗаказа
8 makfromkz
 
15.06.23
11:02
Всем СПАСИБО за ответы!
9 Fragster
 
15.06.23
11:20
можно ещё явное левое соединение вместо неявного сделать