Имя: Пароль:
1C
1С v8
Записать контактную информацию в СРМ
0 zavsom
 
30.11.11
17:11
сделал вот так вот - дает ошибку - т.е. адрес пишет а телефон нет

        //***
        НаборД = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        //***АДРЕС Физический
        // устанавливаем параметры отбора по полному набору Измерений регистра:
        НаборД.Отбор.Объект.Установить(НовыйЭлементК.Ссылка);
        НаборД.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
        НаборД.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
        // Создаем новую строку в этом наборе записей:
        СтрокаДанных = НаборД.Добавить();
        // определяем значения Измерений этой строки:
        СтрокаДанных.Объект = НовыйЭлементК.Ссылка ;
        СтрокаДанных.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
        СтрокаДанных.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента ;
        // определяем значения Ресурсов
        СтрокаДанных.Представление = Адрес;
       
        НаборД.Записать();
       
        //*** ТЕЛЕФОН
        //НаборД2 = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        НаборД.Отбор.Объект.Установить(НовыйЭлементК.Ссылка);
        НаборД.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Телефон);
        НаборД.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
        // Создаем новую строку в этом наборе записей:
        СтрокаДанных = НаборД.Добавить();
        // определяем значения Измерений этой строки:
        СтрокаДанных.Объект = НовыйЭлементК.Ссылка ;
        СтрокаДанных.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
        СтрокаДанных.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента ;
        // определяем значения Ресурсов
        СтрокаДанных.Представление = КонтактноеЛицо;
       
        НаборД.Записать();
1 zavsom
 
30.11.11
17:12
а так работает, но дюже некрасивый код

        //***
        НаборД = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        //***АДРЕС Физический
        // устанавливаем параметры отбора по полному набору Измерений регистра:
        НаборД.Отбор.Объект.Установить(НовыйЭлементК.Ссылка);
        НаборД.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
        НаборД.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
        // Создаем новую строку в этом наборе записей:
        СтрокаДанных = НаборД.Добавить();
        // определяем значения Измерений этой строки:
        СтрокаДанных.Объект = НовыйЭлементК.Ссылка ;
        СтрокаДанных.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
        СтрокаДанных.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента ;
        // определяем значения Ресурсов
        СтрокаДанных.Представление = Адрес;
       
        НаборД.Записать();
       
        //*** ТЕЛЕФОН
        НаборД2 = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        НаборД2.Отбор.Объект.Установить(НовыйЭлементК.Ссылка);
        НаборД2.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Телефон);
        НаборД2.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
        // Создаем новую строку в этом наборе записей:
        СтрокаДанных = НаборД2.Добавить();
        // определяем значения Измерений этой строки:
        СтрокаДанных.Объект = НовыйЭлементК.Ссылка ;
        СтрокаДанных.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
        СтрокаДанных.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента ;
        // определяем значения Ресурсов
        СтрокаДанных.Представление = КонтактноеЛицо;
       
        НаборД2.Записать();
2 zavsom
 
30.11.11
17:13
собственно вопрос - а как правильно написать , если мне например надо более 5-10 позиций из контактной информации заполнить?
3 zavsom
 
30.11.11
17:15
вот код обработки загрузки из Эксель Контрагентов в СРМ

Перем ЗнЯч1,ЗнЯч2,ЗнЯч3,ЗнЯч4;


Процедура ВыборФайла(Элемент)
   
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   
    ДиалогВыбора.Фильтр     = "Файл данных (*.xls,*.xlsx)|*.xls;*.xlsx";
    ДиалогВыбора.Расширение = "xls";
   
    ДиалогВыбора.Заголовок ="Выберите файлы для загрузки";
   
    ДиалогВыбора.ПредварительныйПросмотр     = Ложь;
    ДиалогВыбора.ИндексФильтра               = 0;
    ДиалогВыбора.ПолноеИмяФайла              = Элемент.Значение;
    ДиалогВыбора.ПроверятьСуществованиеФайла = Ложь;
    ДиалогВыбора.МножественныйВыбор          = Ложь;
    Если ДиалогВыбора.Выбрать() Тогда
        Элемент.Значение = ДиалогВыбора.ПолноеИмяФайла;
    КонецЕсли;
   
КонецПроцедуры


Процедура ИмяНачалоВыбора(Элемент, СтандартнаяОбработка)
    ВыборФайла(Элемент);
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
    ОснМ= Справочники.Пользователи;
    СпрКлиенты = Справочники.Контрагенты;
   
   
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(фИмяФайлаИсточника);
        Состояние("Обработка файла Microsoft Excel...");
        ExcelЛист = Excel.Sheets(1);
    Исключение
        Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
    КонецПопытки;
   
   
   
    СчетчикЗагрузки=0;
    Кол_воСтрок=конТЧ-начТЧ+1;
    Для инд1=1 По Кол_воСтрок Цикл
       
       
        ЗнЯч1=СокрЛП(Строка(ExcelЛист.Cells(начТЧ+инд1-1,П1).Value));
        Если ЗначениеЗаполнено(ЗнЯч1)=1 Тогда
            НазвФирмы=ЗнЯч1;
        КонецЕсли;    
       
        ЗнЯч2=СокрЛП(Строка(ExcelЛист.Cells(начТЧ+инд1-1,П2).Value));
        Если ЗначениеЗаполнено(ЗнЯч2)=1 Тогда
            Адрес=ЗнЯч2;
        КонецЕсли;
       
       
        ЗнЯч3=СокрЛП(Строка(ExcelЛист.Cells(начТЧ+инд1-1,П3).Value));
        Если ЗначениеЗаполнено(ЗнЯч3)=1 Тогда
            КонтактноеЛицо=ЗнЯч3;
        КонецЕсли;    
       
       
        ЗнЯч4=СокрЛП(Строка(ExcelЛист.Cells(начТЧ+инд1-1,П4).Value));
        Если ЗначениеЗаполнено(ЗнЯч4)=1 Тогда
            Комментарии=ЗнЯч4;
        КонецЕсли;
       
        состояние(инд1);
        СчетчикЗагрузки=СчетчикЗагрузки+1;
       
        //Сообщить(" Фирма->"+НазвФирмы+"  адрес->    "+Адрес+"  конт.лицо-> "+КонтактноеЛицо+"  Комментарии-> "+Комментарии);
       
       
        НайденнаяСсылка2 = СпрКлиенты.НайтиПоНаименованию(НазвФирмы);
        Если НайденнаяСсылка2 = СпрКлиенты.ПустаяСсылка() Тогда
            Сообщить("Такого Клиента в справочнике не существует!   --- добавляем===="+НазвФирмы);
        Иначе
            Продолжить;    
        КонецЕсли;
       
       
        НовыйЭлементК=справочники.Контрагенты.СоздатьЭлемент();
        НовыйЭлементК.Родитель = РодительКонтрагента;
       
        НовыйЭлементК.ГруппаДоступаККонтрагенту = ГрДоступа;
       
        //*** Основной менеджер
        НайденнаяСсылка = ОснМ.НайтиПоНаименованию(ВводПользователя);
        Если НайденнаяСсылка = ОснМ.ПустаяСсылка() Тогда
            Сообщить("Такого Пользователя не существует!");
        Иначе
            НовыйЭлементК.ОсновнойМенеджерПокупателя=НайденнаяСсылка.Ссылка;
            НоваяСтрока = НовыйЭлементК.МенеджерыПокупателя.Добавить();
            НоваяСтрока.МенеджерПокупателя = НайденнаяСсылка.Ссылка;
        КонецЕсли;
       
        НовыйЭлементК.Наименование=НазвФирмы;
        НовыйЭлементК.НаименованиеПолное  = НазвФирмы;
       
        НовыйЭлементК.Комментарий  = Комментарии;
       
        НовыйЭлементК.Записать();
       
        //***
        НаборД = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        //***АДРЕС Физический
        // устанавливаем параметры отбора по полному набору Измерений регистра:
        НаборД.Отбор.Объект.Установить(НовыйЭлементК.Ссылка);
        НаборД.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
        НаборД.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
        // Создаем новую строку в этом наборе записей:
        СтрокаДанных = НаборД.Добавить();
        // определяем значения Измерений этой строки:
        СтрокаДанных.Объект = НовыйЭлементК.Ссылка ;
        СтрокаДанных.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
        СтрокаДанных.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента ;
        // определяем значения Ресурсов
        СтрокаДанных.Представление = Адрес;
       
        НаборД.Записать();
       
        //*** ТЕЛЕФОН
        НаборД2 = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        НаборД2.Отбор.Объект.Установить(НовыйЭлементК.Ссылка);
        НаборД2.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Телефон);
        НаборД2.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
        // Создаем новую строку в этом наборе записей:
        СтрокаДанных = НаборД2.Добавить();
        // определяем значения Измерений этой строки:
        СтрокаДанных.Объект = НовыйЭлементК.Ссылка ;
        СтрокаДанных.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
        СтрокаДанных.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента ;
        // определяем значения Ресурсов
        СтрокаДанных.Представление = КонтактноеЛицо;
       
        НаборД2.Записать();

       
    КонецЦикла;
   
   
   
   
   
   
    Excel.WorkBooks.Close();
    Excel = 0;
   
   
КонецПроцедуры
4 zavsom
 
01.12.11
14:47
up+
5 ВераТ
 
01.12.11
14:54
После установки отборов - НаборД.Прочитать()
6 zavsom
 
01.12.11
16:00
а можно пример?
7 Amiralnar
 
01.12.11
16:07
Я пользуюсь менеджером записи.