• Mobile apps - просто как 2х2!

    Рост количества информации и ускорение темпов жизни все сильнее требует постоянного присутсвия в рабочей сети, в том числе и в пути. Именно поэтому такю большую популярность приобретают смартфоны, КПК и планшеты, представляющие собой мобильные компьютеры для доступа к рабочей и личной информации.

    Сегодня довольно сложно встретить человека без мобильного телефона или смартфона. Это уже не просто средство связи, но также и инструмент для работы, управления личными данными, общения в интернете, а также разного вида развлечений.

     
     
  • Аналитические данные

    Для иллюстрации разнообразных аналитических и научных данных довольно удобно использовать красивые диаграммы. Табличный редактор  от Microsoft Excel 2010 предлагает огромное количество как стандартных так и довольно редких диаграмм и позволяет создавать сложные комбинации из уже существующих шаблонов.

    Создать диаграмму в программе Excel 2010 довольно просто, так как, открывая эту программу, вам потребуется нажать всголишь пару кнопок. Остается всего лишь их заполнить таблицу с данными. Как же это сделать?Вы узнаете из статей нашего сайта.

     
  •  E-mail и рассылки

    Не секрет, что на сегодняшний день E-mail рассылка всё еще является эффективным рекламным средством, признанным во всей интернет среде, по соотношению цена качество. Охват массовой рассылки соизмерим, разве, что с рекламой по телефону

    Маркетинг путем рассылок по электронной почте позволяет создать необходимую программу регулярных рассылок для продвижения своего бренла и развития бизнеса в целом. Наконец, правильно построенный интернет маркетинг по почте может укрепить положительные взаимоотношения клиентов и организации.

     
  • Мобильные устройства

    Новости, обзоры и тесты портативной техники и мобильных устройств. Современные смартфоны, КПК и планшеты содержат в себе довольно взрослый функционал, аналогичный такому же у своих «старших братьев». Удаленное администрирование, браузеры с технологиями flash и java-script, синхронизация электронной почты, заметок, обмен различными файлами. Обо всем этом и не только подробнее на нашем сайте.

7.7 Способы ускорить обработки/отчёты

Категория Помощь

Привет всем!1С 7.70.0.27Вроде где-то видел, но давно. Можно было сделать многопоточный отчёт где паралельно работе что-то выполнялось. Я бы хотел сделать подбор номенклатуры в накладную паралельно с подсчётом долга клиента через объект "Запрос" или "Регистры". Подсчёт долга идёт секунд 30, набор заявки секунд 70-200. При одновременном выполнении получилось бы быстрее на 30 сек.При подборе товаров в документ загрузка процессора Intel Xeon 3200 составляет 1-3%. Но после подбора надо ждать когда долг клиента посчитается. Вроде где-то видел а найти не могу, иль я уже сам всё преерпутал 8-)P.S. Конечно же можно попробовать запустить паралельно робота обработчика, и в нём считать эти переменные... но это и так понятно. Привет всем!
1С 7.70.0.27
Вроде где-то видел, но давно. Можно было сделать многопоточный отчёт где паралельно работе что-то выполнялось. Я бы хотел сделать подбор номенклатуры в накладную паралельно с подсчётом долга клиента через объект "Запрос" или "Регистры". Подсчёт долга идёт секунд 30, набор заявки секунд 70-200. При одновременном выполнении получилось бы быстрее на 30 сек.

При подборе товаров в документ загрузка процессора Intel Xeon 3200 составляет 1-3%. Но после подбора надо ждать когда долг клиента посчитается.

Вроде где-то видел а найти не могу, иль я уже сам всё преерпутал 8-)

P.S. Конечно же можно попробовать запустить паралельно робота обработчика, и в нём считать эти переменные... но это и так понятно.

Комментарии  

 
0 #20 serzh 29.07.2013 12:26
Все зависит от количества документов. Если их не так много, то достаточно пробежаться через док.получитьдок умент() и сравнить док.реквизит с искомым.
В свое время сделали на бумажном документе надпечатку штрихкода, а потом сканером пикали и документ нужный открывался. Там по номеру искалось.
Если документов много, то лучше искать через БД. БД = XBASE, БД.Открыть(), БД.Найти(). Но вот с тем, что найти, надо будет определиться )))
Ну или во внешнюю БД выгружить, но тут грабли есть - изменения. Т.е. изменим ИНН контрагента, а в БД внешней в старых записях
то не отразится.
 
 
0 #19 aljona 27.07.2013 20:14
По ЗПиК пока проблем не возникало. Только небольшие доработки, упрощающую жизнь пользователей. :) На данный момент голову ломаю над расширенным поиском документов. Пользователей не устраивает скорость выполнения поиска документа по заданным критериям. Если поиск производится по реквизиту типа справочник, то все проходит на ура при заданном периоде выборки. Если не выбрали период выборки документов, то все можно вешаться. Можно пойти спокойно чаек попить. Тем более, если пользователь производит поиск по строковому реквизиту, и ищет вхождение подстроки. " Я не волшебник, я только учусь" :)
 
 
0 #18 serzh 26.07.2013 10:16
Алена, проблема не в том, чтобы результат запроса выгрузить в ТЗ - это как раз просто. Проблема в том, что хорошо написанный запрос и так даст все данные и его не надо будет выгружать в ТЗ, но при этом он будет работать очень долго (если выборка большая). У меня запрос, который в 7.7. полностью планирует закупки (почти аналог того, что есть в ТиС 9.2, только "все и сразу"), при прогнозе на перу недель и при выборке по одному поставщику делается минуты две. Это много. А уж дальше-то Пока Группировка(Н)= 1 цикл - вообще не проблема пройтись.
 
 
0 #17 prefer 22.07.2013 11:27
:))) где ж ты раньше была? А мужики то и не знали)
зы: я уже пол года как бошку ломаю, как из ЗиКи сделать эффективно-рабо тающую, не ущемляющую пользователей, БД
 
 
0 #16 aljona 22.07.2013 02:19
Всем привет! Не помешаю? :) С таблицой значений намного проще, удобнее работать. И довольно таки быстро можно результаты получать, путем сворачивания таблиц по заданным критериям. Можно ведь результаты запроса выгрузить в ТЗ. Зачем использовать внешние приложения для обработки данных...
 
 
0 #15 serzh 17.07.2013 12:26
Если в базе есть все данные (читай - факторы), то почему бы и не построить многофакторный анализ. Средства для этого есть: таблица значений и список значений. В чем запара?
 
 
0 #14 aleksand 10.07.2013 11:37
Ну да, можно ставить и две 1С. Одна копия, вторая рабочая. У нас юзера так делают. Типа двухпоточность.
Однако всё равно хочется развивать не широту вычислений а именно эффективность, скорость.

Ещё вариант "ускорения" это сделать часть отчётов ночью. тогда днём ведомости уже готовы. И сервер менее нагружен рутиной.
 
 
0 #13 aleksand 06.07.2013 18:54
Да. Многопоточность была в 1С , но баги были ужасные. Поэтому отказались от неё.

Я маленько извратился. Но теперь частично решил проблему.
Попробовал некоторые данные сохранить в SQL сервере. Но не классическим вариантом. Ибо мне пришлось бы всю конфигу переписывать.

Firebird SQL 2.0.3 ODBC дрова ADO.
Правда здесь важно написать те процедуры с помощью которых будет вестись доступ к SQL. Иначе программа вылетит из-за дисконнекта или ошибки, а ты так и будешь думать что всё успешно завершено.

В случае использования 1С 7.7 SQL всё легче, однако строго необходимо переписывать конфигурацию на "прямые" запросы. Плюс платить за лицензии, а я бесплатный вариант сделал... :-)

P.S. Да кажется и мозг вырос на 2-3 грамма :-D
 
 
0 #12 kirill 04.07.2013 16:56
2 Алексей ALX Полубенский

Ставишь сетевую платформу, копируешься пользователся под обработку. Заходишь под неё новым пользователем и запускаешь обработку. Старым работаешь в обычном режиме.
 
 
0 #11 aleksej 01.07.2013 22:42
Помню, что была возможность запусть обработку под 7.7 чтобы она шла в фоне и при этом что-то делать. Было это вроде в ТиС...
Но по моему это был какой-то аг в платформе и вроде в новых версиях платформы это перестало работать...
Точно проверяли и делали , но как не помню...
 
 
0 #10 kirill 01.07.2013 15:44
а 1с 7.7 не делают, типа план-фактного анализа планирования продаж, закупок, расчет запасов складов

у семерки просто нет средств для KDD (Knowledge Discovery in Databases)
В восмерке для этого разворачивают подсистему data minining
 
 
0 #9 nikolaj 30.06.2013 20:38
Справочник.контрагенты.менеджеры.свойство.дополнительно.параметр1.наименование

это несколько join'ов :) ничего сложного... было бы почему это join строить
 
 
0 #8 valerij 25.06.2013 22:03
может поэтому функций планирования и прогнозирования в конфигурациях на 1с 7.7 не делают, типа план-фактного анализа планирования продаж, закупок, расчет запасов складов и их пополнения, т.е. элементы ERP...
У кого есть примеры реализации таких фич?
 
 
0 #7 aleksand 24.06.2013 07:31
Ну да, проблема в проектировании БД. Ну а что?
1С вся так написана....
вот к примеру:

ОперацияЗаявка = Регистр.Заявки. ЗаявкаПокупател я.ВидОперации;
УпрАналитика = Регистр.Заявки.Фирма.УпрАналитика;
ЮрЛицо = Регистр.Заявки.Фирма.ЮрЛицо;
СвойствоПок = Регистр.Заявки.ДоговорПокупателя.Владелец.ОсновноеСвойство.ЗначениеСвойства;
СуммаПоЗаявке = Регистр.Заявки.СтоимостьРасход;


А DLL быстрая потому что это DLL. Сам понимаешь, там всё в коды процессора превращено. А 1С 7.7 оперирует Х.З. какими понятиями. К примеру как ты думаешь, что такое число с длиной 4?
Верно, это от 0 до 9999 или от -9999 до 9999.
А с точки зрения здравого смысла 4 байта это куда более огромное число.
И далее. Ты используешь 1С . В 1С надо передать переменные. Передаёшь
"Маша пошла гулять" и 12123233.
Первое я не знаю как передаётся, а вот второе будет конвертировано в обычное банальное 4-х байтовое число(или ему аналогичное).
Поэтому использование серьёзных циклов большая проблема, будет постоянная конвертация форматов.

Я тут попробовал перебрать массив из чисел. Доступ к ячейкам массива КОШМАРНО медленный был. Однако моя внешняя DLL просто молниеносно вычислила все переменные, выполнила уйму циклов. Скорость доступа к тамошним массивам была супер быстрой, а программа стала в десятки раз быстрее.

Именно эти обстоятельства и наталкивают на использование DLL для обработки данных. Ну а простая программа, думаю 1С 7.7 с ней хорошо справится. Там нечему тормозить )))
 
 
0 #6 prefer 21.06.2013 22:15
Зачем те дллка, не понятно, внутри адинэсины нельзя чтоль обработку данных производить, от туда же и мутить прямые запросы (юзай 1с ), да и что ты написал: "Справочник.кон трагенты.менедж еры.свойство.до полнительно.пар аметр1.наименов ание" - прикольно канешно, ни раз такое не вытаскивал :) мне кажеться это уже проблема в проектировании БД
 
 
0 #5 aleksand 19.06.2013 08:13
Угу, прямой доступ даст прирост, но боюсь проблемно будет сложные ссылки реализовать. К примеру
Справочник.контрагенты.менеджеры.свойство.дополнительно.параметр1.наименование
:-)
Ну а просто 1 справочник читать - тема! Надо будет попробовать.......

А вот такой вопрос. Щас сделал внешнюю компоненту на Дельфи 7. Её смысл получать данные и производить их анализ по серии критериев. Сама обработка работает мега быстро! Респект.
А вот положить в неё данные проблема.

Я делаю так.
ЗагрузитьВнешнююКомпоненту("test.dll");
vk=CreateObject("AddIn.Test");
Для i=1 по 5000 цикл
vk.Add(Значение1,Значение2,Значение3,Значение4,Значение5);
КонецЦикла;
vk.Обработать();

Тут Значение1...Зна чение5 это строки с текстом длиной 50-100 символов.
vk.Обработать() быстро работает не смотря на то что там алгоритм не из лёгких!
Add - метод который кладёт все 5 параметров в массив объявленный в DLL. Ничего сложного...
Кладёт но кочмар как медленно. Есть ли другие способы класть данные?

Изъятие данных тоже не очень быстро, но это пол беды т.к. результат обычно меньше исходных данных.

Я так понял идёт какая-то перекачка/конве ртация данных из 1С 7.7 в DLL-ку. И конвертация идёт медлительно.

Как думаете, надо делать получение данных через прямой доступ к DBF?
Или можно как-то иначе адресоваться из DLL-ки к переменным в 1С?
Хм...
 
 
0 #4 evgenij 18.06.2013 22:06
кстати тоже не плохой вариант
 
 
0 #3 prefer 18.06.2013 15:21
(3) а как тебе прямые запросы к ДБФ?
 
 
0 #2 aleksand 18.06.2013 09:41
Мда, кому-то видимо стукнула очень офигенная идея сделать 1С на базе DBF. Видимо тем же разработчикам функций которые тормозят кочмар как.

Можно переделывать, но всё равно. Согласитесь, компания 1С использовала штат разработчиков для написания 1С, одному её не переправить, только частично и за большое время. Это и оптимистичная и грустная нота одновременно.

Вот сейчас смотрел как работает функция Найти(). Довольно медленный поиск вхождения одной строки в другую. Делаю Найти("1234567890","5").
Потом попробовал перебирать массив и искать в нём подходящий элемент. Тоже не быстро, тормоз.
Массив 1,2,3,4,5,6,7,8 ,9,10. Ищем элемент с номером 5. повторяем поиск 5000 раз.

Первое работает 8,78% общего времени Х.
Второе 77,28% общего времени Х.

Вышло что Найти() быстрее чем перебор элементов массива раз в 15-30.

Потом попробовал открыть тектовый редактор BRED 3. И поискал в тексте объёммо 6 МБ строку текста. Ищет мгновенно!!
Если щас этот текст кусками перебить в функцию Найти() то 1С сдохнет где-то на минут 3-5!

Какие там алгоритмы я ХЗ. Видимо надо либо избегать этих тормозов либо писать внешние компоненты на С , Делфи. Мдя. Вот сижу запарился :-)
 
 
0 #1 evgenij 16.06.2013 19:42
не уверен что такое есть.

в той же торговле расчет долга или задолженности перед клиентов в реализации повешано на изменения поля контрагент в реализации.

так что выносите регистры на внешнюю субд (файрбирд, мсскл, мускул тот же) и читай те с них - работать будет на порядок быстрее.
 

You have no rights to post comments