Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 ноя 2024, 03:27

Где РегистрыСведений.КонтактнаяИнформация?

Автор Doomych, 12 дек 2014, 18:46

0 Пользователей и 1 гость просматривают эту тему.

Doomych

1С:Предприятие 8.3 (типовая конфигурация; Бухгалтерия предприятия, редакция 3.0)

Подключаюсь к 1С из Delphi через OLE Automation. Научился записывать такие реквизиты контрагента, как Наименование, ИНН и т.п. Теперь пытаюсь записать в контрагента контактную информацию. Нашел такой пример (http://www.forum.mista.ru/topic.php?id=499560):

Sel_ole := s1C8_ole.РегистрыСведений.КонтактнаяИнформация;
nn2:= Sel_ole.СоздатьНаборЗаписей();

nn2.Отбор.Объект.Установить(s1C8_ole.Справочники.Контрагенты.НайтиПоНаименованию('Казкоммерцбанк').Ссылка);
nn2.Отбор.Тип.Установить(s1C8_ole.Перечисления.ТипыКонтактнойИнформации.Адрес);
nn2.Отбор.Вид.Установить(s1C8_ole.Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);

nn7 := nn2.Добавить();
nn7.Объект := s1C8_ole.Справочники.Контрагенты.НайтиПоНаименованию('Казкоммерцбанк').Ссылка;
nn7.Тип := s1C8_ole.Перечисления.ТипыКонтактнойИнформации.Адрес;
nn7.Вид := s1C8_ole.Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;

nn7.Представление:='01000, Казахстан, Астана';

nn2.Записать();


Этот пример в Инете встречается многократно, но у меня он не работает. Падаю на s1C8_ole.РегистрыСведений.КонтактнаяИнформация. И, действительно, просматривая в конфигураторе регистры сведений, я вижу, что КонтактнаяИнформация там отсутствует. Прошу помощи.


sertak

В 1С:Бухгалтерия 2 есть такой регистр, в 1С:Управление торговлей 11 нету, например,  и т.д. Смотрите, как в нужной вам конфиге организовано хранение контактной информации.

дфтын

самое интересное.. что .. кладра больше нет.. ФИАС.. изучайте..

Doomych

Цитата: sertak от 12 дек 2014, 20:22
В 1С:Бухгалтерия 2 есть такой регистр, в 1С:Управление торговлей 11 нету, например,  и т.д. Смотрите, как в нужной вам конфиге организовано хранение контактной информации.
Хорошо. Нашел контактную информацию в самом справочнике "Контрагенты": Контрагенты/Табличные части/КонтактнаяИнформация.
Пытаюсь ее добавить следующим образом (Delphi):
function TClients.CreateContragent(....): boolean;
var
  contragent: OleVariant;
  Sel_ole, nn7: OleVariant;
begin
  contragent := FOleContragents.СоздатьЭлемент();

  ....
  contragent.Наименование := 'Клиент1';
  ....
  contragent.Записать(); // контрагент, действительно, создается

  // Добавляем контактную информацию
  Sel_ole := contragent.КонтактнаяИнформация;
  nn7 := Sel_ole.Добавить();
  nn7.Тип := Ole1C.Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
  nn7.Вид := Ole1C.Справочники.ВидыКонтактнойИнформации.EmailКонтрагенты;
  nn7.АдресЭП := 'test08@example.com';

  contragent.Записать();
end;

Функция отрабатывает без ошибок. Контрагент создается (1-й "Записать"), но e-mail не добавляется (2-й "Записать").

дфтын

А как вы проверяете , что не добавляется? :) негде эта табличная часть не отображается.
пишите обработку читайте табличную часть и смотрите, что там
по коду все верно. все создается

Doomych

Цитата: дфтын от 15 дек 2014, 18:30
А как вы проверяете , что не добавляется? :)
1С:Предприятие -> Покупки и продажи -> Контрагенты. Тут я вижу созданную мной компанию. Захожу в нее. На странице "Главное" добавленная мной информация (наименование, ИНН, ОКПО и проч.) видна, а на странице "Адреса" поле Email пусто.
Добавлено: 16 дек 2014, 14:51


Продолжаю разбираться.
Оказывается, проблема у меня с e-mail и еще с телефоном. А вот адреса я добавляю без проблем:

Sel_ole := contragent.КонтактнаяИнформация;
nn7 := Sel_ole.Добавить();
nn7.Представление := 'Деревня, у дедушки';
nn7.Вид := Ole1C.Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
nn7.Тип := Ole1C.Перечисления.ТипыКонтактнойИнформации.Адрес;
contragent.Записать();

Теги:
Рейтинг@Mail.ru

Поиск