Добрый день!

Суть проблемы:
В базе данных "1С:Предприятие 8. Общепит (2.0.64.14)" (отраслевое решение на базе Бухгалтерии 2.0), расположенной на Microsoft SQL Server 2008, "сломались" субконто. Объясню на примере:

Запрос вида

```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ОстаткиИОбороты.Счет КАК Счет,
    ОстаткиИОбороты.Субконто1 КАК Субконто1,
    ОстаткиИОбороты.Субконто2 КАК Субконто2,
    ОстаткиИОбороты.Субконто3 КАК Субконто3,
    ОстаткиИОбороты.Организация КАК Организация,
    ОстаткиИОбороты.Валюта КАК Валюта,
    ОстаткиИОбороты.Подразделение КАК Подразделение,
    ОстаткиИОбороты.СуммаОборотДт КАК БУОборотДт,
    ОстаткиИОбороты.СуммаОборотКт КАК БУОборотКт
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Счет В ИЕРАРХИИ (&Счет), , ) КАК ОстаткиИОбороты
```

отрабатывает менее чем за секунду.

Запрос вида

```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ОстаткиИОбороты.Счет КАК Счет,
    ОстаткиИОбороты.Субконто1 КАК Субконто1,
    ОстаткиИОбороты.Субконто2 КАК Субконто2,
    ОстаткиИОбороты.Субконто3 КАК Субконто3,
    ОстаткиИОбороты.Организация КАК Организация,
    ОстаткиИОбороты.Валюта КАК Валюта,
    ОстаткиИОбороты.Подразделение КАК Подразделение,
    ОстаткиИОбороты.СуммаОборотДт КАК БУОборотДт,
    ОстаткиИОбороты.СуммаОборотКт КАК БУОборотКт
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Счет В ИЕРАРХИИ (&Счет), , Субконто1 = &Контрагент) КАК ОстаткиИОбороты
```

отрабатывает более 15 минут.

То есть, как я понимаю, нарушились индексы субконто. Я слышал, что подобные проблемы возникают у людей, которые пытаются добавить четвертое и более субконто (т.к. не хватает индексов SQL), однако никаких подобных махинаций совершено не было. Проблема замечена при формировании стандартного отчета бухгалтерии "Оборотно-сальдовая ведомость по счету" по счету 60 (соответственно с отбором по контрагенту, и без отборов).

Предыстория:
1) Для работы с базой "свежей" бухгалтерии 3.0 была обновлена платформа 1С: с 8.3.5.1517 до 8.3.6.2076.
2) Бухгалтерия начала жаловаться на то, что в базе "1С:Предприятие 8. Общепит (2.0.64.14)" невозможно открыть два одинаковых отчета одновременно (при повторном открытии отчета стал разворачиваться уже открытый отчет). Ответ был обнаружен в интернете: действительно такая проблема/ФИЧА обнаружена на всех релизах платформы 8.3.6.*.
3) Было решено вернуться на платформу 8.3.5.1517.
4) Была замечена проблема с субконто, возможно это связано с откатом платформы.

Попытки решения проблемы:
1) Реиндексация таблиц информационной базы и пересчет итогов;
2) Проверка логической целостности информационной базы;
3) Реструктуризация таблиц информационной базы;
4) Выгрузка базы в файл .db и его загрузка в пустую базу;
5) Повторное обновление платформы до 8.3.6.2076.

Все эти махинации никакого эффекта не дали.
Прошу Вашего совета, может быть кто-то сталкивался с подобной проблемой. Как можно восстановить работу субконто?
---
obsfromekb, То что не сразу выявили - это конечно не совсем хорошо..Просто попробуйте на демо базе мой вариант, и посмотрите что будет с субконто.
Без разницы какой функционал у конфигураций(старой на 8.3.5 и новой на 8.3.6), главное что он одинаковый. Пусть хоть самописная конфа будет, обработка спасет.
---
obsfromekb, Если до перехода на 8.3.6 был сделан архив, тогда решение простое. Восстановить бэкап (который был еще на 8.3.5), перекинуть на него все добавленные(созданные) документы обработкой обмена данными между идентичными конфигурациями и будет Вам счастье.
---
MyPuK_OLD, проблема в том, что ситуация с субконто была выявлена не сразу. Кроме того в работе используется не только типовой функционал и полный план обмена не подойдет. Такое решение рассматриваю, как самый крайний вариант.
---
obsfromekb, То что не сразу выявили - это конечно не совсем хорошо..Просто попробуйте на демо базе мой вариант, и посмотрите что будет с субконто.
Без разницы какой функционал у конфигураций(старой на 8.3.5 и новой на 8.3.6), главное что он одинаковый. Пусть хоть самописная конфа будет, обработка спасет.
---
MyPuK_OLD, Спасибо, что попытались помочь. Отдал Вам символическую плату. Ваш вариант тоже рабочий, но более трудозатратный в моем случае.
---
Только что на копии удалось восстановить работу субконто.
Сработала связка:
1) Реструктуризация таблиц информационной базы;
2) Пересчет итогов.

Может кому-то пригодится. Реструктуризацию я выполнял в последнюю очередь и когда после неё ничего не изменилось, то создал тему на форуме. Однако заметил, что после неё и отчет без отборов формируется долго, запустил пересчет итогов уже ни на что особенно не рассчитывая. Но сработало!
---
А точно проблема не в планах запросов на самом SQL-сервере?
Может копнуть в сторону DBCC FREEPROCCACHE и DBCC INDEXDEFRAG ?
---
v3rter, Никакие изменения в работу SQL-сервера не вносились, было бы странно если планы запросов при этом вдруг начали настолько не оптимально работать, как считаете?
---
Ну а на что ещё можно подумать в первую очередь при тормозах на SQL-сервере, кроме нехватки оперативы?
На неоптимальные планы, необновлённую статистику, недефрагментированные индексы.

Когда знакомый франч показывал мне, как ставится 1С на SQL, кроме массы мелких моментов, упоминались коэффициент заполнения индексов (fillfactor) 50%, асинхронное обновление статистики и скрипт по дефрагментации индексов, который есть в примерах хелпа SQL (допиливается руками добавлением проверки на > 30% или так http://habrahabr.ru/post/155933/ )

Возможно, с тех пор эта информация устарела, не знаю.

А за новую "связку" по борьбе с тормозами спасибо, буду пробовать.