Имя: Пароль:
1C
1С v8
Подскажите с простенькой обработкой
0 _Дайвер_
 
06.05.16
06:58
Всем привет, нужно в ут 11 контрагентам завести контакнтые лица, контактное лицо будеть иметь наименование контрагента и АдресЭП контрагнета, и все. Немного покалупался, не соображу че как, опыта мало еще) Вот примерно вот так как то надо:
&НаСервере
Процедура ДобавитьКонтактныеЛицаНаСервере()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Партнеры.Ссылка КАК Партнер,
    |    Партнеры.Наименование,
    |    Партнеры.КонтактнаяИнформация.(
    |        АдресЭП
    |    )
    |ИЗ
    |    Справочник.Партнеры КАК Партнеры
    |ГДЕ
    |    Партнеры.Ссылка = &Партнер"
    ;
    
    Запрос.УстановитьПараметр("Партнер", Ссылка);

    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        // как прописать цикл???
    КонецЦикла;
    
КонецПроцедуры
1 SiAl-chel
 
06.05.16
07:20
Пока Выборка.Следующий() Цикл
        Новый = Справочники.Контрагенты.Добавить();
        Новый.Наименование = Выборка.Наименование;
        Новый.Записать();
        КИ = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        // здесь создаешь запись
    КонецЦикла;

Это часть. Над остальным думать надо.
2 _Дайвер_
 
06.05.16
07:28
(1) Спасибо, впринципе все получилось, а в ТЧ как добавить новую строку?
3 _Дайвер_
 
06.05.16
07:32
(1) Реквизит АдресЭП храниться в ТЧ, вот из нее вытащить реквизит и добавить его к контактному лицу можно?
Вот что вышло:
Процедура ДобавитьКонтактныеЛицаНаСервере()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Партнеры.Ссылка КАК Партнер,
    |    Партнеры.Наименование,
    |    Партнеры.КонтактнаяИнформация.(
    |        АдресЭП
    |    )
    |ИЗ
    |    Справочник.Партнеры КАК Партнеры
    |ГДЕ
    |    Партнеры.Ссылка = &Партнер"
    ;
    
    Запрос.УстановитьПараметр("Партнер", Ссылка);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        КонтактноеЛицо = Справочники.КонтактныеЛицаПартнеров.Добавить();
        КонтактноеЛицо.Наименование = Выборка.Наименование;
        //здесь адресЭП добавить как? Обращаться  напрямую к ТЧ?
        КонтактноеЛицо.Записать();
    КонецЦикла;
    
КонецПроцедуры
4 FIXXXL
 
06.05.16
08:33
Нстрока = КонтактноеЛицо.ТЧ.Добавить();
Нстрока.Реквизит = ЗначениеНужное;
5 _Дайвер_
 
06.05.16
09:35
(4) Спасибо, уже разобрался ,вот что получилось...
Пока Выборка.Следующий() Цикл
        
        НовоеКонтактноеЛицо = Справочники.КонтактныеЛицаПартнеров.СоздатьЭлемент();
        НовоеКонтактноеЛицо.Владелец = Выборка.Партнер;
        НовоеКонтактноеЛицо.Наименование = Выборка.Партнер.Наименование;
        НовоеКонтактноеЛицо.ДатаРегистрацииСвязи = ТекущаяДата();
        НовоеКонтактноеЛицо.Автор = ПараметрыСеанса.ТекущийПользователь;
        НовоеКонтактноеЛицо.Комментарий = "Автоматически созданный контакт партнера";
        
        НайденнаяСтрока = Выборка.Партнер.КонтактнаяИнформация.Найти(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты,"Тип");
        Если НайденнаяСтрока <> Неопределено Тогда
            НоваяСтрокаКонтактнойИнформации = НовоеКонтактноеЛицо.КонтактнаяИнформация.Добавить();
            НоваяСтрокаКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
            НоваяСтрокаКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица;
            НоваяСтрокаКонтактнойИнформации.АдресЭП = НайденнаяСтрока.АдресЭП;
            НоваяСтрокаКонтактнойИнформации.Представление = НайденнаяСтрока.Представление;
        КонецЕсли;
        
        НовоеКонтактноеЛицо.Записать();
        Сообщить(""+НовоеКонтактноеЛицо.Ссылка);
        
    КонецЦикла;