Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Запрос и вывод результатов  (Прочитано 12730 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Makrofag
Гость
« : 11-02-2009 11:34 » 

Первый раз сегодня столкнулся с 1С. Необходимо следущее:
Что бы таблицы из 1С переводились в MySQL.
Способ их соединить нашел, через ODBC, но вот сам язык 1Ски для меня далек, и разобраться за сегодня я не успел. в общем что я сегодня нарыл:

Код:
Соединение = Новый COMОбъект("ADODB.Connection");
    Соединение.ConnectionString = "dsn=ODBCmy;";
Соединение.CursorLocation = 3;
Попытка
    Соединение.Open();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
           | Контрагенты.Код КАК Код,
           | Контрагенты.ОсновноеЮрФизЛицо КАК ОсновноеЮрФизЛицо,
           | Контрагенты.ОсновнойДоговорВзаиморасчетов КАК ОсновнойДоговорВзаиморасчетов
           |ИЗ
           | Справочник.Контрагенты КАК Контрагенты
           |
           |УПОРЯДОЧИТЬ ПО
           | Код
           |
           |ИТОГИ ПО
           | Код,
           | ОсновнойДоговорВзаиморасчетов,
           | ОсновноеЮрФизЛицо";

    Результат = Запрос.Выполнить();

ТекстЗапроса = "INSERT INTO `news` ( `id` , `name` , `text` ) VALUES ";
// Вот тут я столкнулся с тем, что не могу разобраться как выводить результат из полученного запроса.
// Что только не перерыл, разобраться не могу.
//Пока Результат.Next() Цикл
ТекстЗапроса = "( '"+Результат.Код.Значение+"', '"+Результат.ОсновноеЮрФизЛицо.Значение+"', '"+Результат.ОсновнойДоговорВзаиморасчетов.Значение+"')";
// ТестЗапроса = ТекстЗапроса+", ";
    //КонецЦикла;


Команда = Новый COMОбъект("ADODB.Recordset");
Команда.ActiveConnection = Соединение;
Команда.Open(ТекстЗапроса);
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 11-02-2009 11:50 » 

Код:
	ТекстЗапроса = "INSERT INTO `news` ( `id` , `name` , `text` ) VALUES ";
// Вот тут я столкнулся с тем, что не могу разобраться как выводить результат из полученного запроса.
// Что только не перерыл, разобраться не могу.
//Пока Результат.Next() Цикл
ТекстЗапросавременный = "( '"+Результат.Код.Значение+"', '"+Результат.ОсновноеЮрФизЛицо.Значение+"', '"+Результат.ОсновнойДоговорВзаиморасчетов.Значение+"')";
ТестЗапроса = ТекстЗапроса+ТекстЗапросаВременный;
    //КонецЦикла;
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 11-02-2009 11:59 » 

а так?
Код:
        Команда = Новый COMОбъект("ADODB.Recordset");
Команда.ActiveConnection = Соединение;
ТекстЗапроса = "INSERT INTO `news` ( `id` , `name` , `text` ) VALUES  (";
        ТекстЗапросавременный="";
Пока Результат.Next() Цикл
ТекстЗапросаВременный = Результат.Код.Значение+"', '"+Результат.ОсновноеЮрФизЛицо.Значение+"', '"+Результат.ОсновнойДоговорВзаиморасчетов.Значение;
ТестЗапроса = ТекстЗапроса+ТекстЗапросаВременный +")";
                Команда.Open(ТекстЗапроса);
    КонецЦикла;
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Makrofag
Гость
« Ответ #3 : 11-02-2009 12:02 » 

Он выдает ошибку:

Поле объекта не обнаружено (Код)
      ТекстЗапросавременный = "( '"+Результат.Код.Значение+"', '"+Результат.ОсновноеЮрФизЛицо.Значение+"', '"+Результат.ОсновнойДоговорВзаиморасчетов.Значение+"')";
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 11-02-2009 12:17 » 

НГе очень я силен в 1С Улыбаюсь заполняю паузы Улыбаюсь а так?
Код:
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
           |Код=Контрагенты.Код,
           |ОсновноеЮрФизЛицо = Контрагенты.ОсновноеЮрФизЛицо,
           |ОсновнойДоговорВзаиморасчетов = Контрагенты.ОсновнойДоговорВзаиморасчетов
           |ИЗ
           | Справочник.Контрагенты КАК Контрагенты
           |УПОРЯДОЧИТЬ ПО
           | Код
           |ИТОГИ ПО
           | Код,
           | ОсновнойДоговорВзаиморасчетов,
           | ОсновноеЮрФизЛицо";

Запрос.Выполнить(ТекстЗапроса);
    

Кроме того - зачем ИТОГИ ПО, аналог group by
« Последнее редактирование: 11-02-2009 12:19 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Makrofag
Гость
« Ответ #5 : 11-02-2009 12:23 » 

Слишком много фактических параметров
    Результат = Запрос.Выполнить(ЗапТекст);

Записан
Makrofag
Гость
« Ответ #6 : 11-02-2009 12:26 » 

дело не в группировке...
запрос вроде сам по себе правильно выполняется вот вот почему то не хочет в процедуре к полям своим обращаться...
я уже как только не попорбовал
Записан
Makrofag
Гость
« Ответ #7 : 11-02-2009 13:55 » 

Проблема была в:

Запрос.Выполнить().Выбрать();
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines