Имя: Пароль:
   
1C
1C 7.7
v7: Осваиваю прямые запросы в 7.7
0 zenon46
 
16.07.18
09:19
Доброго дня! Есть конфа комплексная 7.7, база уже 34 гига, крутится на SQL сервере, в качестве саморазвития, захотел изучить вопрос прямых запросов к БД. Прошу сильно не пинать, если будут глупые вопросы, почитал по этому поводу несколько статей, и решил заменить, некоторые простые запросы к справочникам. Вопрос в том, будет ли быстрей на таких простых запросах. Для примера ниже, обычный и прямой. Еще не понятно, есть в таких запросах группировки как в "классических" 1с запросах ? Может кто подкинет дельных ссылок где можно изучить этот вопрос.


    RS = СоздатьОбъект("ODBCRecordset");
    RS.УстБД1С();
    ТекстЗапроса = "
    |SELECT
    |    Спр.Code as Код,
    |    Спр.Descr as Наименование
    |FROM
    |    $Справочник.Номенклатура as Спр";
    

    
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса = "
        |КодН = Справочник.Номенклатура.Код;
        |НаименН = Справочник.Номенклатура.Наименование;
    |Группировка НаименН;
    |";
1 VladZ
 
16.07.18
09:33
2 1Сергей
 
16.07.18
09:35
>>Вопрос в том, будет ли быстрей на таких простых запросах

быстрее будет простой выборкой


>>есть в таких запросах группировки как в "классических" 1с запросах ?

Группировки есть
3 Boroda
 
16.07.18
09:37
Если научиться работать с профайлером -  то воообще круто!
Вот первая же ссылка, что попалась:
http://catalog.mista.ru/public/291874/ - Анализ запросов с помощью SQL Profiler

Если посмотреть именно этот 1с запрос в профайлере, то думаю, разницы не увидишь.
4 Boroda
 
16.07.18
09:41
В дополнение к (3)
Будет разница! :)  
Не обратил внимания что нет группировки в прямом запросе - GROUP BY Спр.Descr
5 zenon46
 
16.07.18
09:46
(4) т.е. получается в таких запросах как я привел, разницы не будет. Тогда в каких будет, где идет работа с регистрами ?
6 Sserj
 
16.07.18
09:49
(5) Еще как будет, если много пользователей и добавишь немножко текста:

"
|FROM
|    $Справочник.Номенклатура as Спр with (nolock)
"
Только почитай документацию что это дает и когда этого делать нельзя.
7 НоваяВолна
 
16.07.18
09:52
(0) Будь мужиком, пиши прямые запросы к БД. Встроенный язык запросов 1С 7.7 кривое подобие запросов имхо)))
8 youalex
 
16.07.18
09:54
9 Эльниньо
 
16.07.18
10:06
(5) Если нужны остатки на ТА, то лучше Рег.ВыгрузитьИтоги() и Рег.СводныйОстаток().
А если не на ТА, тогда ощутимая разница
10 Владимир1С
 
16.07.18
10:29
11 Владимир1С
 
16.07.18
10:31
12 opus70
 
16.07.18
10:38
(2) однозначно почти всегда прямой запрос быстрей чем 1с
особенно на проведениях и на отчетах
минус только один сложно писать и после тебя никто не разбереться
13 zenon46
 
16.07.18
10:39
(12) на проведениях - переделывать модули проведения документов ?
14 Aleksey
 
16.07.18
10:48
(13) высший пилотаж переписать на тригерах SQL модуль проведения, а от 1С оставить только формы
15 Aleksey
 
16.07.18
10:49
но о уровню трудозатрат и онанизма это превосходит даже переход на 8-ку
16 Владимир1С
 
16.07.18
10:52
(0) В отладчике замерь самые длинные места, и их оптимизируй.
17 Владимир1С
 
16.07.18
10:54
(0) в отчётах ни в коем случае не тяни ссылки НА ФОРМЫ.
18 Владимир1С
 
16.07.18
10:57
(13) Есть способ отложенного проведения. Или, по простому, то,  что будет актуально только после окончания рабочего времени, получать по закрытию смены. То есть в оперативном режиме грузить систему исключительно данными, необходимыми для оперативной работы.
19 Владимир1С
 
16.07.18
10:58
(15) Зато классность специалиста сразу на 2-3 порядка поднимется.
20 zenon46
 
16.07.18
11:03
(19) это наверняка, только 7.7 уходит постепенно, скорей придется богомерзкие УФ изучать.
21 Владимир1С
 
16.07.18
11:04
(20) Так ведь это будет уже спец по SQL, так и в 8х прямые запросы работают быстрее. Но, уже не во всех случаях.
22 1Сергей
 
16.07.18
11:05
(21) Были прецеденты перевода всех запросов в снеговике на скульные?
23 Владимир1С
 
16.07.18
11:07
(21) Всех - нет. Отдельные, где требовалось выйти за рамки 1С - выдать данные наружу через SQL.
24 Sasha_H
 
16.07.18
11:10
(0) пора осваивать уже 8.3
25 opus70
 
16.07.18
11:11
(13) да
но если лень тол ищи toysql купи всемодули для ТИС и все отчеты и решишь за самое короткое время свои проблемы
правда там не 1c++ а немножко другой синтаксис но основа таже  и в паре они прекрасно работают тоже

в любом случаее это дешевле чем переходить на УФ в варианте 8.х.х
26 Владимир1С
 
16.07.18
11:13
(0) 1С++, надеюсь, уже включено в базе?
27 zenon46
 
16.07.18
11:14
(26) ))) включено
28 Sasha_H
 
16.07.18
11:15
(0) еще есть ToySQL давно в бородатые времена им пользовался он более синтаксичен по отношеник 1С++

А в целом пофиг если вы работали с запросами T-SQL
29 Владимир1С
 
16.07.18
11:17
(0) переменные среды и каталоги временных файлов переведены на РАМ диск в ОЗУ?
30 opus70
 
16.07.18
11:17
(28) плюс последнего в том что у павла были все стандартные модули уже переписаны т.е. очень быстрое внедрение буквально неделя две и все летало
а переписывать все на 1c++ это как минимум на полгода приключений
31 Владимир1С
 
16.07.18
11:19
(0) Подключение клиентов по сети или RDP ?
32 zenon46
 
16.07.18
11:19
(29) нет, там сервер Windows2003 c 4-я гагами ОЗУ, ему отроду 12 лет уже. Тянут только SAS диски.
33 zenon46
 
16.07.18
11:20
(31) сетевое
34 Владимир1С
 
16.07.18
11:23
(33) Переделай на RDP, для временных файлов пользователей поставь SSD,побыстрее(SSD).
35 Владимир1С
 
16.07.18
11:27
Ещё есть аппаратные RAM диски, но это уже смотря по обстоятельствам.
36 zenon46
 
16.07.18
11:28
(34) не RDP не хочу да и пользоватлей обучать тоже нет на это времени, сеть гигабитная, в принципе пока производительность сносная, выполняются долго отчеты плюсом иногда вываливаются транзакции.
Каталог пользователей перенести ?
37 Владимир1С
 
16.07.18
11:29
38 Злопчинский
 
16.07.18
11:30
ну.... типовой остаткиТМЦ отчет на прямых запросах есть на Инфостарте...
39 Владимир1С
 
16.07.18
11:31
(36) Сделай для 3-х пользователей, увидишь результат, тогда и решишь. У меня коммерческие клиенты все на такой связке сидят.
40 Владимир1С
 
16.07.18
12:00
(36) Перенос каталога временных файлов имеет смысл, если только он будет на физически отдельном носителе.
41 opus70
 
16.07.18
12:31
http://www.1csql.ru/action/products/buyec7a.html?itemid=7fdc7a9f-543a-15ec-3a10-79b72e2ec181
+
http://www.1csql.ru/action/products/buy3d58.html?itemid=d9b27442-98d5-3b6f-551a-7e8e0ff19afe


всего 32000 по нынешним меркам тебе больше за мелкие услуги
и самое главное один раз и на всегда
42 opus70
 
16.07.18
12:32
если проблему можно решить заденьги то ее всегда нужно решать за деньги и экономить свои нервы итакдалее
43 opus70
 
16.07.18
12:45
притом это реально решит твою проблему ускорения до 10х обеспечено не везде но практически везде
и проживет твоя база еще так лет 10 пока железка не зздохнет
44 Владимир1С
 
16.07.18
14:47
(0) Хорошо бы , до кучи, посмотреть функции, привязанные к формам. Насколько часто и оправданно они вызываются.
Программист всегда исправляет последнюю ошибку.