Имя: Пароль:
1C
1C 7.7
v7: Кто поможет оптимизировать работу 1С 7.7 и sql2008
0 fster29
 
04.02.15
12:04
Доброго дня. Нужен хороший специалист, который сможет удаленно оптимизировать (ускорить) работу 1С 7.7 и sql2008. После перехода с dbf жутко тормозит. Конфигурация самописная, складской учет на бухгалтерских итогах. Пишите в личку fster@mail.ru
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 стоит поставить хотя бы потому, что он умеет бэкапы на лету сжимать.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший