Имя: Пароль:
1C
1C 7.7
v7: Кто поможет оптимизировать работу 1С 7.7 и sql2008
,
0 fster29
 
04.02.15
12:04
Доброго дня. Нужен хороший специалист, который сможет удаленно оптимизировать (ускорить) работу 1С 7.7 и sql2008. После перехода с dbf жутко тормозит. Конфигурация самописная, складской учет на бухгалтерских итогах. Пишите в личку [email protected]
1 fster29
 
04.02.15
12:09
Сервер в тестовом режиме
2 Ёпрст
 
04.02.15
12:10
а зачем переходили на скуль ?
3 Ёпрст
 
04.02.15
12:11
тем более бухня..
4 Mutniy2
 
04.02.15
12:12
ВыбратьПодчиненныеДокументы - это проблема какого скуля 2005 или 2008-? Чето я подзабыл слегонца.
5 fster29
 
04.02.15
12:12
приходится постоянно обрезать базу. Даже на год не хватает. Файл 1SBKTTL переростает допустимые размеры.
6 Ёпрст
 
04.02.15
12:12
(4) обоих.
7 Ёпрст
 
04.02.15
12:13
(5) а 1ssentry какой при этом ?
8 Mutniy2
 
04.02.15
12:13
(0) > Конфигурация самописная, складской учет на бухгалтерских итогах.

Может стоит в принцыпе подумать над переходом на другую конфигурацию?
9 fster29
 
04.02.15
12:14
Использовано Solution7, там проблема "ВыбратьПодчиненныеДокументы" решена
10 Cap_1977
 
04.02.15
12:14
(0) 1SBKTTLC
Содержит рассчитанные бухгалтерские итоги оборотов между синтетическими счетами.

Счета не закрываются ?
11 Ёпрст
 
04.02.15
12:15
и это, если файло итогов "переростает допустимые размеры." всего лишь говорит о незакрытых счетах по субконто, т.е в неверном учете.
Ибо файло проводок, должно расти гооооораздо более опережающими темпами.
12 fster29
 
04.02.15
12:15
(7)  1ssentry на половину меньше.
13 Ёпрст
 
04.02.15
12:16
(12) чтд.
14 Господин ПЖ
 
04.02.15
12:16
переделать на РН - не предлагать?
15 Artful Den
 
04.02.15
12:16
А что конкретно то тормозит?
Так то прямые запросы тебе в помощь. Хотя по трудозатратам может лучше будет рассмотреть вариант (8).
Если есть бюджет на это, то можешь заглянуть на 1csql.ru или softpoint.ru
16 fster29
 
04.02.15
12:16
(10) Нужен свежий взгляд, я уже истощен)
17 Ёпрст
 
04.02.15
12:16
при таком размере файла проводок, 1SBKTTLC должен быть как минимум, раза в 4 меньше (или еще меньше) чем файло проводок.
18 Cap_1977
 
04.02.15
12:17
(16) Започем он "свежий взгляд"-то по нынещним временам ?
19 fster29
 
04.02.15
12:19
Основные тормоза
ostBombazh = БухИтоги.СКД(СчетПоКоду("41.1"),3,,ТекущийЭлемент(), const.bomb_sklad); // ak // 2009_04_15
        ostBombazh8 = БухИтоги.СКД(СчетПоКоду("41.1"),3,,ТекущийЭлемент(), const.bomb_sklad8); // ak // 2009_04_15
        ostнедост = БухИтоги.СКД(СчетПоКоду("41.1"),3,,ТекущийЭлемент(), const.СкладНедосдач);
        ostнедовоз = БухИтоги.СКД(СчетПоКоду("41.1"),3,,ТекущийЭлемент(), const.СкладНедовозов);
        ostзаозер = БухИтоги.СКД(СчетПоКоду("41.1"),3,,ТекущийЭлемент(), const.СкладЗаозерный);
20 Ёпрст
 
04.02.15
12:19
А как там гришь складской учет у вас на бухне реализован ?
Поди субсчетов наплодили и субконто штук 5 ?
21 Artful Den
 
04.02.15
12:21
(19) это поди колонки в форме списка, да?
22 fster29
 
04.02.15
12:22
Это в форме справочника, отражает текущее количество по строчке. Еле ползет бегунок при скролинге. На дбф летит
23 Mutniy2
 
04.02.15
12:22
(10) > Счета не закрываются ?

Похоже на то. Тогда тем более (8) Потому что разгребать дороже обойдется.

(15) > Так то прямые запросы тебе в помощь.

Прямые запросы не дают того выигрыша о котором все говорят. Некоторые вещи и впрямь быстрее и удобнее делать, но не все.
Я пробовал оптимизировать проведение - ощутимого выигрыша не получил. По тестам даже кое-где проиграл.
24 Mutniy2
 
04.02.15
12:23
(22) > Это в форме справочника, отражает текущее количество по строчке. Еле ползет бегунок при скролинге. На дбф летит

Этому через кешь помочь можно. Несложно.
25 fster29
 
04.02.15
12:24
Прайс лист формируется 11 минут, на дбф меньеш минуты...
26 Mutniy2
 
04.02.15
12:24
+(24) Во первых вместо счетПоКоду - используй заготовленные переменные.
Во вторых сделай кешь значений остатков.
В третьих нефиг дрочить БД запрашивая постоянно ТекущийЭлемент().
27 fster29
 
04.02.15
12:25
Система: WS server 2008 r2 x64+sql server x64+Raid SSD
28 Mutniy2
 
04.02.15
12:26
(25) кидай мд на почту, посмотрю.
И ТЗ делай, хотябы перечеь узких мест.
29 fster29
 
04.02.15
12:30
(10) Может и не закрываются, взаиморасчеты скорее всего висят
30 _KaA
 
04.02.15
13:10
(19) Я конечно извиняюсь, а получить сразу итоги по 5 складам и потом их обработать нельзя в 7.7?
31 fster29
 
04.02.15
15:40
(26) "Сделай кеш значений остатков" - не очень понял что вы имели ввиду.

"В третьих нефиг дрочить БД запрашивая постоянно ТекущийЭлемент()" - а как их не дрочить, если нужно знать текущий остаток, при подборе товара в реализацию...
32 Злопчинский
 
04.02.15
15:56
(30) можно
33 Builder
 
04.02.15
16:24
(31) Сделать промежуточную таблицу значений, например.
В нее складывать остаток по товарам, которые уже отображались на форме. Искать в ней, если нет товара - сделать запрос и положить в таблицу. Тогда при скролинге не будет постоянных запросов по одинаковым товарам.
34 fster29
 
04.02.15
16:31
(33) Одновременно работают 20 операторов в программе, остатки меняються... вариант такой не подходит.
35 Builder
 
04.02.15
17:09
(34) Это для подбора. Закрыл окно подбора - ТЗ очистилась.
36 Mutniy2
 
04.02.15
20:57
(34) > Одновременно работают 20 операторов в программе, остатки меняються... вариант такой не подходит.

подходит. чисть кешь раз в минуту и норм.
37 Mutniy2
 
04.02.15
20:57
+(36) ну еще есть пара вариантов с актуальным кешем, но там химия....
38 Вуглускр1991
 
04.02.15
21:17
Эх! Может и впрямь вспомнить молодость, когда вместо таблиц вьюхи подставлял. (0) смотрел в эту сторону?
39 fster29
 
05.02.15
11:54
(38) Добрый день, это как?
40 Андрюха
 
05.02.15
11:58
(0) Советую прямые запросы.
(23) Ты просто не умеешь их готовить.
41 fster29
 
05.02.15
12:00
(40) Искал, не нашел толкового примера прямого запроса к бухгалтерским итогам. Аналогичный этому функционалу например: БухИтоги.СКД(СчетПоКоду("41.1"),3,,ТекущийЭлемент(), const.bomb_sklad8);
42 Андрюха
 
05.02.15
12:15
(41) http://www.1cpp.ru/forum/YaBB.pl?num=1168603103/250#250

ар = СоздатьОбъект("AccountsRecordset");
ТекстЗапроса = "
    |SELECT Субконто1 [Бланк $Документ]
    |    , Субконто2 [Бронь $Документ.Бронь]
    |    , КоличествоОборотДт
    |    , КоличествоОборотКт
    |FROM $БИОбороты.Основной(:РабочаяДата, :РабочаяДата ~,,,,
    |        (Субконто1, Субконто2),
    |        Субконто1 IN (SELECT val FROM #Бланки)
    |        AND Счет = :БПК
    |        AND КорСчет = :БЛТ,,
    |        БезСубконто
    |    ) AS БИОборотыОсновной
    |";
ар.УстановитьТекстовыйПараметр("РабочаяДата", РабочаяДата());
ар.УстановитьТекстовыйПараметр("БПК", БПК);
ар.УстановитьТекстовыйПараметр("БЛТ", БЛТ);
ар.УложитьСписокОбъектов13(Дк, "#Бланки");
тз = ар.ВыполнитьИнструкцию(ТекстЗапроса);
43 Андрюха
 
05.02.15
12:17
Это конечно не пример, антологичный требуемому, но очень хорошая подсказка. Делай по образу и подобию, экспериментируй и смотри что будет падать в результат.
44 Андрюха
 
05.02.15
12:20
Результат тебя поразит, вместо 2-х минутного скрежета штатного механизма, ты практически моментально получишь таблицу значений с выборкой.
45 Вуглускр1991
 
05.02.15
20:47
(39) это вот так
http://www.sql.ru/docs/sql/u_sql/ch20.shtml
я создавал параметризуемые представления основных 1Совских таблиц, перед проведением устанавливал параметры, снижая тем самым объем выдаваемых данных, потом проводил документ, потом устанавливал пустые параметры, приводя представления в исходный вид. Следил за индексами, чтобы правильно обновлялись при записи в таблицу, строил свои дополнительные индексы, чтобы view-хи быстро работали.
Замедление по сравнению с вариантом dbf выходило не более, чем в 3-5 раз, но это на отдельных операциях. База приобрела стабильность работы и большое ускорение на других операциях, под которые и затачивались представления.
46 Изучаю1С8
 
06.02.15
01:37
У меня такая конфигурация примерно.
Перешел на скл, основные проблемы были с подбором.
Добавил регистр по товарам, прописал движуху в существующий документах, переписал подбор и проведение тормознутых доков на прямые запросы по регистру.
Переписал получение цен на параметризированные запросы, где то на odbc где-то на классе прямой запрос.
47 Злопчинский
 
06.02.15
01:46
Может проще было потраченные на это деньги работодателя тупо вложить в улучшение железа?
48 Изучаю1С8
 
06.02.15
01:49
(47) Тут этого не требуется я подозреваю. Надо просто переписать узкие места.
49 Злопчинский
 
06.02.15
02:39
(48) смотря сколько ты это оптимизировать будешь
Если пару дней то да
Если пару месяцев то проще в железо вложиться
50 DrZombi
 
гуру
06.02.15
07:12
(0) Зачем вам Скуль, на 7.7 и еще 2008-ой?
...ТС знатный извращенец :)...
51 DrZombi
 
гуру
06.02.15
07:14
+(23) >>> По тестам даже кое-где проиграл
Прямой запрос, тоже надо оптимизировать ;)
52 fster29
 
06.02.15
16:58
(49) Железо только купленно, свежайщее
53 fster29
 
06.02.15
17:03
(50) не хочется на современном железе ставить WS2003 x64 + sql 2000 x86
54 Dolly_EV
 
11.02.15
14:47
(0) самый здравый ответ в (46) имхо
55 ADirks
 
12.02.15
09:31
(50) 2008 SQL стоит поставить хотя бы потому, что он умеет бэкапы на лету сжимать.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший