Вход | Регистрация
    1  2   

Прямое подключение к собственной базе SQL из самой базы 1С

↓ [mikecool, 04.02.21 - 12:06]
Прямое подключение к собственной базе SQL из самой базы 1С
Я
   Вася Теркин
 
03.02.21 - 13:17
Есть какая-то стандартная функция, возвращающая соединение к SQL собственной базы? Надо UPDATE запустить. Типовая вещь должна быть вроде.
   1Сергей
 
1 - 03.02.21 - 13:17
СтрокаСоединенияИнформационнойБазы
   ДенисЧ
 
2 - 03.02.21 - 13:17
Типовой не может быть. Ибо это запрещено лицензией.
   vicof
 
3 - 03.02.21 - 13:19
По-моему автору надо обновить данные в левой базе.
   vicof
 
4 - 03.02.21 - 13:20
Но для этого нужны 5 секунд поиска и 1 примитивнейший запрос в поисковик
   SiAl-chel
 
5 - 03.02.21 - 13:28
(0) С чего это типовая вещь и почему она должна быть? 1С в клиент-сервере - это трехзвенка, доступ до СУБД никто не обещал.
   Вася Теркин
 
6 - 03.02.21 - 13:55
(1) Это только параметры, а я хочу 

ВыполнитьНаSQL("UPDATE
    ....
SET
    ... = ...
FROM
    (SELECT .......) TT

WHERE
    ... ")

И всё!
   Вася Теркин
 
7 - 03.02.21 - 13:57
В общем за все эти годы одинэсники даже самое простое не написали...
   DrShad
 
8 - 03.02.21 - 13:58
зачем писать? выполни в консоли скуля
   acht
 
9 - 03.02.21 - 13:58
(7) Ага. Извини, пожалуйста - придется тебе самому. Справишся?
   ДенисЧ
 
10 - 03.02.21 - 14:01
(7) Они написали самое простое. То, что обычно не читают. Называется "лицензионное соглашение".
   Вася Теркин
 
11 - 03.02.21 - 14:02
(8) Мы не про скуля.
Вот чего-то нашел 

??????infostart.ru/1c/articles/236956/
Функция ПолучитьВнутрСсылкуПоНомеру(Номер,Объект) Экспорт
    БуфЗапрос = "Select master.dbo.fn_varbintohexstr([_IDRRef]) From _"+ПолучитьНаименованиеОбъектаБД(Объект)+" Where _Number like '"+Строка(Номер)+"'";
    Возврат ПолучитьЗначениеИзБазы(БуфЗапрос);
КонецФункции
   ДенисЧ
 
12 - 03.02.21 - 14:05
(11) И что тебе в этой статье не понятно? Там же всё черным по белому расписано...
   Вася Теркин
 
13 - 03.02.21 - 14:08
(11) Готовой функции ПолучитьЗначениеИзБазы нет в статье. Написано что есть ADODB или SQLOLEDB или... А готового нет.
Зачем понятия подменять? при чем тут "понятно" и "есть готовое"?
Там написано "Учимся получать доступ к СУБД из 1С." Чем оно готовое? Как раз наоборот...
   Вася Теркин
 
14 - 03.02.21 - 14:09
В статье тоже не готовое. Хотя на готовое ПолучитьЗначениеИзБазы в примерах ссылает.
   ДенисЧ
 
15 - 03.02.21 - 14:10
(13) Всё разжевано, осталось взять и научиться.
   Вася Теркин
 
16 - 03.02.21 - 14:12
Как это связано с тем, что ПолучитьЗначениеИзБазы нет?
   Вася Теркин
 
17 - 03.02.21 - 14:14
Штаны тоже можно научиться шить самому, все разжевано. Бурда моден а не среда...
   acht
 
18 - 03.02.21 - 14:17
(17) Делегируй подчиненному
   1Сергей
 
19 - 03.02.21 - 14:22
Полыхает
   Вася Теркин
 
20 - 03.02.21 - 14:31
"Есть какая-то стандартная функция, возвращающая соединение к SQL собственной базы?" - и каждый как обычно разговаривает что-то свое.  А по теме нечего сказать?
   1Сергей
 
21 - 03.02.21 - 14:32
(20) ответ в (2)
   Вася Теркин
 
22 - 03.02.21 - 14:33
864666 попытка завести тематическую ветку...
"Видимо, место здесь такое" (с) Жмурки
   Вася Теркин
 
23 - 03.02.21 - 14:34
(21) Значит автор и ему подобные врут про ПолучитьЗначениеИзБазы(ТекстЗапросаSQL)?
   acht
 
24 - 03.02.21 - 14:35
   Вася Теркин
 
25 - 03.02.21 - 14:38
+(23) есть в открытой публикации хоть одна такая функция?
(24) Не Жужжите...
   dmpl
 
26 - 03.02.21 - 14:45
(0) Доступ к БД иначе как средствами 1С запрещен лицензионным соглашением. А 1С не предоставляет прямого доступа к базе, потому что 90% 1Сников положат базу, будь у них такая возможность. Запускать UPDATE при работающем серверном процессе - вообще за гранью добра и зла. У сервера есть свой кеш, и он не рассчитан на то, что кто-то будет запускать UPDATE в базе.
   Вася Теркин
 
27 - 03.02.21 - 14:47
(26) В соседней ветке один друг пытается 470 000 пачек сигарет отгрузить одной фурой и у каждой пачки своя марка.... А после этого ему надо базу 1С свернуть по прошлым периодам. Что же будет делать 1С в связи с этим?
   VladZ
 
28 - 03.02.21 - 14:51
(27) Доработает интерфейс программы, чтобы коробки лучше продавались.
   Вася Теркин
 
29 - 03.02.21 - 14:51
   Вася Теркин
 
30 - 03.02.21 - 14:52
(28) Какой интерфейс? Будут блокнотики и карандашик в коробку вкладывать? Скажут "работайте на мягких регистрах"...
 
 Рекламное место пустует
   Вася Теркин
 
31 - 03.02.21 - 14:53
1С - ничто не работает так долго
   hhhh
 
32 - 03.02.21 - 14:58
(31) ну иди в фузину. Зачем в 1с пришел? Изначально же понятно, что это тормоза?
   Вася Теркин
 
33 - 03.02.21 - 15:04
(32) Изначально была 2.0 проф.
   Вася Теркин
 
34 - 03.02.21 - 15:04
Ладно, пойду домой, работе конец
   dmpl
 
35 - 03.02.21 - 15:12
(27) 1С тут не лимитирующий фактор. Ведь эти коды надо еще сосканировать каждый ;)
   sitex
 
36 - 03.02.21 - 15:27
(0) Чего сложного через ADODB.Connection порубиться, и делай что хочешь.
   Вася Теркин
 
37 - 04.02.21 - 06:12
(35) Да, давно пора перевести на rfid. А потом заказать в Китае сканеры, которые полмиллиона кодов за раз берут. Кетайцы оху@ют и пришлют две деревни крестьян в контейнере.
(36) Чего сложного написать свою ОС на ассемблере.
были люди в наше время, Не то, что нынешнее племя: Богатыри — не вы! Плохая им досталась доля:
   ДенисЧ
 
38 - 04.02.21 - 06:23
(37) Да, Вася... Тебе до твоего тёзки - как Маску до Альфы Кассиопеи в позе гордого моллюска...
   2mugik
 
39 - 04.02.21 - 06:34
(37)обычно говорят я делал то-то и то-то.Что не получилось. А ты  ничего не сделал, не попробовал, а просто требуешь готовое. "А кушать вы за меня тоже будете?" Ага!
   Вася Теркин
 
40 - 04.02.21 - 07:13
(38) Одинэсу до консоли скуля видимо ближе.
(39) Кто кому говорят? В смысле чтобы функция появилась нужно позаклинать?
   Sserj
 
41 - 04.02.21 - 07:48
Да чего же вы такие злые то все :)
Человеку нужно соединение с БД на прямую, для которого и через ADODB.Connection нужены Логин/Пароль на SQL, не говоря уже о адресе сервера и имени БД, которые можно получить средствами 1С.
Логин/Пароль нельзя получить из снеговика.
   SiAl-chel
 
42 - 04.02.21 - 07:52
(39) Точно.
(40) Нет, заклинанание не надо. Надо миллион долларов и личная встреча с братьями Нуралиевмыи, чтобы они за эти деньги дали команду своим наемным работникам добавить в платформу "1С:Предприятие 8" ту функциональность, что тебе нужно.
ПыСы: сумма взята с потолка, реальная сумма выяснится после того, как сторгуешься с братьями Нуралиевмыи
   SiAl-chel
 
43 - 04.02.21 - 07:54
+(42) Читать: братья Нуралиевы. Это была опечатка, а не коверкание.
   ДенисЧ
 
44 - 04.02.21 - 07:57
(43) Хорошо, что "сёстры" не написал ))
   SiAl-chel
 
45 - 04.02.21 - 08:08
(44) Даже и не думал. Чай это Нуралиевы, а не Вачовски.
   Йохохо
 
46 - 04.02.21 - 08:18
(45) у нас на районе в слове хлеб другая ошибка
   ADirks
 
47 - 04.02.21 - 08:18
(40) а ты думал, функции сами появляются?
   ДенисЧ
 
48 - 04.02.21 - 08:19
(47) А что, нет? О_О
   Вася Теркин
 
49 - 04.02.21 - 08:22
(41) У снеговика оно все уже есть. Иначе как он в скуль ходит?
(44) Сестры сделали матрицу, а у этих сплошное дежавю.... Все чего-то меняют.
(45) Ни разу пока.
(47) Нет, их в муках рожают.
(48) Не подсказывай.
   ADirks
 
50 - 04.02.21 - 08:25
(48) восхищённый зритель видит чудо, и радуется
а где-то в сторонке кто-то читает заклинание. потому и магия.
   Вася Теркин
 
51 - 04.02.21 - 08:29
(50) А где функция-то? Расскажите подробнее чего Нуралиевы читают.
   Вася Теркин
 
52 - 04.02.21 - 08:30
У майкрософта консоль, у оракла SQL*Plus, а у 1С - лицензионное соглашение.
   ДенисЧ
 
53 - 04.02.21 - 08:32
(52) У 1са тоже есть консоль. И не одна. Для своего языка.
   Вася Теркин
 
54 - 04.02.21 - 08:36
Который за 100 часов делает то, что напрямую выполняется за 25 секунд..
   ДенисЧ
 
55 - 04.02.21 - 08:39
(54) А напрямую ты все обработчики Перед и При записи вызвал? А подписки?
   Йохохо
 
56 - 04.02.21 - 08:46
(52) попробуй "Select master.dbo.1c_doupdategracefully .."
   Вася Теркин
 
57 - 04.02.21 - 08:49
(55,56) Оно мне надо? надо (0) и (6)
   Вася Теркин
 
58 - 04.02.21 - 08:50
Нужна эффективность и непосредственный доступ.
   ДенисЧ
 
59 - 04.02.21 - 08:51
(57) Тебе не надо. А вот 1су и данным - надо.
   Вася Теркин
 
60 - 04.02.21 - 09:01
(59) Пруф?
 
 Рекламное место пустует
   ДенисЧ
 
61 - 04.02.21 - 09:03
(60) Пруф на что? На то, что 1с работает через объектную модель и у каждой записи могут быть обработчики событий? Так это тебе в книжки для начинающих...
   Вася Теркин
 
62 - 04.02.21 - 09:25
(61) В книжках есть про внешний источник данных (ВИД). Там никаких событий вроде нет, но ограничения на изменение данных. Никакой объектной модели. Как раз чтобы её не обошли и не построили на ВИД свои быстрые регистры и прочее введено ограничение, а так же Лицензионным соглашением. Не может одинэска конкурировать с другими решениями по скорости.
   SiAl-chel
 
63 - 04.02.21 - 09:29
(62) Совсем запутал. Ты же вроде хотел получить программный доступ до таблиц самой базы, а теперь говоришь о внешних источниках данных. Чего в итоге-то ты хочешь? Или ты просто стебешься тут на форуме?
   ДенисЧ
 
64 - 04.02.21 - 09:29
(62) Вот интересно... А почему ты не хочешь записать в базу SQL напрямую, редактируя секторы на диске? Это ж какая скорость получается!
   Йохохо
 
65 - 04.02.21 - 09:49
(63) мстит, ему ёлку не передвинули
   dmpl
 
66 - 04.02.21 - 10:15
(36) ... и положить базу :) См. выше про 90%.
   Вася Теркин
 
67 - 04.02.21 - 10:17
(63) Сейчас единственный способ получить из платформы прямой доступ к таблице - внешние источники данных. но как этим механизмом сделать update собственных РС? Остается только искать готовую функцию в интернете. Н о тут в статьях ссылки на такой функционал есть, а самого функционала нет (11).
   Вася Теркин
 
68 - 04.02.21 - 10:18
(65) елку кто-то скурил давно. Это не ко мне.
   dmpl
 
69 - 04.02.21 - 10:18
(54) А потом месяц восстанавливать базу и еще год ловить глюки...
   Вася Теркин
 
70 - 04.02.21 - 10:19
(26) С кэшем опять же недоработка 1С.
(69) Все отлично получилось из консоли скуля...
   dmpl
 
71 - 04.02.21 - 10:22
(67) Никак. Потому что никто кроме разработчиков платформы не сможет сделать это правильно. Это уже не говоря про поддержание когерентности кеша и блокировок.
   dmpl
 
72 - 04.02.21 - 10:24
(70) Уверен что ничего не поломалось, и оно при очередной реструктуризации или пересчете итогов не вылетит с дампом? А на новой платформе?
   Вася Теркин
 
73 - 04.02.21 - 10:27
(71) Тогда почему в интернете пишут статьи типа (11) . Это же не какой-нибудь haknivseh.mn
(72) Застрелюсь...
   acht
 
74 - 04.02.21 - 10:37
(73) > Застрелюсь
А на форум потом напишешь? А то как же мы узнаем?
   Вася Теркин
 
75 - 04.02.21 - 10:45
Сосредоточимся на обсуждении сабжа. Слухи о моей скорой кончине преувеличены.
   acht
 
76 - 04.02.21 - 10:49
Эх. Не тебе судить, человек, о сроках своей кончины.
   Вася Теркин
 
77 - 04.02.21 - 10:51
Про Кисловодск в соседней ветке обсуждают.
   SiAl-chel
 
78 - 04.02.21 - 10:51
(67) Нет. Это не единственный. Тут уже говорили про ADODB. Но тебе в обоих случаях надо знать имя базы, имя сервера СУБД, а также логи и пароль для доступа к ним. 1С версии 8 в клиент-сервере - это трех-звенка. При трех-звенке (хоть 1С, хоть Аксапта или что-то там такое) клиент ничего не знает о СУБД и способах прямой работы с таблицами.
   SiAl-chel
 
79 - 04.02.21 - 10:54
(73) Какой-нибудь SELECT - это еще пол-беды, но чтобы делать UPDATE в таблицы СУБД - это тоже, что прогулка по парапету 200-этажного здания. Можно получить кайф от крутизны, а можно и фотографию в черной рамке на красивом памятнике.
   Вася Теркин
 
80 - 04.02.21 - 10:57
(79) Хорошо. А метод готовый есть?
   Вася Теркин
 
81 - 04.02.21 - 10:58
(78) Для  внешних источников данных или для вэбсервисов тоже строку подключения надо и пароли всякие.... Это никого не останавливало от применения готовых методов.
   acht
 
82 - 04.02.21 - 10:59
(80) Есть, но я тебе не дам. Недостоин.
   Вася Теркин
 
83 - 04.02.21 - 11:01
(82) Ты то тут при чем?
   SiAl-chel
 
84 - 04.02.21 - 11:01
(80) Встроенного в платформу - нет. Еще раз прочти, что такое 3-звенная клиент-серверная система. Но ты можешь хранить данные о подключении к базе на СУБД в ИБ 1С и подключаться программно через ADODB.
   Вася Теркин
 
85 - 04.02.21 - 11:02
(84) в (11) врут?
   acht
 
86 - 04.02.21 - 11:02
(83) Потому что у меня есть.
   Вася Теркин
 
87 - 04.02.21 - 11:02
(87) Пруф
   SiAl-chel
 
88 - 04.02.21 - 11:07
(85) Читай это https://v8.1c.ru/platforma/klient-servernyy-variant-raboty/
Нет, в (11) не врут, но функция ПолучитьЗначениеИзБазы() - это не платформенная возможность, это ручками написанная функция. А вот в ней, скорее всего, и будет подключение к СУБД через ADODB. Ищи автора этого кода и требуй от него текст этой функции. Хочу узнать: пошлет он тебя учиться или просто пошлет?
   DrZombi
 
89 - 04.02.21 - 11:08
(88) Я бы поставил, он пошлет его на первые курсы программированию, из 3-рех букв :)
   Вася Теркин
 
90 - 04.02.21 - 11:09
Типовой открытой нет, значит я прав.
   SiAl-chel
 
91 - 04.02.21 - 11:09
(89) СУЦ - сертифицированный учебный центр. Он?
   DrZombi
 
92 - 04.02.21 - 11:09
(90) Держи... http://catalog.mista.ru/1c/articles/80730/

Попытка
    Соединение = Новый COMОбъект("ADODB.Connection");
    ДатаЛ = Новый COMОбъект("DataLinks");
    ДатаЛ.PromptEdit(Соединение);
Исключение
    Предупреждение("Не удалось создать подключение!");
КонецПопытки;
   acht
 
93 - 04.02.21 - 11:10
(87) Сиськи
   SiAl-chel
 
94 - 04.02.21 - 11:10
(90) В чем прав? Тебе функционал, возможность нужны или добиться от всех признания, что ты прав?
   DrZombi
 
95 - 04.02.21 - 11:10
(91) Там еще Буква "Х" и "Й", но почти угадал :)
   SiAl-chel
 
96 - 04.02.21 - 11:10
(92) DataLinks - это из какой ВКашечки?
   Вася Теркин
 
97 - 04.02.21 - 11:11
(94) Функционал типовой готовый. Где он есть
   DrZombi
 
98 - 04.02.21 - 11:11
(97) https://tavalik.ru/podklyuchenie-k-sql-serveru-iz-1s/

Вот еще...

2. Подключение к SQL-серверу
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)

    //Инициализация переменных

    ИмяСервераSQL = "WIN2012\TEST_SQL";
    ПользовательSQL = "UserDB";
    ПарольSQL = "Pass123456";
    БазаДанныхSQL = "TestDB";
    ТаблицаSQL = "Table_1";


    /////////////////////////////////////////

    //Подключение к SQL-серверу

    Попытка
        Соединение  = Новый COMОбъект("ADODB.Connection");
        Команда     = Новый COMОбъект("ADODB.Command");
        Выборка     = Новый COMОбъект("ADODB.RecordSet");
        Соединение.ConnectionString =
            "driver={SQL Server};" +
            "server="+ИмяСервераSQL+";"+
            "uid="+ПользовательSQL+";"+
            "pwd="+ПарольSQL+";"+
            "database="+БазаДанныхSQL+";";
        Соединение.ConnectionTimeout = 30;
        Соединение.CommandTimeout = 600;
        //Открытие соединение

        Соединение.Open();
        Команда.ActiveConnection   = Соединение;
        Сообщить("Успешное подключение!");
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;

КонецПроцедуры
   Вася Теркин
 
99 - 04.02.21 - 11:12
(99) Это уже по теме.
   DrZombi
 
100 - 04.02.21 - 11:13
(97) Нет его 1С не работает с прямым обращением к СУБД.
Есть кончено "Внешние источники данных", но они работаю т через Задний проход, и по большей части считывают Терабайты ненужной онформации...
Да и вообще работают "плохо", не по людски
  1  2   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.