Имя: Пароль:
1C
1C 7.7
v7: Прямые запросы в 1С7.7 под SQL
0 Ivanych
 
21.02.12
11:47
Здравствуйте. Недавно переехали на SQL. Теперь появилась проблема с производительностью при формирование отчетности. Думал попробовать написать прямой запрос, но материала в интернете много и немного тумана и поэтому прежде чем делать что то хотел проконсультироваться у опытных программистов по написанию прямых запросов. Какие компоненты лучше использовать и как?
1 Азат
 
21.02.12
11:47
www.1cpp.ru

На этом тему можно закрывать)
2 Mnemonic1C
 
21.02.12
11:50
Шо, опять? (с)
3 Чайник Рассела
 
21.02.12
11:52
>Какие компоненты лучше использовать и как?
Голову. По назначению.
4 Ivanych
 
21.02.12
11:54
(1) Был я там, многие ссылки не работают.
5 Mikeware
 
21.02.12
11:55
(4) То, что нужно - работает...
6 D_Pavel
 
21.02.12
11:57
(1) +1.
1с++ отличный компонент, я на нем в детстве делал под 7.7 универсальный отчет.
7 Ivanych
 
21.02.12
11:57
(5)Я первый раз сталкиваюсь с этим. Не нашел инфу как установить все это и подключить(подробно). Если у Вас есть ссылки отпишите.
8 povar
 
21.02.12
11:58
(7) дак скачай компоненту, с ней документация подробная идет
9 Ivanych
 
21.02.12
11:59
(6) Не могу разобраться как подключить эту компоненту.
10 Ivanych
 
21.02.12
12:00
(8) Где? Ели есть ссылка скиньте пожалуйста с инстр
11 Mikeware
 
21.02.12
12:01
12 Mikeware
 
21.02.12
12:02
(9) как и любую другую.
13 antoneus
 
21.02.12
12:03
14 bizon2008
 
21.02.12
12:04
А может проще отчет переписать? Очень часто помогает.
15 Ivanych
 
21.02.12
12:05
(14) Нет не канает.
16 Botanik8888
 
21.02.12
12:06
Пригласить спеца не предлагали? или тут ключевое 1986 г.р.
17 Ivanych
 
21.02.12
12:09
(16) Объем информации большой. Надеялся что будет проще.
18 Botanik8888
 
21.02.12
12:11
судя по 1C7.7 SQL 2005 standart медлено формирутет отчеты - для начала разнесите SQL и терминал по разным физическим серверам.
19 Ivanych
 
21.02.12
12:11
Спасибо за ссылки. Буду пробовать варианты.
20 Ivanych
 
21.02.12
12:13
(18) Это принципиально?
21 Mikeware
 
21.02.12
12:14
(20) Это азбука
22 Ivanych
 
21.02.12
12:14
(18) Если железо загружено на 20-30%
23 Ivanych
 
21.02.12
12:15
(21) А если более подробно почему?
24 Mikeware
 
21.02.12
12:15
долго нам чернобыль будет икаться..
25 Mikeware
 
21.02.12
12:15
(23) сколько?
26 Ivanych
 
21.02.12
12:17
(25) Что сколько?
27 Reaper_1c
 
21.02.12
12:17
(0) На форуме 1Cpp был толковый учебник, который объяснял как строить запросы самому а потом покаывал, что эти запросы реализованы в составе компоненты как виртуальные таблицы.  

P.S. Опять мы мастодонтов возбудили. Ууууууу, ксенофобы...
28 Ivanych
 
21.02.12
12:18
(21) Если это азбука, что сложно объяснить простым языком?
29 bizon2008
 
21.02.12
12:22
(15)Почему не канает? Вы что думаете, ели прямой запрос напишите так сразу быстрей будет. Так не зная, прямой запрос так написать можно, что весь сервер в трубочку свернется.
30 Reaper_1c
 
21.02.12
12:23
(28) Просто перепечатать тебе руководство по ms sql на форум?
31 bizon2008
 
21.02.12
12:24
(22)Где смотрели нагрузку? Неужто в диспетчере задач. Так он врет и не краснеет.
32 Mikeware
 
21.02.12
12:26
(26) "сколько" - денег. потому как ленивых учат только за деньги.
33 Ivanych
 
21.02.12
12:26
(30) Я и сам могу руководство открыть, я рассчитывал что опытные специалисты в краце объяснить толково, а объяснение это азбука я не понимаю.
34 Botanik8888
 
21.02.12
12:27
(28) - без знания основ, т.е. "азбуки" спрашивать что-то бессмыслено... а (33) лишь еще раз говорит о вашей лени...
35 Mikeware
 
21.02.12
12:27
(28) Если азбука - значит, освещено давно и неоднократно. Если вам надо _персональное_ объяснение - будьте готовы к индивидуальному курсу....
36 Андрей_Андреич
 
naïve
21.02.12
12:31
Ладно Вам - я сам уже раз 10 к классам приступал - туплю и все. Волшебного пенделя не хватает. А иам опять задач накидают и не успел.
37 Botanik8888
 
21.02.12
12:33
+(34) в том то и дело что тебе напиши промониторь работу дисков, поставь счетчики... - ты начнешь дальше спрашивать, а как, а что это... в общем пустое это все...
38 D_Pavel
 
21.02.12
12:35
(33) Вот скачай мой отчет, посмотри как сделан, там же в архиве всё для установки компоненты должно быть.
http://1c.proclub.ru/modules/mydownloads/personal.php?lid=6895&cid=5
39 Андрей_Андреич
 
naïve
21.02.12
12:35
В глобальнике
Перем MetaDataWork            Экспорт;    //Объект MetaDataWork
Перем ODBCRecordSet    Экспорт;    //Объект ODBCRecordSet
Если (ЗагрузитьВнешнююКомпоненту("1cpp.dll")=1) Тогда  
MetaDataWork      = СоздатьОбъект("MetaDataWork");
ODBCRecordSet= СоздатьОбъект("ODBCRecordSet");
КонецЕсли;
40 Delorn
 
21.02.12
12:39
(33) Что объяснять то? Как писать прямые запросы? Тебе ссылки уже кинули и как подключать и клевую статью которая поможет войти в тему. По босяцки Терминал делит ресурсы между SQL и пользователями по ровну(ну не совсем по ровну но при хорошей нагрузке с обоих сторон да еще каком нить теневом копировании такие чудеса начинаются).
(39) Ему уже скинули ссылки
как ставить http://www.script-coding.com/1cpp.html
клевая методичка http://script-coding.com/Direct_queries.html
41 Ivanych
 
21.02.12
12:50
(38) Спасибо.
(40) Это точно.
42 Botanik8888
 
21.02.12
12:53
+(40) если точнее то не поровну, а терминал пытается забрать все под себя, SQL под себя, а и отдавать ни тот ни другой даже при простое не хотят... а если еще дисковая подсистема криво построена то хоть обпереписывайся на прямые запросы профита не получишь...
43 Mikeware
 
21.02.12
12:54
(39) наддо одну строку - ЗагрузитьВнешнююКомпоненту("1cpp.dll")
остальное - по задачам...
44 Эльниньо
 
21.02.12
12:55
45 Андрей_Андреич
 
naïve
21.02.12
12:58
(43) Все равно понадобится - может человек на эти строки еще год не наткнется. Чесслово - на 1цпп.ру слишком много всего и новичку уже малореально въехать.
46 Reaper_1c
 
21.02.12
13:00
(45) Новичку надо не трахать мозг, а искать работу на снеговике хотя бы стажером...
47 Злой Бобр
 
21.02.12
13:23
(0) Найди у себя прога который подскажет что и как. Так будет и быстрее и дешевле. Хотя о чем это я?.. Мы ведь тупые и ЖАДНЫЕ.
(46) Да, даешь снеговик в каждый ларек!
48 Reaper_1c
 
21.02.12
13:27
(47) А прямые запросы в ларек - это вершина прагматизма, ага...
49 Delorn
 
21.02.12
13:32
(47) ага и все сайты построенные на 1с...
50 Ёпрст
 
21.02.12
13:59
(0)
читай это
http://www.1cpp.ru/forum/YaBB.pl?num=1148038411

, и скачай эту статью
http://www.1cpp.ru/forum/YaBB.pl?num=1148874473

ну и доккументацию к ВК гляди

http://www.1cpp.ru/docum/html/ODBC.html

и.. этого более чем достаточно..
+BOL еще
51 Ivanych
 
29.02.12
12:01
Спасибо всем еще раз. Вроде начинаю понимать и разбираться что к чему. Вот только у меня еще один вопрос, в инете пока ни где не могу найти. Как выполнить прямой запрос к Бухгалтерским итогам.
Например:
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьРазделительУчета(РазделительУчета);
   Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения, ВыбСклад, 1, 0);
   Ит.ВыполнитьЗапрос(ВыбКонПериода, ВыбКонПериода, "133",,, 1,, "СК");
   Ит.ВыбратьСубконто(ВидыСубконто.МестаХранения);
   Пока Ит.ПолучитьСубконто(ВидыСубконто.МестаХранения) = 1 Цикл    
       Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
       Пока Ит.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл
       КонецЦикла;
   КонецЦикла;
52 Ivanych
 
29.02.12
12:02
И возможно ли это вообще?
53 Ёпрст
 
29.02.12
12:02
(51)самое простое - использовать класс И.Берездецкого
54 Ёпрст
 
29.02.12
12:03
55 Ivanych
 
29.02.12
12:05
(53) Спасибо
56 Ivanych
 
29.02.12
14:39
(54) Извиняюсь. Но еще раз не могли бы подсказать где моя ошибка.
   RS = СоздатьОбъект("AccountsRecordset");
   RS.УстБД1С();
   ТекстЗапроса = "
   |SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной]
   |    , ОсновнойОстатки.Субконто1 [Субконто1 $Субконто]
   |    , ОсновнойОстатки.Субконто1_вид
   |    , ОсновнойОстатки.СуммаОстатокДт
   |    , ОсновнойОстатки.КоличествоОстатокДт
   |FROM $БИОстатки.Основной(:ВыбДата,,(Счет = :ВыбГруппаСчетов),
   |        (ТМЦ),) AS ОсновнойОстатки
   |    INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID
   |ORDER BY ПланСчетов.SCHKOD";
   RS.УстановитьТекстовыйПараметр("ВыбДата", ВыбКонПериода);
   RS.УстановитьТекстовыйПараметр("ТМЦ", ВыбНоменклатура);
   RS.УстановитьТекстовыйПараметр("ВыбГруппаСчетов", ВыбСчет);
   ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
   ТЗ.ВыбратьСтроку();
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший