| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > 1С: можно-ли ускорить формирование отчетов? |
| Автор: Poseidon 17.7.2011, 20:09 |
| Суть вот в чем. Имеется 1С: Бухгалтерия 7.7 База данных файловая. Папка с базой находится на отдельном сервере. Так вот, при формировании отчета по складу 1С зависает на минуту - две. Вплоть до "программа не отвечает". Да, номенклатура материалов большая. Отчет в печатной форме занимает листов 15-20. Но все-же 2 минуты ждать - это много. А еще если бухгалтер забыла сменить дату нужного отчета, а потом еще забыла указать нужный счет... Короче нервы у бухов уже не выдерживают Что интересно, если попробовать скопировать папку с БД себе на компьютер и настроить 1С что бы брала данные оттуда, то отчет формируется секунд за 5. Т.е., мне кажется, дело все в том, что доступ к базе идет через сеть. Сеть обычная, через витую пару. Соединение: бухи - свитч - свитч - сервер. Расстояние звена не более 20 метров. Лишних файловых операций сервер не делает никаких. Т.е. никто с него ничего не качает и т.п. Еще была замечена закономерность: если зайти монопольно, то отчет так же формируется в разы быстрее. Так вот вопрос, есть ли возможность как-то ускорить процесс? Бухов работает 5. Т.е. вносят данные. Но доступ к отчетам есть и у других отделов. Всего теоретически возможен одновременных запуск 7-10 клиентов. Подумываю тут попробовать перевести базу в SQL. Пока еще плохо понимаю как это получится и что выйдет. Есть еще варианты? |
| Автор: SaschaL 18.7.2011, 12:20 |
| Добрый день! На самом деле указанное вами время для 1С 7.7 это не так уж и долго. Конечно имеет смысл рассмотреть вариант перевода базы на СКЛ сервер, так же можно поглядеть как формируется отчет, есть вероятность что можно оптимизировать запрос на получение данных для отчета. Однозначно конечно сказать нельзя, в каждом конкретном случае нужно разбираться отдельно |
| Автор: Poseidon 20.7.2011, 16:12 | ||||
|
| Автор: owc 20.7.2011, 23:37 |
| пусть отчет формируют на сервере удаленно - в чем проблема? |
| Автор: Poseidon 21.7.2011, 10:07 |
| Проблема в непонимании как это сделать. Как организовать одновременный доступ нескольких пользователей к формированию отчетов на сервере? При этом что бы у них не было доступа к самому серверу (его настройкам, файлам и т.п.), а то они мне там наформируют... |
| Автор: _Valery_ 21.7.2011, 21:15 | ||
Это уже не по 1С вопрос) Вам необходимо участие сисадмина. Если терминальный сервер не установлен, насколько я знаю возможно только 3 одновременных терминальных подключения. Если нужно больше - надо ставить терминальный сервер, настраивать доступ... |
| Автор: Poseidon 22.7.2011, 08:10 |
| Не, ребята, не туда мы отклонились. Нанимать админа, устанавливать отдельный сервер и т.п. никто не будет. Меня интересует как средствами 1С ускорить формирование отчетов. По ответам я понимаю, что никак. |
| Автор: _Valery_ 22.7.2011, 22:28 |
| Попробовать оптимизировать код отчета. Запустить замер производительности - посмотреть какая операция съедает много времени. Был опыт когда отчет нетиповой формировался на 77 несколько суток - после оптимизации стал формироваться 2 минуты. Но скорее всего в вашем (типовой, кстати??) отчете больше всего времени занимает запрос к регистрам, с ним ничего не поделаешь =) Делайте регулярно переиндексацию базы, сжатие таблиц - посредством механизма "Тестирование и исправление" в Конфигуратора, вроде в 77 это есть. Может будет побыстрее работать. |
| Автор: 2man 25.7.2011, 12:46 |
| Poseidon, если БД 1Ски файловая, то можно смело поднимать виндовый сервер 2003/2008, на нем же поднимать сервер терминалов. Кури http://www.oszone.net/135/. Если не поможет, тогда оптимизировать код. Бывали в моей практике случаи, когда в тиражной обработке заполнение таблицы значений остатков товаров занимало около 3 минут (остатки по счету ~3500 наименований). После оптимизации - вся процедура стала занимать 6 (!) секунд. Но тебе, как не-программисту 1С, лучше в код не лазить. Вызовите франча или стороннего программера, если первое не поможет. |
| Автор: SaschaL 26.7.2011, 06:51 |
| Ну как варинт переписать отчет с использование внешней компаненты 1С++, это на тот случай если варантов уже не остается |
| Автор: Poseidon 26.7.2011, 08:15 |
| Вы вот мне объясните, как возможно что не оптимизированный код (допустим) на компе, где непосредственно лежит база, выполняется почти мигом, а если через сеть, то уже тормоза. Там как-то этот код по другому выполняется или что? |
| Автор: 2man 26.7.2011, 08:32 |
| Грубо говоря у тебя при нынешней системе - ты формируешь отчет, 1Ска по сети полезла "доставать" нужные файлы с сервака, ищет, перебирает, "вытягивает" оттуда данные, ищет следующие. И так пока не заполнит полностью отчет. При RDP все действия выполняются на сервере, через сеть передается лишь экран. Ответ очевиден Если на пальцах, то представь ситуацию. У тебя дома 2 компа: стационарный и ноутбук. Ты хочешь посмотреть на ноутбуке фильм, который записан на стационаре. Фильм здоровенный в HDTV качестве, гигов на 7 тянет. Вариант 1: ты копируешь файл по сетке на ноутбук (вот это как у тебя сейчас). Вариант 2: ты включаешь фильм на стационарном, а ноутбук используешь как подставку под пиво |
| Автор: Poseidon 26.7.2011, 10:29 |
| Ну в общем ясно. Только вопрос по терминалам. Я первый раз сталкиваюсь, опишите, это удаленный рабочий стол или что? Если так, что все смогут "лазить" по серверу или как? Или пользователи запускают у себя, а фактически выполнение идет на сервере. Т.е. пользователь и не заметит разницы. Как оно все происходит? |
| Автор: 2man 27.7.2011, 09:13 | ||||
Да. RDP - Remote Desktop Protocol. Это как ты права настроишь. Для 1Ски обычно прописывают сразу батник для старта 1cv7.exe в ярлыке подключения с серверу.
Все действия происходят на сервер. Соответственно и вся нагрузка на него. Пользователь получает лишь "экран". Если не юзать RemApp в Server 2008 R2, то разница конечно будет видна. Но это фигня, привыкнут, главное научить правильно закрывать программу |
| Автор: Poseidon 27.7.2011, 09:50 | ||
|
| Автор: 2man 28.7.2011, 15:51 | ||||
Почему нет? Ты сеанс ограничил лишь одной программой, кроме нее они могут увидеть лишь фон рабочего стола сервера.
А в чем проблема объяснить бухам, что "так надо!" ? |
| Автор: Poseidon 3.8.2011, 15:18 |
| Как оказалось все не так и сложно. Поднял сервер терминалов, научил бухов как надо запускать. Все пока довольны. Спасибо за помощь. |
| Автор: 2man 3.8.2011, 20:11 |
| Обращайся |
| Автор: Zero 7.8.2011, 17:00 | ||
Про RDP почитай в инете http://yandex.ru/yandsearch?text=rdp&lr=11 на форуме подробно не опишеш. Там вроде немного но писать много. А инфы везде много. Думаю в твоём случае это наиболее оптимальный вариант. Добавлено через 2 минуты и 4 секунды упс |