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

Хранилище

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

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



> Ошибка при создании Левого Соединения          
rpodgornyy Подменю пользователя
сообщение 30.10.12, 18:44
Сообщение #1

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

Делаю небольшой отчёт для выборки остатков по регистру накоплений "ТоварыНаКонсигнации". Хочу добавить для каждой позиции, где есть остаток, документы - регистраторы. При добавлении ЛЕВОЕ СОЕДИНЕНИЕ и ВЫБРАТЬ - выдаётся ошибка -"Ожидается имя таблицы ВЫБРАТЬ", хотя вроде всё прописано... Вот текст запроса:

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

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

Ardi Подменю пользователя
сообщение 30.10.12, 19:45
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Мышкой нужно программировать.

Сообщение отредактировал Ardi - 30.10.12, 19:46


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

logist Подменю пользователя
сообщение 30.10.12, 20:15
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

второе ВЫБРАТЬ в скобки, а вообще запрос какой-то не понятный, в плане соединений и ГДЕ


Signature
Личные бесплатные консультации не даю, для этого есть форум!

yuritch Подменю пользователя
сообщение 31.10.12, 12:29
Сообщение #4

Общительный
Иконка группы
Группа: Местный
Сообщений: 46
Спасибо сказали: 21 раз
Рейтинг: 0

Сразу говорю - этот способ добавления регистраторов неправильный, таблица остатков при соединении с ними будет для каждой позиции повторена столько раз, сколько различных документов-регистраторов там было. Применять можно только для случая, когда регистратор всегда только один!
Правильно будет использовать таблицу РегистрНакопления.ТоварыНаКонсигнации.ОстаткиИОбороты.

И все же, если править именно этот запрос, получим примерно такое (добавлены скобки для правильного вложенного запроса, убрано лишнее условие из ГДЕ, которое и так в ЛЕВОМ СОЕДИНЕНИИ стоит):

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

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


Заодно я поле Регистратор добавил в итоговый список полей (а иначе зачем было его получать?).
По поводу странного соединения - вот такой способ (две таблицы через запятую, условия в ГДЕ) дает результат, аналогичный внутреннему соединению.

Сообщение отредактировал yuritch - 31.10.12, 12:39

sava1 Подменю пользователя
сообщение 31.10.12, 14:36
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

БРЕД....

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

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


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

 

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