Имя: Пароль:
1C
1C 7.7
v7: SQL 2022 для 7.7 Можно заменить ВСЕ штатные sql-запросы по маске?
↓ (Волшебник 16.09.2024 08:50)
0 mvk
 
08.09.24
19:47
Добрый день. Прошу прощения, тема "v7: версия SQL для 7.7 и режимы совместимости" ушла в архив.
Есть задание от руководства - постараться перейти на как можно более свежий системный софт при работе с 7.7 без применения виртуализации. Вопросы типа "а зачем это надо" прошу не задавать. Давайте просто скажу, что хочу решить подобную задачу.
На 2022 ms-сервере после некоторого шаманства 1С заработала даже без запуска от имени админа. И опенконф заработал нормально. И всякие компоненты типа 1С++. А вот SQL2022... Ну процедуру sp_dboption я добавил. Но синтаксис стандартных запросов от 1С содержит хинты к таблицам типа (NOLOCK INDEX=...). И если nolock sql2022 еще пропускает, то явная отправка к индексам уже вызывает ошибку
"Неправильный синтаксис около "INDEX". Если имелась в виду часть табличного указания, то для этого теперь необходимо использовать ключевое слово A WITH и круглые скобки."
Т.е. требуется модификация штатных запросов. В частности банальных методов "найтипо...". Компонента от Ромикса не умеет же подменять по маске? Типа "(nolock" заменить на "with(nolock". Каждый запрос подменять - у Ромикса вроде есть ограничения на 200 замен. Есть варианты выкрутиться? Или только понижение SQL до 2019 спасет?
Может у кого-то исходники Ромиксовской компоненты остались?
1 Guk
 
08.09.24
19:49
(0) беги оттуда. там в руководстве работают больные на всю голову люди...
2 Djelf
 
08.09.24
19:52
(0) Читай (0)
Давайте просто скажу, что хочу решить подобную задачу.

Я не против, пускай решает.
3 mvk
 
08.09.24
20:25
(1) Есть потребность. Есть рабочая система, менять которую не так просто. Разработано дофига всего за много лет. От родной 1С остался интерфейс с относительно небольшим использованием штатных методов, которые в узких местах подменялись на прямые запросы. А так почти все на прямых.
Железо развивается, и старые системы на него уже просто не становятся. Виртуализация тоже жрет ресурсы. Вот и возник вопрос выяснения "пределов возможного" для работы без виртуализации. А потом уже этот вариант можно и виртуализировать в будущем. База не гигантская, но и не маленькая. 300 гиг и растет быстро.
4 Guk
 
08.09.24
20:41
(3) ну, люди, которые в своем уме, в подобной ситуации все- таки смотрят в сторону 8-ки, отчетливо понимая, что 1С 7.7 - это мертвая система и латать её постоянно как тришкин кафтан, не получится. плюс спецов по семерке днем с огнем не найти. у вас руководство этого не понимает?...
5 Волшебник
 
08.09.24
20:43
(0) а зачем это надо, когда есть восьмёрка?
6 mvk
 
08.09.24
20:48
Люди занимаются воспроизведением алгоритмов на 8. Но пока не готово. И не понятно, когда будет. Кроме того бизнес-процессы не стоят на месте.
ЗЫ: Ну просил же не углубляться в тему "а зачем это надо..." Может по существу вопроса кто-то может подсказать? Волшебник, ты же такой же древний, как и я, кубаноид )) Может нароешь исходники от Ромикса? А то ссылки уже мертвые все, разумеется...
7 Builder
 
08.09.24
21:17
Есть несколько нетленок на 7.7, прекрасно живут на SQL 2008, на обычном железе и виртуалках.
Зачем этот велосипед с 2022 скулем и железом? Выиграть пару процентов производительности? Цель какая?
8 DrZombi
 
09.09.24
07:00
(7) Их ждет разочарование на 8.ххх После прямых запросов некоторые рабочие решение на 7.7 увы не работают на 8 :)
9 DrZombi
 
09.09.24
07:02
(6) Людям нужно будет еще придумывать свои алгоритмы, под технические возможности 8-ки. Прямые запросы развращают, снимают ограничение наложенное разработчиком 7.7 :)

...весело у вас...
10 DrZombi
 
09.09.24
07:04
(0) Если по делу, то не пробовали для 7.7 использовать максимальный простой SQL (где то 2014). А уже на 8.ххх вы перейдете на ПосгриСКЛ и другие новшество  от линукс совместимых, с импорта-замещением.?
11 DrZombi
 
09.09.24
07:05
+ Просто судя по описанному внедрению, у компании нет проблем с бюджетом :)
12 Волшебник
 
09.09.24
07:05
(6) Я лучше эту стюардессу поглубже закопаю и ещё песочку сверху подсыплю
13 mg-samara
 
09.09.24
07:07
(0) Хорошо, еще что присутствующие фото не просят :-)

У меня тоже есть пример когда работают на 7.7. Но не так запороченно как у тебя. Лично я для поддержки просто ковыряю копию базы в виртуалке, где стоит, страшно сказать, XP!
В этом году, надеюсь, перейдут на восьмерку.

А так - удачи, коллега, побыстрее перейти!
Сильно допиленную систему не так просто перевести на современную. Да и дорого это :-)

Извини, что не по существу.
14 mg-samara
 
09.09.24
08:22
Помню еще году в 2010 году, на проекте, где еще крутились остатки учетных системы на 7.7 мы придумали специальый термин для программирования на семерке - "Ретро-программирование!".

Но сейчас в 2024 году, раз в месяц открывая конфигуратор семерки, я понимаю что это уже не "Ретро", а какое-то "Некро". :-)
15 Волшебник
 
09.09.24
07:25
(14) точно-точно. Исходники потеряны. Ищут какие-то компоненты, которые не компилируются. Настоящее некро! Или архео. Или палео.
16 arsik
 
09.09.24
08:26
(0) Был же проект перехват и трансляция запросов в из 77 в postres. Может в ту сторону посмотреть. То есть не на уровне скуля запросы менять, а на уровне 1С.
17 Смотрящий
 
09.09.24
08:31
(0) Прям на самом скуле INSTEAD OF триггеры посмотри
18 mishaPH
 
09.09.24
09:07
(14) ага а меня вот называли на одном месте ретроградом.
19 Волшебник
 
09.09.24
09:08
(18) Меня так тоже называли, причём за мою любовь к ОБЫЧНЫМ формам восьмёрки. А вы говорите клюшки...
20 mvk
 
09.09.24
09:29
И снова все привет. Я смотрю, тема пошла в сторону некроностальгии )))
(8,9) Именно. А если учесть, что ты держишь кое-какие интересные служебные таблички сбоку в соседней базе (чтобы не так часто бэкапить)...
(10) Видел в архивной теме, что у людей на 2019 скуле взлетело. Может это они имели ввиду ms-сервер? Потому что вроде как эти хинты на индексы и в 2019 уже не работали.
(16) Не напомнишь, куда копать?
(17) Это триггеры на delete,update,insert. А у меня не работает
select * from SC3774(NOLOCK INDEX=CODE) where CODE='ТутКодСправочника' order by CODE,ROW_ID
который вызывается при методе Спр.НайтиПоКоду("ТутКодСправочника")
21 trad
 
09.09.24
09:34
ТС, про "секретный релиз 77" слышал? пробовал?
22 mvk
 
09.09.24
09:37
(7) sql2008r2 живет максимум на win2012r2. А этот сервер на современное железо уже не ставится.
23 mvk
 
09.09.24
09:37
(21) Конечно. Он и живет.
24 JanK
 
09.09.24
09:40
(20)
С трудом, но всё же нагуглил (в яндексе) название конторы - сам никогда не пользовался, может оно и вообще не  работает.

Подумал и саму ссылку удалил из поста, а то вдруг Волшебник решит что это я решил так рекламу пролпихунть;)
Сайт (очень тормозной) конторы  находится в яндексе по поисковой фразе "Linux предприятие 77 wine" - собственно там же есть решение по трансляции TSQL запросов в PG (на сколько оно рабочее - понятия не имею, в общем виде - точно не рабочее, но в каких-то случаях может и работать).
25 arsik
 
09.09.24
09:46
(20) Ну был проект SELTA@Etersoft
Они я так понял делали через подмену драйвера odbc.
https://habr.com/ru/articles/112061/
https://interface31.ru/tech_it/2010/04/1s-predpriyatie-77-postgresql-realno-da.html
26 trad
 
09.09.24
09:55
(23) Не заметно.
Ибо проблему с хинтами в "частности банальных методов "найтипо..."" он решает
27 АгентБезопасной Нацио
 
09.09.24
09:59
У софтпойнта есть нужное решение (прокси запросов) - но наверняка дорого.
На инфостарте есть творчески переработаные исходники ромиксовского хука.
28 arsik
 
09.09.24
10:00
29 АгентБезопасной Нацио
 
09.09.24
10:21
кстати, для управления хинтами запросов в 2022 сервере есть plan-guides и query-store-hints.
30 mvk
 
09.09.24
10:40
(26) Это же где добавлен BkEndUtls.dll и подменен BkEnd.dll?
31 mvk
 
09.09.24
10:40
(27) Спасибо, сейчас поищу.
32 trad
 
09.09.24
10:43
33 mvk
 
09.09.24
10:45
(26) https://infostart.ru/1c/tools/82018/ используется
34 mvk
 
09.09.24
10:47
(32) Хинты на индексы там остались. В синтаксисе без слова with
35 trad
 
09.09.24
10:53
(34) приведи пример стандартного запроса, такого чтобы появился хинт с index
36 mvk
 
09.09.24
10:58
(35) set rowcount 1 select * from SC3774(NOLOCK INDEX=CODE) where CODE='ТутКодСправочника' order by CODE,ROW_ID set rowcount 0
который вызывается при методе Спр.НайтиПоКоду("ТутКодСправочника")
37 trad
 
09.09.24
11:10
я наверно что-то не догоняю, но у меня НайтиПоКоду делает это
set rowcount 1 select * from SC46 WITH (NOLOCK) where CODE='12345' order by CODE,ROW_ID set rowcount 0
38 trad
 
09.09.24
11:12
+
39 nextssbt
 
09.09.24
11:13
(0) 1с++ или toySQL в помощь
40 nextssbt
 
09.09.24
11:15
(0) https://1cpp.ru/index.php/Main
этого обычно достаточно чтоб форсировать 7.7
41 trad
 
09.09.24
11:17
(37)+ еще должен добавить, что у меня не sql2022
Я пытаюсь понять почему у ТС секретный релиз не работает так как должен
42 mvk
 
09.09.24
11:52
(39) Там почти все на 1С++. Но все же каждый чих типа НайтиПоКоду переделывать тоже долго. Есть критичные места, где переделал. Но не везде.
(38) У меня, кажись, размер BkEndUtls.dll отличается. С архивом у себя сравнил из https://infostart.ru/1c/tools/82018/ - у меня совпадает. Посмотрите, плиз, подробнее, размеры. А еще лучше поделитесь ))
43 mvk
 
09.09.24
11:30
(38) Вот такой архив
44 mvk
 
09.09.24
11:32
(38) Профайлер...
45 trad
 
09.09.24
12:24
(42) размеры ровно такие же

а BkEnd0 какой релиз?
46 mvk
 
09.09.24
12:26
(45) Странно, что такой-же. На скрине у Вас был 231Кб. А у меня 230 (на диске 232)
47 mvk
 
09.09.24
12:28
(45) Если не трудно. поделитесь своими Dll, я прогоню профайлером.
48 trad
 
09.09.24
12:44
(46) 236032/1024 = 230,5
Свойства округляют до 230
Проводник в столбце округляет до 231
MS Windows тоже не без этой хрени )
50 mvk
 
09.09.24
13:07
(49) Все равно select * from SC3774(NOLOCK INDEX=CODE). Может остальные 2 длл тоже скинете?
51 arsik
 
09.09.24
13:19
(50) Может ты просто какую то не ту 1С запускаешь. Посмотри в процесс эксплорере. Может у тебя даже библиотеки в 1С не подгружены.
52 mvk
 
09.09.24
17:37
(51) Не той просто нет. Движок 1. Посмотрю, но чуть позже.
53 mvk
 
09.09.24
14:00
(49) Посмотрите у себя в BkEnd0 есть кучка строк "NOLOCK INDEX"? Может там руками кто-то правил потом? У меня их там много...
54 arsik
 
09.09.24
14:52
(53) Как бы хук BkEnd.dll + BkEndUtls.dll как раз для обхода этого сделан. Может у тебя BkEnd0.dll - неоригинальный и хук не может на него наложиться.
55 trad
 
09.09.24
14:36
Может быть действительно подмена не работает т.к. sql2020 ?..
spock заявлял о поддержке 2000-2014
Хотя им же сказано о невмешательстве только для sql2000 и ниже
56 Крэкпэк
 
09.09.24
14:50
А какой уровень совместимости установлен у БД ?
57 mvk
 
09.09.24
14:55
(54) Все может быть. Пришлите оригинальный, если не трудно. Спасибо.
(55) spock заявлял, потому что старших тогда не было еще вроде.
(56) Разные пробовал. Сейчас максимальный 2022.
58 Djelf
 
09.09.24
16:40
(24) Нормально selta работала: https://infostart.ru/1c/tools/19566/
Я в то время был на связи с разработчиком и продвинул свою идею "курсоры на триггерах".
Но в dbf все равно быстрее.
Это было очень давно.
Было бы интересно когда-нибудь посмотреть как новые версии постгри с этим работает... Лицензия есть, но... лучшее враг хорошего.
59 mvk
 
09.09.24
17:06
trad, ну доделай доброе дело ))) Кинь свою BkEnd0, плиз...
60 mvk
 
09.09.24
17:37
(51) Стартует...
61 Волшебник
 
09.09.24
19:47
некрофилы...
62 trdm
 
09.09.24
19:48
me too
63 Волшебник
 
09.09.24
21:20
Как вас похоронить? Песочком засыпать?
64 Волшебник
 
09.09.24
21:23
Мне неприятно, что на моём форуме обитают некрофилы 7.7 и обмениваются dll-файлами
65 Волшебник
 
09.09.24
21:24
Заведите себе другой форум!
67 Волшебник
 
13.09.24
18:51
Я ветку потопил, чтобы остановить эту пропаганду 7.7,
но знайте, что я слежу за вами даже в утопленной ветке.
69 mvk
 
11.09.24
18:03
))) Волшебник, спасибо за апы.
70 mvk
 
11.09.24
18:05
(62) Какие люди! Приветствую!

Блин, перепробовал кучу родных BkEnd.dll. Не помогает. Остаются хинты... trad, вся надежда на тебя.
77 leov-001
 
13.09.24
13:37
Нужна реструктуризация ИБ.

Открой свойства конфигурации. В комментарии поставь пробел удали пробел. Сохрани конфигурацию.
78 mvk
 
13.09.24
15:53
(77) База интенсивно меняется. Реструктуризации раз в неделю примерно. Пробовал после подмен разных BkEnd. Не помогло.
Мне бы комплект длл, на котором у вас работало...

ЗЫ: Волшебник, потерпи немного. По делу вопрос.
79 Волшебник
 
13.09.24
17:23
(78) не верю
80 jzklj
 
13.09.24
17:51
(78) Поправь ручками в dds файле.
81 trad
 
13.09.24
17:57
(78) в почту тебе скидывал ссылку
83 jzklj
 
13.09.24
18:00
(80)+ хотя нет, нужно хранимки править. Проще действительно, реструктуризацию сделать. Ну или на копии сделать и из нее перенести хранимки.
86 mvk
 
13.09.24
19:07
(81) Поймал. Спасибо. Не помогло ((( Где-то еще косяк...

(80),(83) С хранимками все норм. Проблема только в синтаксисе запросов, которые вшиты в BkEnd.dll. По идее секретный релиз должен был поправить это, но конкретно у меня не поправилось. Вероятно придется руками и хекс-редактором править саму длл.

(79) Ну может и да. Раз в неделю изменяю все, что с турбомд наменял на лету, а именно изменения, требующие реструктуризации, раз в месяц. Бизнес развивается, вечно что-то новое вылезает. Или оптимизация старого. Индексы свои опять же... А новый скуль - я же могу в запросах новые фишки использовать. Например, оконные функции. Примитивные начались с 2008 скуля, а хочется же все использовать. А агрегатная функция объединения строк... Вся прелесть прямого доступа к базе - руки развязаны.
87 craxx
 
13.09.24
19:31
(86)
Вероятно придется руками и хекс-редактором править саму длл.

Ростовские программисты настолько суровы, что программируют напрямую внося биты в регистры паяльником.
89 mvk
 
14.09.24
22:23
(87) 1С:Левша ;)
90 Jackman
 
15.09.24
14:35
8ка еще сырая... Рано переходить.
91 Волшебник
 
15.09.24
14:49
(90) Семёрка ещё сырая. Дождитесь новых релизов
92 Ёпрст
 
15.09.24
21:23
(0) на 22 не пробовал, 19 работал без танцев с бубном.  Может, еще чего подменял? Еще какие длл/одбс драйверы и прочее подменяны? Пробуйп устышку создать из мд на новой чистой платформе с установленным солюшен7. И всё. Там будет все работать, главное в самом скуле ничего не менять/подменять
93 Ёпрст
 
15.09.24
21:49
И да, даже в камментах к секр. релизу, пишут, что на 22 заоаботало из коробки. Точно, что то еще у вас подменяно, вертайте взад всё.
94 trdm
 
16.09.24
10:28
(67)  > Я ветку потопил, чтобы остановить эту пропаганду 7.7,

Ну чего ты паришся, Она же уже даже не продается, а вот люди еще работают на ней.
Тебе нечего беспокоиться.

тут априори нет никакой конкуренции.
95 Волшебник
 
16.09.24
10:28
(94) Я и не беспокоюсь