Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Мысли и идеи про многопользовательское юзанье 7.7 (число прочтений - 8801 )
Roman
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 06. Сентября 2006
Пол: Мужской
Мысли и идеи про многопользовательское юзанье 7.7
22. Июня 2007 :: 13:13
Печать  
Может я не нов но вот что подумалось..
Уже пол года бьемся над увеличением скорости работы базы.
Примерно 70 пользователей, 5 on-line касс, база SQL, все модули проведения переписаны под прямые запросы...

Возник ряд идей:
1. Вынести все расчеты итогов и их обработку из модуля документа в модуль формы или куда-то еще... Результаты расчета в виде таблицы передавать в процедуру Провести(<ТаблицаДвижений>), в которой осуществлять только запись в базу.
Проблемы: Актуальность расчета. Думаю победить с помощью флагов или каких нибудь признаков.
Для каждого документа задать перечень зависимых регистров, и если в зависимых регистрах во время расчета таблицы движений были какие то изменения - (а это мы узнаем по флагам), перезаполним таблицу движений и повторим всё заново.
Плюсы: При проведении независимых документов будет достигнут эффект "паралелизма", т.к. запись в базу уже подготовленных движений- дело мгновенное и вылетов "блокировок" не будет. "Маленькие документы"(обычно чеки) будут проводится быстрее больших и тяжелых.
Минусы: При стечении обстоятельств возможен не однократный расчет итогов для тяжелых документов. Но это и не страшно...
2. Проведение документов производить не на локальной машине а на выделенном сервере. Реализовать систему приоритетов. Например Документ "Чек" должен иметь наивысший приоритет, а "Отчет филиала" с несколькими тысячами строк - самый низкий. При нажатии кнопочки "Провести", документ ставится в очередь на сервере, порядок в очереди выстраивается в соответствии с приоритетом документов. Думаю реализовать это при помощи TCP сервера и асинхронных событий...

Прошу поделится своими соображениями на этот счет..
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #1 - 22. Июня 2007 :: 13:18
Печать  
База для того и блокируется, чтобы не было считывания некорректных данных.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #2 - 22. Июня 2007 :: 13:46
Печать  
Очень интересный ряд идей!
А если программное проведение, групповое перепроведение?
Что значит независимые документы в контексте _1sjourn?  Подмигивание
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Roman
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 06. Сентября 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #3 - 22. Июня 2007 :: 14:21
Печать  
В контексте моей базы программное проведение лечится тем, что каждому виду документа соответствует КОП.
Например документ "Реализация", - ему соответствует класс "ТРеализация", у которого есть метод "Провести(<Парам>)".
Соотвественно проведение у меня всегда программное. И код
Док = СоздатьОбъек("Документ.Реализация");
Док.Новый();
Док.Провести();
Никчему, кроме ошибок, не приведет.

А проводятся все документы с использованием метода соответствующего класса.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #4 - 22. Июня 2007 :: 14:54
Печать  
(0) (Ихмо) Абсолютно неправильная постановка задачи.
На кассах должен быть back office. В конце дня переносите данные
в учетную программу.
Скажи что будешь делать сейчас с кассами если сломается сервер и/или сетевое оборудование  часа на 3-4.
Опять же из-за блокирок долгое проведение чека - неприемлеммо долго для ПОКУПАТЕЛЯ.
А если кто-то днем запустит суперсложный отчет  или перепроведение прошлых документов - кассы вообще умрут ( тем более 70 пользователей ).
Если Вам все же необходим кассовый online то все равно это должна быть отдельная программа ( не 1с ) - либо ищите готовое, либо напишите что-то свое.


  
Наверх
 
IP записан
 
Roman
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 06. Сентября 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #5 - 22. Июня 2007 :: 15:03
Печать  
если уж на то пошло, то не back а front.
К сожалению компания торгует не колбасой, а довольно дорогостоящими вещами, и обем продаж примерно одинаков по рознице и опту. Таким образом на кассах необходимо видеть резервы, остатки, текущие скидки и т.п.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #6 - 22. Июня 2007 :: 15:07
Печать  
Roman писал(а) 22. Июня 2007 :: 15:03:
если уж на то пошло, то не back а front.
К сожалению компания торгует не колбасой, а довольно дорогостоящими вещами, и обем продаж примерно одинаков по рознице и опту. Таким образом на кассах необходимо видеть резервы, остатки, текущие скидки и т.п.


В таком случае НАВЕРНОЕ применима схема разделения оплаты и отгрузки

1. Продажа (менеджер) - Основная функция в базе - Подбор товара в заказы, документы продажи и т.д.
2. Оплата (Кассир) - Основная функция в базе фиксация принятых денег от покупателя за конкретный товар оформленный менеджером...
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Roman
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 06. Сентября 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #7 - 22. Июня 2007 :: 15:12
Печать  
Мы всё не о том...
Как вам мои идеи в общем случае? На какие грабли можно наступить? Может кто что делал подобное?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #8 - 22. Июня 2007 :: 15:17
Печать  
Ну тогда у тебя все равно торговый зал это отдельный склад.
Выписывай счет и счет резервирует товар по складу торговый зал.
К счету кассир привязывает приходнокассовый ордер ( чек ) - только деньги от Клиента и
никакого рассчета остатков товара.
Кладовщик привязывает к счету Расходную накладную ( которая отменяет резерв ).
Основная мысль кассир отвечает только за деньги.
Кладовщик только за товар.


  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #9 - 22. Июня 2007 :: 15:22
Печать  
Roman писал(а) 22. Июня 2007 :: 15:12:
Мы всё не о том...
Как вам мои идеи в общем случае? На какие грабли можно наступить? Может кто что делал подобное?


Идея номер 1 мне очень даже приглянулась.... В чистом виде оптимизация...

Согласен, что Таблицу движения по регистрам необходимо формировать до попадания в процедуру ОбработкаПроведения().
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #10 - 22. Июня 2007 :: 15:24
Печать  
Насчет Идеи 2:

1. Многие работаю в терминале, так что ВыполнитьНаСервере(), не так актуально... а вот приоритеты - мысль интересная.

PS Интересно как с блокировками борется Phoenix при его то 800-ах пользователях.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #11 - 22. Июня 2007 :: 15:25
Печать  
Roman писал(а) 22. Июня 2007 :: 15:12:
Мы всё не о том...
Как вам мои идеи в общем случае? На какие грабли можно наступить? Может кто что делал подобное?

Идеи бредовые -(  безобид)  даже если ты проведение переведешь все на сервер ( не допустив при этом ошибок ) наткнешься на ошибку MS SQL 2000 при массовом проведении документов.
"помощи TCP сервера и асинхронных событий."
Далее ассинхронный сервер с абсолютной надежностью написать
сложно пакеты могут теряться даже в локалке ( плохой шнурок, порт , вирусы и.т.д) и
плюс такой сервер будет фактически выполнять функции базы данных и при этом
сколько затратишь время на отладку и приемлемую работу. Баги в таком сервере
искать очень сложно ( невозможно повторить ситуацию ).  
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #12 - 22. Июня 2007 :: 15:37
Печать  
lustin писал(а) 22. Июня 2007 :: 15:22:
Идея номер 1 мне очень даже приглянулась.... В чистом виде оптимизация...

Согласен, что Таблицу движения по регистрам необходимо формировать до попадания в процедуру ОбработкаПроведения().


а никогда не задумывались почему в 1С не так все устроено?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #13 - 22. Июня 2007 :: 16:28
Печать  
Pelmen писал(а) 22. Июня 2007 :: 15:37:
а никогда не задумывались почему в 1С не так все устроено?


+1
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Мысли и идеи про многопользовательское юзанье
Ответ #14 - 22. Июня 2007 :: 17:17
Печать  
Pelmen писал(а) 22. Июня 2007 :: 15:37:
lustin писал(а) 22. Июня 2007 :: 15:22:
Идея номер 1 мне очень даже приглянулась.... В чистом виде оптимизация...

Согласен, что Таблицу движения по регистрам необходимо формировать до попадания в процедуру ОбработкаПроведения().


а никогда не задумывались почему в 1С не так все устроено?


Очень даже задумывались... А что ты прикажешь делать? Какие ты видишь методы оптимизации проведения?

1. Либо Готовить ТаблицуПроведения до ОбработкиПроведения
2. Либо изменять структуру Регистров, так чтобы алгоритм построения вышеуказанной таблицы занимало как можно меньше времени, соответственно и алгоритм оптимизировать тоже.

А если база рабочая и необходимо произвести оптимизацию скорейшим образом, какое решения принять, какое будет по количеству "граблей" более приемлемое?

Тут однозначно, лично я еще не знаю всех возможных вариантов.

P.S. Мне на днях предложили воспользоваться платной компонентой которая
- борется с ситуацией бесконечного цикла в момент одновременного проведения.
- выставляет приоритеты на процессы 1С, которые схватили "блокировку"
- организует автообмен через cокеты между базами в рамках локальной сети.
Стоимостью 18.000 рублей 9000 рублей с документацией и закрытым программным кодом.
Называется компонента  msmail1c.dll, но мне стало как то подозрительно... и я отказался с ней работать.
« Последняя редакция: 27. Июня 2007 :: 10:28 - lustin »  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать