Имя: Пароль:
1C
1С v8
Как вывести все емэйлы из справочника контрагенты
0 sidalexsandr
 
07.03.18
12:48
У меня УТ 10.3. Надо в справочнике Контрагенты из закладки Контакты
из таблицы адреса и телефоны вывести все емэйлы. Написал:
СпрК = Справочники.Контрагенты.Выбрать();
    Пока СпрК.Следующий() = 1 Цикл
         Сообщить("К наименованиие = "+СпрК.Наименование);
        
         КонИнфо = СпрК.КонтактнаяИнформация;
         КонЕмэил = КонИнфо.Выбрать();
         Пока КонЕмэил.Следующий() = 1 Цикл
            Сообщить("КонЕмэил = "+КонЕмэил);    
         КонецЦикла;    
    КонецЦикла;

Выдает ошибку: {ВнешнийОтчет.ЕМэйлы.Форма.ФормаОтчета.Форма(8)}: Поле объекта не обнаружено (КонтактнаяИнформация)
         КонИнфо = СпрК.КонтактнаяИнформация;
1 catena
 
07.03.18
12:50
Ну, видимо КонтактнаяИнформация - не реквизит справочника...
2 VladZ
 
07.03.18
12:51
(0) "Надо в справочнике Контрагенты из закладки Контакты
из таблицы адреса и телефоны вывести все емэйлы" - это ты описываешь, где их видишь. А хранятся они не там. Это отдельный регистр.
3 один я дАртаньян
 
07.03.18
12:52
(0) 1. И ты уверен что это у контрагента а не у контактных лиц контрагента?
2. Емелы часто пишут в коментарии, дополнение к описанию, так что я бы еще поискал по текстовым полям "@"
4 sidalexsandr
 
07.03.18
12:53
(2) Какой регистр?
5 Михаил Козлов
 
07.03.18
12:55
(4) Контактная информация
6 alxxsssar
 
07.03.18
12:55
(4) так и называется по моему "Контактная информация"
7 Cool_Profi
 
07.03.18
12:56
(4) КонтактнаяИнформация, не?

    табпочта = Новый ТаблицаЗначений;
    табпочта.Колонки.Добавить("Объект");
    табпочта.Колонки.Добавить("Почта");
    табпочта.Колонки.Добавить("Поиск");
    
    табпочта.Индексы.Добавить("Поиск");
    
    нз = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
    нз.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
    
    нз.Прочитать();
    кол = нз.Количество();
    сч = 0;
    Для каждого з из нз Цикл
        сч = сч + 1;
        Если сч % 100 = 0 Тогда
            Состояние("Читаем почту... " + сч + " / " + кол);
        КонецЕсли;
        Если ТипЗнч(з.Объект) = Тип("СправочникСсылка.КонтактныеЛицаКонтрагентов") ИЛИ ТипЗнч(з.Объект) = Тип("СправочникСсылка.Контрагенты") Тогда
            стр = табпочта.Добавить();
            стр.Объект = з.Объект;
            стр.Почта = з.Представление;
            стр.Поиск = з.Представление;
        КонецЕсли;
    КонецЦикла;
8 alxxsssar
 
07.03.18
12:57
+(6) надо запрос делать чисто к этому регистру с отбором по типу/виду (там еще и адреса разные и телефоны и что захочешь хранится)
9 sidalexsandr
 
07.03.18
12:58
(6) Спасибо
10 Гипервизор
 
07.03.18
12:59
Есть люди в наше время, у которых конфигуратор по карточкам. Иначе не объяснить.
11 assasu
 
07.03.18
13:00
(0) семерочник осваивает 8-ку, а она еще сырая!
12 sidalexsandr
 
07.03.18
14:03
(11) Да на 8 опыт 8 месяцев, а до этого была 7.
13 sidalexsandr
 
07.03.18
14:04
Спасибо всех написал запрос в консоли запросов и это устроило начальство
14 1Сергей
 
07.03.18
14:05
(12) перестраивай мозг на восьмёрку
15 Мандалай
 
07.03.18
14:41
А вообще судя по ошибке код исполняется на клиенте, а надобно на сервере.
16 Мандалай
 
07.03.18
14:42
Нда, припозднился...
17 один я дАртаньян
 
07.03.18
18:36
(4) Да уж. По сравнению с тем, что было, код на восьмерке усложнился в разы.

Управляемы формы, асинхронное программирование. Да и код  усложнился.

Если раньше кнопка заполни: это запро и перенос результатов запросов в ТЧ, то сейчас это с десяток разных запросов в разных процедурах и функциях связанных через временные таблицы

Даже не знаю как учатся с нуля новоприбывшие.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.