Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Хитрое условие в запросе          
SergXP Подменю пользователя
сообщение 05.08.15, 8:13
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 1 раз
Рейтинг: 0

Реквизит регистра имеет тип Плана видов характеристик (т.е. составной тип). Реквизит отчета имеет аналогичный реквизит для установки параметра запроса к регистру для получения результата в различных разрезах (все, по типу, по конкретному значению). Когда тип реквизита имеет определенное значение условие запроса пишу так -
(ГСМ.БалансовыйСчет В ИЕРАРХИИ (&БалансовыйСчет)
    ИЛИ &БалансовыйСчет = ЗНАЧЕНИЕ(ПланСчетов.Бухгалтерский.ПустаяСсылка))

Тут все просто. Реквизит имеет всего два значения - ПустаяСсылка или конкретное значение. В моем же случае - 3:
1. Неопределено
2. Определенный тип
3. Определенное значение

Как составить условие, чтобы работали все 3 значения реквизита?

Petre Подменю пользователя
сообщение 05.08.15, 8:38
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1238 раз
Рейтинг: 1344.3

Добавьте третье условие.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

SergXP Подменю пользователя
сообщение 05.08.15, 9:53
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Petre @ 05.08.15, 9:38) *
Добавьте третье условие.

А как мне тогда в условии указать на равенство &Параметр = НЕОПРЕДЕЛЕНО. Вычитал и попытался через ПРЕДСТАВЛЕНИЕССЫЛКИ И ПРЕДСТАВЛЕНИЕ - ругаецо.

Petre Подменю пользователя
сообщение 05.08.15, 10:02
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1238 раз
Рейтинг: 1344.3

Так чем не устраивает "&Параметр = НЕОПРЕДЕЛЕНО"?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

SergXP Подменю пользователя
сообщение 05.08.15, 10:29
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Petre @ 05.08.15, 11:02) *
Так чем не устраивает "&Параметр = НЕОПРЕДЕЛЕНО"?

Уже попробовал так:
И (&МОЛ = НЕОПРЕДЕЛЕНО ИЛИ ТИПЗНАЧЕНИЯ(МОЛ) = ТИПЗНАЧЕНИЯ(&МОЛ))
        И (&МОЛ = ЗНАЧЕНИЕ(ПланВидовХарактеристик.МестаХраненияГСМ.ПустаяСсылка)  ИЛИ МОЛ = &МОЛ)

но результат не удовлетворяет - выводит абсолютно все записи, а не указанные в &МОЛ. Как-то что-то нужно по другому сформулировать условие...

Опытным путем определил, что строка запроса &МОЛ = НЕОПРЕДЕЛЕНО не ловит значение МОЛ=Неопределено

vadim007 Подменю пользователя
сообщение 05.08.15, 10:32
Сообщение #6

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Покажите полный текст запроса.

Petre Подменю пользователя
сообщение 05.08.15, 11:26
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1238 раз
Рейтинг: 1344.3

Цитата(SergXP @ 05.08.15, 11:29) *
Опытным путем определил, что строка запроса &МОЛ = НЕОПРЕДЕЛЕНО не ловит значение МОЛ=Неопределено

Почему должно "ловить"? &МОЛ и МОЛ это разные вещи, как я понимаю.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

SergXP Подменю пользователя
сообщение 05.08.15, 14:24
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Petre @ 05.08.15, 12:26) *
Почему должно "ловить"? &МОЛ и МОЛ это разные вещи, как я понимаю.

Совершенно верно. МОЛ - измерение регистра, &МОЛ - параметр для условия по измерению регистра

Цитата(vadim007 @ 05.08.15, 11:32) *
Покажите полный текст запроса.

ВЫБРАТЬ
    ДвижениеГСМОстаткиИОбороты.ГСМ.БалансовыйСчет КАК ГСМБалансовыйСчет,
    ДвижениеГСМОстаткиИОбороты.МОЛ КАК МОЛ,
    ВЫБОР
        КОГДА ДвижениеГСМОстаткиИОбороты.КоличествоОборот > 0
            ТОГДА "Прибуток"
        ИНАЧЕ "Видаток"
    КОНЕЦ КАК ПриходРасход,
    ДвижениеГСМОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    ДвижениеГСМОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
    ТИПЗНАЧЕНИЯ(ДвижениеГСМОстаткиИОбороты.МОЛ) КАК ТипМОЛ,
    ВЫБОР
        КОГДА ДвижениеГСМОстаткиИОбороты.СуммаОборот > 0
            ТОГДА Бухгалтерский.СчетКт
        ИНАЧЕ Бухгалтерский.СчетДт
    КОНЕЦ КАК КорСчет,
    ДвижениеГСМОстаткиИОбороты.СуммаПриход КАК СуммаПриход,
    ДвижениеГСМОстаткиИОбороты.СуммаРасход КАК СуммаРасход
ИЗ
    РегистрБухгалтерии.Бухгалтерский КАК Бухгалтерский
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ДвижениеГСМ.ОстаткиИОбороты(
                &ДатаНачала,
                &ДатаОкончания,
                Запись,
                ,
                (ГСМ.БалансовыйСчет В ИЕРАРХИИ (&БалансовыйСчет)
                    ИЛИ &БалансовыйСчет = ЗНАЧЕНИЕ(ПланСчетов.Бухгалтерский.ПустаяСсылка))
                    И (&МОЛ = ЗНАЧЕНИЕ(ПланВидовХарактеристик.МестаХраненияГСМ.ПустаяСсылка)
                        ИЛИ МОЛ = &МОЛ)
                    И (&МОЛ = НЕОПРЕДЕЛЕНО
                        ИЛИ ТИПЗНАЧЕНИЯ(МОЛ) = ТИПЗНАЧЕНИЯ(&МОЛ))) КАК ДвижениеГСМОстаткиИОбороты
        ПО Бухгалтерский.Регистратор = ДвижениеГСМОстаткиИОбороты.Регистратор
            И Бухгалтерский.НомерСтроки = ДвижениеГСМОстаткиИОбороты.НомерСтроки

УПОРЯДОЧИТЬ ПО
    ГСМБалансовыйСчет,
    ПриходРасход УБЫВ,
    ТипМОЛ,
    МОЛ
ИТОГИ
    СУММА(СуммаНачальныйОстаток),
    СУММА(СуммаКонечныйОстаток),
    СУММА(СуммаПриход),
    СУММА(СуммаРасход)
ПО
    ГСМБалансовыйСчет,
    ПриходРасход,
    МОЛ,
    КорСче


В этом варианте запроса:
1. МОЛ = Неопределено - результат пустой
2. МОЛ = справочник - результат пустой
3. МОЛ = элемент справочника - правильный результат

есть подозрение в адекватности работы выражения
ЗНАЧЕНИЕ(ПланВидовХарактеристик.МестаХраненияГСМ.ПустаяСсылка)

Petre Подменю пользователя
сообщение 05.08.15, 14:29
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1238 раз
Рейтинг: 1344.3

Последнее "И" считаю лишним. А какой тип у реквизита отчета? ПланВидовХарактеристик или составной из типов, входящих в ПланВидовХарактеристик?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

vadim007 Подменю пользователя
сообщение 05.08.15, 14:33
Сообщение #10

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Цитата(SergXP @ 05.08.15, 15:02) *
(ГСМ.БалансовыйСчет В ИЕРАРХИИ (&БалансовыйСчет)
                    ИЛИ &БалансовыйСчет = ЗНАЧЕНИЕ(ПланСчетов.Бухгалтерский.ПустаяСсылка))
                    И (&МОЛ = ЗНАЧЕНИЕ(ПланВидовХарактеристик.МестаХраненияГСМ.ПустаяСсылка)
                        ИЛИ МОЛ = &МОЛ)
                    И (&МОЛ = НЕОПРЕДЕЛЕНО
                        ИЛИ ТИПЗНАЧЕНИЯ(МОЛ) = ТИПЗНАЧЕНИЯ(&МОЛ))

Я бы добавил в этом фрагменте скобки:
((ГСМ.БалансовыйСчет В ИЕРАРХИИ (&БалансовыйСчет))
                    ИЛИ (&БалансовыйСчет = ЗНАЧЕНИЕ(ПланСчетов.Бухгалтерский.ПустаяСсылка)))
                    И (&МОЛ = ЗНАЧЕНИЕ(ПланВидовХарактеристик.МестаХраненияГСМ.ПустаяСсылка)
                        ИЛИ (МОЛ = &МОЛ))
                    И ((&МОЛ = НЕОПРЕДЕЛЕНО)
                        ИЛИ (ТИПЗНАЧЕНИЯ(МОЛ) = ТИПЗНАЧЕНИЯ(&МОЛ)))

SergXP Подменю пользователя
сообщение 05.08.15, 14:40
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Petre @ 05.08.15, 15:29) *
Последнее "И" считаю лишним. А какой тип у реквизита отчета? ПланВидовХарактеристик или составной из типов, входящих в ПланВидовХарактеристик?

Все и везде - ПланВидовХарактеристик
А как это так - выкинуть последнее "И"?

Petre Подменю пользователя
сообщение 05.08.15, 14:41
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1238 раз
Рейтинг: 1344.3

(ГСМ.БалансовыйСчет В ИЕРАРХИИ (&БалансовыйСчет)
                    ИЛИ &БалансовыйСчет = ЗНАЧЕНИЕ(ПланСчетов.Бухгалтерский.ПустаяСсылка))
                    И (&МОЛ = ЗНАЧЕНИЕ(ПланВидовХарактеристик.МестаХраненияГСМ.ПустаяСсылка)
                        ИЛИ МОЛ = &МОЛ))

Если везде ПланВидовХарактеристик, то, как мне кажется, "НЕОПРЕДЕЛЕНО" не будет - только заполненное значение или пустая ссылка.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

SergXP Подменю пользователя
сообщение 05.08.15, 14:47
Сообщение #13

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(vadim007 @ 05.08.15, 15:33) *
(ГСМ.БалансовыйСчет В ИЕРАРХИИ (&БалансовыйСчет)
                    ИЛИ &БалансовыйСчет = ЗНАЧЕНИЕ(ПланСчетов.Бухгалтерский.ПустаяСсылка))

Этот участок кода у меня работает отлично и не только тут. Главное, что ИЛИ заключено в скобки и не мешается с остальными И и ИЛИ.

Цитата(Petre @ 05.08.15, 15:41) *
(ГСМ.БалансовыйСчет В ИЕРАРХИИ (&БалансовыйСчет)
                    ИЛИ &БалансовыйСчет = ЗНАЧЕНИЕ(ПланСчетов.Бухгалтерский.ПустаяСсылка))
                    И (&МОЛ = ЗНАЧЕНИЕ(ПланВидовХарактеристик.МестаХраненияГСМ.ПустаяСсылка)
                        ИЛИ МОЛ = &МОЛ))

Если везде ПланВидовХарактеристик, то, как мне кажется, "НЕОПРЕДЕЛЕНО" не будет - только заполненное значение или пустая ссылка.

Я на значение "НЕОПРЕДЕЛЕНО" проверяю на измерение МОЛ, а "Параметр" МОЛ, т.е. если в форме отчета не указан ни один справочник из ПланаХарактеристик. При трассировке значение МОЛ = Неопределено.

Petre Подменю пользователя
сообщение 05.08.15, 14:51
Сообщение #14

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1238 раз
Рейтинг: 1344.3

Значит "МОЛ" имеет тип не "ПВХ", а "Характеристика".


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

SergXP Подменю пользователя
сообщение 05.08.15, 15:31
Сообщение #15

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Petre @ 05.08.15, 15:51) *
Значит "МОЛ" имеет тип не "ПВХ", а "Характеристика".

Я пытался в запросе вместо "ПланВидовХарактеристик" написать "Характеристика" - ругается...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 17:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!