8.х ОБМЕН Выгрузка адресов контрагентов из БП 2.0

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем alien_2718, 27 авг 2014.

  1. TopicStarter Overlay
    alien_2718
    Offline

    alien_2718

    Регистрация:
    27 авг 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Добрый день.

    Как средствами C# можно выгрузить адреса и телефоны контрагентов из базы БП 2.0? Они хранятся в отдельном регистре сведений КонтактнаяИнформация, а не в виде реквизита в справочнике Контрагентов.
    Можете пример кода дать?
    Спасибо!
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    А как этот форум к C# имеет отношение?
  3. TopicStarter Overlay
    alien_2718
    Offline

    alien_2718

    Регистрация:
    27 авг 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Выгрузка данных это подмножество обмена, с# один из видов соединения других программ с базой 1С
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Немного не тот форум. Мы 1С занимаемся. Писать на другом языке это в другое место. Вот если из 1С сделать выгрузку в XML или в любую другую хрень, то пожалуйста.
  5. TopicStarter Overlay
    alien_2718
    Offline

    alien_2718

    Регистрация:
    27 авг 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Ок, как тогда в 1С это сделать?
  6. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Писать ЗАПРОС к регистру сведений КонтактнаяИнформация
    ЗЫ: можете воспользоваться "Универсальным отчетом" к указанному регистру сведений в режиме предприятия, думаю с настройками разберетесь, если пишите на С#

    Вложения:

    • 1111.png
      1111.png
      Размер файла:
      9 КБ
      Просмотров:
      5
    Последнее редактирование: 27 авг 2014
  7. TopicStarter Overlay
    alien_2718
    Offline

    alien_2718

    Регистрация:
    27 авг 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Нашел пример запроса, сделанный через c#
    http://1c-pro.ru/threads/c-i-comconnector.20194/

    [ComVisible(true)]
    class Program
    {
    [MTAThread]
    static void Main(string[] args)
    {
    string connectionString = "File=...; Pwd=...; Usr=...";
    Type oType = Type.GetTypeFromProgID("V82.COMConnector");
    if (oType != null)
    {
    //Создаем COMConnector, соединяемся с базой
    object V8 = Activator.CreateInstance(oType);
    object connection;
    try
    {
    connection = oType.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod, null, V8, new object[] { connectionString });
    }
    catch (Exception e)
    {
    Marshal.ReleaseComObject(V8);
    Console.WriteLine(e.Message);
    Console.WriteLine(e.InnerException.ToString());
    return;
    }

    //Создаем и выполняем запрос (получение списка документов в заданном интервале)
    object query = oType.InvokeMember("NewObject", BindingFlags.Public | BindingFlags.InvokeMethod, null, connection, new object[] { "Query" });
    oType.InvokeMember("Текст", BindingFlags.Public | BindingFlags.SetProperty, null, query, new object[] { "ВЫБРАТЬ РеализацияТоваровУслуг.Дата, РеализацияТоваровУслуг.Номер, РеализацияТоваровУслуг.СуммаДокумента ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата1, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ)" });
    oType.InvokeMember("УстановитьПараметр", BindingFlags.Public | BindingFlags.InvokeMethod, null, query, new object[] { "Дата1", new DateTime(2010, 3, 1, 0, 0, 0) });
    oType.InvokeMember("УстановитьПараметр", BindingFlags.Public | BindingFlags.InvokeMethod, null, query, new object[] { "Дата2", new DateTime(2010, 10, 1, 0, 0, 0) });
    object queryResult = oType.InvokeMember("Выполнить", BindingFlags.Public | BindingFlags.InvokeMethod, null, query, new object[] { });
    object queryResultSelection = oType.InvokeMember("Выбрать", BindingFlags.Public | BindingFlags.InvokeMethod, null, queryResult, new object[] { });
    StringBuilder sb = new StringBuilder();
    while ((bool)oType.InvokeMember("Следующий", BindingFlags.Public | BindingFlags.InvokeMethod, null, queryResultSelection, new object[] { }))
    {
    object field_date = oType.InvokeMember("Дата", BindingFlags.Public | BindingFlags.GetProperty, null, queryResultSelection, new object[] { });
    object field_num = oType.InvokeMember("Номер", BindingFlags.Public | BindingFlags.GetProperty, null, queryResultSelection, new object[] { });
    object field_sum = oType.InvokeMember("СуммаДокумента", BindingFlags.Public | BindingFlags.GetProperty, null, queryResultSelection, new object[] { });
    sb.Length = 0;
    sb.Append("Дата:");
    sb.Append(field_date);
    sb.Append(",\t№ ");
    sb.Append(field_num);
    sb.Append("\t - ");
    sb.Append(field_sum);

    Console.WriteLine(sb.ToString());
    }

    //Освобождаем память
    Marshal.ReleaseComObject(queryResultSelection);
    Marshal.ReleaseComObject(queryResult);
    Marshal.ReleaseComObject(query);
    Marshal.ReleaseComObject(connection);
    Marshal.ReleaseComObject(V8);
    }

    Console.WriteLine("Press any key...");
    Console.ReadKey();
    }
    }

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