Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 12:21

Фактические адреса контрагентов

Автор din_o_zavr, 28 авг 2019, 20:16

0 Пользователей и 2 гостей просматривают эту тему.

din_o_zavr

Добрый день.
Я только начинаю, поэтому прошу сказать о принципиальной возможности решения и что читать.
Задача: Нужно сделать таблицу для справочника Контрагенты Код/Наименование/ИНН/Фактический Адрес
Вопрос это возможно сделать при помощи запроса? Или надо писать полноценный отчет? Так то мне кажется надо сделать два запроса потом связать таблицы по полю Контрагенты.Ссылка но знаний правильно составить запрос нехватает. То что получается в редакторе запросов не работает.
Вот запрос получает таблицу Наименований и Адресов

ВЫБРАТЬ
    КонтактнаяИнформация.Объект КАК Контрагент,
    КонтактнаяИнформация.Тип КАК Тип,
    КонтактнаяИнформация.Вид,
    МАКСИМУМ(ПОДСТРОКА(КонтактнаяИнформация.Представление, 0, 500)) КАК Адрес
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
        ПО КонтактнаяИнформация.Объект = Контрагенты.Ссылка
ГДЕ
    КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)

СГРУППИРОВАТЬ ПО
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид

УПОРЯДОЧИТЬ ПО
    Контрагент,
    Тип

Запрос получения таблицы вида Код/Наименование/ИНН приводить не буду он простейший.
А вот связать не получается...
Что читать? Вложенные запросы не помогают.
Или просто делать обработку в цикле?

antoneus

Что значит "связать не получается"? Так пробовали?

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

din_o_zavr

Цитата: antoneus от 29 авг 2019, 11:48Что значит "связать не получается"? Так пробовали?
Пробовал, но мне надо выбрать контрагентов с определенными свойствами (ИНН не пустой, Родитель определенный, значение Покупатель=да и т.п.)
Так вот если я перед левое соединение ставлю ГДЕ вылезает ошибка...

ВЫБРАТЬ
    Контрагенты.Код,
    Контрагенты.Наименование,
    Контрагенты.ИНН,
    КонтактнаяИнформация.Адрес
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ     
    //Вообще неважно что пишу дальше пишет Синтаксическая ошибка "ЛЕВОЕ" ЛЕВОЕ СОЕДИНЕНИЕ
    Контрагенты.ИНН >"""" //не факт что правильно но ошибка я так понимаю в том что ГДЕ неправильно стоит.

ЛЕВОЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ




antoneus

Ну вообще секция ГДЕ идет, как правило, после соединений. Вы в конструкторе запрос составляете? А проверка на непустой ИНН все же Контрагент.ИНН <> """".

din_o_zavr

Цитата: antoneus от 30 авг 2019, 10:58
Ну вообще секция ГДЕ идет, как правило, после соединений. Вы в конструкторе запрос составляете? А проверка на непустой ИНН все же Контрагент.ИНН <> """".
Пробовал вставить в секцию ГДЕ после запроса. Пишет Ожидается имя таблицы <<?>>Контрагенты.ИНН <>""""

ВЫБРАТЬ
    Контрагенты.Код,
    Контрагенты.Наименование,
    Контрагенты.ИНН,
    КонтактнаяИнформация.Адрес
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Представление КАК Адрес
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) КАК КонтактнаяИнформация
Контрагенты.ИНН <> """"   
ПО
    Контрагенты.Ссылка = КонтактнаяИнформация.Объект

antoneus

.....
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) КАК КонтактнаяИнформация
ПО
    Контрагенты.Ссылка = КонтактнаяИнформация.Объект
ГДЕ
    Контрагенты.ИНН <> """"   
   

din_o_zavr

:xfbnsdfb::xfbnsdfb::xfbnsdfb:
А что так можно было? Вообще не видел подобной конструкции в учебниках...
Спасибо.

.....
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) КАК КонтактнаяИнформация
ПО
    Контрагенты.Ссылка = КонтактнаяИнформация.Объект
ГДЕ
    Контрагенты.ИНН <> """"   

[/quote]

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск