|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
в продолжение темы Собственная автоматизация svcoder Егоров Александр А в 1С есть структура БД? как ее посмотреть? такой популярный инструмент, как visio вытаскивает из базы 1С лишь набор абсолютно несвязанных таблиц. Никакой структуры. Может я где-то в конфигураторе упустил меню "структура БД"? Тоже вроде нету. Как может не нравиться то, чего не существует? В данном случае метаданные храняться в md-файле. То что вторичные ключи не сообщаются SQL Server и вы не видите связей с помощью универсальных инструментов не является проблемой. При желании можно написать обработку которая будет создавать эти связи по информации из метаданных. вторичных ключей нет в БД 1С. По крайней мере в 77 нет. Я не говорю, что проблема - посмотреть. Я говорю, что сервер БД только хранит таблицы 1С и ничего более. И даже за целостность данных в БД он отвечать не может. Все делается на клиенте. Поэтому структуры БД нет. И написать обработку можно только показывающую как клиентское приложение трактует взаимоотношение полей разных таблиц . Тоже самое можно сказать о любом наборе любых таблиц, даже экселевских. То, что у меня валяется в папке МоиДокументы 35 экселевских документов, имеющих внутренние связи - это БД? Она имеет структуру? svcoder Егоров Александр Потому что основные тормоза не в скорости доступа к данным, а в неоптимальной системе хранении данных в 1С и очень больших накладных расходах на "проведение" документов силами клиента. Раскройте тему о накладных расходах. Особенно если все стандартные блокировки 1С очищены и используется блокировка sp_getapplock. Отчет "Взаиморасчеты" у меня не использует регистры. Значит наличие регистра "взаиморасчеты", формирование движений по нему при проведении, пересчет его итогов каждое проведение и каждое открытие периода - лишние накладные расходы. Остатки товар по партиям я собираю быстрее, чем 1Ска по регистру остатков товаров - Наличие регистра "ОстаткиТоваров" - лишние накладные расходы. Блокировки в 1С - это следствие тормозной работы клиента, а не причина. Если выполнение ОбработкаПроведения() свести к милисекундам - табличные блокировки перестанут проявляться так сильно, что позволит вырасти количеству проводимых документов за единицу времени вообще не притрагиваясь к апгрейду железа и переносом всех активных пользователей в терминал. И не используя нештатные возможности платформы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 08:44 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
открой для себя 1С++ Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 09:08 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow открой для себя 1С++ Открыл уже давно. причем здесь 1С++? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 09:21 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
там парсер метаимен есть. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 09:25 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
>Поэтому структуры БД нет БД есть а структуры у нее нету ага.. а вообще про что топик? сначала показалось что про работу с базой. теперь вообще непонимаю Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 09:27 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow там парсер метаимен есть. я знаю... этим и пользуюсь при создании триггеров и процедур. В ПриНачалеРаботыСистемы сравнивается текущая версия md и последняя версия md, и при их разнице триггера и процедуры перекомпилируются... С испольщованием MetaDataWork и ODBCRecordset. При этом я получаю возможность обработки "проведения" документов непосредственно на сервере, не используя клиентский код 1С и не заставляя 1С загружать вагон данных с сервера, чтобы потом заново записать их обратно. ScareCrow >Поэтому структуры БД нет БД есть а структуры у нее нету ага.. а вообще про что топик? Еще раз - то, что у меня валяется в папке МоиДокументы 35 экселевских документов, имеющих внутренние связи - это БД? Она имеет структуру? Топик о том, что то, что в 1С (77) называется "структурой БД" - набор разрозненных таблиц. То, что в 1С использование встроенных элементов "ускорения обработки данных" и наличие клиентского кода в ОбработкаПроведения() - источник тормозов, а не ускорений. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 10:18 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
>что то, что в 1С (77) называется "структурой БД" - набор разрозненных >таблиц давайте определимся с понятиями. что для вас "структура БД"? Связка - foreign key -> primary key? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 10:24 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow >что то, что в 1С (77) называется "структурой БД" - набор разрозненных >таблиц давайте определимся с понятиями. что для вас "структура БД"? Связка - foreign key -> primary key? Угу. вообще constraints в целом, в том числе и foreign key\primary key. иначе как сервер БД может отвечать за целостность хранимых им данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 10:35 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
>иначе как сервер БД может отвечать за целостность хранимых им данных ясна. каша в голове. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 10:42 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow >иначе как сервер БД может отвечать за целостность хранимых им данных ясна. каша в голове. ясна. очередной любитель dbf :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 10:50 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
целостность бывает физическая и логическая. констрейнты все голи помогают поддерживать логическую целостность. никто не мешает сделать те же самые проверки на клиенте Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 10:53 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
>очередной любитель dbf переходим на личности? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 10:53 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
То что свази между таблицами не прописаны .. так они по сути и не нужны .. потому как логика построена не в SQL а в приложении. SQL это только кеширование и хранение таблиц. Слишком сложно будет реализовывать логику в SQL особенно с составными типами. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 11:18 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow >очередной любитель dbf переходим на личности? Извиняюсь, погорячился. Разговор как раз и идет зачем поддерживать обработку данных и проверку целостности на клиенте, если под это уже есть все инструменты непосредственно в самом сервере БД. Особенно в сетевой ИС предприятия. Особенно на интерпретируемом клиенте. Сервер БД в этом случае забирает на себя все рутинные манипуляции с данными уже не только связанные с самим хранением данных во внутренних хранилищях сервера, но и обработку этих данных перед записью, по правилам, заданными в том числе и алгоритмами бизнес-логики. Трех-звенка придумана так же для хранения обработчиков бизнес-логики подальше от клиента и поближе к серверу БД. Сейчас сам сервер БД уже может являться полноценным сервером приложений. Зачем тягать данные между клиентом и сервером, если достаточно серверу один раз скормить логику обработки и потом только отдавать команды на уровне ПровестиДокумент ? Зачем клиенту задумываться об обеспечении логической целостности, если достаточно один раз скормить constraints на сервер? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 11:28 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Ферзь То что свази между таблицами не прописаны .. так они по сути и не нужны .. потому как логика построена не в SQL а в приложении. SQL это только кеширование и хранение таблиц. Слишком сложно будет реализовывать логику в SQL особенно с составными типами. Зачем тогда хранить таблицы в SQL? Отдать побольше памяти под файловый кэш и оставить тот же dbf. Физическую целостность обеспечивает серверная ОС, логическую - клиент. необходимость сервера SQL в чем? Давайте пример. Какую логику (особенно с составными типами) сложнее реализовать на 1C, чем на SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 11:37 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
пардон... конежно же "Какую логику (особенно с составными типами) сложнее реализовать на SQL, чем на 1C?" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 11:39 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Егоров Александрпардон... конежно же "Какую логику (особенно с составными типами) сложнее реализовать на SQL, чем на 1C?" Протрассируйте запрос к составным типам и увидите. Да логика на сервере .. замечательно. .... Как вы думаете интерпретатор запросов с 1с на SQL где находится? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 11:57 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Егоров Александр ScareCrow >иначе как сервер БД может отвечать за целостность хранимых им данных ясна. каша в голове. ясна. очередной любитель dbf :) А ведь это у Вас действительно каша в голове. Спор о необходимости использования ключей/констрейнтов в БД ERP-систем длится не одно десятилетие. На этом форуме пара десятков веток по данной тематике. Вам известно, что многие КРУПНЕЙШИЕ ERP (типа Oracle EBS) не используют связки foreign key\primary key? Их, наверное, идиоты писали из фирмы Oracle, большие любители dbf. Так вот, БД на основе dbf - самая настоящая база данных, если где-то (например, в одном из файлов) хранится словарь базы данных и перечень ключей и relations, описывающих ER-модель. И попробуйте доказать, что это не так ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 12:44 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Ферзь Протрассируйте запрос к составным типам и увидите. Да логика на сервере .. замечательно. .... Как вы думаете интерпретатор запросов с 1с на SQL где находится? В трейсы, в которых видно что 1С делает с SQL слабонервным лучше не смотреть :) Я имел ввиду логику которая у вас описана в ОбработкаПроведения() и который вы считаете трудно реализуемый на t-sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 12:50 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Егоров Александр Ферзь Протрассируйте запрос к составным типам и увидите. Да логика на сервере .. замечательно. .... Как вы думаете интерпретатор запросов с 1с на SQL где находится? В трейсы, в которых видно что 1С делает с SQL слабонервным лучше не смотреть :) Я имел ввиду логику которая у вас описана в ОбработкаПроведения() и который вы считаете трудно реализуемый на t-sql. Ответ в моем 2 вопросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 12:54 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Сисой А ведь это у Вас действительно каша в голове. Спор о необходимости использования ключей/констрейнтов в БД ERP-систем длится не одно десятилетие. На этом форуме пара десятков веток по данной тематике. Вам известно, что многие КРУПНЕЙШИЕ ERP (типа Oracle EBS) не используют связки foreign key\primary key? Их, наверное, идиоты писали из фирмы Oracle, большие любители dbf. Так вот, БД на основе dbf - самая настоящая база данных, если где-то (например, в одном из файлов) хранится словарь базы данных и перечень ключей и relations, описывающих ER-модель. И попробуйте доказать, что это не так Ну значит каша в голове не только у меня, но и у всех кто десятилетиями спорит о необходимости использвоания ключей/констрентов в БД, когда многоие КРУПНЕЙШИЕ ERP их не используют? :) Я знаю про эти споры и так до сих пор не понимаю зачем отказываться от этого инструмента. Только на основании того, что крупнейшие erp их не используют? Но ведь основная аргументация за отказ от проверки целостности на сервере БД - это... проверка целостности на сервере приложений, а необходимость сервера приложений - это... еще одна священная война "зачем нужны сервера приложений на современных серверах БД?". Как же тут не быть каше в голове? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 13:02 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
В случае 1с это более менее понятно, независимость от БД это плюс. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 13:12 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Егоров АлександрКак же тут не быть каше в голове? :) В случае 1С отказ от контроля ссылочной целостности по первичному ключу вызван повсеместным использованием ссылок по recid. Ключи используются только в необъктных таблицах (регистрах). Кроме того, используется ряд фокусов при организации распределенной БД. Например, при загрузке XML-файла с изменениями из одной БД в другую контроль целостности на уровне кода приложения ОТКЛЮЧАЕТСЯ (т.к. загружаемый объект может ссылаться на еще не загруженные в транзакции объекты). Это не есть гуд, но сделано именно так. Кроме того, ограничения, накладываемые кодом приложения 1С на объекты БД (например, документы), иногда довольно сложны, носят нереляционный характер и в терминах стандартного Т-SQL будут занимать не одну страницу кода триггера (в 1С используются встроенные методы объектов). А если учесть, что 1С уже поддерживает 4 СУБД (включая свою файл-серверную), то проблема генерации триггеров для объектно-ориентированных или объектно-подобных мультиплатформенных ИС вызывает священный ужас разработчика (особенно если учесть часто возникающую необходимость интеграции триггеров с подсистемами задач/сообщений). Плюс возможная несовместимость таких механизмов со следующими версиями СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 15:55 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
У 1С БД не в 3NF, можно ссылаться на оракл ебс (кстати, далеко не пример для подрожания) и хаять необходимость primary/foreign keys, но когда база падает или корёжится, вот тогда и начинают это понимать. Насколько я понимаю, разработчики в своё время на нормализацию забили, а потом уже недосуг было копаться в коде и выяснять, что и как связано, если "и так работает". Лень им было. Да и логика работы с таблицами, вероятно, таким кривым матом выстроилась, что СУБД просто запретил бы такие транзакции. Да и вообще - 1С = statutory/tax accounting reporting tool и ничего более. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 16:15 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Ферзь Егоров Александр Ферзь Протрассируйте запрос к составным типам и увидите. Да логика на сервере .. замечательно. .... Как вы думаете интерпретатор запросов с 1с на SQL где находится? В трейсы, в которых видно что 1С делает с SQL слабонервным лучше не смотреть :) Я имел ввиду логику которая у вас описана в ОбработкаПроведения() и который вы считаете трудно реализуемый на t-sql. Ответ в моем 2 вопросе. Я извиняюсь, но то, что я увижу в трейсе - это уже не та бизнес-логика, которую вы писали в ОбработкеПроведения(), это то, во что ее превратил интерпретатор 1С. Интерпретатор запросов 1С не в состоянии определить логику вашего запроса. С точки зрения данных, что запрос 1С, что запрос SQL не несет никакой бизнес-логики, а только команды изменения данных. Как эти изменения отражают бизнес-логику вашего приложения знаете только вы. И описываете вы эту логику алгоритмом проведения. Вы предпочитаете описывать эти алгоритмы на языке 1С, я - на языке t-sql. Это никак не влияет ни на саму бизнес-логику проведения, ни на отражение проведения документа в бизнес-процессе. Это влияет только на скорость разработки приложения (от выбора инструментов разработки) и на скорость работы приложения (от выбранных инстурментов доступа к данным). Почему-то считается что качество инструментов достпа к данным, реализованных в платформе 1С позволяет сосредотачиваться только на бизнес-логике. На практике почему-то чаще всего программисты 1С заняты борьбой с тормозами и блокировками, в том числе и за счет переписывания готовой логики на всякие 1С++ и ToySQL, и ломанием этого правильного механизма доступа к данным ради отключения табличных блокировок и верификации... Не понятно это тогда... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 16:27 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
andycppДа и вообще - 1С = statutory/tax accounting reporting tool и ничего более. Угумс. Особенно, если авторы термина ERP (Gartner Group) признали 1С:УПП ERP-системой. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 16:28 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
> Вам известно, что многие КРУПНЕЙШИЕ ERP (типа Oracle EBS) не используют связки foreign > key\primary key? Их, наверное, идиоты писали из фирмы Oracle, большие любители dbf. Ага. Они просто эти вещи не выделяют отдельными триггерами (ведь, в конце-концов, foreign key\primary key - триггеры с поиском по индексам), а вставляют в комплексные триггеры объектов БД. Могут себе позволить, являясь одним из подразделений разработчика базовой СУБД. А я вот себе такие фокусы рад бы позволить, да не могу. В результате у меня на событие before update вызываются 2 триггера - сначала системный на foreign key, а потом мой - для бизнес-логики. И вот тут-то я не могу сделать такой фокус, как делают разработчики OEBS. Во-первых, не могу изменить этот порядок срабатывания, а во-вторых - не могу позволить себе переписать системный триггер на foreign key. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 16:35 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Сисой В случае 1С отказ от контроля ссылочной целостности по первичному ключу вызван повсеместным использованием ссылок по recid. Ключи используются только в необъктных таблицах (регистрах). Кроме того, используется ряд фокусов при организации распределенной БД. Например, при загрузке XML-файла с изменениями из одной БД в другую контроль целостности на уровне кода приложения ОТКЛЮЧАЕТСЯ (т.к. загружаемый объект может ссылаться на еще не загруженные в транзакции объекты). Это не есть гуд, но сделано именно так. Кроме того, ограничения, накладываемые кодом приложения 1С на объекты БД (например, документы), иногда довольно сложны, носят нереляционный характер и в терминах стандартного Т-SQL будут занимать не одну страницу кода триггера (в 1С используются встроенные методы объектов). А если учесть, что 1С уже поддерживает 4 СУБД (включая свою файл-серверную), то проблема генерации триггеров для объектно-ориентированных или объектно-подобных мультиплатформенных ИС вызывает священный ужас разработчика (особенно если учесть часто возникающую необходимость интеграции триггеров с подсистемами задач/сообщений). Плюс возможная несовместимость таких механизмов со следующими версиями СУБД. Вот получется за счет универсальности доступа к данным построена модель БД, приводящая к крайне низкой производительности, но позволяющая программисту абстрагироваться от физической модели данных. Это очень хорошо, но... подвела реализация?.. Ну пускай в универсальной 1cv7s.exe не хватило сил или времени хотя бы сравнять производительность dbf и sql движка, но зачем в 8.x опять плодить один большой универсальный сервер приложений, поддерживающий 4 СУБД, включая свою собственную? Ведь опять теже грабли с производительностью в 8.0 что и были в 7.7, мучительно преодолеваемые в 8.1. Не проще ли было написать несколько вариантов серверов приложений, оптимизированных под нужную СУБД? Ведь трехзвенка и затевалась ради независимости от конкретики СУБД на стороне клиента... Есть возможность "выполнить метод на стороне сервера приложений", почему нет способа "выполнить метод на стороне сервера БД"? Вечный выбор - либо универсальность, либо скорость... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 17:24 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Егоров АлександрЕсть возможность "выполнить метод на стороне сервера приложений", почему нет способа "выполнить метод на стороне сервера БД" ? Вечный выбор - либо универсальность, либо скорость... Э что то вас понесло .. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 17:28 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Я пока для себя нашел недавно только ОДНУ задачу, в которой бы мне пригодилось использовать foreign key constraint. Это замена дублей контрагентов. Для этого достаточно восстановить все связи таблицы контрагентов по метаданным и сделать update СправочникКонтрагенты set id = '%%%' where id = '%%%'. И тогда сервер баз данных мне действительно поможет. В самой базе данных разумеется отключена возможность "непосредственного удаления объектов". Никогда не возникало проблем из-за нарушения ссылочной целостности. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 17:49 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
Ферзь Егоров АлександрЕсть возможность "выполнить метод на стороне сервера приложений", почему нет способа "выполнить метод на стороне сервера БД" ? Вечный выбор - либо универсальность, либо скорость... Э что то вас понесло .. это бывает. :) особенно когда требуется очередное многочасовое "восстановление последовательности" или "формирование внутренних продаж" и начинаешь откладывать ее до ночи или ближайших выходных... с ностальгией вспоминая самописку, в которой "последовательности" даже большего количества документов восстанавливались в течении нескольких минут. В том числе и благодаря возможности "выполнять методы на стороне сервера БД"... И не двух двухядерных ксеонах, а на обычном p-III... Я понимаю - идеал недостижим. Но к 1С острая нелюбовь как раз по причине "ну разве можно так издеваться над sql-сервером???" А ведь сам начинал когда-то подсаживать людей на 1С именно из-за наличия готовых решений учета. Теперь у тех людей вырос документооборот и... предложить нечего. Либо монстров типа Ax\Nav\Sap, либо "кластеры северов", либо самописки... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 18:23 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
svcoderЯ пока для себя нашел недавно только ОДНУ задачу, в которой бы мне пригодилось использовать foreign key constraint. Это замена дублей контрагентов. Сразу хочется спросить, а разве нельзя заранее обеспечить уникальность справочника контрагенты? Если вы говорите, что логическая целостность базы - задача клиента, значит ваш клиент плохо написан, раз допускает дубляжи уникальных значений? Соответственно никакой гарантии логической целостности клиент не дает и даже помощи в этом не оказывает? в отличии от unique constraint по нескольким полям? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2007, 18:46 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ну, про целостность все понятно: "есть люди, и есть аднайесниги, и вмести им не сойтис"... а вот кто мне раскажет, на буя блокировать версионник? Что, трудно исполняя всю логику клиентом обойтись без блокировок? Ведь даже с клиента можно сформировать скрипт а-ля: Код: plaintext 1. 2. 3. 4.
или лень верифицировать работу с субд-ками? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2007, 11:01 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
> буя блокировать версионник а как ты без блокировки будешь уверен в том что пока ты считал регистры, никто их поменять не успел? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2007, 11:17 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow > буя блокировать версионник а как ты без блокировки будешь уверен в том что пока ты считал регистры, никто их поменять не успел? Posted via ActualForum NNTP Server 1.4гм. как бы помягче выразиться. проблема регистров вообще решается триггерами. Знаете что это такое? - кто-то что-то поменял - поменялись и регистры. И нет никаких проблем. для реализации же такой же логики без триггеров (т.е. без учета типа СУБД) есть много иных способов, окромя блокировок. Например выставка флагов и реализация "поменять" только для неофлаженных (единообразная для всех таблиц бд). Правда там появляется проблема нежданно отвалившегося офлаговавшего клиента. ну так и она вполне решаема. вот только зачем копировать унивресальные серверные механизмы клиентом? он ведь и так уже неприлично тяжел. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2007, 11:47 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
я говорю про фантомы в таблицах. такое решается ТОЛЬКО блокировками Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2007, 12:10 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow я говорю про фантомы в таблицах. такое решается ТОЛЬКО блокировками гм. давайте вы все таки будете говорить за регистры 1С. что вам не нравится? распишите ситуацию. И мы ее порешаем без блокировок. и вообще, товарищи однойесниги, давайте не скакать мыслью, а да, насчот белгорода: там еще есть "крыгинское купалище" (расказывали, что в конце прошлого века еще было) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2007, 12:20 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
поскольку ответа видимо не будет, продолжим знакомиться с работой постгреса: ScareCrow > буя блокировать версионник а как ты без блокировки будешь уверен в том что пока ты считал регистры, никто их поменять не успел? моделируем регистр: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
моделируем работу транзакций апдейта с клиента (открываем 2 окна в пгадмине и пишем в каждом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
запускаем во втором - "сюрпрайс-сюрпрайс" - окно подвисает (дожидается коммита первой транзакции), т.ч. "изменить строку регистра", пока первый что-то считал в этой записи регистра - нам не удастся. Завершаем в первом COMMIT; - второе отрабатывает, и выдает нам нашу честную 3-ку. что я делал не так? (по поводу апдейта строки не регистра, а исходного документа в момент выполнения транзакции по пересчету регистра - это тот же вопрос - в 1-й транзакции надо 1-м делом захватить строку документа апдейтом статуса "проведен" (а апдейтящий строку документа запрос с клиента должен содержать строку WHERE "проведен"=FALSE - нормальный запрет апдейта проведенного документа (без отмены проведения)) - тогда в момент отработки 1-й транзакции после захвата и до коммита второй клиент уже не сможет отапдейтить строку документа (она апдейтится) - повиснет в ожидании коммита, а после коммита не сможет - поскольку прочтет скомиченную запись "проведен"=TRUE, в случае же, если вторая транзакция изменит sum в документе до захвата строки документа первой - 1-я не сумеет ее захватить на смену статуса "проведен" до закоммичевания второй, и не будет пересчитывать и sum регистра вплоть до закомичевания второй). ЗЫ. то же в случае, если транзакции только инсертят в регистр ("режим распараллеливания"), а асинхронно (не в транзакции проведения) группирует записи (т.е. апдейтит одну ,грохая дубли,) либо один (единственный на кластер) процесс в третьем слое, либо job на сервере. Просто тут этот "централизованный" процесс - выступает в роли второй транзакции - то что он захватил уже не апдейтится, а разве что по завершению... еще раз: что именно вас пугает в такой работе с регистрами? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 12:17 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
> окно подвисает (дожидается коммита первой транзакции это и есть блокировка. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:03 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
во вторых у тебя версионник. и это значит что у тебя пишушие блокируют пишущих. а читающих нет. и что будет если ты делаешь апдейт, а в это время вторая транзакция ЧИТАЕТ твой регистр? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:06 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow > окно подвисает (дожидается коммита первой транзакции это и есть блокировка. Posted via ActualForum NNTP Server 1.4это отнюдь не блокировка _таблицы_. и не надо тут .... (другую записьпись вы в этом случайе нормально отапдейтите. А вот 1с в норме ("автоматицки") блокирует _таблицы_ постгреса (RTихFM!!!). Это как называеццо? Убивать гадов!) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:09 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow во вторых у тебя версионник. и это значит что у тебя пишушие блокируют пишущих. а читающих нет. и что будет если ты делаешь апдейт, а в это время вторая транзакция ЧИТАЕТ твой регистр? Posted via ActualForum NNTP Server 1.4а какие у вас проблемы с тем, что кто-то прочитал срез БД на начало читающей транзакции? уроды ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:10 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
>что кто-то прочитал срез БД на начало читающей транзакции ты сам про уровни изолированности прочитаешь ? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:17 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow >что кто-то прочитал срез БД на начало читающей транзакции ты сам про уровни изолированности прочитаешь ? Posted via ActualForum NNTP Server 1.4я бы попросил не хамить. мне неприятно, когда люди сомнительных какчеств пытаюццо мне хамски тыкать. для не самых понятливых рекомендую сходить по ссылке. для более понятливых - если транзакция 1. чисто читающая (ничего апдейтится не будет, выводится отчет и т.п.) - проблем нет - вы видите срез данных на момент времени. никто и не обещал, что срез данных в бд вечен. 2. читает, чтобы писать (куда-то еще) - нужно, как сразу говорилось ( 4913392 ), учитывать тип сервера. - например обеспечить нормальный флажковый механизм (см отступление в #4938264 о записи в документ одной из транз). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:29 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
>это отнюдь не блокировка _таблицы_ >Это как называеццо? это косяк 1С за который их пинают нещадно. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:41 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
>никто и не обещал, что срез данных в бд вечен. одна транзакция расчитала регистр и делает по нему движения. вторая соответственно прочитала СТАРЫЕ данные. и сделала движения. в результате могут быть минуса там где нельзя. без блокировок тут никак. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:41 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow >это отнюдь не блокировка _таблицы_ >Это как называеццо? это косяк 1С за который их пинают нещадно. так почему вы мне отказываете в этом удовольствии? кажется вопрос мой касался именно этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:44 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow >никто и не обещал, что срез данных в бд вечен. одна транзакция расчитала регистр и делает по нему движения. вторая соответственно прочитала СТАРЫЕ данные. и сделала движения. в результате могут быть минуса там где нельзя. без блокировок тут никак. Posted via ActualForum NNTP Server 1.4не говорите глупостей, и я не буду говорить, что я о них думаю. без блокировок (таблиц) тут именно как. движение меняет регистр или нет? где _именно_ у вас появился минус? Еще раз просмотрите 2 транзакции, меняющие запись регистра. Очевидно, что блокировка _одной_ (и той же) изменяемой записи блокировочником производится самим,ля без ансам,ля в виде требований блокировок на _всю_таблицу_, накладываемыми одноесиной. таких ансам,лей нам не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:50 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
надоел Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 13:56 |
|
есть ли "структура БД" у 1С?
|
|||
---|---|---|---|
#18+
ScareCrow надоел 2ScareCrow слиф зощитан. впредь дурь-то придерживайте при себе - за антиллехента сойдете. Итак. возвращаемся к утверждению: чтобы прога работала нормально с разными хранилищами - ее работа с хранилищами должна быть версифицирована - с тем чтобы не накладывать лишних ограничений там, где для данного типа хранилищ такая-то проблема решается иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2007, 14:07 |
|
|
start [/forum/topic.php?all=1&fid=28&tid=1525183]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 196ms |
0 / 0 |