Имя: Пароль:
1C
1С v8
Как узнать СУБД базы - sql или postre
0 AlexandrPetrov
 
27.10.21
15:10
Можно как-то обработкой определить тип субд базы?
1 H A D G E H O G s
 
27.10.21
15:20
Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    NULL КАК ПолеСортировки
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    1
    |
    |УПОРЯДОЧИТЬ ПО
    |    ПолеСортировки";
    
    Выборка=Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
    Если Выборка.ПолеСортировки=null Тогда
        Сообщить("Это постгии");
    КонецЕсли;
2 H A D G E H O G s
 
27.10.21
15:22
Спробуй так, що Postgree під рукою немає.
3 Garykom
 
гуру
27.10.21
15:24
(1) нахрен так извращаться?
4 H A D G E H O G s
 
27.10.21
15:24
Пардон, ступил, надо наоборот
    Если Выборка.ПолеСортировки=null Тогда
        Сообщить("Это MS SQL");
    КонецЕсли;
5 DexterMorgan
 
27.10.21
15:26
(1) Это совет эксперта?
6 AlexandrPetrov
 
27.10.21
15:27
(1),(4) спасибо
7 Конструктор1С
 
27.10.21
15:28
(0) консоль немае?
8 Garykom
 
гуру
27.10.21
15:35
9 Garykom
 
гуру
27.10.21
16:05
(6) учти что это просто особенность PostgreSQL
"При сортировке по возрастанию поля со значениями NULL оказываются последними в выборке, а при сортировке по убыванию – первыми."
https://its.1c.ru/db/v8312doc#bookmark:dev:TI000001291

Фактически запросто может быть изменено в других версиях

И хрен отличишь от Oracle!
От IBM DB2 можно через СтруктураБД = ПолучитьСтруктуруХраненияБазыДанных(, Истина);
Там имена таблиц будут без "_"
10 acht
 
27.10.21
16:28
(9) > может быть изменено в других версиях
В других версиях чего?
11 acht
 
27.10.21
16:29
(10) > И хрен отличишь от Oracle
А Oracle, ЕМНИП, до сих пор пустую строку от NULL не отличает. Вполне себе признак.
12 Garykom
 
гуру
27.10.21
17:03
(10) версиях PostgreSQL или платформы 1С через [NULLS { FIRST | LAST }]
13 acht
 
27.10.21
17:13
(12) И убить тем самым наработаный на слой легаси в конфигурациях? Ну, если только в 1Cv9.
14 Garykom
 
гуру
27.10.21
17:20
(13) >убить тем самым наработаный на слой легаси в конфигурациях
Не в первый раз уже
15 xkanix
 
27.10.21
18:16
(9)
>Фактически запросто может быть изменено в других версиях

Может, конечно.
Но вряд ли "запросто"

Придётся тогда все индекыс в которых есть nullable поля заново строить.
А на это вряд ли можно пойти, иначе уже давно пошли бы - в дин. списке из-за этой разницы есть некоторое количество извращений с сопутсвующей просадкой производительности.

Более интересно, зачем вообще (0) это понадобилось?

>И убить тем самым наработаный на слой легаси в конфигурациях?

И много в конфигурациях кода, который зависит от порядке null'ов в сортировке?
Я вот ни одного примера не видел.
Но это не важно.
Изменится это вряд ли, кроме всего прочего в самой платформе довольно много всего вскрыть придётся ;)
16 acanta
 
27.10.21
18:18
Имхо поздно определять СуБд когда печень упала в трусы (зачеркнуто) а дальше не знаю...
17 fisher
 
27.10.21
18:25
Под админскими правами можно тупо менеджер кластера спросить на СУБД какого типа база подключена.
18 Garykom
 
гуру
27.10.21
19:02
(17) именно и это самый правильный способ в (8)
19 ansh15
 
27.10.21
19:39
(18) Осталось попросить админа сервера с 1С включить ras и дать пароль администратора кластера...
20 timurhv
 
27.10.21
19:55
(19) в 99% не ставят пароль администратора кластера
Да и RAS не нужен
21 acht
 
27.10.21
19:55
(15) > И много в конфигурациях кода
Мне, если честно, просто лень считать количество вхождений "ВЫБРАТЬ ПЕРВЫЕ 1" в коде, СКД и прочих тайных местах.

> Я вот ни одного примера не видел.
Ну, если не смотреть, то и не увидишь. Логично.
22 xkanix
 
27.10.21
20:42
>Мне, если честно, просто лень считать количество вхождений "ВЫБРАТЬ ПЕРВЫЕ 1" в коде, СКД и прочих тайных местах.

И весь этот код чувствительный к порядку NULL'ов, правда, да?

Т.е. он работает на DbEng / MsSql  и PG / DB2 / Oracle, но от того что на PG NULL'ы станут как на DbEng / MsSql слоамется?

P.S. Всегда поражался, Гений вроде только один, а если присмотреться - получается вовсе и нет.
23 ansh15
 
27.10.21
20:53
(20) Если не пользоваться возможностями администрирования кластера из встроенного языка, то ras не нужен, конечно.
24 acht
 
27.10.21
21:42
(22) > Т.е. он работает на
И еще на файловых базах, совершенно верно.
25 080808Ник
 
27.10.21
22:43
"ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в постгре вроде так и не починили, так что делаешь запрос с полным соединением, если база падает или жестко тупит значит постгре
26 timurhv
 
27.10.21
22:45
(23) Не очень понимаю, почему по-умолчанию через "Администрирование серверов 1С Предприятия" можно подключаться без пароля к любому серверу 1С из вне (99% не ставят пароль и забивают).
Менять там настройки, удалять пользователей и базы физически с SQL (если есть логин\пароль от админа базы).
Ну а если есть доступ админа к серверу, но нет доступа к администрированию сервера 1С: пошаманить с файлом 1CV8Clst.lst и удалить администраторов сервера 1С.
27 080808Ник
 
27.10.21
23:28
Вообще, что это за 1с программист без доступа к скуль серверу?
28 acht
 
27.10.21
23:38
(27) Ливингстар
29 ДенисЧ
 
28.10.21
04:27
(27) А зачем типичному 1снику доступ к скулю? Что он там делать будет?
30 piter3
 
28.10.21
08:03
(29) профайлер хотя бы
31 Курант
 
28.10.21
08:10
(27) Нафик он не нужен, для этого специально обученные люди есть.
32 ДенисЧ
 
28.10.21
08:16
(30) "Типичному".
33 eklmn
 
гуру
28.10.21
10:48
Информационная база (IInfoBaseInfo)
DBMS (DBMS)
Использование:
Чтение и запись.
Описание:
Тип: Строка.
Определяет тип СУБД, в которой размещается информационная база. Возможны следующие типы СУБД:
MSSQLServer - Microsoft SQL Server;
PostgreSQL - PostgreSQL;
IBMDB2 - IBM DB2;
OracleDatabase - Oracle Database.
Доступность:
Интеграция.
Использование в версии:
Доступен, начиная с версии 8.1.
34 Ёпрст
 
28.10.21
10:50
(33) Ну, хоть кто-то СП читает на ночь..
)
35 Ёпрст
 
28.10.21
10:51
(29) неистово апдейтить таблички жешь..
36 080808Ник
 
28.10.21
10:58
(29) работать. Оптимизировать запросы например через профайлер
37 080808Ник
 
28.10.21
10:59
(31) это в газпроме может и есть люди специально обученные а типичный админ не может настроить статистики в скуле)
38 acht
 
28.10.21
11:33
(34) По сути в (17) это и предлагали.
В отличии от СП сообщения форума никто не читает вообще.
39 ДенисЧ
 
28.10.21
11:35
(36) Типичный 1сник не знает таких матерных слов.
40 ДенисЧ
 
28.10.21
11:35
(35) Тогда точно не надо.
41 acht
 
28.10.21
11:40
(39) > таких матерных слов
Ты про "работать", "оптимизировать" или "запросы" ?
42 080808Ник
 
28.10.21
11:59
(39) а как он узнает если у него доступа к скулю нет?
43 ДенисЧ
 
28.10.21
12:00
(42) А на нет - и суда нет. Есть только Особое Совещание.
44 ДенисЧ
 
28.10.21
12:00
(41) Например, "профайлер"
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.