Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > 1С: можно-ли ускорить формирование отчетов?


Автор: Poseidon 17.7.2011, 20:09
Суть вот в чем. Имеется 1С: Бухгалтерия 7.7 База данных файловая. Папка с базой находится на отдельном сервере. Так вот, при формировании отчета по складу 1С зависает на минуту - две. Вплоть до "программа не отвечает". Да, номенклатура материалов большая. Отчет в печатной форме занимает листов 15-20. Но все-же 2 минуты ждать - это много. А еще если бухгалтер забыла сменить дату нужного отчета, а потом еще забыла указать нужный счет... Короче нервы у бухов уже не выдерживают smile 
Что интересно, если попробовать скопировать папку с БД себе на компьютер и настроить 1С что бы брала данные оттуда, то отчет формируется секунд за 5. Т.е., мне кажется, дело все в том, что доступ к базе идет через сеть. Сеть обычная, через витую пару. Соединение: бухи - свитч - свитч - сервер. Расстояние звена не более 20 метров. Лишних файловых операций сервер не делает никаких. Т.е. никто с него ничего не качает и т.п. Еще была замечена закономерность: если зайти монопольно, то отчет так же формируется в разы быстрее.

Так вот вопрос, есть ли возможность как-то ускорить процесс? Бухов работает 5. Т.е. вносят данные. Но доступ к отчетам есть и у других отделов. Всего теоретически возможен одновременных запуск 7-10 клиентов. Подумываю тут попробовать перевести базу в SQL. Пока еще плохо понимаю как это получится и что выйдет. Есть еще варианты?

Автор: SaschaL 18.7.2011, 12:20
Добрый день! На самом деле указанное вами время для 1С 7.7 это не так уж и долго.
Конечно имеет смысл рассмотреть вариант перевода базы на СКЛ сервер, так же можно поглядеть как формируется отчет, есть вероятность что можно оптимизировать запрос на получение данных для отчета.
Однозначно конечно сказать нельзя, в каждом конкретном случае нужно разбираться отдельно

Автор: Zero 18.7.2011, 19:22
Цитата(Poseidon @  17.7.2011,  20:09 Найти цитируемый пост)
Пока еще плохо понимаю как это получится и что выйдет. Есть еще варианты? 

Проще настроить терминальный доступ, например с помощью RDP, если размер базы не слишком большой.
С SQL там дополнительный геморой появится на 7.7, так что его ради 5-10 лузеров ставить не советую.

Добавлено через 1 минуту и 58 секунд
Цитата(SaschaL @  18.7.2011,  12:20 Найти цитируемый пост)
На самом деле указанное вами время для 1С 7.7 это не так уж и долго.

это ахренительно долго. Если при обращении к базе не через сеть, отчёт делается за 5 сек за место 2 минут, то сейчас есть проблема и ей нужно заниматься

Автор: Poseidon 20.7.2011, 16:12
Цитата(SaschaL @  18.7.2011,  12:20 Найти цитируемый пост)
На самом деле указанное вами время для 1С 7.7 это не так уж и долго.
Ну как для кого. По мне так это долго. За это время бухи успевают себе чай налить и пол кружки выпить smile

Цитата(Zero @  18.7.2011,  19:22 Найти цитируемый пост)
Проще настроить терминальный доступ, например с помощью RDP, если размер базы не слишком большой.
Размер базы (самой папки с файлами) около 500МБ. Не могу судить много это или мало. Про терминальный доступ можно по-подробнее? Дело в том, что я вообще не разу не админ, но так получилось что во всей конторе только я более-менее в чем-то разбираюсь. Вот и приходится расхлебывать. Я так понял, RDP - это, по-русски, удаленный рабочий стол. Тогда не понятно как мне организовать доступ всем 10 человекам одновременно к одному рабочему столу и при этом каждому запустить свою 1С. Наверно тут многопользовательский режим Windows надо юзать. В общем, можно по-подробнее как и что?

Автор: owc 20.7.2011, 23:37
пусть отчет формируют на сервере удаленно - в чем проблема?

Автор: Poseidon 21.7.2011, 10:07
Цитата(owc @  20.7.2011,  23:37 Найти цитируемый пост)
в чем проблема
Проблема в непонимании как это сделать. Как организовать одновременный доступ нескольких пользователей к формированию отчетов на сервере? При этом что бы у них не было доступа к самому серверу (его настройкам, файлам и т.п.), а то они мне там наформируют...

Автор: _Valery_ 21.7.2011, 21:15
Цитата(Poseidon @ 21.7.2011,  08:07)
Проблема в непонимании как это сделать. Как организовать одновременный доступ нескольких пользователей к формированию отчетов на сервере? При этом что бы у них не было доступа к самому серверу (его настройкам, файлам и т.п.), а то они мне там наформируют...

Это уже не по 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 @  25.7.2011,  12:46 Найти цитируемый пост)
Если не поможет, тогда оптимизировать код.
Вы вот мне объясните, как возможно что не оптимизированный код (допустим) на компе, где непосредственно лежит база, выполняется почти мигом, а если через сеть, то уже тормоза. Там как-то этот код по другому выполняется или что?

Автор: 2man 26.7.2011, 08:32
Грубо говоря у тебя при нынешней системе - ты формируешь отчет, 1Ска по сети полезла "доставать" нужные файлы с сервака, ищет, перебирает, "вытягивает" оттуда данные, ищет следующие. И так пока не заполнит полностью отчет. 
При RDP все действия выполняются на сервере, через сеть передается лишь экран. Ответ очевиден smile
Если на пальцах, то представь ситуацию. У тебя дома 2 компа: стационарный и ноутбук. Ты хочешь посмотреть на ноутбуке фильм, который записан на стационаре. Фильм здоровенный в HDTV качестве, гигов на 7 тянет. Вариант 1: ты копируешь файл по сетке на ноутбук (вот это как у тебя сейчас). Вариант 2: ты включаешь фильм на стационарном, а ноутбук используешь как подставку под пиво smile (Это ситуация с RDP)

Автор: Poseidon 26.7.2011, 10:29
Ну в общем ясно. Только вопрос по терминалам. Я первый раз сталкиваюсь, опишите, это удаленный рабочий стол или что? Если так, что все смогут "лазить" по серверу или как? Или пользователи запускают у себя, а фактически выполнение идет на сервере. Т.е. пользователь и не заметит разницы. Как оно все происходит?

Автор: 2man 27.7.2011, 09:13
Цитата(Poseidon @  26.7.2011,  10:29 Найти цитируемый пост)
Я первый раз сталкиваюсь, опишите, это удаленный рабочий стол или что? 

Да. RDP - Remote Desktop Protocol. 

Цитата(Poseidon @  26.7.2011,  10:29 Найти цитируемый пост)
Если так, что все смогут "лазить" по серверу или как? 

Это как ты права настроишь. Для 1Ски обычно прописывают сразу батник для старта 1cv7.exe в ярлыке подключения с серверу.

Цитата(Poseidon @  26.7.2011,  10:29 Найти цитируемый пост)
Или пользователи запускают у себя, а фактически выполнение идет на сервере. Т.е. пользователь и не заметит разницы. Как оно все происходит? 

Все действия происходят на сервер. Соответственно и вся нагрузка на него. Пользователь получает лишь "экран". 

Цитата(Poseidon @  26.7.2011,  10:29 Найти цитируемый пост)
Т.е. пользователь и не заметит разницы. 

Если не юзать RemApp в Server 2008 R2, то разница конечно будет видна. Но это фигня, привыкнут, главное научить правильно закрывать программу

Автор: Poseidon 27.7.2011, 09:50
Цитата(2man @  27.7.2011,  09:13 Найти цитируемый пост)
Для 1Ски обычно прописывают сразу батник для старта 1cv7.exe в ярлыке подключения с серверу
Но это же не запретит пользователям закрыть или свернуть 1С (даже по привычке) и пробовать "лазить". А потом, при настроенных правах, кричать "почему меня не пускает на диск С?" Есть возможность что-либо сделать, что бы бухи и не заметили разницы? Что там про RemApp ?

Автор: 2man 28.7.2011, 15:51
Цитата(Poseidon @  27.7.2011,  09:50 Найти цитируемый пост)
Но это же не запретит пользователям закрыть или свернуть 1С (даже по привычке) и пробовать "лазить".

Почему нет? Ты сеанс ограничил лишь одной программой, кроме нее они могут увидеть лишь фон рабочего стола сервера.

Цитата(Poseidon @  27.7.2011,  09:50 Найти цитируемый пост)
Есть возможность что-либо сделать, что бы бухи и не заметили разницы? Что там про RemApp ?

А в чем проблема объяснить бухам, что "так надо!" ?

Автор: Poseidon 3.8.2011, 15:18
Как оказалось все не так и сложно. Поднял сервер терминалов, научил бухов как надо запускать. Все пока довольны. Спасибо за помощь.

Автор: 2man 3.8.2011, 20:11
Обращайся  smile 

Автор: Zero 7.8.2011, 17:00
Цитата(Poseidon @  20.7.2011,  16:12 Найти цитируемый пост)
Про терминальный доступ можно по-подробнее? Дело в том, что я вообще не разу не админ, но так получилось что во всей конторе только я более-менее в чем-то разбираюсь. Вот и приходится расхлебывать.

Про RDP почитай в инете http://yandex.ru/yandsearch?text=rdp&lr=11
на форуме подробно не опишеш. Там вроде немного но писать много. А инфы везде много.
Думаю в твоём случае это наиболее оптимальный вариант.

Добавлено через 2 минуты и 4 секунды
упс smile не заметил что вопрос по теме уже решился smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)