powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Загрузка в 1С из SQL 2000
25 сообщений из 29, страница 1 из 2
Загрузка в 1С из SQL 2000
    #37349952
Добрый день!Стоит такая задача:

Подключится к SQL 2000, взять с таблицы данные.

В 1С есть табличка, сравнить эти таблицы.

Показать те данные которых нет либо в первой таблице, либо во второй.

У меня не получается на начальном этапе, не могу подключиться к SQL, в VB обычно указывалось в Password='';User ID=''; пустые значения, а тут так не проходит, пробовал подставлять свои данные, тоже ругается. Как подключиться правильно, подключение можно совершать с windows аутентификацией.



вот листинг:
Процедура Сформировать()

стрПодключения = "Provider=SQLOLEDB;Data Source=SQL_Pro2;Password=' ';User ID=' ';Initial Catalog=Sbyt";
Connection = Новый COMОбъект("ADODB.Connection");

Connection.OpenServer=стрПодключения;
RS=Новый ComОбъект("ADODB.Recordset");
RS.Open("SELECT NomDok FROM dbo.tblPltreb2");
пока RS.EOF()=0 Цикл
номер=Rs.fields("NomDok").Value;
RS.MoveNext();
КонецЦикла;
RS.Close();
Connection.close();
КонецПроцедуры
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37350097
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Великий,
если на скуль есть пароль то нужно его указывать и пользователя
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37350164
Zerro,

Так в том то и фишка, когда на прямую в SQL я подключаюсь, то там виндовс аутентификация стоит, ничего вводит не нужно, тут я пробовал и с пустым и с вводом данных, не пускает \
Процедура Сформировать()

стрПодключения = "Provider=SQLOLEDB;Data Source=SQL_Pro2;Password='';User ID='';Initial Catalog=Sbyt;";
Connection = Новый ComОбъект("ADODB.Connection");
Connection.ConnectionString = "Provider=SQLOLEDB.1;Password=D606;Persist Security Info=True;User ID=u27;Initial Catalog=SBYT;Data Source=SQL_Pro2";
Connection.Open();


//Connection.Open(стрПодключения);
RS=Новый ComОбъект("ADODB.Recordset");
RS.ActiveConnection = Connection;
RS.CursorType = 3;
RS.LockType = 1;
RS.Open("SELECT NomDok FROM dbo.tblPltreb2");
пока RS.EOF()=0 Цикл
номер=Rs.fields("NomDok").Value;
RS.MoveNext();
КонецЦикла;
RS.Close();
Connection.close();


Она при запуске ругается на Connection.Open();, я его пробовал как Connection.OpenServer();-так же ругается
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37350519
ИмяСервера = "XXX";
ИмяБазы = "infanalit";
ИмяПользователя = "sa";
Пароль = "";

стрПодключения = "Provider=SQLOLEDB.1;
|Pwd="+Пароль+";
|User ID="+ИмяПользователя+";
|Data Source=" + ИмяСервера + ";
|Initial Catalog=" + ИмяБазы + "";


АДОДБКоннект = Новый COMОбъект("ADODB.Connection");
АДОДБКоннект.ConnectionTimeOut =300;
АДОДБКоннект.CommandTimeOut =300;
АДОДБКоннект.CursorLocation = 2; //adUseServer

Попытка

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
АДОДБКоннект.Open(стрПодключения);
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Исключение
АДОДБКоннект.Close();
Сообщить("Невозможно установить соединение с SQL-сервером " + ИмяСервера);
Возврат;
КонецПопытки;
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37350857
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ВеликийZerro,

Так в том то и фишка, когда на прямую в SQL я подключаюсь, то там виндовс аутентификация стоит, ничего вводит не нужно
Ну так и используйте виндовс аутентификацию...

стрПодключения = "Provider=SQLOLEDB;Data Source=SQL_Pro2;Initial Catalog=Sbyt; Integrated Security=True ";
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37350945
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, на VB или 1C разницы нет.

Во вторых - из какой ОСи подключаетесь? Если из Win2k8 то там просто нет драйверов на MS SQL 2000 - ситуация не раз описанная на форумах по 1С.

В третьих - ну посмотри те же вы наконец код ошибки который возвращает ADO. Коллекция Errors у ADODB.Connection.
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37350948
пишет ошибку
{Форма.Форма1.Форма(26)}: Ошибка при вызове метода контекста (Open)
Connection.Open();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Login failed for user 'u274274'.
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37352145
VladimirKr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Великий,

Значит пользователь 'u274274' не имеет соответствующего имени входа на SQL server. Доверительный вход вовсе не означает, что на сервер можно войти под любой учеткой.
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37352912
VladimirKr,

нужно было вот так указать на самом деле
стрПодключения = "driver={SQL Server};server=Sql_Pro2;uid='';pwd='';database=Sbyt;trusted_connection=yes";
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37352921
Вопрос стоит про вариант решения:
Нужно из SQL 2000 взять данные, с определенными столбцами и условием и сравнить с данными с 1C базы.
Как лучше это сделать? Ну в том плане, что нужно сделать чтоб их сравнить? Нужно ли загонять таблицу с SQL во временную?
Как лучше это сделать с максимальным быстродействием?
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37352974
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ВеликийВопрос стоит про вариант решения:
Нужно из SQL 2000 взять данные, с определенными столбцами и условием и сравнить с данными с 1C базы.
Как лучше это сделать? Ну в том плане, что нужно сделать чтоб их сравнить? Нужно ли загонять таблицу с SQL во временную?
Как лучше это сделать с максимальным быстродействием?

Если данные есть в таблице то не нужно временную.если нет - делай запрос.
Как писали так и делать. вариантов не много
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37352977
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ВеликийВопрос стоит про вариант решения:
Нужно из SQL 2000 взять данные, с определенными столбцами и условием и сравнить с данными с 1C базы.
Как лучше это сделать? Ну в том плане, что нужно сделать чтоб их сравнить? Нужно ли загонять таблицу с SQL во временную?
Как лучше это сделать с максимальным быстродействием?
Я делал подобные отчеты. Можно использовать систему компоновки данных (это если у вас 1С 8.1 и выше) данные из внешнего источника загоняете в таблицу значений и используете ее в качестве источника данных для СКД. А уже в СКД можете соединять со своими данными как угодно. Пример использования ТЗ для СКД можно найти в демо конфигурации для платформы 8.1 (может и в демо для 8.2 есть, не смотрел).
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37362419
DmitriyZ,

Скинуть пример можешь?
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37362421
У меня получается получить данные с SQL вот как теперь их сравнить в СКД?
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37362681
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ВеликийУ меня получается получить данные с SQL вот как теперь их сравнить в СКД? Пример есть в демо конфигурации для платформы 8.1
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37363287
RS=Новый ComОбъект("ADODB.Recordset");
RS.ActiveConnection = АДОДБКоннект;
RS.CursorType = 3;
RS.LockType = 1;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаВыбора",ДатаВыбора);

Запрос.Текст = "SELECT tblPltreb2.DataOtg, tblPltreb2.RegNWN, Sum(tblPltreb2.Summa) AS Sum_Summa
|FROM tblPltreb2
|WHERE (
|((Substring(lTrim(Str([RegNWN])),3,1))=5
|Or (Substring(lTrim(Str([RegNWN])),3,1))=7)
|AND ((tblPltreb2.SZ)=0)
|AND ((tblPltreb2.SD)<>9))
|GROUP BY tblPltreb2.DataOtg, tblPltreb2.RegNWN, tblPltreb2.GodMes
| HAVING (DataOtg = &ДатаВыбора
|ORDER BY tblPltreb2.DataOtg" ;
RS.Open(Запрос.Текст);

Имеется листинг, как туда загнать дату для отбора - ДатаВыбора

Не получается что то в запрос его загнать
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37363376
rigus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сделай чтото типа
ДатаВФорматеSQL = ФОРМАТ(ДатаВыбора,"гггг-ММ-дд");

| HAVING (DataOtg ='"+ДатаВФорматеSQL+"')
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37363428
rigusНу сделай чтото типа
ДатаВФорматеSQL = ФОРМАТ(ДатаВыбора,"гггг-ММ-дд");

| HAVING (DataOtg ='"+ДатаВФорматеSQL+"')

ДатаВФорматеSQL =" "

С формы ДатаВыбора называется поле ввода, оно не присваивается дата
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37363489
rigus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе нужно чтобы SQL запрос выглядел
Так

"HAVING (DataOtg ='2011-07-22'
|ORDER BY tblPltreb2.DataOtg"
или так
"HAVING (DataOtg >='2011-07-22' and DataOtg <'2011-07-23'
|ORDER BY tblPltreb2.DataOtg"
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37365113
rigusТебе нужно чтобы SQL запрос выглядел
Так

"HAVING (DataOtg ='2011-07-22'
|ORDER BY tblPltreb2.DataOtg"
или так
"HAVING (DataOtg >='2011-07-22' and DataOtg <'2011-07-23'
|ORDER BY tblPltreb2.DataOtg"

Вот так
"HAVING (DataOtg ='2011-07-22'
|ORDER BY tblPltreb2.DataOtg"
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37365114
Александр ВеликийrigusТебе нужно чтобы SQL запрос выглядел
Так

"HAVING (DataOtg ='2011-07-22'
|ORDER BY tblPltreb2.DataOtg"
или так
"HAVING (DataOtg >='2011-07-22' and DataOtg <'2011-07-23'
|ORDER BY tblPltreb2.DataOtg"

Вот так
"HAVING (DataOtg ='2011-07-22'
|ORDER BY tblPltreb2.DataOtg"
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37365116
Александр ВеликийАлександр Великийпропущено...


Вот так
"HAVING (DataOtg ='2011-07-22'
|ORDER BY tblPltreb2.DataOtg"
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37365211
Александр Великий,

Все нормально только вот "16.07.2011 0:00:00", оно должно в SQL входить "07.16.2011 0:00:00", тогда работает
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37365269
Александр ВеликийАлександр Великий,

Все нормально только вот "16.07.2011 0:00:00", оно должно в SQL входить "07.16.2011 0:00:00", тогда работает

вопрос решается
| HAVING (DataOtg =CONVERT(DATETIME,'"+ДатаВФорматеSQL+"',104))
...
Рейтинг: 0 / 0
Загрузка в 1С из SQL 2000
    #37365312
Не получается связать в СКД табличку ДанныеSQL, табличка должна соединиться с данными 1C, но она выводит данные без связи.
Через что можно сделать соединение?
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / Загрузка в 1С из SQL 2000
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]