Имя: Пароль:
1C
1C 7.7
v7: Странное поведение отчета на SQL'льной базе.
0 Maximysis
 
06.01.13
16:31
Всем доброго дня.
При переходе на эскуэльную (MSSQL 2008 R2) базу один отчет стал формироваца дольше, с нарастанием. Под дбфной базой формировался около 5-10 минут, под сиквелом первый раз около часа затем 2часа. После ночного полного быкапа, вообще завис на 5 часов. Отчет в цикле бежит по большому справочнику номенклатуры + несколько циклов по бух итогам. Кто знает в чем может быть дело???
1 Amra
 
06.01.13
16:33
(0) В кривизне рук писавшего.
2 Cthulhu
 
06.01.13
16:33
в нескольких циклах по бухитогам.
3 Maximysis
 
06.01.13
16:33
Совместимость эскуэля 2005. Железка ксеон, 16г озу.
4 zak555
 
06.01.13
16:33
дело в нескольких циклах ?
5 Maximysis
 
06.01.13
16:36
(2) что с бух итогами под SQL не так, просветите.....
6 Cthulhu
 
06.01.13
16:36
(5): всё.
7 Gepard
 
06.01.13
16:39
плюс к этому все циклы поменять на запросы)
8 Maximysis
 
06.01.13
16:39
(1) гладко рукий подскажи начинающему в чем может быть грабля...
9 Maximysis
 
06.01.13
16:41
(7) цикл по справочнику менял на запрос, под скулем эфект тодже.
10 zak555
 
06.01.13
16:41
запрос будет или нет ?
11 Maximysis
 
06.01.13
16:42
первые запуски работает сравнительно быстро, нагрузка на базу одинаковая.
12 ДенисЧ
 
06.01.13
16:48
"Отчет в цикле бежит по большому справочнику номенклатуры +
несколько циклов по бух итогам"

За такое - поставить мордой к стенке и пустить пулю в лоб, на 10 лет без права переписки
13 Maximysis
 
06.01.13
16:50
вот так в запросе
14 Maximysis
 
06.01.13
16:50
ТекстЗапроса =
"//{{ЗАПРОС(ЗапросНов)
|Период с ВыбНачПериода по ВыбКонПериода;
|Код = Справочник.Товар.ТекущийЭлемент.Код;
|Товар = Справочник.Товар.ТекущийЭлемент, Документ.Счет.Наименование,Документ.СчетАстана.Наименование,Документ.СчетПетро.Наименование,Документ.СчетСемей.Наименование,Документ.СчетАлматы.Наименование,Документ.СчетПавлодар.Наименование,Документ.СчетУК.Наименование,Документ.СчетКараганда.Наименование;
|Кол = Документ.Счет.Кол,Документ.СчетАстана.Кол,Документ.СчетПетро.Кол,Документ.СчетСемей.Кол,Документ.СчетАлматы.Кол,Документ.СчетПавлодар.Кол,Документ.СчетУК.Кол,Документ.СчетКараганда.Кол;
|ОтКол = Документ.Счет.ОтКол,Документ.СчетАстана.ОтКол,Документ.СчетПетро.ОтКол,Документ.СчетСемей.ОтКол,Документ.СчетАлматы.ОтКол,Документ.СчетПавлодар.ОтКол,Документ.СчетУК.ОтКол,Документ.СчетКараганда.ОтКол;
|Заявка = Документ.Счет.Заявка,Документ.СчетАстана.Заявка,Документ.СчетПетро.Заявка,Документ.СчетСемей.Заявка,Документ.СчетАлматы.Заявка,Документ.СчетПавлодар.Заявка,Документ.СчетУК.Заявка,Документ.СчетКараганда.Заявка;
|КолОст = Документ.Счет.КолОст,Документ.СчетАстана.КолОст,Документ.СчетПетро.КолОст,Документ.СчетСемей.КолОст,Документ.СчетАлматы.КолОст,Документ.СчетПавлодар.КолОст,Документ.СчетУК.КолОст,Документ.СчетКараганда.КолОст;
|Мес = Документ.Счет.Мес,Документ.СчетАстана.Мес,Документ.СчетПетро.Мес,Документ.СчетСемей.Мес,Документ.СчетАлматы.Мес,Документ.СчетПавлодар.Мес,Документ.СчетУК.Мес,Документ.СчетКараганда.Мес;
|Цена = Документ.Счет.ЦенаРасхода,Документ.СчетАстана.ЦенаРасхода,Документ.СчетПетро.ЦенаРасхода,Документ.СчетСемей.ЦенаРасхода,Документ.СчетАлматы.ЦенаРасхода,Документ.СчетПавлодар.ЦенаРасхода,Документ.СчетУК.ЦенаРасхода,Документ.СчетКараганда.ЦенаРасхода;
|Контрагент = Документ.Счет.Контрагент,Документ.СчетАстана.Контрагент,Документ.СчетПетро.Контрагент,Документ.СчетСемей.Контрагент,Документ.СчетАлматы.Контрагент,Документ.СчетПавлодар.Контрагент,Документ.СчетУК.Контрагент,Документ.СчетКараганда.Контрагент;
|ЗаявкаКлиент = Документ.Счет.ЗаявкаКлиент,Документ.СчетАстана.ЗаявкаКлиент,Документ.СчетПетро.ЗаявкаКлиент,Документ.СчетСемей.ЗаявкаКлиент,Документ.СчетАлматы.ЗаявкаКлиент,Документ.СчетПавлодар.ЗаявкаКлиент,Документ.СчетУК.ЗаявкаКлиент,Документ.СчетКараганда.ЗаявкаКлиент;
|ДляКлиента = Документ.Счет.ДляКлиента,Документ.СчетАстана.ДляКлиента,Документ.СчетПетро.ДляКлиента,Документ.СчетСемей.ДляКлиента,Документ.СчетАлматы.ДляКлиента,Документ.СчетПавлодар.ДляКлиента,Документ.СчетУК.ДляКлиента,Документ.СчетКараганда.ДляКлиента;
|Изм = Документ.Счет.Изм,Документ.СчетАстана.Изм,Документ.СчетПетро.Изм,Документ.СчетСемей.Изм,Документ.СчетАлматы.Изм,Документ.СчетПавлодар.Изм,Документ.СчетУК.Изм,Документ.СчетКараганда.Изм;
|Опл = Документ.Счет.Оплачено,Документ.СчетАстана.Оплачено,Документ.СчетПетро.Оплачено,Документ.СчетСемей.Оплачено,Документ.СчетАлматы.Оплачено,Документ.СчетПавлодар.Оплачено,Документ.СчетУК.Оплачено,Документ.СчетКараганда.Оплачено;
|Срок = Документ.Счет.Срокплатежа,Документ.СчетАстана.Срокплатежа,Документ.СчетПетро.Срокплатежа,Документ.СчетСемей.Срокплатежа,Документ.СчетАлматы.Срокплатежа,Документ.СчетПавлодар.Срокплатежа,Документ.СчетУК.Срокплатежа,Документ.СчетКараганда.Срокплатежа;
|ПоказыватьВОтчете = Документ.Счет.ОтображатьВОбщихОстатках,Документ.СчетАстана.ОтображатьВОбщихОстатках,Документ.СчетПетро.ОтображатьВОбщихОстатках,Документ.СчетСемей.ОтображатьВОбщихОстатках,Документ.СчетАлматы.ОтображатьВОбщихОстатках,Документ.СчетПавлодар.ОтображатьВОбщихОстатках,Документ.СчетУК.ОтображатьВОбщихОстатках,Документ.СчетКараганда.ОтображатьВОбщихОстатках;
|Группировка Товар упорядочить по Товар.Наименование;
|Группировка Документ;
|Группировка СтрокаДокумента;
|Условие (ПоказыватьВОтчете=1);
|";
15 zak555
 
06.01.13
16:52
(14) бухЗапрос не в може ?
16 zak555
 
06.01.13
16:52
*не в моде ?
17 spock
 
06.01.13
16:55
(14)Все хорошо в запросе и архитектуре, но, мне кажется, что проблема из-за этих документов: Семей и Петро.
18 zak555
 
06.01.13
16:55
> Товар = Справочник.Товар.ТекущийЭлемент, Документ.Счет.Наименование

это как ?
19 Maximysis
 
06.01.13
16:58
(18)Наименование реквизит таблицы документа, тип справочник.
20 zak555
 
06.01.13
17:00
(19) документы никаких движений не делают ?
21 Maximysis
 
06.01.13
17:05
Вчера отчет РАБОТАЛ весь день. сегодня висит. Что код корявый, так это ясно, отчет не мой.
22 Нуф-Нуф
 
06.01.13
17:05
переходите на 8ку. там это реализовано
23 zak555
 
06.01.13
17:06
(21) перепиши
24 zak555
 
06.01.13
17:06
(22) там тоже будет тормозить
25 Maximysis
 
06.01.13
17:08
(20) нет не делают.
26 zak555
 
06.01.13
17:09
(25) я правильно понимаю, что документы СчетАстана/СчетПетро/СчетСемей... различаются только в наименование контрагента ?
27 Эмбеддер
 
06.01.13
17:13
такой запрос надо точно на SQL провести
странно еще что в тексте запроса нет "ОбрабатыватьДокументы Проведенные"
28 Maximysis
 
06.01.13
17:18
(26) Нет, дебил, который писал эту конфигу, делал отдельные документы для каждого филиала.
Еще раз попытаюсь объяснить суть проблемы:
Отчет вчера отработал весь день много раз (висит в планировщике). Сегодня одна отработка занимает 4,5 часа.
Единственное, что делали в промежутке с сиквельной базой - ее полный бакап.
То, что отчет кривой, понятно, но пока он работал, руки до него не доходили...
29 Maximysis
 
06.01.13
17:19
(27) Так и должно быть.
30 Maximysis
 
06.01.13
17:23
(26) Счет.Астана.Наименование - это не контрагент, а реквизит табличной части, тип - Справочник.Товар
31 МихаилМ
 
06.01.13
17:24
замените
|Группировка Товар упорядочить по Товар.Наименование;

на
|Группировка Товар без упорядочивания;

уже будет заметно быстрей
32 zak555
 
06.01.13
17:24
(28) так сделай правильные документы - перенеси в них инфу, убей доки  СчетАстана/СчетПетро/СчетСемей...
33 Maximysis
 
06.01.13
17:27
(31) Не могу. В выборке участвуют группы, которые должны лечь в выходную форму именно с сортировкой по наименованию
34 kiruha
 
06.01.13
17:29
(0)
Перепиши на прямые
Будет сек 20
Ну и документы в запросе - это ужас
35 kiruha
 
06.01.13
17:29
должен быть регистр
Если нет - надо завести
36 МихаилМ
 
06.01.13
17:30
(33)
отсортируйте на клиенте в ТЗ.
37 Maximysis
 
06.01.13
17:35
(32) так и делаем! Если бы вы видели, что было год назад в этой базе! Но время, время!

Сама запрос работает достаточно быстро, я проверял, и не цепляйтесь к запросу особо. Но вот дальше идет примерно следующее:
Пока Запрос.Группировка("Товар")=1 Цикл
 ТМЦ=Запрос.Товар;
 Для Номер = 1 По СписокСчетов.РазмерСписка() Цикл
   Счет=СписокСчетов.ПолучитьЗначение(Номер);
 Остаток = Остаток + (БИ.СКД(текСчет, "К",, ТМЦ));
КонецЦикла

А в списке счетов штук 10 !
38 Maximysis
 
06.01.13
17:43
(35) Точно, надо регистры завести... Перелопатить все документы, переписать все отчеты (а их в этой базе о-очень много), вместо того, чтобы заниматься переходом на 8-ку.
39 Maximysis
 
06.01.13
17:48
И таких списков счетов три штуки, плюс по одному из них еще и суммовые отстатки рассчитываются...
40 Maximysis
 
06.01.13
17:50
Вчера было нормально, сегодня - нет. Первый ночной бакап в промежутке. Что могло произойти??!!
41 zak555
 
06.01.13
17:53
(38) тогда переводи, а не выискивай причину тормозов
42 Maximysis
 
06.01.13
18:00
(41) См. (40) По делу есть что сказать? Без обид только, и без фраз типа "мы тебе помогаем, а ты еще и выпендриваешься?"
43 КонецЦикла
 
06.01.13
18:08
Ептыть
Вот так всегда, дятлы думают, что их спасет SQL 2008 или 2012, а может даже 1С 8.2 или 8.3
А сами пишут кривой код...
44 Maximysis
 
06.01.13
18:16
(43) Ептыть, под дятлом ты себя в виду имеешь?
Все, закрыта тема, начались словоблудия..
45 КонецЦикла
 
06.01.13
18:19
(44) Я руководствуюсь принципом разумной необходимости
Нормально работает - не трогай
Зачем тебе надо было использовать 2008 SQL если запросы не пишешь?
46 КонецЦикла
 
06.01.13
18:24
Переписать этот отчет можно за один день с перекурами
И не нужно валить все на кривых предшественников
Это проще всего - годами вспоминать какого-то дебила, сделавшего кривую структуру базы и кривые отчеты
47 Maximysis
 
06.01.13
18:29
Насчет разумной необходимости - полностью согласен, сам ему стараюсь следовать. Сидели на дбф - я этот отчет не трогал - работает - у пусть работает, других дел по горло. И SQL я бы пока что в гробу видал, и запрос это не мой, сколько раз повторять?
Но размер 1sentry.dbf достиг 1,96 Гб, куда деваться было?! А базу резать нет возможности пока! Ребята, все-таки см (40)
48 Maximysis
 
06.01.13
18:35
(46)Валю в данном случае. За полтора года из полного дерьма, где не было вообще ничего для бухгалтерии, я сделал хотя и не стандартную, но все-таки вполне рабочую конфигурацию, не знаете, какой объем работы пришлось сделать - сидите и не.. молчите
49 КонецЦикла
 
06.01.13
18:38
(48) Ну так и отчет переделай... или он был последней каплей? Иссякли силы? Давай помогу занидорага...
50 Maximysis
 
06.01.13
18:40
(49) Лучше над (40) подумай..
51 КонецЦикла
 
06.01.13
18:42
(50) Смахни пыль с констант :)
52 VladZ
 
06.01.13
18:48
(14) СчетАстана, СчетПетро, СчетСемей, СчетАлматы, СчетПавлодар,СчетУК - жуть... Найти, кто это писал и поставить ему клизму... Глядишь, поумнеет...
53 КонецЦикла
 
06.01.13
18:50
Вместе с бэкапом никаких регламентных действий не производилось? Настройки сервера остались прежними? Можно откатиться на какую-то резервную копию чтобы убедиться в причине.
54 Нуф-Нуф
 
06.01.13
18:50
55 Maximysis
 
06.01.13
19:31
(52) Счета на оплату - это мелочи.. Еще есть расходные накладные. Когда я пришел, не было ни кассы, ни банка, никаких счетов-фактур, основных средств, в одних документах Количество называлось Кол, в других - Колво, контрагенты были и Плательщиками, и Поставщиками, разделителя учета нет, и т.д. и т.п.
(53) Никаких регламентных, чистый бакап - и все.
56 КонецЦикла
 
06.01.13
19:49
(55) Это был первый бэкап?
Можно восстановить в копию бэкап 2-3 дневной давности
Можно поставить 2005 SQL
Вообще отчеты бывают разными... я видел такое творение, когда отчет проводил документы...
57 Maximysis
 
06.01.13
19:55
Первый. На скуль перешли 5-го числа.
А чем может спасет 2005 ? (не ирония, спрашиваю серьезно)
58 КонецЦикла
 
06.01.13
20:01
(67) ХЗ... просто работает :)
Не видел отчет, но для SQL переборы - это обычно жесть
Попробуй рестартануть сервер, неужели время формирования будет все время увеличиваться
Перепиши да и делу конец
59 Maximysis
 
06.01.13
20:13
Перешли на скуль 4-го, пардон, впрочем, не важно...
Рестарт буду сейчас пробовать, в Алмате только недавно работать магазины закончили..
Куда же от переборов-то деваться... :-)
Ладно, всем спасибо за участие... пошел.
60 Злой Бобр
 
07.01.13
17:35
(0) Переписывай отчет.
61 raykom
 
07.01.13
17:54
Налейте уже Бобру :)
62 toypaul
 
гуру
07.01.13
17:55
думаю что дело в "нескольких циклах по бухитогам", которые создают временные таблицы.
63 toypaul
 
гуру
07.01.13
17:57
2008й сервер ... тогда наверное нет. хотя... все может быть. можно запустить профайлер в отладчике и на коротком периоде посмотреть что именно тормозит.
64 raykom
 
07.01.13
17:59
(63)Ну наконец то ... (С)Гук
А то все говорят про как еще не зная что )
Закон Брукера: Даже маленькая практика стоит большой теории.