Имя: Пароль:
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) Я и не беспокоюсь