Имя: Пароль:
1C
1С v8
Регистр "Контактная информация" пустой, хотя это не так.
0 Босечка
 
28.11.14
12:30
Пытаюсь получить адрес сотрудника

Функция киПолучитьПредставлениеКИ1(Объект, ЗначениеКИ, ДобавлятьКомментарий = Ложь)

    Представление = "";
    
    НаборЗаписейКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
    НаборЗаписейКИ.Отбор.Объект.Значение      = Объект;
    НаборЗаписейКИ.Отбор.Объект.Использование = Истина;
    Если ТипЗнч(ЗначениеКИ) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда
        НаборЗаписейКИ.Отбор.Вид.Значение      = ЗначениеКИ;
        НаборЗаписейКИ.Отбор.Вид.Использование = Истина;
        НаборЗаписейКИ.Прочитать();
        Если НаборЗаписейКИ.Количество() > 0  Тогда
            Представление = НаборЗаписейКИ[0].Представление;
            Если ДобавлятьКомментарий И Не ПустаяСтрока(НаборЗаписейКИ[0].Комментарий) Тогда
                Если НаборЗаписейКИ[0].Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
                    Представление = Представление + Символы.ПС + "Комментарий: " + НаборЗаписейКИ[0].Комментарий;
                Иначе
                    Представление = Представление + " (" + НаборЗаписейКИ[0].Комментарий + ")";
                КонецЕсли;
            КонецЕсли;    
        КонецЕсли;
        
    ИначеЕсли ТипЗнч(ЗначениеКИ) = Тип("ПеречислениеСсылка.ТипыКонтактнойИнформации") Тогда
        НаборЗаписейКИ.Отбор.Тип.Значение      = ЗначениеКИ;
        НаборЗаписейКИ.Отбор.Тип.Использование = Истина;
        НаборЗаписейКИ.Прочитать();
        Представление = "";
        Для каждого Запись Из НаборЗаписейКИ Цикл
            Если Запись.ЗначениеПоУмолчанию Тогда
                Представление = Запись.Представление;
                Если ДобавлятьКомментарий И Не ПустаяСтрока(Запись.Комментарий) Тогда
                    Если Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
                        Представление = Представление + Символы.ПС + "Комментарий: " + Запись.Комментарий;
                    Иначе
                        Представление = Представление + " (" + Запись.Комментарий + ")";
                    КонецЕсли;
                КонецЕсли;
                Прервать;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    Возврат Представление;
    
КонецФункции // киПолучитьПредставлениеКИ()

Адрес1 = киПолучитьПредставлениеКИ1(Сотрудник,Справочники.ВидыКонтактнойИнформации.АдресЮридический);    

выходит пустое значение, хотя данные там есть
1 Wobland
 
28.11.14
12:32
ну дела...
2 Wobland
 
28.11.14
12:32
без слова "запрос" даж читать не буду
3 Босечка
 
28.11.14
12:32
да уж...
4 Любопытная
 
28.11.14
12:33
А что, запросы нонче не в моде?
5 zulu_mix
 
28.11.14
12:33
хосспаде... как мне это развидеть О_О
6 Wobland
 
28.11.14
12:33
(5) сегодня ж пятница. бахни метилового спирту
7 Любопытная
 
28.11.14
12:34
При таком количестве вложенных Если немудрено получить пусто на выходе.
Впрочем, даже такое можно отладить отладкой
8 Любопытная
 
28.11.14
12:34
Там еще и Прервать есть... Красотища
9 elCust
 
28.11.14
12:34
Зачем городить всякую фигню. Возьмите типовую конфу, посмотрите модуль КИ, сделайте у себя по нормальному.
10 Ненавижу 1С
 
гуру
28.11.14
12:34
АдресЮридический - у меня такого предопределенного нет
11 zulu_mix
 
28.11.14
12:35
(6) О_О о_о х_х -_- спасибо друх
12 Wobland
 
28.11.14
12:35
(11) гыыы!
13 zulu_mix
 
28.11.14
12:36
а что, у сотрудника уже появился юридический адрес? не знал
14 Босечка
 
28.11.14
12:36
Это типовая конфа, Альфа Авто 5 между прочим, хотела воспользоваться стандартной функцией, придется делать запрос.
15 Любопытная
 
28.11.14
12:37
о, что нашла
// Функция находит актуальное значение адреса в контакной информации.
//
// Параметры:
//  Объект - СправочникСсылка, объект контактной информации
//  ТипАдреса - тип контактной информации
//
// Возвращаемое значение
//  Строка - представление найденного адреса
//
Функция ПолучитьАдресИзКонтактнойИнформации(Объект, ТипАдреса = "") Экспорт
Надо?
16 Любопытная
 
28.11.14
12:37
(14) Это типовой код Альфа-авто?
17 Босечка
 
28.11.14
12:38
(16) да
18 zulu_mix
 
28.11.14
12:38
(14) я давно предлагал рарусям руки оторвать
19 Босечка
 
28.11.14
12:39
(15) Давайте, заранее спасибо.
20 Любопытная
 
28.11.14
12:39
(17) о боги... я не верю
21 Любопытная
 
28.11.14
12:39
(19) в бухгалтерии можно посмотреть в типовой Там целый общий модуль есть "УПравлениеКонтактнойИнформацией"
22 Босечка
 
28.11.14
12:40
Спасибо, сейчас посмотрю.
23 JeyRico
 
28.11.14
12:42
НаборЗаписейКИ.Отбор.Объект.Значение      = Объект;
Вангую:
Наверно так должно быть ... = Объект.Ссылка;

А вообще, у сотрудника разве юридический адрес должен быть?
24 Любопытная
 
28.11.14
12:42
Точно, есть такая. Это ж надо же...
25 vyaz
 
28.11.14
12:43
(20) наслаждайся, соседняя функция

// Функция возвращает для заданного объекта город из контактной информации
//
// Параметры:
//  Объект               – СправочникСсылка - Объект, для которого нужно получить представление
//  ЗначениеКИ              - СправочникСсылка - Значение контактной информации
//
// Возвращаемое значение:
//   Строка   – представление контактной информации или пустая строка, если значение не найдено.
//
Функция киПолучитьГород(Объект, ЗначениеКИ) Экспорт

    НаборЗаписейКИ = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
    НаборЗаписейКИ.Отбор.Объект.Значение      = Объект;
    НаборЗаписейКИ.Отбор.Объект.Использование = Истина;
    Если ТипЗнч(ЗначениеКИ) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда
        НаборЗаписейКИ.Отбор.Вид.Значение      = ЗначениеКИ;
        НаборЗаписейКИ.Отбор.Вид.Использование = Истина;
        НаборЗаписейКИ.Прочитать();
        Если НаборЗаписейКИ.Количество() > 0  Тогда
            город = НаборЗаписейКИ[0].Поле4;
            Если ЗначениеЗаполнено(город) Тогда
                Если Прав(город,2)=" г" Тогда
                    Возврат "г. " + Лев(город, СтрДлина(город)-2);
                Иначе
                    Возврат город; //поселок, пгт или что-то еще
                КонецЕсли;
            Иначе
                Если Найти(НаборЗаписейКИ[0].Поле2,"Москва") Тогда
                    Возврат "г. Москва";
                ИначеЕсли Найти(НаборЗаписейКИ[0].Поле2,"Санкт-Петербург") Тогда
                    Возврат "г. Санкт-Петербург";
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Возврат "";
    
КонецФункции // киПолучитьПредставлениеКИ()
26 Wobland
 
28.11.14
12:43
(24) всадники апокалипсиса уже здесь. нам конец
27 Любопытная
 
28.11.14
12:45
(25) У меня в 4.1 такой нет
28 vyaz
 
28.11.14
12:46
(27) 5.0.11 )))
29 Любопытная
 
28.11.14
12:46
Ок, скажите тогда, мож и не обязательно в таких случаях заморачиваться с запросами? Ну работает же, как я понимаю
30 Любопытная
 
28.11.14
12:47
(28) ну какая демка есть под рукой, ту и развернула
31 vyaz
 
28.11.14
12:51
(29) так-то и столовой ложкой можно яму под сортир копать, копается же)))
32 Поpyчик-4
 
28.11.14
13:08
(5) Это ещё ничего. Вот у нас чудо с шестью сертификатами профа сидело, полтора года кодило. Какое счастье, что оно свалило, пока я был в отпуске.
33 Босечка
 
28.11.14
13:26
И запросом тоже не выходит....
Сотрудник=ЭтотОбъект;

ВидКонИнф=Справочники.ВидыКонтактнойИнформации.АдресФактический;
ВыбСотр=Сотрудник.Ссылка;

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    КонтактнаяИнформация.Объект,
        |    КонтактнаяИнформация.Тип,
        |    КонтактнаяИнформация.Вид,
        |    КонтактнаяИнформация.ЗначениеПоУмолчанию,
        |    КонтактнаяИнформация.Комментарий,
        |    КонтактнаяИнформация.Поле1,
        |    КонтактнаяИнформация.Поле2,
        |    КонтактнаяИнформация.Поле3,
        |    КонтактнаяИнформация.Поле4,
        |    КонтактнаяИнформация.Поле5,
        |    КонтактнаяИнформация.Поле6,
        |    КонтактнаяИнформация.Поле7,
        |    КонтактнаяИнформация.Поле8,
        |    КонтактнаяИнформация.Поле9,
        |    КонтактнаяИнформация.Представление,
        |    КонтактнаяИнформация.Поле10,
        |    КонтактнаяИнформация.Поле11,
        |    КонтактнаяИнформация.Поле12,
        |    КонтактнаяИнформация.СтанцияМетро,
        |    КонтактнаяИнформация.ГородскойРайон,
        |    КонтактнаяИнформация.CRM_ПолеХраненияНомера,
        |    КонтактнаяИнформация.ТипДома,
        |    КонтактнаяИнформация.ТипКорпуса,
        |    КонтактнаяИнформация.ТипКвартиры,
        |    КонтактнаяИнформация.КраткоеПредставление
        |ИЗ
        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
        |        ПО КонтактнаяИнформация.Объект = Сотрудники.Ссылка
        |ГДЕ
        |    Сотрудники.Ссылка = &ВыбСотр
        |    И КонтактнаяИнформация.Вид.Ссылка = &ВидКонИнф";

    Запрос.УстановитьПараметр("ВидКонИнф", ВидКонИнф);
    Запрос.УстановитьПараметр("ВыбСотр", ВыбСотр);
    Т= новый ТаблицаЗначений;
    Т = Запрос.Выполнить().Выгрузить();
    Т.ВыбратьСтроку();
    тз = Новый ТаблицаЗначений;
    тз = Запрос.Выполнить().Выгрузить();
таблица пустая...
34 Любопытная
 
28.11.14
13:34
Т= новый ТаблицаЗначений;
    Т = Запрос.Выполнить().Выгрузить();
    Т.ВыбратьСтроку(); - Что это?

Зачем соединение со справочником, если у вас один сотрудник и тот отбором в условии?
35 mdocs
 
28.11.14
13:35
а точно адрес у сотрудника а не у физлица?
36 Любопытная
 
28.11.14
13:35
ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Представление
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Объект = &Сотрудник
    И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(справочник.ВидыКонтактнойИнформации.АдресЮридический)

Не?
37 Босечка
 
28.11.14
13:37
Нет у сотрудника
38 Босечка
 
28.11.14
13:45
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
|    КонтактнаяИнформация.Объект,
|    КонтактнаяИнформация.Представление
|ИЗ
|    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
|    КонтактнаяИнформация.Объект = &Сотрудник
|    И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(справочник.ВидыКонтактнойИнформации.АдресЮридический)";

    Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
все равно не работает
39 Любопытная
 
28.11.14
13:49
ну так может нет у сотрудника юридического адреса? :)
40 Любопытная
 
28.11.14
13:54
С учетом того, что в бухгалтерии адреса у физиков и адрес по прописке называется Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица, то у меня работает. А у вас вестимо значений нет