Имя: Пароль:
1C
1С v8
подключение к скульной базе из другой конфигурации
0 Kurbash
 
12.03.14
13:17
Есть самописная конфигурация. Там есть Справочник сотрудники. Есть конфигурация ЗУП на скуле. Проблема в том, что в самописке нужен каждый день актуальный справочник сотрудников с актуальными должностями. Как можно подключиться к скульной базе и сделать запрос? есть вариант через com-подключение, но там пишется запрос на английском языке, на языке запросов мускула, а вот названия таблиц и всего прочего я не знаю. Можно как-нибудь по другому?
1 Cube
 
12.03.14
13:18
(0) Ты сам-то себя понял?
Ты скажи максимально кратко, откуда куда нужно данные тянуть.
2 butterbean
 
12.03.14
13:19
чем обычное com соединение не устраивает??
3 shuhard
 
12.03.14
13:19
(0)[на языке запросов мускула]
что за бред
1С не работает на MySql
4 ДенисЧ
 
12.03.14
13:19
"есть вариант через com-подключение, но там пишется запрос на английском языке, на языке запросов мускула"

Вот это трава... Я тоже такой хочу....
5 Пеппи
 
12.03.14
13:20
(1) у него самописка в MySQL
6 Пеппи
 
12.03.14
13:21
(0) Можно же и наоборот делать
7 ЧашкаЧая
 
12.03.14
13:22
(5) Это домыслы. Встречал кадров которые мсскл называют мускулем.
8 Ненавижу 1С
 
гуру
12.03.14
13:23
я сделал на триггерах, используй для выяснения названий полей и таблиц ПолучитьСтруктуруХраненияБазыДанных
9 ShoGUN
 
12.03.14
13:23
(6) Если он сейчас не может структуру базы узнать, то "наоборот" ему ничем не поможет.
10 SSSSS_AAAAA
 
12.03.14
13:24
(5) Если самописка на MySQL, то при чем тут слово "конфигурация"? Цитирую: "Есть самописная конфигурация."
Тут или не MySQL, или не конфигурация.
11 Kurbash
 
12.03.14
13:24
(1)-нужно из базу на мускуле утянуть список сотрудников в самописку, самописка фаловый вариант
12 Ненавижу 1С
 
гуру
12.03.14
13:25
(10) "конфигурация" это бренд фирмы 1С?
13 Kurbash
 
12.03.14
13:25
стрПодключения = "Driver={SQL Server};"
стрПодключения = стрПодключения + ИмяСервера + ";";
стрПодключения = стрПодключения + "Uid =" + ИмяПользователя + ";";
стрПодключения = стрПодключения + "Pwd =" + Пароль + ";";
стрПодключения = стрПодключения + "DataBase =" + ИмяБазы + ";";
стрПодключения = стрПодключения + "Pwd =" + Пароль + ";";

Connection = Новый COMОбъект("ADODB.Connection");
Connection.OpenServer = стрПодключения;

RS = Новый COMОбъект("ADODB.Recordset");

// Запрос к базе на языке SQL запросов.
RS.Open("Select * from TradeUnit", Connection);

Пока RS.EOF() = 0 Цикл

    // Можно обращаться и обрабатывать значения полей выборки.
    ИД = RS.Fields("ID").Value;
    Код = RS.Fields("Code").Value;

    // Обработка других полей
    // …

    RS.MoveNext();    

КонецЦикла;    

RS.Close();
Connection.Close();
14 Kurbash
 
12.03.14
13:25
кроме этого никак?
15 ЧашкаЧая
 
12.03.14
13:26
(12) Так же как и конфигуратор, а еще профессия новая "конфигураст".
16 Ненавижу 1С
 
гуру
12.03.14
13:26
(14) см (8) появляются в другой конфигурации мгновенно
17 ЧашкаЧая
 
12.03.14
13:27
Driver={SQL Server}
Ну и какой же это мускуль?
18 ShoGUN
 
12.03.14
13:27
(14) Можно наоборот - записывать в 1С из внешней системы, используя 1С как COM-сервер. ВНЕЗАПНО.
19 ДенисЧ
 
12.03.14
13:27
а внешние источники использовать?
Если уж поверить тому, что на той стороне не 1с....
20 ShoGUN
 
12.03.14
13:27
(17) +1000 "Янихренанепонял".
21 Kurbash
 
12.03.14
13:28
(8)(16) можно поподробнее?
(18)-?
22 ShoGUN
 
12.03.14
13:29
(21) Вопрос задай нормально. Исходя из кода - нет у тебя никакого MySQL. И почему "названия таблиц и всего прочего я не знаю"?
23 ShoGUN
 
12.03.14
13:30
Как можно синхронизироваться с чёрным ящиком?
24 Kurbash
 
12.03.14
13:30
чего в моем вопросе непонятного? Подробно- есть самописная конфигурация 1с файловый вариант. хочу подключиться к другой базе 1с, которая на скуле и запросом вытянуть оттуда данные
25 ShoGUN
 
12.03.14
13:32
(24) http://kb.mista.ru/article.php?id=35
(7) ТЫ ЗНАЛ!
26 ДенисЧ
 
12.03.14
13:32
(24) Тогда при чём тут "запрос на английском языке, на языке запросов мускула"?
Ты уж будь ласка, или формулируй нормально, или бегом документацию читать...
27 Ненавижу 1С
 
гуру
12.03.14
13:47
(21) на вставку:
CREATE TRIGGER Reference105Insert
   ON  dbo._Reference105
   AFTER INSERT
AS
BEGIN
    SET NOCOUNT ON;
    insert into timesheets.dbo._Reference105(_IDRRef, _Marked, _IsMetadata, _ParentIDRRef, _Folder, _Code, _Description, _Fld1349, _Fld1350, _Fld1351, _Fld1353, _Fld1354RRef, _Fld1355, _Fld1356RRef, _Fld1357, _Fld1358RRef, _Fld7733RRef, _Fld7873, _Fld7874)
    select _IDRRef, _Marked, _IsMetadata, _ParentIDRRef, _Folder, _Code, _Description, _Fld1349, _Fld1350, _Fld1351, _Fld1353, _Fld1354RRef, _Fld1355, _Fld1356RRef, _Fld1357, _Fld1358RRef, _Fld7733RRef, _Fld7873, _Fld7874 from inserted;
END
GO

на изменение:
CREATE TRIGGER Reference105Update
   ON  dbo._Reference105
   AFTER UPDATE
AS
BEGIN
    SET NOCOUNT ON;
    UPDATE timesheets.dbo._Reference105
    SET timesheets.dbo._Reference105._Marked=inserted._Marked, timesheets.dbo._Reference105._IsMetadata=inserted._IsMetadata, timesheets.dbo._Reference105._ParentIDRRef=inserted._ParentIDRRef, timesheets.dbo._Reference105._Folder=inserted._Folder, timesheets.dbo._Reference105._Code=inserted._Code, timesheets.dbo._Reference105._Description=inserted._Description, timesheets.dbo._Reference105._Fld1349=inserted._Fld1349, timesheets.dbo._Reference105._Fld1350=inserted._Fld1350, timesheets.dbo._Reference105._Fld1351=inserted._Fld1351, timesheets.dbo._Reference105._Fld1353=inserted._Fld1353, timesheets.dbo._Reference105._Fld1354RRef=inserted._Fld1354RRef, timesheets.dbo._Reference105._Fld1355=inserted._Fld1355, timesheets.dbo._Reference105._Fld1356RRef=inserted._Fld1356RRef, timesheets.dbo._Reference105._Fld1357=inserted._Fld1357, timesheets.dbo._Reference105._Fld1358RRef=inserted._Fld1358RRef, timesheets.dbo._Reference105._Fld7733RRef=inserted._Fld7733RRef, timesheets.dbo._Reference105._Fld7873=inserted._Fld7873, timesheets.dbo._Reference105._Fld7874=inserted._Fld7874
    from timesheets.dbo._Reference105
    inner join inserted on timesheets.dbo._Reference105._IDRRef = inserted._IDRRef;

END
GO
28 ShoGUN
 
12.03.14
13:52
http://kb.mista.ru/article.php?id=678

Для любителей ковыряться во взрыве на макаронной фабрике под названием "структура таблиц 1С" - подойдёт (27). Хотя по быстродействию оно неплохо, но мне кажется, таким способом (0) дров наломает...
29 SSSSS_AAAAA
 
12.03.14
14:36
(24) Если ты подключаешься к 1с, то форма хранения ею информации тебя не должна волновать ни разу и названия таблиц в 1с все на русском. Еще раз - где такую траву дают? Где ты такой чуши набрался?
30 VikingKosmo
 
12.03.14
14:41
если я правильно понял, то речь идет о переносе данных из одной конфигурации 1С в другую. Тогда вопрос: КД не предлагать?
31 Kurbash
 
13.03.14
10:12
вот так сделал:

СтрокаПодключения = "srvr='" + Сервер + "'; ref='" + БазаДанных + "'; usr='" + Пользователь + "'; pwd='" + Пароль + "';";
    ДругаяИБ = Новый COMОбъект("V82.COMConnector");
   Попытка
   СоединениеДругаяБаза = ДругаяИБ.Connect(СтрокаПодключения);
   Состояние("Соединение Установлено !!!");
   СправочникиДругойБазы = СоединениеДругаяБаза.Справочники.Склады;
   Выборка = СправочникиДругойБазы.Выбрать();
  
   Пока Выборка.Следующий() Цикл
      Сообщить(Выборка.Наименование);
   КонецЦикла;

   Исключение
   Сообщить(ОписаниеОшибки());
   КонецПопытки;
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс