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

Хранилище

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

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



> Левое соединение работает как Внутреннее          
pablo Подменю пользователя
сообщение 18.03.11, 16:29
Сообщение #1

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Код запроса:
ВЫБРАТЬ
    ВЫБОР
        КОГДА ЦСМ_АктОказанияУслуг.Номер >= "10000000000"
                И ЦСМ_АктОказанияУслуг.Номер <= "20000000000"
            ТОГДА "09" + ПОДСТРОКА(ЦСМ_АктОказанияУслуг.Номер, 8, 4)
        ИНАЧЕ ПОДСТРОКА(ЦСМ_АктОказанияУслуг.Номер, 6, 6)
    КОНЕЦ КАК НомерАкта,
    ЦСМ_АктОказанияУслуг.Номер,
    ЦСМ_АктОказанияУслуг.СуммаДокумента
ПОМЕСТИТЬ Акты
ИЗ
    Документ.ЦСМ_АктОказанияУслуг КАК ЦСМ_АктОказанияУслуг
ГДЕ
    (ПОДСТРОКА(ЦСМ_АктОказанияУслуг.Номер, 7, 1) = "9"
            ИЛИ ПОДСТРОКА(ЦСМ_АктОказанияУслуг.Номер, 1, 1) = "1")
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЦСМ_АктОказанияУслуг.НомерАкта КАК НомерАкта,
    ЦСМ_АктОказанияУслуг.Номер КАК НомерПолный,
    ЦСМ_КлиентБанкАкты.НомерОтдела КАК НомерОтдела,
    ЦСМ_КлиентБанкАкты.НомерСчета КАК НомерСчета,
    ЦСМ_КлиентБанкАкты.НомерКарточкиПоБазе,
    ЦСМ_КлиентБанкАкты.НомерДоговора,
    ЦСМ_КлиентБанкАкты.Ссылка.Дата КАК ДатаОплаты,
    ЦСМ_КлиентБанкАкты.СуммаАктаПоБазе КАК СуммаАктаПоБазе,
    ЦСМ_АктОказанияУслуг.СуммаДокумента
ИЗ
    Акты КАК ЦСМ_АктОказанияУслуг
        [b]ЛЕВОЕ[/b] СОЕДИНЕНИЕ Документ.ЦСМ_КлиентБанк.Акты КАК ЦСМ_КлиентБанкАкты
        ПО (ЦСМ_АктОказанияУслуг.НомерАкта = ЦСМ_КлиентБанкАкты.НомерСчета
                ИЛИ ПОДСТРОКА(ЦСМ_АктОказанияУслуг.НомерАкта, 2, 5) = ЦСМ_КлиентБанкАкты.НомерСчета)
ГДЕ
    ЦСМ_КлиентБанкАкты.Ссылка.Дата >= &ДатаГода
    И (ЦСМ_КлиентБанкАкты.НомерСчета >= &НомерСчета
                И ЦСМ_КлиентБанкАкты.НомерСчета <= &НомерСчета2
            ИЛИ ЦСМ_КлиентБанкАкты.НомерСчета >= &НомерСчета3
                И ЦСМ_КлиентБанкАкты.НомерСчета <= &НомерСчета4)

УПОРЯДОЧИТЬ ПО
    НомерСчета

собственно, в результирующий запрос попадают не все записи из запроса Акты... В чем подвох?


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Ziam Подменю пользователя
сообщение 18.03.11, 16:52
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

По моему ваше условия ГДЕ нужно добавить в Левое соединение.
Т.е. сделать вложенный запрос и использовать его вместо

Документ.ЦСМ_КлиентБанк.Акты КАК ЦСМ_КлиентБанкАкты

Спасибо сказали: pablo,

Vahman Подменю пользователя
сообщение 02.04.11, 23:35
Сообщение #3

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

Проблема вот в чем:
когда для строки таблицы ЦСМ_АктОказанияУслуг не находится соответствующая строка из таблицы ЦСМ_КлиентБанкАкты, все обращения к таблице ЦСМ_КлиентБанкАкты система представляет как NULL. Условие ГДЕ для таких строк выглядит вот так
ГДЕ
NULL >= &ДатаГода
    И (NULL >= &НомерСчета ..... и т. д.


Как следствие, не выводятся данные из ЦСМ_АктОказанияУслуг. То есть левое соединение работает как внутреннее.
Если перенести все условия по полям таблицы ЦСМ_КлиентБанкАкты из раздела ГДЕ в раздел условий связи таблиц, то все будет работать как нужно.

pablo Подменю пользователя
сообщение 04.04.11, 7:09
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Спасибо всем. Типичная для меня ошибка.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Vofka Подменю пользователя
сообщение 04.04.11, 7:15
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Цитата
Спасибо всем.

http://pro1c.org.ua/index.php?showtopic=2314

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


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

 

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