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

Попытка
    Соединение = Новый COMОбъект("ADODB.Connection");
    ДатаЛ = Новый COMОбъект("DataLinks");
    ДатаЛ.PromptEdit(Соединение);
Исключение
    Предупреждение("Не удалось создать подключение!");
КонецПопытки;
93 acht
 
04.02.21
11:10
(87) Сиськи
94 SiAl-chel
 
04.02.21
11:10
(90) В чем прав? Тебе функционал, возможность нужны или добиться от всех признания, что ты прав?
95 DrZombi
 
гуру
04.02.21
11:10
(91) Там еще Буква "Х" и "Й", но почти угадал :)
96 SiAl-chel
 
04.02.21
11:10
(92) DataLinks - это из какой ВКашечки?
97 Вася Теркин
 
04.02.21
11:11
(94) Функционал типовой готовый. Где он есть
98 DrZombi
 
гуру
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) Это уже по теме.
100 DrZombi
 
гуру
04.02.21
11:13
(97) Нет его 1С не работает с прямым обращением к СУБД.
Есть кончено "Внешние источники данных", но они работаю т через Задний проход, и по большей части считывают Терабайты ненужной онформации...
Да и вообще работают "плохо", не по людски
101 Вася Теркин
 
04.02.21
11:13
Теперь в интернете будет готовое решение в открытом доступе. Отлично.
102 DrZombi
 
гуру
04.02.21
11:13
(101) Куда будет, учись пользоваться гуглом, или Яндексом :)
103 acht
 
04.02.21
11:13
(96) MSDASC
104 SiAl-chel
 
04.02.21
11:15
(99) Тебе про эту тему с первых постов люди писали.
105 Salimbek
 
04.02.21
11:24
(101) Так то GameWithFire еще на заре восьмерки было. Но играть с огнем - опасно...
106 Вафель
 
04.02.21
12:04
(101) но тут нужно пароль скл знать. А он не всегда известен
107 Вася Теркин
 
04.02.21
12:32
(104) Рабинович мне напел.
(106) Раз  я в консоль скуля влез значит у меня админ есть знакомый как минимум. Или сам я хуже админа...
108 sitex
 
naïve
04.02.21
12:38
(66) Ну не для кривых рук писалось сообщение выше.
109 dmpl
 
04.02.21
13:06
(108) А пряморукий не станет лезть в работающую базу с UDPATE в обход сервера 1С.
110 Вася Теркин
 
05.02.21
06:50
(109) Ну да, особенно если какой-то ресурс или общий реквизит надо добавить В РС и заполнить за последние 20 лет.
111 SiAl-chel
 
05.02.21
06:56
(110) И нафига?
112 Вася Теркин
 
05.02.21
08:30
(111) Надо.
113 Вася Теркин
 
05.02.21
08:30
Для анализа надо.