7.7 Как новый элемент справочника поместить в группу?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Роман, 25 авг 2006.

  1. TopicStarter Overlay
    Роман
    Offline

    Роман Гость Гость

    Делаю из БД сторонней программы экспорт
    контрагентов, так вот в этой БД контрагенты
    делятся скажем на поставщики и покупатели, как
    тоже самое сделать программным путем в 1С при
    экспроте? То есть как новому элементу справочника
    присвоить только что созданную или уже
    существующую группу?
  2. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Код:
    ГруппаПокупателей=СоздатьОбъект("Справочник.Контрагенты");
    ГруппаПокупателей.НайтиПоНаименованию("Покупатели",0,1);
    ...
    // если контрагент является покупателем
    Контрагент.Родитель=ГруппаПокупателей.ТекущийЭлемент();
    
    
  3. TopicStarter Overlay
    Роман
    Offline

    Роман Гость Гость

    Хм... наверное не так поставил вопрос.
    Код который применяю:

    Код:
        Если Число(objRecordset.State) <> 0 Тогда
    //Пока objRecordset.EOF = 0 Цикл
    СпрКонтрагент.Новый();
    СпрКонтрагент.УстановитьАтрибут("Наименование",objRecordset.Fields("code").Value);
    СпрКонтрагент.УстановитьАтрибут("ВидКонтрагента",Перечисление.ВидыКонтрагентов.Организация);
    Если Строка(objRecordset.Fields("kpp").Value) <> "" Тогда
    СпрКонтрагент.УстановитьАтрибут("ИНН",objRecordset.Fields("inn").Value+""+objRecordset.Fields("kpp").Value); 
    Иначе 
    СпрКонтрагент.УстановитьАтрибут("ИНН",objRecordset.Fields("inn").Value);
    КонецЕсли;
    СпрКонтрагент.УстановитьАтрибут("ПочтовыйАдрес",objRecordset.Fields("post_address").Value);
    СпрКонтрагент.УстановитьАтрибут("Телефоны",objRecordset.Fields("phone").Value);
    СпрКонтрагент.УстановитьАтрибут("ПолнНаименование",objRecordset.Fields("post_name").Value);
    СпрКонтрагент.УстановитьАтрибут("ЮридическийАдрес",objRecordset.Fields("legal_address").Value);
    СпрКонтрагент.УстановитьАтрибут("ОсновнойСчет",objRecordset.Fields("rs").Value);
    СпрКонтрагент.Записать();                 
    objRecordset.MoveNext();
    //КонецЦикла;
    КонецЕсли;
    
    
    Этот код выполняется единожды, и запрос разный для покупателя и поставщика, как непосредственно в этом коде все экспортируемые значения привязать к группе, скажем с кодом 00000006
  4. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    И всё равно я понял фразу привязать к группе, как то что надо экспортируемые значения помещать в группу с кодом 0000006.
    Вышеописанный мною код реализует это.
  5. TopicStarter Overlay
    Реланиум
    Offline

    Реланиум Гость Гость

    Я то же чот не пойму...

    Код:
    Процедура Выполнить()
    НоваяГруппа=СоздатьОбъект("Справочник.Сотрудники");
    Сотрудник=СоздатьОбъект("Справочник.Сотрудники"); 
    НоваяГруппа.НайтиПоНаименованию("Несписочные",0,1);
    Сотрудник.НайтиПоКоду("9065");
    Сотрудник.Родитель=НоваяГруппа; 
    
    Сообщить(Сотрудник.Наименование+" Уровень: "+Сотрудник.Уровень()+"Значение НоваяГруппа:"+НоваяГруппа.Наименование);
    КонецПроцедуры
    
    
    Результат:
    Петров Уровень:1 Значение НоваяГруппа:Несписочные

    т.е. фсе остается на том же месте..
  6. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    А где следующая строка?
    Код:
    Сотрудник.Записать();
    
    ?
  7. VIN
    Offline

    VIN

    Регистрация:
    11 сен 2006
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Род=Спр.ТекущийЭлемент();
  8. TopicStarter Overlay
    Гость
    Offline

    Гость Гость Гость

    Код:
    Процедура Выполнить()
    НоваяГруппа=СоздатьОбъект("Справочник.Сотрудники");
    Сотрудник=СоздатьОбъект("Справочник.Сотрудники"); 
    НоваяГруппа.НайтиПоНаименованию("Несписочные",0,1);
    Сотрудник.НайтиПоКоду("9065");
    Сотрудник.Родитель=НоваяГруппа; 
    
    Сотрудник.Записать();
    
    Сообщить(Сотрудник.Наименование+" Уровень: "+Сотрудник.Уровень()+"Значение НоваяГруппа:"+НоваяГруппа.Наименование);
    КонецПроцедуры
    
    
    Заработала :) Записать забыл..
  9. Реланиум
    Offline

    Реланиум Опытный в 1С

    Регистрация:
    12 сен 2006
    Сообщения:
    84
    Симпатии:
    0
    Баллы:
    26
    А у меня сразу теперь вопрос...
    я создаю человечка заполняю у него программно: код, наименование, и дату рождения...
    кроме этого у него в карточке ничего не появляется.. как с этим бороться?
  10. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    А что ты хочешь чтобы еще появилось?
  11. Реланиум
    Offline

    Реланиум Опытный в 1С

    Регистрация:
    12 сен 2006
    Сообщения:
    84
    Симпатии:
    0
    Баллы:
    26
    Ну те реквизиты которые есть у справочника при интерактивном заполнении, а их там штук 50.. а перекинуть я могу только основные.. остальных просто нет в эл. виде

Поделиться этой страницей