Имя: Пароль:
1C
 
Разная работа ВычислитьВыражение() в СКД для Списка и Таблицы
0 LLIaMaH
 
07.11.16
13:50
Привет. Есть запрос, моделирую ситуацию когда нада получить сумму из группировки уровнем выше. По какой то причине для списка ВычислитьВыражение считается нормально, а для таблицы нет.

Выражение, такое: ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток)", "ДокументРасчетовСКонтрагентом",, "Текущая","Текущая", , )

Запрос такой:
ВЫБРАТЬ
    &Группировка КАК допГруппировка,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Организация КАК Организация,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент КАК Контрагент,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
    NULL КАК Номенклатура,
    0 КАК Количество,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток
{ВЫБРАТЬ
    Организация.*,
    Контрагент.*,
    ДокументРасчетовСКонтрагентом.*,
    допГруппировка,
    Номенклатура}
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    &Группировка,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Организация,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.Количество,
    0
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом = РеализацияТоваровУслугТовары.Ссылка

Вот так выглядит отчет в консоле, видно что для списка Поле1 расчиталось правильно, а для таблицы не считается:

https://yadi.sk/i/h8IuKDjPyCza9
1 bootini
 
07.11.16
14:21
А если просто в ресурсе "СуммаВзаиморасчетовОстаток", установить рассчитывать по группировке "ДокументРасчетовСКонтрагентом" и не заморачиваться с ВычислитьВыражение()?
2 LLIaMaH
 
08.11.16
06:10
(1) Замечу что запрос искусственно моделирует нужную мне ситуацию. По документу СуммаВзаиморасчетов нормально считается, объединение идет с ТЧ Номенклатура, где нет информации по СуммеВзаиморасчетов, но есть ссылка на документы и нужно на каждый элемент номенклатуры получить сумму документы из регистра из первого запроса в объединении, ну например чтобы посчитать процент стоимости номенклатуры от суммы документа, не важно что это криво, это чистый пример того что не работает ВычислитьВыражение.
3 LLIaMaH
 
10.11.16
08:07
Апну, может еще есть у кого варианты?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший