Имя: Пароль:
1C
1С v8
Как связанный РС выгрузить в ТЗ?
,
0 НубВ1С8
 
14.05.15
08:26
есть контрагенты, есть регистр сведений Контактная информация, связь по контрагенты.ссылка = КонтактнаяИнформацияОбъект. Мне надо запрос по контрагентам, чтоб контактная информация по контрагенту выводилась в таблицу значений... сейчас выводит по 1 строке на каждый тип/вид контактной информации
ВЫБРАТЬ
Контрагенты.Ссылка КАК Ссылка,

КонтактнаяИнформация.Объект,
КонтактнаяИнформация.Тип,
КонтактнаяИнформация.Вид КАК Вид,
КонтактнаяИнформация.Представление КАК Представление,

ИЗ
Справочник.Контрагенты КАК Контрагенты
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
  ПО (КонтактнаяИнформация.Объект = Контрагенты.Ссылка)
ГДЕ
Контрагенты.Ссылка = &Источник
1 SiAl-chel
 
14.05.15
08:40
(0) У тебя левое соединение, то есть на одну запись из таблицы справочника только одна или ни одной записи в регистре сведений.
Ты либо делай правое соединение, либо вообще удали таблицу справочника, так как из нее ты получаешь только ссылку, а эту ссылку можно получить из таблицы регистра сведений.
2 НубВ1С8
 
14.05.15
08:44
(1) да, но как получить таблицу вида
1. контрагент, тип справочник контрагенты;
2. КИ, тип таблица значений с колонками (Тип, Вид и т.д.)?
3 Вася Чез
 
14.05.15
08:52
4 НубВ1С8
 
14.05.15
08:54
(3) Вася, это 7.7. не подходит.
5 Вася Чез
 
14.05.15
08:56
(4) суть такая же, надо создать ТЧ, типа
Таблица=Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("Контрагент");
    Таблица.Колонки.Добавить("ТипСправочника");
    Строка=Таблица.Добавить();
и выгрузить туда результат запроса
6 НубВ1С8
 
14.05.15
08:56
я хочу запросом собрать такую строку, а не последующей обработкой.
7 Вася Чез
 
14.05.15
08:57
(6) а какая таблица получается в запросе?
8 НубВ1С8
 
14.05.15
08:59
к примеру, в документах так можно:
|    Документ1.Ссылка,
|    Документ1.Дата,
|    Документ1.ТабличнаяЧасть.(
|        Ссылка,
|        НомерСтроки,
|        Товар,
|        Колво,
|    ),

тут ТабличнаяЧасть будет ТЗ
9 фобка
 
14.05.15
09:00
Делаешь через объединить и выбор когда тогда
10 НубВ1С8
 
14.05.15
09:01
(7) получается на каждую контактную информацию по строке, а мне эти строки надо в тз засунуть...

нет, конечно, по результатам запроса можно
свою тз сделать, но это некрасиво
11 patria0muerte
 
14.05.15
09:02
(0) На каждый тип и вид информации свой лефтджоин к регистру КИ с отбором по нужному типу и виду...
12 НубВ1С8
 
14.05.15
09:02
(9) можно пример?
13 patria0muerte
 
14.05.15
09:04
+(11)А, походу не так понял тебя..
14 фобка
 
14.05.15
09:10
Точнее через вложенные запросы которые left join друг сдругом по физлицу. в каждом чтото типа "Выбор когда конт.вид = "телефон" тогда конт.значение иначе null конец"
15 patria0muerte
 
14.05.15
09:16
(0) А на кой такие извращения то, сударь?
16 НубВ1С8
 
14.05.15
09:20
(15) для выгрузки данных через конвертацию данных.

с документами так получилось и все табличные части встали красиво, так же меньше обращений к бд, выгрузка быстрее... а если в результатах запроса копаться - лишние обращения.
17 НубВ1С8
 
14.05.15
09:20
(14) мне не надо выбирать конкретные виды, мне все надо
18 фобка
 
14.05.15
09:24
Выбрать тела.значение, адреса.значения, физлица.ссылка из физлица левое содинение (выбрать конт.объект, конт.значение из регсв.континф конт где конт.тип = "телефон") телефоны по телефоны.объект = физлица.ссылка левое соединение (выбрать... Где конт.тип = "адрес") адреса по адреса.объект = физлица.ссылка
19 фобка
 
14.05.15
09:25
(17) на один тип один вложенный запрос
20 фобка
 
14.05.15
09:26
Это транспонирование таблицы, тебе нужно отдельное поле создавать в выборке под каждый тип контактной информации
21 patria0muerte
 
14.05.15
09:29
(20) Да он не о том... там наркомань в том, что он хочет таблицу значений с содержимым типа:
СправочникСсылка1, ТаблицаЗначений1
СправочникСсылка2, ТаблицаЗначений2

И такая хрень судя по всему не взлетит у него...
22 patria0muerte
 
14.05.15
09:30
+(20) Таблица в таблице... инспепшн, епта..
23 patria0muerte
 
14.05.15
09:30
+(22) *Инсепшон..
24 фобка
 
14.05.15
09:32
(21) такое запросом не получится, только циклом перезаполнить колонку в тз этой хренью
25 Вася Чез
 
14.05.15
09:34
(16) автор не парься, сделай как я написал, да это не очень грамотно, зато 100% сработает, это если срочно надо, ну а если время есть, то я бы заморочился и начал бы курить мануалы по запросам.
26 фобка
 
14.05.15
09:35
(8) это какая то нашлёпка 1С. SQL так не умеет
27 rifat
 
14.05.15
09:40
(16) т.е. если извратиться и сделать вложенными запросами -не извращения?) в таком случае план выполнения запросов в SQL может быть неоптимальным, соответственно скорость выполнения пострадает...
28 Бубка Гоп
 
14.05.15
09:41
(0) ИТОГИ не устроили, как я понимаю?
29 НубВ1С8
 
14.05.15
09:57
(25) ради такого решения я б на форуме не спрашивал.
(27) именно
(28) можно пример?
30 Бубка Гоп
 
14.05.15
10:03
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший