Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не срабатывает условие при изменение состава полей в СКД

Не срабатывает условие при изменение состава полей в СКД
Я
   DenYuliya
 
18.12.18 - 11:00
День добрый.
Такой вопрос:

Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.64.48)
1С:Предприятие 8.3 (8.3.10.2667)

Есть отчет, на СКД. Смысл отчета: сравнить суммы по оборотам Хозрасчетного регистра. и по оборотам Раздельного учета НДС.
На итоговую таблицу накладывается условие:"Сумма обороты БУ <> Сумма раздельного учета НДС".
Все хорошо, до того момента, пока пользователь не решает ручками (в настройках) изменить состав полей.
При этом слетает группировка, и перестает работать условие.
В Консоли запросов я могу это исправить. А как решить данную проблему на СКД?
Попробовала отключить Автозаполнение и поковыряться в "Компоновке данных" - не помогло.

Текст запроса:

ВЫБРАТЬ
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.СчетЗатрат КАК АналитикаУчетаЗатратСчетЗатрат
ПОМЕСТИТЬ ВТ_Рег
ИЗ
    РегистрНакопления.НДСРаздельныйУчет.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК НДСРаздельныйУчетОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КлючиАналитикиУчетаЗатрат.СчетЗатрат КАК СчетЗатрат
ПОМЕСТИТЬ ВТ_Счета
ИЗ
    ВТ_Рег КАК ВТ_Рег
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаЗатрат КАК КлючиАналитикиУчетаЗатрат
        ПО ВТ_Рег.АналитикаУчетаЗатратСчетЗатрат = КлючиАналитикиУчетаЗатрат.СчетЗатрат

СГРУППИРОВАТЬ ПО
    КлючиАналитикиУчетаЗатрат.СчетЗатрат
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.СчетДт КАК Счет,
    ХозрасчетныйОборотыДтКт.Организация КАК Организация,
    ХозрасчетныйОборотыДтКт.ПодразделениеДт КАК Подразделение,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт1, НЕОПРЕДЕЛЕНО) КАК Субконто1,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт2, НЕОПРЕДЕЛЕНО) КАК Субконто2,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт3, НЕОПРЕДЕЛЕНО) КАК Субконто3,
    0 КАК СуммаРаздельногоУчетаНДС,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборотДт
ПОМЕСТИТЬ ВТ_Суммы
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
            &НачалоПериода,
            &КонецПериода,
            День,
            СчетДт В
                (ВЫБРАТЬ
                    ВТ_Счета.СчетЗатрат КАК СчетЗатрат
                ИЗ
                    ВТ_Счета КАК ВТ_Счета),
            ,
            ,
            ,
            ) КАК ХозрасчетныйОборотыДтКт

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

ВЫБРАТЬ
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.СчетЗатрат,
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Организация,
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Подразделение,
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто1, НЕОПРЕДЕЛЕНО),
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто2, НЕОПРЕДЕЛЕНО),
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто3, НЕОПРЕДЕЛЕНО),
    НДСРаздельныйУчетОбороты.СуммаБезНДСПриход,
    0
ИЗ
    РегистрНакопления.НДСРаздельныйУчет.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК НДСРаздельныйУчетОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Суммы.Счет КАК Счет,
    ВТ_Суммы.Организация КАК Организация,
    ВТ_Суммы.Подразделение КАК Подразделение,
    ВТ_Суммы.Субконто1 КАК Субконто1,
    ВТ_Суммы.Субконто2 КАК Субконто2,
    ВТ_Суммы.Субконто3 КАК Субконто3,
    СУММА(ВТ_Суммы.СуммаОборотДт) КАК СуммаОборотДт,
    СУММА(ВТ_Суммы.СуммаРаздельногоУчетаНДС) КАК СуммаРаздельногоУчетаНДС
ПОМЕСТИТЬ ВТ_Итог
ИЗ
    ВТ_Суммы КАК ВТ_Суммы

СГРУППИРОВАТЬ ПО
    ВТ_Суммы.Организация,
    ВТ_Суммы.Подразделение,
    ВТ_Суммы.Субконто1,
    ВТ_Суммы.Субконто2,
    ВТ_Суммы.Субконто3,
    ВТ_Суммы.Счет
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Итог.Счет КАК Счет,
    ВТ_Итог.Организация КАК Организация,
    ВТ_Итог.Подразделение КАК Подразделение,
    ВТ_Итог.Субконто1 КАК Субконто1,
    ВТ_Итог.Субконто2 КАК Субконто2,
    ВТ_Итог.Субконто3 КАК Субконто3,
    ВТ_Итог.СуммаОборотДт КАК СуммаОборотДт,
    ВТ_Итог.СуммаРаздельногоУчетаНДС КАК СуммаРаздельногоУчетаНДС
{ВЫБРАТЬ
    Счет.*,
    Организация.*,
    Подразделение.*,
    Субконто1.*,
    Субконто2.*,
    Субконто3.*,
    СуммаОборотДт,
    СуммаРаздельногоУчетаНДС}
ИЗ
    ВТ_Итог КАК ВТ_Итог
ГДЕ
    ВТ_Итог.СуммаОборотДт <> ВТ_Итог.СуммаРаздельногоУчетаНДС
{ГДЕ
    ВТ_Итог.Счет.*,
    ВТ_Итог.Организация.*,
    ВТ_Итог.Подразделение.*,
    ВТ_Итог.Субконто1.*,
    ВТ_Итог.Субконто2.*,
    ВТ_Итог.Субконто3.*,
    (ВТ_Итог.СуммаРаздельногоУчетаНДС <> ВТ_Итог.СуммаОборотДт) КАК ОтборПоСумме}
 
 
   IvanGorbunov
 
1 - 18.12.18 - 11:03
Это чистый СКД, либо в форме или в модуле есть какой-то код?
   toypaul
 
2 - 18.12.18 - 11:06
не надо заключать это условие в фигурные скобки
   toypaul
 
3 - 18.12.18 - 11:07
если условие в скобках {}, то при невыбранном поле (хотя бы одном) из условия, условия срабатывать не будет. считается, что такое условие не является обязательным. отбор по периоду например так делается.
   DenYuliya
 
4 - 18.12.18 - 11:18
Вот так выглядит результат отчета, если отчет формируется со всеми полями, группировками по всем полям. Условие работает. Результат правильный.
https://a.radikal.ru/a42/1812/9c/0e4db132007e.png

Настройки при этом такие:
https://d.radikal.ru/d27/1812/a6/2b8d8ec6708f.png

Когда меняешь состав выбранных полей вот на такие:
https://d.radikal.ru/d39/1812/ee/f4d938fafebd.png

меняется состав полей группировки и перестает работать условие:
   DenYuliya
 
5 - 18.12.18 - 11:19
   DenYuliya
 
6 - 18.12.18 - 11:20
(1) чистый СКД

(3) спасибо, сейчас попробую. Но через ГДЕ, а не через ИМЕЮЩИЕ не работало точно
   DenYuliya
 
7 - 18.12.18 - 11:24
(3) Условие:

ИМЕЮЩИЕ
    СУММА(ВТ_Суммы.СуммаРаздельногоУчетаНДС) <> СУММА(ВТ_Суммы.СуммаОборотДт)

Поля "ВТ_Суммы.СуммаРаздельногоУчетаНДС" и "ВТ_Суммы.СуммаОборотДт" из выборки я не убираю, они не меняются.

Меняется состав полей:
ВТ_Суммы.Счет КАК Счет,
ВТ_Суммы.Организация КАК Организация,
ВТ_Суммы.Подразделение КАК Подразделение,
ВТ_Суммы.Субконто1 КАК Субконто1,
ВТ_Суммы.Субконто2 КАК Субконто2,
ВТ_Суммы.Субконто3 КАК Субконто3,

например, я оставляю только: 
ВТ_Суммы.Счет КАК Счет,
ВТ_Суммы.СуммаРаздельногоУчетаНДС,
ВТ_Суммы.СуммаОборотДт 

А поля "ВТ_Суммы.Счет КАК Счет"  в условии ведь нет.

Или я неправильно поняла фразу ""то при невыбранном поле (хотя бы одном) из условия"?
   DenYuliya
 
8 - 18.12.18 - 11:27
(3)
Изначально код запроса был таким:
ВЫБРАТЬ
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.СчетЗатрат КАК АналитикаУчетаЗатратСчетЗатрат
ПОМЕСТИТЬ ВТ_Рег
ИЗ
    РегистрНакопления.НДСРаздельныйУчет.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК НДСРаздельныйУчетОбороты
;

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

ВЫБРАТЬ
    КлючиАналитикиУчетаЗатрат.СчетЗатрат КАК СчетЗатрат
ПОМЕСТИТЬ ВТ_Счета
ИЗ
    ВТ_Рег КАК ВТ_Рег
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаЗатрат КАК КлючиАналитикиУчетаЗатрат
        ПО ВТ_Рег.АналитикаУчетаЗатратСчетЗатрат = КлючиАналитикиУчетаЗатрат.СчетЗатрат

СГРУППИРОВАТЬ ПО
    КлючиАналитикиУчетаЗатрат.СчетЗатрат
;

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

ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.СчетДт КАК Счет,
    ХозрасчетныйОборотыДтКт.Организация КАК Организация,
    ХозрасчетныйОборотыДтКт.ПодразделениеДт КАК Подразделение,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт1, НЕОПРЕДЕЛЕНО) КАК Субконто1,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт2, НЕОПРЕДЕЛЕНО) КАК Субконто2,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт3, НЕОПРЕДЕЛЕНО) КАК Субконто3,
    0 КАК СуммаРаздельногоУчетаНДС,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборотДт
ПОМЕСТИТЬ ВТ_Суммы
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
            &НачалоПериода,
            &КонецПериода,
            День,
            СчетДт В
                (ВЫБРАТЬ
                    ВТ_Счета.СчетЗатрат КАК СчетЗатрат
                ИЗ
                    ВТ_Счета КАК ВТ_Счета),
            ,
            ,
            ,
            ) КАК ХозрасчетныйОборотыДтКт

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

ВЫБРАТЬ
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.СчетЗатрат,
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Организация,
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Подразделение,
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто1, НЕОПРЕДЕЛЕНО),
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто2, НЕОПРЕДЕЛЕНО),
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто3, НЕОПРЕДЕЛЕНО),
    НДСРаздельныйУчетОбороты.СуммаБезНДСПриход,
    0
ИЗ
    РегистрНакопления.НДСРаздельныйУчет.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК НДСРаздельныйУчетОбороты
;

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

ВЫБРАТЬ
    ВТ_Суммы.Счет КАК Счет,
    ВТ_Суммы.Организация КАК Организация,
    ВТ_Суммы.Подразделение КАК Подразделение,
    ВТ_Суммы.Субконто1 КАК Субконто1,
    ВТ_Суммы.Субконто2 КАК Субконто2,
    ВТ_Суммы.Субконто3 КАК Субконто3,
    СУММА(ВТ_Суммы.СуммаОборотДт) КАК СуммаОборотДт,
    СУММА(ВТ_Суммы.СуммаРаздельногоУчетаНДС) КАК СуммаРаздельногоУчетаНДС
ИЗ
    ВТ_Суммы КАК ВТ_Суммы

СГРУППИРОВАТЬ ПО
    ВТ_Суммы.Организация,
    ВТ_Суммы.Подразделение,
    ВТ_Суммы.Субконто1,
    ВТ_Суммы.Субконто2,
    ВТ_Суммы.Субконто3,
    ВТ_Суммы.Счет

ИМЕЮЩИЕ
    СУММА(ВТ_Суммы.СуммаРаздельногоУчетаНДС) <> СУММА(ВТ_Суммы.СуммаОборотДт)

Условие не в фигурных скобках. Это вы имеете в виду? Ну вот оно не работает.
После этого я начала извращаться с автозаполнением и пиханием условий и полей в компоновку.
   DenYuliya
 
9 - 18.12.18 - 11:30
(1) я бы даже сказала "Собранное и оттестированное в консоли, а потом запихнутое в СКД" ))))
   toypaul
 
10 - 18.12.18 - 11:31
для начала убрать из условий все фигурные скобки. а почему условие не работает это уже совершенно другой разговор.
   toypaul
 
11 - 18.12.18 - 11:33
суммы заключить в ЕСТЬNULL(

почему-то для субконто это сделано, а для сумм нет. может тогда и условие заработает как надо
   DenYuliya
 
12 - 18.12.18 - 11:34
(10) в (8) (это изначальная "редакция") без фигурных скобок...
   DenYuliya
 
13 - 18.12.18 - 11:46
(11) Не помогло...

ВЫБРАТЬ
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.СчетЗатрат КАК АналитикаУчетаЗатратСчетЗатрат
ПОМЕСТИТЬ ВТ_Рег
ИЗ
    РегистрНакопления.НДСРаздельныйУчет.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК НДСРаздельныйУчетОбороты
;

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

ВЫБРАТЬ
    КлючиАналитикиУчетаЗатрат.СчетЗатрат КАК СчетЗатрат
ПОМЕСТИТЬ ВТ_Счета
ИЗ
    ВТ_Рег КАК ВТ_Рег
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаЗатрат КАК КлючиАналитикиУчетаЗатрат
        ПО ВТ_Рег.АналитикаУчетаЗатратСчетЗатрат = КлючиАналитикиУчетаЗатрат.СчетЗатрат

СГРУППИРОВАТЬ ПО
    КлючиАналитикиУчетаЗатрат.СчетЗатрат
;

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

ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.СчетДт КАК Счет,
    ХозрасчетныйОборотыДтКт.Организация КАК Организация,
    ХозрасчетныйОборотыДтКт.ПодразделениеДт КАК Подразделение,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт1, НЕОПРЕДЕЛЕНО) КАК Субконто1,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт2, НЕОПРЕДЕЛЕНО) КАК Субконто2,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СубконтоДт3, НЕОПРЕДЕЛЕНО) КАК Субконто3,
    0 КАК СуммаРаздельногоУчетаНДС,
    ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) КАК СуммаОборотДт
ПОМЕСТИТЬ ВТ_Суммы
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
            &НачалоПериода,
            &КонецПериода,
            День,
            СчетДт В
                (ВЫБРАТЬ
                    ВТ_Счета.СчетЗатрат КАК СчетЗатрат
                ИЗ
                    ВТ_Счета КАК ВТ_Счета),
            ,
            ,
            ,
            ) КАК ХозрасчетныйОборотыДтКт

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

ВЫБРАТЬ
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.СчетЗатрат,
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Организация,
    НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Подразделение,
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто1, НЕОПРЕДЕЛЕНО),
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто2, НЕОПРЕДЕЛЕНО),
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.АналитикаУчетаЗатрат.Субконто3, НЕОПРЕДЕЛЕНО),
    ЕСТЬNULL(НДСРаздельныйУчетОбороты.СуммаБезНДСПриход, 0),
    0
ИЗ
    РегистрНакопления.НДСРаздельныйУчет.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК НДСРаздельныйУчетОбороты
;

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

ВЫБРАТЬ
    ВТ_Суммы.Счет КАК Счет,
    ВТ_Суммы.Организация КАК Организация,
    ВТ_Суммы.Подразделение КАК Подразделение,
    ВТ_Суммы.Субконто1 КАК Субконто1,
    ВТ_Суммы.Субконто2 КАК Субконто2,
    ВТ_Суммы.Субконто3 КАК Субконто3,
    СУММА(ВТ_Суммы.СуммаОборотДт) КАК СуммаОборотДт,
    СУММА(ВТ_Суммы.СуммаРаздельногоУчетаНДС) КАК СуммаРаздельногоУчетаНДС
ИЗ
    ВТ_Суммы КАК ВТ_Суммы

СГРУППИРОВАТЬ ПО
    ВТ_Суммы.Организация,
    ВТ_Суммы.Подразделение,
    ВТ_Суммы.Субконто1,
    ВТ_Суммы.Субконто2,
    ВТ_Суммы.Субконто3,
    ВТ_Суммы.Счет

ИМЕЮЩИЕ
    СУММА(ВТ_Суммы.СуммаРаздельногоУчетаНДС) <> СУММА(ВТ_Суммы.СуммаОборотДт)
   DenYuliya
 
14 - 18.12.18 - 11:47
(11) потому что для субконто криво группировалось без ЕСТЬNULL, для Сумм такой проблемы не было.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.