Имя: Пароль:
1C
 
Вычисляемое поле в СКД - Синтаксическая ошибка
0 Klesk
 
20.12.22
16:02
Что не так?

Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")).Количество()>0 Тогда
УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"))[0].Значение
Конец
1 Klesk
 
20.12.22
16:06
2 Klesk
 
20.12.22
16:08
    Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")).Количество()>0 Тогда
    УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Объект.Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"))[0].Значение

    Конец
3 Klesk
 
20.12.22
16:11
Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")).Количество()>0 Тогда
    УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"))[0].Значение

    Конец

убрал Объект, все равно
4 Гипервизор
 
20.12.22
16:29
(0) Что за ошибка-то? Этот модуль можно использовать в выражениях СКД?
5 Klesk
 
20.12.22
16:36
(4) Синтаксическая ошибка
{ОбщаяФорма.ФормаОтчета.Форма(1148)}:        СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто);
{ОбщаяФорма.ФормаОтчета.Форма(594)}:        СформироватьНепосредственно();

по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
Синтаксическая ошибка
{ВнешнийОтчет.ВыручкаИСебестоимостьПродажСПочтовымиАдресами.МодульОбъекта(18)}:    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
{ОбщаяФорма.ФормаОтчета.Форма(1148)}:        СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто);

по причине:
Ошибка компоновки макета
по причине:
Ошибка в выражении "(Выбор когда УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")).Количество()>0 Тогда
    УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"))[0].Значение

    Конец)"
по причине:
Синтаксическая ошибка
6 Klesk
 
20.12.22
16:42
Общий модуль конфигурации
Сервер, Внешнее соединение, Клиент (обычное приложение)

Если оставить только УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты"))
ошибки нет
7 vicof
 
20.12.22
16:51
УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")) = Неопределено у каких-нибудь записей
8 Klesk
 
20.12.22
17:22
(7) там Возврат Запрос.Выполнить().Выгрузить();
в любом случае таблица
9 Kassern
 
20.12.22
17:25
(8) А зачем это делать в вычисляемом поле? Если речь идет про СКД, что мешает там получить нужную таблицу и привязать ее к основной?
10 Klesk
 
20.12.22
17:27
(9) нет, я могу и функцию запилить в общем модуле, просто интересно, почему так не получается
11 Kassern
 
20.12.22
17:28
(10) Потому что это корявое решение, пытаться получить таблицу в вычисляемое поле.
12 Kassern
 
20.12.22
17:30
Имхо все дело в синтаксисе, которые не проходит ваше выражение из-за точки.
13 Kassern
 
20.12.22
17:30
К функции вы можете обратиться, а вот через точку получить результат - вряд ли.
14 Klesk
 
20.12.22
17:30
(11) согласен, просто изначально думал это будет проще типовыми методами
15 Renium1963
 
20.12.22
17:31
А разве так можно "[0].Значение" ?
16 Kassern
 
20.12.22
17:32
(14) вы можете написать еще одну функцию, которая вернет первый элемент таблицы, либо неопределено (к примеру). И вот уже ее использовать, но все равно это корявое решение имхо))
17 vicof
 
20.12.22
17:37
Почта   = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ДанныеОСотруднике.ФизическоеЛицо, Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица,            ТекущаяДата, Истина);
18 Kassern
 
20.12.22
17:38
(17) А если у физического лица несколько почтовых ящиков?
19 vicof
 
20.12.22
17:43
(18) Или свою функцию запилить, чтобы возвращали список одной строчкой. Или сделать несколько полей для контактной информации, или брать первый. Для начала можно почитать задачу, а там уже принимать решение.
20 Klesk
 
20.12.22
19:12
(15) да, нельзя
Выражение вычисляемого поля описывается на языке выражений компоновки данных. В выражениях вычисляемого поля есть ограничение - в нем нельзя использовать вычисляемые поля.
https://its.1c.ru/db/metod8dev/content/1810/hdoc
21 Klesk
 
20.12.22
20:23
я "победил"... всё выводится

ОбщегоНазначения.ВыгрузитьКолонку(УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")),"Значение")
22 Klesk
 
20.12.22
20:23
ОбщегоНазначения.ВыгрузитьКолонку(УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")),"Значение")[\1C]
23 Klesk
 
20.12.22
20:23
ОбщегоНазначения.ВыгрузитьКолонку(УправлениеКонтактнойИнформацией.ЗначенияКонтактнойИнформацииОбъекта(Партнер,ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты")),"Значение")[\1С]
24 Renium1963
 
21.12.22
10:43
(21) Ну, вот и все... а сколько бумаги исписали то на комментарии )))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший