|
Вывод реквизита из Справочники.Контрагенты в списке Справочника Партнеры | ☑ | ||
|---|---|---|---|---|
|
0
okosv
17.12.11
✎
17:07
|
Приветствую всех.
Платформа 1C 8.2 Конфигурация УТ Под 1С только-только начинаю, поэтому, если есть возможность подсобите, пожалуйста. В справочник Контрагентов добавил дополнительный реквизит (скажем NewField), который мне нужно вывести в список справочника Партнеры. Данный реквизит может быть указан, а может быть и нет. И кроме этого у у партнера может быть несколько подчиненных контрагентов, поэтому в список нужно вывести первый существущее значение дополнительного реквизита у подчиненных контрагентов. В форме ФормаСписка изменил исходный текст запроса на заполнение динамического списка. Исходный текст следующий: ВЫБРАТЬ СправочникПартнеры.Ссылка, СправочникПартнеры.ПометкаУдаления, СправочникПартнеры.Предопределенный, СправочникПартнеры.Родитель, СправочникПартнеры.Код, СправочникПартнеры.Наименование, ... ... ... СправочникПартнеры.КонтактнаяИнформация ИЗ Справочник.Партнеры КАК СправочникПартнеры ПО СправочникПартнеры.Ссылка = ВложенныйЗапрос.ПартнерСсылка {ГДЕ СправочникПартнеры.Ссылка КАК Сегмент, СправочникПартнеры.Ссылка КАК Поиск} [/code] Я пытаюсь его переделать в вариант: [code] ВЫБРАТЬ СправочникПартнеры.Ссылка, СправочникПартнеры.ПометкаУдаления, СправочникПартнеры.Предопределенный, СправочникПартнеры.Родитель, СправочникПартнеры.Код, СправочникПартнеры.Наименование, ... ... ... СправочникПартнеры.КонтактнаяИнформация, (ВЫБРАТЬ ПЕРВЫЕ 1 СправочникКонтрагенты.NewField ИЗ Справочники.Контрагенты КАК СправочникКонтрагенты ГДЕ СправочникКонтрагенты.Партнер.Ссылка = СправочникПартнеры.Ссылка И СтрДлина(СправочникКонтрагенты.NewField)>0 ) КАК NewField ИЗ Справочник.Партнеры КАК СправочникПартнеры ПО СправочникПартнеры.Ссылка = ВложенныйЗапрос.ПартнерСсылка {ГДЕ СправочникПартнеры.Ссылка КАК Сегмент, СправочникПартнеры.Ссылка КАК Поиск} Но выходит ошибка, помогите переделать запрос, чтобы вывести значение первого не пустого NewField подчиненных контрагентов Спасибо. |
|||
|
1
catena
17.12.11
✎
17:49
|
1 с это вам не скл, она не умеет такие поля делать. Делайте левым соединением.
|
|||
|
2
okosv
17.12.11
✎
19:25
|
(1) Левым соединением тоже пробовал
Но с учетом того что у Партнера могут быть несколько подчиненных контрагентов, как мне вывести значение первого ну пустого NewField из подчиненных контрагентов? Вот такой вариант левого соединения пробовал: ВЫБРАТЬ СправочникПартнеры.Ссылка, СправочникПартнеры.ПометкаУдаления, СправочникПартнеры.Предопределенный, СправочникПартнеры.Родитель, СправочникПартнеры.Код, СправочникПартнеры.Наименование, СправочникПартнеры.БизнесРегион, СправочникПартнеры.ГруппаДоступа, СправочникПартнеры.ДатаРегистрации, СправочникПартнеры.Клиент, СправочникПартнеры.Комментарий, СправочникПартнеры.Конкурент, СправочникПартнеры.НаименованиеПолное, СправочникПартнеры.ОсновнойМенеджер, СправочникПартнеры.Поставщик, СправочникПартнеры.ПрочиеОтношения, СправочникПартнеры.ДополнительныеРеквизиты, СправочникПартнеры.КонтактнаяИнформация, ВложенныйЗапрос.MegaNETID ИЗ Справочник.Партнеры КАК СправочникПартнеры ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ СправочникКонтрагенты.MegaNETID, СправочникКонтрагенты.Партнер.Ссылка КАК ПартнерСсылка ИЗ Справочник.Контрагенты КАК СправочникКонтрагенты ) КАК ВложенныйЗапрос ПО СправочникПартнеры.Ссылка = ВложенныйЗапрос.ПартнерСсылка {ГДЕ СправочникПартнеры.Ссылка КАК Сегмент, СправочникПартнеры.Ссылка КАК Поиск} При таком запросе вообще данные не выходят |
|||
|
3
Mikhail Volkov
17.12.11
✎
21:04
|
(0) А какая цель всего этого, сопоставить партнеров к контрагентам, как договора в УТ10.3? Но в УТ11.0.7.8 вроде вернули ДоговорыКонтрагентов... правда, они уже не подчинены контрагентам?
|
|||
|
4
okosv
18.12.11
✎
07:47
|
(3) Не сопоставить, а вывести значение первого не пустого реквизита (который я сам добавил, скажем NewField) из подчиненных контрагентов в списке Партнеров.
В простом SQL, не было бы особых проблем, вывел бы через подчиненный запрос, но в 1С, как мне сказал (а) catena (1), такие поля невозможно вывести, через левое соединение тоже не получается и то, в варианте левого соединения сложно будет вывести первую не пустую строку из таблицы контрагентов. Может быть динамически при формировании списка делать? Если не ошибаюсь должно было быть событие ПриВыводеСтроки для списка, но его тоже не могу найти в 8.2 |
|||
|
5
okosv
18.12.11
✎
08:57
|
можно как нибудь решить данную проблему?
Возможно ли в 1С 8.2 написать функцию к примеру, которую можно будет использовать в запросе? Как в T-SQL User defined function к примеру |
|||
|
6
catena
18.12.11
✎
08:59
|
(5)На СКД можно :)
А какой "первый"? Т.е. - любой, удовлетворяющий условиям? Тогда, например, вложеный запрос + максимум. |
|||
|
7
Mikhail Volkov
18.12.11
✎
19:27
|
(4) А учишься, домашнее задание делаешь - практического значения не имеет? Я вот не допру, как в УТ11 собственные контрагенты с организациями связаны, партнеры с подразделениями... нет таких РС!?
|
| Форум | Правила | Описание | Секции | Поиск |