Имя: Пароль:
1C
 
Табличная часть в список
Ø (Волшебник 24.10.2023 13:57)
0 A1nurich
 
24.10.23
08:16
Как можно данные из табличной части вывести в список в форме списка. Пытался через динамический список, но никак не смог сделать связь правильную, чтобы всё выводилось. Выводятся данные из справочника контактные лица. Из табличной части нужно достать "Телефон", "Мобильный телефон", "Почта". Если просто в запросе выбрать эти поля, то там из табличной части в список не перекинешь данные. 1С 8.3 УТ 11
1 Рэйв
 
24.10.23
08:19
Выгружай колонку в массив.
А в список выбора - .СписокВыбора.ЗагрузитьЗначения(Твоймассив )
2 A1nurich
 
24.10.23
08:22
(1) А в таком случае, как там со связью будет ? Думаю, что данные просто рандомно встанут или вообще не будут показываться
3 Donkey_hot
 
24.10.23
08:25
(0) Вы про БСП-шную табличную часть КонтактнаяИнформация?
4 A1nurich
 
24.10.23
08:25
(3) Да
5 Рэйв
 
24.10.23
08:26
(2)А какую связь ты там хотел?
Это же список.
Была бы ТЗ  можно было бы связать по ссылке...А так...
Ну только если ты в значение закинешь связь. а в представление что-то свое- то еще можно как то вывернуться
6 A1nurich
 
24.10.23
08:28
(5) Ну связь контактных данных с основными
7 Donkey_hot
 
24.10.23
08:29
(4) Если набор требуемых видов КИ фиксированный, то на каждый вид отдельное соединение с табличной частью по условию (Ссылка = Ссылка и ВидКИ = &ТребуемыйВидКИ). И при создании формы списка установить значения параметров. Это разумеется если форма создается с нуля. При доработке типовой немного другой подход.
8 Рэйв
 
24.10.23
08:30
(6)Боюсь не взлетит:-)
9 Donkey_hot
 
24.10.23
08:33
(7) Правда, здесь нужно аккуратно с видами КИ, поддерживающими множественные значения. Задвоятся записи. Если такие виды есть, то см. ПриПолученииДанныхНаСервере()
10 A1nurich
 
24.10.23
08:35
(7) Я пробывал использовать объединение запросов, где в запросе1 основные данные, а в запросе2 данные из табличной части. В запросе 2 было условие "ВидКИ = &ТребуемыйВидКИ", а связь была ссылка = ссылка. Но данные из табличной части не выводились, так как оказывается в ссылке ТЧ данные дублировались, а в ссылке справочника данные нормальные, то есть выглядело это так
ТЧ        Справочник
Антон      Антон
Антон
Антон

И поэтому со связью траблы были
11 Рэйв
 
24.10.23
08:39
(10)Ты очень странно понимаешь Объдинить:-)  
Вернее сказать ты его СОВСЕМ не понимаешь:-)
12 A1nurich
 
24.10.23
08:41
(11) Нууу, вот пытался разобраться, впервые с ним работал Ю_Ю
13 Рэйв
 
24.10.23
08:44
(12)Соединять шапку с таб частью- это вообще хреновая идея.
Рекомендую хотя бы выбрать табчасть , свернуть по определенным полям и закинуть в ВТ...А потом уже думать что и как.И то ...Так себе вариант...
14 A1nurich
 
24.10.23
08:44
(9) Получается использовать событие списка ПриПолученииДанныхНаСервере(), где получаем через запрос нужные данные и уже вставляем их в список ?
Типа Пока Выборка.Следующий() ЦикЛ
СтрокаСписка.Данные["ИмяПоля"] = Выборка.Представление
конецЦикла;
15 A1nurich
 
24.10.23
08:45
(13) Да, я так и делал, закидывал в временную таблицу, но так обойти систему не получилось :D
16 Рэйв
 
24.10.23
08:54
(15)"...Вы просто не умеете их готовить"(С)
:-)
17 A1nurich
 
24.10.23
09:06
(16) Ахаха, ладно, пойду изучу поплотнее эту тему :D
18 Donkey_hot
 
24.10.23
09:20
(14) Да, примерно так. В сам запрос ДС добавить поля-пустышки.
19 A1nurich
 
24.10.23
09:37
(18) Наткнулся на проблему, что-то не понимаю в чем трабл. В инете в примерах всё то же самое

Ошибка при вызове метода контекста (Выполнить)
{Далини_А Справочник.КонтактныеЛицаПартнеров.Форма.ГАФ_ФормаСписка.Форма(76)}:Выборка = Запрос.Выполнить().Выбрать();
{Далини_А Справочник.Партнеры.Форма.ФормаЭлемента.Форма(26)}:ОткрытьФорму("Справочник.КонтактныеЛицаПартнеров.Форма.ГАФ_ФормаСписка",ПараметрыФормы);

по причине:
{(5, 2)}: Нельзя задавать параметры для таблицы "Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация"
<<?>>Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация(Ссылка в (&Ссылки)) КАК КонтактныеЛицаПартнеровКонтактнаяИнформация


Вот Код:

Запрос = новый Запрос();
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Представление КАК Представление,
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация(Ссылка в (&Ссылки)) КАК КонтактныеЛицаПартнеровКонтактнаяИнформация
    |ГДЕ
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Вид.Наименование = &ВидКИ";
    Запрос.УстановитьПараметр("ВидКИ","Телефон");
    Запрос.УстановитьПараметр("Ссылки", Строки.ПолучитьКлючи());
    Выборка = Запрос.Выполнить().Выбрать();                    
    Пока Выборка.Следующий() Цикл                              
        СтрокаСписка = Строки[Выборка.Ссылка];
        СтрокаСписка.Данные["Представление"] = Выборка.Представление;
        КонецЦикла;
20 Donkey_hot
 
24.10.23
09:53
(19) Перенесите условие на ссылку в секцию ГДЕ
21 A1nurich
 
24.10.23
10:15
(20)  Вроде сделал так, чтобы выводилось Представление, но он выводит почему-то Ссылку...

Запрос = новый Запрос();
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Представление КАК Представление,
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация КАК КонтактныеЛицаПартнеровКонтактнаяИнформация
    |ГДЕ
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Вид.Наименование = &ВидКИ И
    |   КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка в (&Ссылки)";
    Запрос.УстановитьПараметр("ВидКИ","Телефон");
    Запрос.УстановитьПараметр("Ссылки", Строки.ПолучитьКлючи());
    Выборка = Запрос.Выполнить().Выбрать();                    
    Пока Выборка.Следующий() Цикл                              
        СтрокаСписка = Строки[Выборка.Ссылка];
        СтрокаСписка.Данные["Представление"] = Выборка.Представление;
        КонецЦикла;
22 A1nurich
 
24.10.23
10:16
(21) В Консоле запросов проверил, всё нормально
23 Donkey_hot
 
24.10.23
10:45
(22) Запрос динамического списка в студию!
24 A1nurich
 
24.10.23
10:50
(23) Вот он:

ВЫБРАТЬ
    КонтактныеЛицаПартнеров.Наименование КАК Наименование,
    КонтактныеЛицаПартнеров.ДолжностьПоВизитке КАК ДолжностьПоВизитке,
    КонтактныеЛицаПартнеров.ДатаРождения КАК ДатаРождения,
    КонтактныеЛицаПартнеров.Пол КАК Пол,
    КонтактныеЛицаПартнеров.ДатаРегистрацииСвязи КАК ДатаРегистрацииСвязи,
    КонтактныеЛицаПартнеров.ДатаПрекращенияСвязи КАК ДатаПрекращенияСвязи,
    КонтактныеЛицаПартнеров.Автор КАК Автор,
    Представление КАК Представление
ИЗ
    Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
25 A1nurich
 
24.10.23
12:48
При помощи точки остановки понял, что запрос пустой получается после Выборка = Запрос.Выполнить().Выбрать();                    
Неужели проблема в параметре "Ссылки" :(
26 Donkey_hot
 
24.10.23
12:51
(25) А может, в параметре "Вид"? Обычно виды КИ называют "Телефон контрагента", "Телефон организации", "Телефон контактного лица"... А просто "Телефон" это скорее про тип КИ.
27 A1nurich
 
24.10.23
12:56
(26) Нет, я же в консоле запросов посмотрел, там всё работает. Там я вместо ПолучитьКлючи вставлял просто ссылки на какого-либо контактного лица и всё выводилось. Возможно в ключах проблема или что
28 Stepashkin
 
24.10.23
13:07
Смотрю, паренек держит практически весь форум в напряжении своими темами) https://studylib.ru/doc/6390664/yazyk-zaprosov--1c-predpriyatie-8--izd-2 вот вам в помощь для понимания
29 АгентБезопасной Нацио
 
24.10.23
13:25
(28) намекаешь на то, что "один дурак может задать столько вопросов, что не ответит и сто мудрецов"©?
30 Stepashkin
 
24.10.23
13:31
(29) вполне возможно. Хорошая цитата, кстати.
31 A1nurich
 
24.10.23
13:32
А что плохого в том, что я задаю вопросы по темам, которые не знаю. Если вас это тригирит, то не легче проигнорить и не обращаться на меня внимание ?)
32 Stepashkin
 
24.10.23
13:41
(31) Что такое тригирит?
33 Stepashkin
 
24.10.23
13:41
(31) Болезнь?
34 A1nurich
 
24.10.23
13:47
Проблема была в том, что основная таблица слетела. Заново ее поставил, создал пустое поле типа Null Как Телефон и туда закинул данные. Всё выводится. Donkey_hot, спасибо большое за помощь !
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс