Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Архитектура 1С подобной платформы автоматизации (число прочтений - 19898 )
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Архитектура 1С подобной платформы автоматизации
14. Января 2008 :: 11:00
Печать  
Навеяно:http://www.1cpp.ru/forum/YaBB.pl?num=1199981576
Как бы кто реализовал подобную систему?
так или иначе некоторые из нас делают задачи не только на 1С, интересно кто как делает?

например, кто как организовывает хранение документов?
Когда-то мне нравилась идея 1С: 1sjourn, но потом разонравилась.
все, что 1С хранит в 1sjourn хранил в таблице шапки документа.
не понравилось то, как хранится состояние документа, больше по душе поле state где 0 - помечен на удаление, 1 - не проведен, 2 - проведен.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #1 - 14. Января 2008 :: 11:08
Печать  
Цитата:
Когда-то мне нравилась идея 1С: 1sjourn, но потом разонравилась.
все, что 1С хранит в 1sjourn хранил в таблице шапки документа

А как собирать общий журнал? через UNION
А если видов документов 100?
  
Наверх
ICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #2 - 14. Января 2008 :: 11:12
Печать  
при помощи юнион.
обладая метаданными можно сделать автоматическую генерацию запроса.
но опять же, как часто нужен общий журнал? и главное для чего?
отборы делал о обычных журналах, так что для отбора уже не нужен общий.
а все документы видеть сразу - не вижу смысла. лишняя нагрузка как на систему, так и на пользователя.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #3 - 14. Января 2008 :: 11:19
Печать  
Phoenix писал(а) 14. Января 2008 :: 11:12:
при помощи юнион.
обладая метаданными можно сделать автоматическую генерацию запроса.
но опять же, как часто нужен общий журнал? и главное для чего?
отборы делал о обычных журналах, так что для отбора уже не нужен общий.
а все документы видеть сразу - не вижу смысла. лишняя нагрузка как на систему, так и на пользователя.

Наверное можно для таких целей делать что - то вроде регистра учета документов Улыбка и писать туда на UPDATE шапки документа
  
Наверх
ICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #4 - 14. Января 2008 :: 11:20
Печать  
можно более подробно?
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #5 - 14. Января 2008 :: 11:26
Печать  
Phoenix писал(а) 14. Января 2008 :: 11:20:
можно более подробно?

Не пожалуй получится тот же 1sjourn

1. Есть табличка с общими реквизитами
2. Есть таблички шапки документов и строки
3. Делаем тригер на INSERT Update для таблиц шапки документов и строки и в них обновляем общую таблицу
  
Наверх
ICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #6 - 14. Января 2008 :: 11:29
Печать  
тоже об этом думал, и отказался от этого.
сейчас думаю хранить аналоги "граф отбора" в  отдельных таблицах.
тогда можно будет на join сделать многое, если индексы правильно сделать вообще сказка будет.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #7 - 14. Января 2008 :: 11:41
Печать  
Phoenix писал(а) 14. Января 2008 :: 11:00:
Навеяно:http://www.1cpp.ru/forum/YaBB.pl?num=1199981576
Когда-то мне нравилась идея 1С: 1sjourn, но потом разонравилась.

Журн еще выступает как маяк транзакции. А обработка транзакций жизненно необходима.
прежде чем выкидывать какой-то компонент, необходимо решить по другому все задачи, которые этот компонент решал.  
Иначе нахватаемся дидлоков в новой системе и просто прийдем к другим проблемам.
Возможно, если рассмотреть понятие "Маяк транзакции" и поиграть с ним, то можно и понять как решить проблему.
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #8 - 14. Января 2008 :: 12:00
Печать  
функции 1sjourn можно возложить на таблицу шапки документа.
тогда получится распараллеливание транзакций
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #9 - 14. Января 2008 :: 12:02
Печать  
Phoenix писал(а) 14. Января 2008 :: 12:00:
функции 1sjourn можно возложить на таблицу шапки документа.
тогда получится распараллеливание транзакций

Смоделируй ситуацию при проведении 2-х разных видов документов по 1-му регистру, при пересечении времени этих операций, с учетом того, что транзакция должна быть.
  
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #10 - 14. Января 2008 :: 12:07
Печать  
trdm писал(а) 14. Января 2008 :: 12:02:
с учетом того, что транзакция должна быть.

Может быть проще возложить эту почетную функцию на движок БД?
  
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #11 - 14. Января 2008 :: 12:09
Печать  
fez писал(а) 14. Января 2008 :: 12:07:
trdm писал(а) 14. Января 2008 :: 12:02:
с учетом того, что транзакция должна быть.

Может быть проще возложить эту почетную функцию на движок БД?

Что ты иммешь ввиду?
Всеравно без понимания "Что происходит" и "Что должно происходить" никуда не денешся...
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #12 - 14. Января 2008 :: 12:14
Печать  
Цитата:
Смоделируй ситуацию при проведении 2-х разных видов документов по 1-му регистру, при пересечении времени этих операций, с учетом того, что транзакция должна быть.


пользователь 1:

проверка на блокировку таблицы ra

starttran
tablock/lock table ra1
update dh1 set state=2 where id= ...
insert into rg1 ....
update ra1 ...
commit
снятие блокировки

Пользователь 2
проверка на блокировку таблицы ra
starttran
tablock/lock table ra1
update dh1 set state=2 where id= ...
insert into rg1 ....
update ra1 ...
commit
снятие блокировки
------
скорее всего примерно так.
т.е. анализировать блокировку таблицы итогов регистра.

при этом ничто не мешает записывать и проводить документы других видов по другим регистрам.
можно конечно сделать rowlock в журнале, но зачем?
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #13 - 14. Января 2008 :: 12:15
Печать  
ИМХО, общий журнал - зло, равно как и корректировка, удаление, проведение/распроведение документов. мУда (т.е. бесполезно выполненная работа) в терминах кайдзен Улыбка
Эффективнее будет следующая схема: есть задача - есть стандартный способ ее решения - есть стандартные документы, в которых надо заполнить четко определенные реквизиты. Очень эффективен в данной концепции механизм бизнес-процессов, так как достаточно инициатору только запустить процесс, а наполнением (желательно по порциям) занимаются иные люди, ответственные за свой участок, при этом сохраняется информационная наполненность процесса, происходит лишь его более детальное описание, наполнение содержимым. Т.е. стоимость информации о процессе, а из нее и складывается стоимость информации о компании в целом, постоянно возрастает.
З.Ы. А в рамках 1С-подобной системы еще хорошо бы детально рассмотреть вопрос про проведение документа задним числом, например был приход товара, а через два месяца нам надо сделать возврат товара именно по этой накладной, тогда как при партионном учете - эта партия уже распродана, а у имеющейся партии закупочные цены существенно отличаются от бывших ранее.
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #14 - 14. Января 2008 :: 12:26
Печать  
А теперь попробуй прикинуть, откуда документ знает (соответственно и разработчик), какие регистры надо блокировать.
Тут варианта 2 или указывать регистры прямо перечисляя в метаданных, или отойти к общему маяку.
при втором варианте все много проще, чем при первом.
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #15 - 14. Января 2008 :: 12:28
Печать  
При проведении документа известно по каким регистрам возможно движение документа, именно эти регистры и блокировать. точно не знаю, но думаю в 8-ке так и делается.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #16 - 14. Января 2008 :: 12:28
Печать  
Salimbek писал(а) 14. Января 2008 :: 12:15:
ИМХО, общий журнал - зло.

В таких терминах нельзя моделировать процессы.
ИМХО общий журнал не зло, а один из вариантов однозначного разрешения проблемы определения массива объектов блокировки.
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #17 - 14. Января 2008 :: 12:29
Печать  
Phoenix писал(а) 14. Января 2008 :: 12:28:
При проведении документа известно по каким регистрам возможно движение документа, именно эти регистры и блокировать. точно не знаю, но думаю в 8-ке так и делается.

Конкретнее пожалуйстах, откуда "известно"? Источник? Время возникновения источника? Удобство источника? Вероятность ошибки источника? Объем времени/ресурсов на обслуживание источника?
Плюсы/минусы испточника?
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #18 - 14. Января 2008 :: 12:32
Печать  
несколько вариантов получения:
- анализ кода, т.к. прежде чем выполнить код происходит его обработка вирт.машиной, а там и выцепляется.
- в метаданных явно указывается по каким регистрам может делать движение документ, в той же 8-ке это указывается, и мне к пример это очень понравилось, не нужно анализировать код чтобы понять что двигается.
- явно задавать при проведении, но это есть оч. хороший вариант, в 8.1 кажется это допускается.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #19 - 14. Января 2008 :: 12:46
Печать  
Про устройство 1С на уровне таблиц и блокировками регистров у 1сМожно посмотреть в этой книжке: "Профессиональная разработка в системе 1с Предприятие 8.0"
авторы: "А.П.Габец. Д.И.Гончаров, Д.В. Козырев, Д.С. Кухлевский, М.Г. Радченко"
Толстая такая книжка
http://v8.1c.ru/metod/books/book.jsp?id=63
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #20 - 14. Января 2008 :: 12:58
Печать  
Igor-bts писал(а) 14. Января 2008 :: 12:46:
Про устройство 1С на уровне таблиц и ...

В толстой книге всегда воды много. Не раз убеждался.
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #21 - 14. Января 2008 :: 13:04
Печать  
как вариант можно профайлером посмотреть что и как у них делается.
но может быть кто-то уже копался и поделится опытом?
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #22 - 15. Января 2008 :: 05:48
Печать  
Цитата:
В таких терминах нельзя моделировать процессы.

Верно, я не достаточно точно выразился. "Общий журнал - зло" - только как интерактивный инструмент. Ну нет особой необходимости в списке из сотен документов за день, да еще с периодом журнала в год. Слишком много ненужной информации обрабатывается. А как инструмент блокировки - как вариант подойдет, только блокировки должны быть, вспоминая 1С, более целенаправленными. Чтобы проводя один тип документов какой-либо другой тип мог независимо обрабатываться.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #23 - 15. Января 2008 :: 05:54
Печать  
Один из вариантов гибких блокировок: sp_getapplock, sp_releaseapplock
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #24 - 15. Января 2008 :: 06:10
Печать  
spock писал(а) 15. Января 2008 :: 05:54:
Один из вариантов гибких блокировок: sp_getapplock, sp_releaseapplock

Насколько я понял эти процедуры не накладывают ни каких физических блокировок а только служат флагом для программиста?
А если он забыл где нить вставить проверку?
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #25 - 15. Января 2008 :: 07:19
Печать  
Дык, опять таки ИМХО, потому и нужен класс типа "ПоставщикДанных", который и берет на себя всю работу с БД, с теми же блокировками (причем становится не важно - какая именно БД используется). Или по научному Улыбка - реализация паттерна MVC (Model-View-Controlling)
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #26 - 15. Января 2008 :: 08:12
Печать  
Nick писал(а) 15. Января 2008 :: 06:10:
Насколько я понял эти процедуры не накладывают ни каких физических блокировок а только служат флагом для программиста?
А если он забыл где нить вставить проверку?

Да, не накладывает. Но тут смысл блокировок совершенно другой. Например, для регистров можно "накладывать блокировку" как для всей таблицы, так и для диапазона. Т.е. если регистр меняется с такого-то по такое число (или ид-р документа), то sp_getapplock 'регистр.такой - июнь', если ни кто другой под таким именем не создал ресурс, то пользователем спокойно далются изменения по регистру. Это абстракция.
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #27 - 15. Января 2008 :: 08:25
Печать  
Опять таки sp_getapplock, sp_releaseapplock это для MS SQL, а для других БД?
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #28 - 15. Января 2008 :: 11:43
Печать  
Выложил наброски ТЗ по qt1L.
http://www.1cpp.ru/forum/YaBB.pl?num=1200397311
Мож кого заинтересует.
  
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #29 - 21. Января 2008 :: 06:38
Печать  
Выложил тут свои идеи по поводу Архитектуры платформы:
http://qt1l.sourceforge.net/forum/viewtopic.php?t=39
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #30 - 21. Января 2008 :: 09:28
Печать  
Salimbek писал(а) 21. Января 2008 :: 06:38:
Выложил тут свои идеи по поводу Архитектуры платформы:
http://qt1l.sourceforge.net/forum/viewtopic.php?t=39

Помоему ты конкретно перегнул.
Спустись пожалуйста на землю.
  
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #31 - 21. Января 2008 :: 10:15
Печать  
Ну давай обсудим, либо что ты понимаешь под "спустись на землю"
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #32 - 21. Января 2008 :: 11:03
Печать  
Salimbek писал(а) 21. Января 2008 :: 10:15:
Ну давай обсудим, либо что ты понимаешь под "спустись на землю"

Не хочу тратить силы на софистику.
  
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #33 - 21. Января 2008 :: 11:11
Печать  
Мда, понятно. Чтож, удачи тебе в твоем проекте.
З.Ы. Из "ДАО Toyota" "Принимай решение не торопясь, на основе консенсуса, взвесив все возможные варианты; внедряя его, не медли (немаваси)" и я согласен с этим потому, что обсуждая - мы не затрачиваем никаких особых усилий. Поменять планы, структуры, концепции, которые у нас в голове - очень легко. А вот если сначала делать, а потом начать переделывать, то затрачивается уйма усилий на достижение результата, который может оказаться никому не нужным.
З.З.Ы. Ладно, не буду мешать уважаемому мной Дмитрию реализовывать проект. Сам участвовать, извини, не буду.
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Архитектура 1С подобной платформы автоматизаци
Ответ #34 - 21. Января 2008 :: 11:20
Печать  
Принято.
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать