Имя: Пароль:
1C
1С v8
Как записать адрес?
0 Мисти
 
26.01.13
20:46
Результат = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
       Результат.Объект = ТекКонтрагент;
       Результат.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
       Результат.Вид = ВидФакт;
       Результат.Представление = КонтрОле.ЮрФизЛицо.ФактАдрес;
       Результат.Период = '20120101';        
       Результат.Поле1="Россия";
       Результат.Записать();
Какая-то хитрость была с полем1, но не помню какая!
В регистре данные есть, но в справочник не подтягиваются.
1 Мисти
 
26.01.13
20:50
Объект                        
Представление                        
Поле1    Комментарий    Значение по умолчанию    Тип дома    Тип корпуса    Тип квартиры    Тип
БТЛ агенство                        
115477,г.москва,ул. Кантемировская,д.53,корп.1                        
Россия        Нет                Адрес
2 Мисти
 
26.01.13
20:58
Так в чем фокус-то?
3 Amra
 
26.01.13
21:07
(2) Фокус в наличии фотки. Твоей. Хочешь поспорить- ну рискни.
4 Мисти
 
26.01.13
21:08
Я уже почти! Только такая маленькая не получается - 200 кб, я не влезаю.
5 Amra
 
26.01.13
21:08
(4) Не пролазит. Сочувствую.
6 Мисти
 
26.01.13
21:13
Ау?
7 RomanYS
 
26.01.13
21:20
(0) скорее всего проблема с ВидФакт
8 Мисти
 
26.01.13
21:21
ВидФакт=Справочники.ВидыКонтактнойИнформации.ФактАдресОрганизации;
9 mikecool
 
26.01.13
21:23
вроде если адрес российский, тогда надо заполнять поле1-поле10, для нероссийских - представление
10 NDN
 
26.01.13
21:24
плохо, что в типовых нигде адрес не записывается :(
Зато клиенты пищат
11 Мисти
 
26.01.13
21:25
Представление работает для всех, я проверяла.
12 Мисти
 
26.01.13
21:26
У меня примерно то же - где-то работало, только не могу найти сейчас - где. И в чем разница, никак не пойму.
13 mikecool
 
26.01.13
21:26
(11) да, но в режиме предприятия оно доступно только для нероссийских адресов, а для российских вызывается функция по сборке адреса по полям 1-10, емнип
14 Aleksey
 
26.01.13
21:28
Функция Разложить(Знач Стр, Разделитель = ",") Экспорт
   
   Список = новый СписокЗначений;
   Длина  = СтрДлина(Разделитель);
   
   Стр = СокрЛП(Стр);
   Поз = Найти(Стр, Разделитель);
   
   Пока 0 < Поз Цикл
       Список.Добавить(СокрП(Лев(Стр, Поз-1)));
       
       Стр = СокрЛ(Сред(Стр, Поз+Длина));
       Поз = Найти(Стр, Разделитель);
   КонецЦикла;
   
   Список.Добавить(Стр);
   
   Возврат Список;
   
КонецФункции // глРазложить()

Функция ВернутьСтрутуруАдреса(Адрес)
   //1 - Структура строки с адресом в 7-ке
   //2 - Код страны
   //3 - Индекс
   //4 - Наименование региона
   //5 - Наименование района
   //6 - Наименование города
   //7 - Наименование нас пункта
   //8 - Наименование улицы
   //9 - Номер дома
   //10- Номер корпуса
   //11- Номер квартиры
   СписокСАдресом = Разложить(Адрес);
   Результат  = новый Структура();
   Результат.Вставить("Поле1",?(СписокСАдресом.количество()>1,СписокСАдресом[1].Значение,""));
   Результат.Вставить("Поле2",?(СписокСАдресом.количество()>2,СписокСАдресом[2].Значение,""));
   Результат.Вставить("Поле3",?(СписокСАдресом.количество()>3,СписокСАдресом[3].Значение,""));
   Результат.Вставить("Поле4",?(СписокСАдресом.количество()>4,СписокСАдресом[4].Значение,""));
   Результат.Вставить("Поле5",?(СписокСАдресом.количество()>5,СписокСАдресом[5].Значение,""));
   Результат.Вставить("Поле6",?(СписокСАдресом.количество()>6,СписокСАдресом[6].Значение,""));
   Результат.Вставить("Поле7",?(СписокСАдресом.количество()>7,СписокСАдресом[7].Значение,""));
   Результат.Вставить("Поле8",?(СписокСАдресом.количество()>8,СписокСАдресом[8].Значение,""));
   Результат.Вставить("Поле9",?(СписокСАдресом.количество()>9,СписокСАдресом[9].Значение,""));
   Результат.Вставить("Поле10","");
   Результат.Вставить("Представление","");
   
   Возврат Результат
КонецФункции

Функция ОбновитьАдрес(СтрокаАдреса, ТекОбъект, ТекТип, ТекВид)
   НовыйАдрес = ВернутьСтрутуруАдреса(СтрокаАдреса);
   АдресИзменен = False;
   Результат = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
   Результат.Отбор.Объект.Установить(ТекОбъект.Ссылка);
   Результат.Отбор.Тип.Установить(ТекТип);
   Результат.Отбор.Вид.Установить(ТекВид);
   Результат.Прочитать();
   Если Результат.Количество() = 0 Тогда
       Адрес = Результат.Добавить();
       Адрес.Объект = ТекОбъект.Ссылка;
       Адрес.Тип = ТекТип;
       Адрес.Вид = ТекВид;
   Иначе
       Адрес = Результат[0];
   КонецЕсли;
   Для Каждого ТекРеквизит из НовыйАдрес Цикл
       Если Адрес[ТекРеквизит.Ключ]<>ТекРеквизит.Значение и
           ЗначениеЗаполнено(ТекРеквизит.Значение) тогда
           Адрес[ТекРеквизит.Ключ]=ТекРеквизит.Значение;
           АдресИзменен = True;
       КонецЕсли;
   КонецЦикла;
   
   Адрес.Представление = УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдреса(Адрес);
   
   Если АдресИзменен тогда
       Результат.Записать();
   КонецЕсли;
   
   Возврат АдресИзменен;
   
Конецфункции
15 RomanYS
 
26.01.13
21:29
(8) а должно быть что-то типа
ВидФакт=Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
16 Aleksey
 
26.01.13
21:30
ТекТип = Перечисления.ТипыКонтактнойИнформации.Адрес;
ТекВид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;

ОбновитьАдрес(РеквизитыОбъекта["ФактАдрес"], ТекКонтрагент, ТекТип, ТекВид)
17 Мисти
 
26.01.13
21:37
(15) Уря!! Точно, собака там порылась!
18 Мисти
 
26.01.13
21:37
Спасибо!!!
19 zippygrill
 
26.01.13
22:51
(3) она ж сказала что нам не  понравится ее фотки ))
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn