Имя: Пароль:
1C
 
Как получить всех контрагентов и их телефоны и фактический адрес в запросе ?
0 Eeelena
 
27.10.14
06:57
Подскажите, как получить список всех контрагентов и их телефоны и фактический адрес в запросе ? конфигурация комплексна автоматизация
1 1cVandal
 
27.10.14
07:00
Строишь вт по регистру сведений контактная информация, где вид ки телефон и фактадрес, обьеденяешь по олю владелец со справочником контрагенты. Или тебе готовый запрос?
2 Eeelena
 
27.10.14
07:04
(1) спасибо, сейчас попробую сама, если не получится напишу)
3 Eeelena
 
27.10.14
07:14
(1) сделала вот так, но в запрос попадают не только контрагенты, но например контактные лица контрагентов
ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид,
    КонтактнаяИнформация.Представление
ПОМЕСТИТЬ КонтактнаяИнф
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
            ИЛИ КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КонтактнаяИнф.Объект,
    КонтактнаяИнф.Тип,
    КонтактнаяИнф.Вид,
    КонтактнаяИнф.Представление
ИЗ
    КонтактнаяИнф КАК КонтактнаяИнф
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
4 Мимохожий Однако
 
27.10.14
07:18
Используй Выразить для Объекта
5 Enterprise
 
27.10.14
07:18
(3) ЛЕВОЕ СОЕДИНЕНИЕ сделай ко временной таблице
6 Enterprise
 
27.10.14
07:21
(5) а может внутреннее лучше \о/
7 anaed
 
27.10.14
07:22
индексируй вт

Потом запрос к справочнику контрагентов с двумя левыми соединениями к вт, оба по объекту, но по разным типам

Это даст список всех контрагентов, даже если нет телефона и адреса, а не только тех у кого заполнен хотя бы один "реквизит".
8 Eeelena
 
27.10.14
07:25
(7) а можно сам текст запроса?
9 Мимохожий Однако
 
27.10.14
07:29
(7)Ты ей расшифруй "по объекту,но по разным типам"
10 Eeelena
 
27.10.14
07:38
сделала вот так
ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид,
    КонтактнаяИнформация.Представление
ПОМЕСТИТЬ КонтактнаяИнф
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
            ИЛИ КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
                И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КонтактнаяИнф.Объект,
    КонтактнаяИнф.Тип,
    КонтактнаяИнф.Вид,
    КонтактнаяИнф.Представление,
    Контрагенты.Ссылка,
    Контрагенты.НаименованиеПолное
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ КонтактнаяИнф КАК КонтактнаяИнф
        ПО Контрагенты.Ссылка = КонтактнаяИнф.Объект.Ссылка
11 Мимохожий Однако
 
27.10.14
07:39
Ну и?
12 anaed
 
27.10.14
07:43
ВЫБРАТЬ
    КонтактнаяИнформация.Объект КАК Объект,
    КонтактнаяИнформация.Представление,
    КонтактнаяИнформация.Тип
ПОМЕСТИТЬ втКИ
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента)
            ИЛИ КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента)

ИНДЕКСИРОВАТЬ ПО
    Объект
;

ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент,
    ЕСТЬNULL(Адрес.Представление, "не указан") КАК Адрес,
    ЕСТЬNULL(Телефон.Представление, "не указан") КАК Телефон
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ втКИ КАК Телефон
        ПО Контрагенты.Ссылка = Телефон.Объект
            И (Телефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
        ЛЕВОЕ СОЕДИНЕНИЕ втКИ КАК Адрес
        ПО Контрагенты.Ссылка = Адрес.Объект
            И (Адрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
ГДЕ
    НЕ Контрагенты.ЭтоГруппа
АВТОУПОРЯДОЧИВАНИЕ
13 Skom
 
27.10.14
07:44
(10) если сделваешь ВНУТРЕННЕЕ СОЕДИНЕНИЕ, то в выборку не попадут те контрагенты, у которых нет КИ.
Если сделаешь ЛЕВОЕ, то попадут.
14 Skom
 
27.10.14
07:49
А еще можно все выбрать из регистра КИ, и не надо джойнить справочник контрагентов.

Просто в условиях в регистру КИ поставить фильтр на тип объекта - справочник контрагенты
15 Мимохожий Однако
 
27.10.14
07:50
(14)Ей уже это советовали. Но она не знает как. Подскажи.
16 Skom
 
27.10.14
07:52
(15) сейчас найду комплексную у себя
17 Eeelena
 
27.10.14
07:58
Ребята, еще вопрос, у меня у контрагентов несколько телефонов, а в отчет мне нужно чтоб все телефоны были в одной строке через запятую, как это можно сделать?
18 Skom
 
27.10.14
08:00
ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид,
    КонтактнаяИнформация.Представление
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    ТИПЗНАЧЕНИЯ(КонтактнаяИнформация.Объект) = ТИП(Справочник.Контрагенты) И
    ((КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) ИЛИ КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента)))
19 Skom
 
27.10.14
08:01
+18, только в этом варианте не попадут те контрагенту, у которых НЕТ контактной информации
20 Skom
 
27.10.14
08:01
+18 - ну и учитывать надо, что в справочнике контрагентов могут быть и держатели дисконтных карт, в общем доп. фильтры накладывать надо.
21 Eeelena
 
27.10.14
08:02
(19) нет мне нужны все, мне нужно получить всех контрагентов, для каждого контрагента все телефоны, которые у него имеются и фактический адрес, причем в отчет нужно как то вывести все телефоны через запятую в одной строке
22 Skom
 
27.10.14
08:04
(21)
ВЫБРАТЬ
    Контры.Ссылка,
    КИ.Тип,
    КИ.Вид,
    КИ.Представление
ИЗ Справочник.Контрагенты КАК Контры
ЛЕВОЕ СОЕДИНЕНИЕ
    (ВЫБРАТЬ
        КонтактнаяИнформация.Объект,
        КонтактнаяИнформация.Тип,
        КонтактнаяИнформация.Вид,
        КонтактнаяИнформация.Представление
    ИЗ
        РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    ГДЕ
        ТИПЗНАЧЕНИЯ(КонтактнаяИнформация.Объект) = ТИП(Справочник.Контрагенты) И
        ((КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) ИЛИ КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента)))
     ) КАК КИ ПО КИ.Объект = Контры.Ссылка
23 Skom
 
27.10.14
08:06
Только (22) без учета (17)
24 Eeelena
 
27.10.14
08:07
а как можно сделать 17? (23)
25 Skom
 
27.10.14
08:08
хотя нет. с учетом.
26 Мимохожий Однако
 
27.10.14
08:08
(24)А это можно сделать потом, при обработке выборки
27 Skom
 
27.10.14
08:08
ну ты попробуй в консоли выполни этот запрос и увидишь что получится.

У тебя есть "консоль запросов"? умеешь ею пользоваться?
28 Eeelena
 
27.10.14
08:09
(27) да я по ней и смотрю результат запроса)
29 Skom
 
27.10.14
08:10
(24) на каждого контрагента будет в результирующей выобрке по запросу из (22) столько строк по каждому контрагенту, сколько записей есть в регистре КИ.
т.е. если 1 адрес и 2 телефона, то будет 3 строки в результирующей выборке
30 Eeelena
 
27.10.14
08:10
(26) я пыталась сделать при обработке выборки, но у меня не получается(( я уж тут такое наворотила, что сама запуталась(
31 Eeelena
 
27.10.14
08:11
(29) да я понимаю, но не знаю как мне сгруппировать или что сделать, чтоб получить в итоге запись общую
32 kumena
 
27.10.14
08:15
Я извиняюсь, а что в КА нет такого типового отчета?
33 Eeelena
 
27.10.14
08:18
(32) такого как мне нужно нет
34 Skom
 
27.10.14
08:24
ну это уже при обработке выборки надо думать как сделать
35 Eeelena
 
27.10.14
08:26
(34) я думала может выгрузить в таблицу значений и свернуть ее, но это не помогло(
36 Skom
 
27.10.14
08:36
(35)
Ну можно в запрос добавить группировки и обход результатов выполнять по группировкам
В общем, сорри, но сейчас некогда думать над этой задачей, принесли срочнячок(
37 Eeelena
 
27.10.14
08:39
(36) ничего, попробую что нибудь придумать, спасибо за помощь!)
38 Skom
 
27.10.14
10:49
ну что, придумала?
39 Eeelena
 
27.10.14
11:08
(38) сделала группировку, он делает группировку по всем полям, то есть строки с другими телефонами исчезают, сейчас пытаюсь сочинить что нибудь в  переборе выборки, но пока безуспешно(
40 Eeelena
 
27.10.14
11:54
(38) сделала) в запросе сделала итоги по контрагенту и дальше обход результатов выполняла по группировкам)а в переборе детальных записей суммировала строки с телефонами
41 второй Вах
 
27.10.14
12:42
из 1С каждый дурак может, а слабо сабж в гугле запросом?
42 Timon1405
 
27.10.14
12:46