powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / есть ли "структура БД" у 1С?
50 сообщений из 50, показаны все 2 страниц
есть ли "структура БД" у 1С?
    #34934090
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в продолжение темы Собственная автоматизация

svcoder Егоров Александр
А в 1С есть структура БД? как ее посмотреть? такой популярный инструмент, как visio вытаскивает из базы 1С лишь набор абсолютно несвязанных таблиц. Никакой структуры. Может я где-то в конфигураторе упустил меню "структура БД"? Тоже вроде нету. Как может не нравиться то, чего не существует?

В данном случае метаданные храняться в md-файле. То что вторичные ключи не сообщаются SQL Server и вы не видите связей с помощью универсальных инструментов не является проблемой. При желании можно написать обработку которая будет создавать эти связи по информации из метаданных.

вторичных ключей нет в БД 1С. По крайней мере в 77 нет. Я не говорю, что проблема - посмотреть. Я говорю, что сервер БД только хранит таблицы 1С и ничего более. И даже за целостность данных в БД он отвечать не может. Все делается на клиенте. Поэтому структуры БД нет. И написать обработку можно только показывающую как клиентское приложение трактует взаимоотношение полей разных таблиц . Тоже самое можно сказать о любом наборе любых таблиц, даже экселевских. То, что у меня валяется в папке МоиДокументы 35 экселевских документов, имеющих внутренние связи - это БД? Она имеет структуру?

svcoder Егоров Александр
Потому что основные тормоза не в скорости доступа к данным, а в неоптимальной системе хранении данных в 1С и очень больших накладных расходах на "проведение" документов силами клиента.

Раскройте тему о накладных расходах. Особенно если все стандартные блокировки 1С очищены и используется блокировка sp_getapplock.

Отчет "Взаиморасчеты" у меня не использует регистры. Значит наличие регистра "взаиморасчеты", формирование движений по нему при проведении, пересчет его итогов каждое проведение и каждое открытие периода - лишние накладные расходы. Остатки товар по партиям я собираю быстрее, чем 1Ска по регистру остатков товаров - Наличие регистра "ОстаткиТоваров" - лишние накладные расходы. Блокировки в 1С - это следствие тормозной работы клиента, а не причина. Если выполнение ОбработкаПроведения() свести к милисекундам - табличные блокировки перестанут проявляться так сильно, что позволит вырасти количеству проводимых документов за единицу времени вообще не притрагиваясь к апгрейду железа и переносом всех активных пользователей в терминал. И не используя нештатные возможности платформы.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934138
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открой для себя 1С++


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934157
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
открой для себя 1С++

Открыл уже давно. причем здесь 1С++?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934166
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там парсер метаимен есть.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934172
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Поэтому структуры БД нет
БД есть а структуры у нее нету
ага.. а вообще про что топик?
сначала показалось что про работу с базой. теперь вообще непонимаю


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934316
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
там парсер метаимен есть.

я знаю... этим и пользуюсь при создании триггеров и процедур. В ПриНачалеРаботыСистемы сравнивается текущая версия md и последняя версия md, и при их разнице триггера и процедуры перекомпилируются... С испольщованием MetaDataWork и ODBCRecordset. При этом я получаю возможность обработки "проведения" документов непосредственно на сервере, не используя клиентский код 1С и не заставляя 1С загружать вагон данных с сервера, чтобы потом заново записать их обратно.

ScareCrow
>Поэтому структуры БД нет
БД есть а структуры у нее нету
ага.. а вообще про что топик?

Еще раз - то, что у меня валяется в папке МоиДокументы 35 экселевских документов, имеющих внутренние связи - это БД? Она имеет структуру?

Топик о том, что то, что в 1С (77) называется "структурой БД" - набор разрозненных таблиц. То, что в 1С использование встроенных элементов "ускорения обработки данных" и наличие клиентского кода в ОбработкаПроведения() - источник тормозов, а не ускорений.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934347
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>что то, что в 1С (77) называется "структурой БД" - набор разрозненных
>таблиц
давайте определимся с понятиями. что для вас "структура БД"? Связка -
foreign key -> primary key?



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934389
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
>что то, что в 1С (77) называется "структурой БД" - набор разрозненных
>таблиц
давайте определимся с понятиями. что для вас "структура БД"? Связка -
foreign key -> primary key?

Угу. вообще constraints в целом, в том числе и foreign key\primary key. иначе как сервер БД может отвечать за целостность хранимых им данных?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934410
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>иначе как сервер БД может отвечать за целостность хранимых им данных
ясна. каша в голове.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934449
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
>иначе как сервер БД может отвечать за целостность хранимых им данных
ясна. каша в голове.

ясна. очередной любитель dbf :)
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934461
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
целостность бывает физическая и логическая. констрейнты все голи
помогают поддерживать логическую целостность. никто не мешает сделать
те же самые проверки на клиенте


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934464
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>очередной любитель dbf
переходим на личности?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934563
Ферзь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что свази между таблицами не прописаны .. так они по сути и не нужны .. потому как логика построена не в SQL а в приложении. SQL это только кеширование и хранение таблиц.
Слишком сложно будет реализовывать логику в SQL особенно с составными типами.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934589
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
>очередной любитель dbf
переходим на личности?

Извиняюсь, погорячился.

Разговор как раз и идет зачем поддерживать обработку данных и проверку целостности на клиенте, если под это уже есть все инструменты непосредственно в самом сервере БД. Особенно в сетевой ИС предприятия. Особенно на интерпретируемом клиенте. Сервер БД в этом случае забирает на себя все рутинные манипуляции с данными уже не только связанные с самим хранением данных во внутренних хранилищях сервера, но и обработку этих данных перед записью, по правилам, заданными в том числе и алгоритмами бизнес-логики. Трех-звенка придумана так же для хранения обработчиков бизнес-логики подальше от клиента и поближе к серверу БД. Сейчас сам сервер БД уже может являться полноценным сервером приложений. Зачем тягать данные между клиентом и сервером, если достаточно серверу один раз скормить логику обработки и потом только отдавать команды на уровне ПровестиДокумент ? Зачем клиенту задумываться об обеспечении логической целостности, если достаточно один раз скормить constraints на сервер?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934622
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ферзь
То что свази между таблицами не прописаны .. так они по сути и не нужны .. потому как логика построена не в SQL а в приложении. SQL это только кеширование и хранение таблиц.
Слишком сложно будет реализовывать логику в SQL особенно с составными типами.

Зачем тогда хранить таблицы в SQL? Отдать побольше памяти под файловый кэш и оставить тот же dbf. Физическую целостность обеспечивает серверная ОС, логическую - клиент. необходимость сервера SQL в чем?
Давайте пример. Какую логику (особенно с составными типами) сложнее реализовать на 1C, чем на SQL?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934630
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон... конежно же "Какую логику (особенно с составными типами) сложнее реализовать на SQL, чем на 1C?"
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934712
Ферзь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров Александрпардон... конежно же "Какую логику (особенно с составными типами) сложнее реализовать на SQL, чем на 1C?"
Протрассируйте запрос к составным типам и увидите.
Да логика на сервере .. замечательно. ....
Как вы думаете интерпретатор запросов с 1с на SQL где находится?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934913
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр ScareCrow
>иначе как сервер БД может отвечать за целостность хранимых им данных
ясна. каша в голове.

ясна. очередной любитель dbf :)

А ведь это у Вас действительно каша в голове. Спор о необходимости использования ключей/констрейнтов в БД ERP-систем длится не одно десятилетие. На этом форуме пара десятков веток по данной тематике.
Вам известно, что многие КРУПНЕЙШИЕ ERP (типа Oracle EBS) не используют связки foreign key\primary key? Их, наверное, идиоты писали из фирмы Oracle, большие любители dbf.

Так вот, БД на основе dbf - самая настоящая база данных, если где-то (например, в одном из файлов) хранится словарь базы данных и перечень ключей и relations, описывающих ER-модель. И попробуйте доказать, что это не так
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934950
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ферзь
Протрассируйте запрос к составным типам и увидите.
Да логика на сервере .. замечательно. ....
Как вы думаете интерпретатор запросов с 1с на SQL где находится?

В трейсы, в которых видно что 1С делает с SQL слабонервным лучше не смотреть :) Я имел ввиду логику которая у вас описана в ОбработкаПроведения() и который вы считаете трудно реализуемый на t-sql.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34934967
Ферзь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров Александр Ферзь
Протрассируйте запрос к составным типам и увидите.
Да логика на сервере .. замечательно. ....
Как вы думаете интерпретатор запросов с 1с на SQL где находится?

В трейсы, в которых видно что 1С делает с SQL слабонервным лучше не смотреть :) Я имел ввиду логику которая у вас описана в ОбработкаПроведения() и который вы считаете трудно реализуемый на t-sql.
Ответ в моем 2 вопросе.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34935010
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисой
А ведь это у Вас действительно каша в голове. Спор о необходимости использования ключей/констрейнтов в БД ERP-систем длится не одно десятилетие. На этом форуме пара десятков веток по данной тематике.
Вам известно, что многие КРУПНЕЙШИЕ ERP (типа Oracle EBS) не используют связки foreign key\primary key? Их, наверное, идиоты писали из фирмы Oracle, большие любители dbf.

Так вот, БД на основе dbf - самая настоящая база данных, если где-то (например, в одном из файлов) хранится словарь базы данных и перечень ключей и relations, описывающих ER-модель. И попробуйте доказать, что это не так

Ну значит каша в голове не только у меня, но и у всех кто десятилетиями спорит о необходимости использвоания ключей/констрентов в БД, когда многоие КРУПНЕЙШИЕ ERP их не используют? :)
Я знаю про эти споры и так до сих пор не понимаю зачем отказываться от этого инструмента. Только на основании того, что крупнейшие erp их не используют? Но ведь основная аргументация за отказ от проверки целостности на сервере БД - это... проверка целостности на сервере приложений, а необходимость сервера приложений - это... еще одна священная война "зачем нужны сервера приложений на современных серверах БД?". Как же тут не быть каше в голове? :)
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34935065
В случае 1с это более менее понятно, независимость от БД это плюс.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34935854
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров АлександрКак же тут не быть каше в голове? :)

В случае 1С отказ от контроля ссылочной целостности по первичному ключу вызван повсеместным использованием ссылок по recid. Ключи используются только в необъктных таблицах (регистрах).
Кроме того, используется ряд фокусов при организации распределенной БД. Например, при загрузке XML-файла с изменениями из одной БД в другую контроль целостности на уровне кода приложения ОТКЛЮЧАЕТСЯ (т.к. загружаемый объект может ссылаться на еще не загруженные в транзакции объекты). Это не есть гуд, но сделано именно так.
Кроме того, ограничения, накладываемые кодом приложения 1С на объекты БД (например, документы), иногда довольно сложны, носят нереляционный характер и в терминах стандартного Т-SQL будут занимать не одну страницу кода триггера (в 1С используются встроенные методы объектов). А если учесть, что 1С уже поддерживает 4 СУБД (включая свою файл-серверную), то проблема генерации триггеров для объектно-ориентированных или объектно-подобных мультиплатформенных ИС вызывает священный ужас разработчика (особенно если учесть часто возникающую необходимость интеграции триггеров с подсистемами задач/сообщений).
Плюс возможная несовместимость таких механизмов со следующими версиями СУБД.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34935928
andycpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У 1С БД не в 3NF, можно ссылаться на оракл ебс (кстати, далеко не пример для подрожания) и хаять необходимость primary/foreign keys, но когда база падает или корёжится, вот тогда и начинают это понимать.
Насколько я понимаю, разработчики в своё время на нормализацию забили, а потом уже недосуг было копаться в коде и выяснять, что и как связано, если "и так работает". Лень им было. Да и логика работы с таблицами, вероятно, таким кривым матом выстроилась, что СУБД просто запретил бы такие транзакции.
Да и вообще - 1С = statutory/tax accounting reporting tool и ничего более.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34935970
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ферзь Егоров Александр Ферзь
Протрассируйте запрос к составным типам и увидите.
Да логика на сервере .. замечательно. ....
Как вы думаете интерпретатор запросов с 1с на SQL где находится?

В трейсы, в которых видно что 1С делает с SQL слабонервным лучше не смотреть :) Я имел ввиду логику которая у вас описана в ОбработкаПроведения() и который вы считаете трудно реализуемый на t-sql.
Ответ в моем 2 вопросе.
Я извиняюсь, но то, что я увижу в трейсе - это уже не та бизнес-логика, которую вы писали в ОбработкеПроведения(), это то, во что ее превратил интерпретатор 1С. Интерпретатор запросов 1С не в состоянии определить логику вашего запроса. С точки зрения данных, что запрос 1С, что запрос SQL не несет никакой бизнес-логики, а только команды изменения данных. Как эти изменения отражают бизнес-логику вашего приложения знаете только вы. И описываете вы эту логику алгоритмом проведения. Вы предпочитаете описывать эти алгоритмы на языке 1С, я - на языке t-sql. Это никак не влияет ни на саму бизнес-логику проведения, ни на отражение проведения документа в бизнес-процессе. Это влияет только на скорость разработки приложения (от выбора инструментов разработки) и на скорость работы приложения (от выбранных инстурментов доступа к данным). Почему-то считается что качество инструментов достпа к данным, реализованных в платформе 1С позволяет сосредотачиваться только на бизнес-логике. На практике почему-то чаще всего программисты 1С заняты борьбой с тормозами и блокировками, в том числе и за счет переписывания готовой логики на всякие 1С++ и ToySQL, и ломанием этого правильного механизма доступа к данным ради отключения табличных блокировок и верификации... Не понятно это тогда...
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34935977
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andycppДа и вообще - 1С = statutory/tax accounting reporting tool и ничего более.
Угумс. Особенно, если авторы термина ERP (Gartner Group) признали 1С:УПП ERP-системой.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34936009
я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
я
Гость
> Вам известно, что многие КРУПНЕЙШИЕ ERP (типа Oracle EBS) не используют связки foreign
> key\primary key? Их, наверное, идиоты писали из фирмы Oracle, большие любители dbf.

Ага. Они просто эти вещи не выделяют отдельными триггерами (ведь, в конце-концов, foreign
key\primary key - триггеры с поиском по индексам), а вставляют в комплексные триггеры объектов БД. Могут себе позволить, являясь одним из подразделений разработчика базовой СУБД.
А я вот себе такие фокусы рад бы позволить, да не могу. В результате у меня на событие before update вызываются 2 триггера - сначала системный на foreign key, а потом мой - для бизнес-логики. И вот тут-то я не могу сделать такой фокус, как делают разработчики OEBS. Во-первых, не могу изменить этот порядок срабатывания, а во-вторых - не могу позволить себе переписать системный триггер на foreign key.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34936223
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисой
В случае 1С отказ от контроля ссылочной целостности по первичному ключу вызван повсеместным использованием ссылок по recid. Ключи используются только в необъктных таблицах (регистрах).
Кроме того, используется ряд фокусов при организации распределенной БД. Например, при загрузке XML-файла с изменениями из одной БД в другую контроль целостности на уровне кода приложения ОТКЛЮЧАЕТСЯ (т.к. загружаемый объект может ссылаться на еще не загруженные в транзакции объекты). Это не есть гуд, но сделано именно так.
Кроме того, ограничения, накладываемые кодом приложения 1С на объекты БД (например, документы), иногда довольно сложны, носят нереляционный характер и в терминах стандартного Т-SQL будут занимать не одну страницу кода триггера (в 1С используются встроенные методы объектов). А если учесть, что 1С уже поддерживает 4 СУБД (включая свою файл-серверную), то проблема генерации триггеров для объектно-ориентированных или объектно-подобных мультиплатформенных ИС вызывает священный ужас разработчика (особенно если учесть часто возникающую необходимость интеграции триггеров с подсистемами задач/сообщений).
Плюс возможная несовместимость таких механизмов со следующими версиями СУБД.

Вот получется за счет универсальности доступа к данным построена модель БД, приводящая к крайне низкой производительности, но позволяющая программисту абстрагироваться от физической модели данных. Это очень хорошо, но... подвела реализация?.. Ну пускай в универсальной 1cv7s.exe не хватило сил или времени хотя бы сравнять производительность dbf и sql движка, но зачем в 8.x опять плодить один большой универсальный сервер приложений, поддерживающий 4 СУБД, включая свою собственную? Ведь опять теже грабли с производительностью в 8.0 что и были в 7.7, мучительно преодолеваемые в 8.1. Не проще ли было написать несколько вариантов серверов приложений, оптимизированных под нужную СУБД? Ведь трехзвенка и затевалась ради независимости от конкретики СУБД на стороне клиента... Есть возможность "выполнить метод на стороне сервера приложений", почему нет способа "выполнить метод на стороне сервера БД"? Вечный выбор - либо универсальность, либо скорость...
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34936236
Ферзь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров АлександрЕсть возможность "выполнить метод на стороне сервера приложений", почему нет способа "выполнить метод на стороне сервера БД" ? Вечный выбор - либо универсальность, либо скорость...

Э что то вас понесло ..
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34936314
svcoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пока для себя нашел недавно только ОДНУ задачу, в которой бы мне пригодилось использовать foreign key constraint. Это замена дублей контрагентов. Для этого достаточно восстановить все связи таблицы контрагентов по метаданным и сделать update СправочникКонтрагенты set id = '%%%' where id = '%%%'. И тогда сервер баз данных мне действительно поможет.

В самой базе данных разумеется отключена возможность "непосредственного удаления объектов". Никогда не возникало проблем из-за нарушения ссылочной целостности.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34936441
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ферзь Егоров АлександрЕсть возможность "выполнить метод на стороне сервера приложений", почему нет способа "выполнить метод на стороне сервера БД" ? Вечный выбор - либо универсальность, либо скорость...

Э что то вас понесло ..

это бывает. :) особенно когда требуется очередное многочасовое "восстановление последовательности" или "формирование внутренних продаж" и начинаешь откладывать ее до ночи или ближайших выходных... с ностальгией вспоминая самописку, в которой "последовательности" даже большего количества документов восстанавливались в течении нескольких минут. В том числе и благодаря возможности "выполнять методы на стороне сервера БД"... И не двух двухядерных ксеонах, а на обычном p-III...
Я понимаю - идеал недостижим. Но к 1С острая нелюбовь как раз по причине "ну разве можно так издеваться над sql-сервером???" А ведь сам начинал когда-то подсаживать людей на 1С именно из-за наличия готовых решений учета. Теперь у тех людей вырос документооборот и... предложить нечего. Либо монстров типа Ax\Nav\Sap, либо "кластеры северов", либо самописки...
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34936519
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svcoderЯ пока для себя нашел недавно только ОДНУ задачу, в которой бы мне пригодилось использовать foreign key constraint. Это замена дублей контрагентов.
Сразу хочется спросить, а разве нельзя заранее обеспечить уникальность справочника контрагенты? Если вы говорите, что логическая целостность базы - задача клиента, значит ваш клиент плохо написан, раз допускает дубляжи уникальных значений? Соответственно никакой гарантии логической целостности клиент не дает и даже помощи в этом не оказывает? в отличии от unique constraint по нескольким полям?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34937563
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, про целостность все понятно: "есть люди, и есть аднайесниги, и вмести им не сойтис"... а вот кто мне раскажет, на буя блокировать версионник? Что, трудно исполняя всю логику клиентом обойтись без блокировок? Ведь даже с клиента можно сформировать скрипт а-ля:
Код: plaintext
1.
2.
3.
4.
Begin;
....
....--тут вся логика в одной транзакции
....
COMMIT;
и скормить его серваку.
или лень верифицировать работу с субд-ками?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34937631
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> буя блокировать версионник
а как ты без блокировки будешь уверен в том что пока ты считал регистры,
никто их поменять не успел?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34937778
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
> буя блокировать версионник
а как ты без блокировки будешь уверен в том что пока ты считал регистры,
никто их поменять не успел?


Posted via ActualForum NNTP Server 1.4гм. как бы помягче выразиться. проблема регистров вообще решается триггерами. Знаете что это такое? - кто-то что-то поменял - поменялись и регистры. И нет никаких проблем.


для реализации же такой же логики без триггеров (т.е. без учета типа СУБД) есть много иных способов, окромя блокировок. Например выставка флагов и реализация "поменять" только для неофлаженных (единообразная для всех таблиц бд). Правда там появляется проблема нежданно отвалившегося офлаговавшего клиента. ну так и она вполне решаема. вот только зачем копировать унивресальные серверные механизмы клиентом? он ведь и так уже неприлично тяжел.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34937906
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я говорю про фантомы в таблицах. такое решается ТОЛЬКО блокировками


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34937951
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
я говорю про фантомы в таблицах. такое решается ТОЛЬКО блокировками
гм. давайте вы все таки будете говорить за регистры 1С. что вам не нравится? распишите ситуацию. И мы ее порешаем без блокировок. и вообще, товарищи однойесниги, давайте не скакать мыслью, а


да, насчот белгорода: там еще есть "крыгинское купалище" (расказывали, что в конце прошлого века еще было)
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951414
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поскольку ответа видимо не будет, продолжим знакомиться с работой постгреса:
ScareCrow
> буя блокировать версионник
а как ты без блокировки будешь уверен в том что пока ты считал регистры,
никто их поменять не успел? моделируем регистр:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE testsum
(
  id int4 NOT NULL,
  data text,
  sum int4 NOT NULL DEFAULT  0 ,
  CONSTRAINT testsum_pkey PRIMARY KEY (id)
) 
WITHOUT OIDS;
--введем запись для теста
INSERT INTO testsum (id,data,sum) VALUES ( 1 ,'1', 1 );
вместо триггеров (см http://sql.ru/forum/actualthread.aspx?tid=375616)
моделируем работу транзакций апдейта с клиента (открываем 2 окна в пгадмине и пишем в каждом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
--уровень умолчательный, просто акцентируем внимание.

UPDATE  testsum
 SET sum = sum + 1 
 WHERE id = 1 ;

SELECT * from testsum WHERE  id = 1 ;
--обратите внимание, ни COMMIT ни ROLLBACK НЕ ПИШЕМ - т.е. растягиваем транзакцию.
запускаем в одном - честно получаем результат : 2
запускаем во втором - "сюрпрайс-сюрпрайс" - окно подвисает (дожидается коммита первой транзакции), т.ч. "изменить строку регистра", пока первый что-то считал в этой записи регистра - нам не удастся.
Завершаем в первом COMMIT; - второе отрабатывает, и выдает нам нашу честную 3-ку.

что я делал не так?

(по поводу апдейта строки не регистра, а исходного документа в момент выполнения транзакции по пересчету регистра - это тот же вопрос - в 1-й транзакции надо 1-м делом захватить строку документа апдейтом статуса "проведен" (а апдейтящий строку документа запрос с клиента должен содержать строку WHERE "проведен"=FALSE - нормальный запрет апдейта проведенного документа (без отмены проведения)) - тогда в момент отработки 1-й транзакции после захвата и до коммита второй клиент уже не сможет отапдейтить строку документа (она апдейтится) - повиснет в ожидании коммита, а после коммита не сможет - поскольку прочтет скомиченную запись "проведен"=TRUE, в случае же, если вторая транзакция изменит sum в документе до захвата строки документа первой - 1-я не сумеет ее захватить на смену статуса "проведен" до закоммичевания второй, и не будет пересчитывать и sum регистра вплоть до закомичевания второй).

ЗЫ. то же в случае, если транзакции только инсертят в регистр ("режим распараллеливания"), а асинхронно (не в транзакции проведения) группирует записи (т.е. апдейтит одну ,грохая дубли,) либо один (единственный на кластер) процесс в третьем слое, либо job на сервере. Просто тут этот "централизованный" процесс - выступает в роли второй транзакции - то что он захватил уже не апдейтится, а разве что по завершению...

еще раз: что именно вас пугает в такой работе с регистрами?
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951627
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> окно подвисает (дожидается коммита первой транзакции
это и есть блокировка.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951646
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во вторых у тебя версионник. и это значит что у тебя пишушие блокируют
пишущих. а читающих нет. и что будет если ты делаешь апдейт, а в это время
вторая транзакция ЧИТАЕТ твой регистр?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951662
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
> окно подвисает (дожидается коммита первой транзакции
это и есть блокировка.


Posted via ActualForum NNTP Server 1.4это отнюдь не блокировка _таблицы_. и не надо тут ....

(другую записьпись вы в этом случайе нормально отапдейтите. А вот 1с в норме ("автоматицки") блокирует _таблицы_ постгреса (RTихFM!!!). Это как называеццо? Убивать гадов!)
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951667
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
во вторых у тебя версионник. и это значит что у тебя пишушие блокируют
пишущих. а читающих нет. и что будет если ты делаешь апдейт, а в это время
вторая транзакция ЧИТАЕТ твой регистр?


Posted via ActualForum NNTP Server 1.4а какие у вас проблемы с тем, что кто-то прочитал срез БД на начало читающей транзакции?

уроды
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951701
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>что кто-то прочитал срез БД на начало читающей транзакции
ты сам про уровни изолированности прочитаешь ?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951749
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
>что кто-то прочитал срез БД на начало читающей транзакции
ты сам про уровни изолированности прочитаешь ?


Posted via ActualForum NNTP Server 1.4я бы попросил не хамить. мне неприятно, когда люди сомнительных какчеств пытаюццо мне хамски тыкать.

для не самых понятливых рекомендую сходить по ссылке.

для более понятливых - если транзакция
1. чисто читающая (ничего апдейтится не будет, выводится отчет и т.п.) - проблем нет - вы видите срез данных на момент времени. никто и не обещал, что срез данных в бд вечен.
2. читает, чтобы писать (куда-то еще) - нужно, как сразу говорилось ( 4913392 ), учитывать тип сервера. - например обеспечить нормальный флажковый механизм (см отступление в #4938264 о записи в документ одной из транз).
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951788
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>это отнюдь не блокировка _таблицы_
>Это как называеццо?
это косяк 1С за который их пинают нещадно.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951789
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>никто и не обещал, что срез данных в бд вечен.
одна транзакция расчитала регистр и делает по нему движения. вторая
соответственно прочитала СТАРЫЕ данные. и сделала движения. в результате
могут быть минуса там где нельзя. без блокировок тут никак.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951806
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
>это отнюдь не блокировка _таблицы_
>Это как называеццо?
это косяк 1С за который их пинают нещадно.
так почему вы мне отказываете в этом удовольствии? кажется вопрос мой касался именно этого.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951823
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
>никто и не обещал, что срез данных в бд вечен.
одна транзакция расчитала регистр и делает по нему движения. вторая
соответственно прочитала СТАРЫЕ данные. и сделала движения. в результате
могут быть минуса там где нельзя. без блокировок тут никак.


Posted via ActualForum NNTP Server 1.4не говорите глупостей, и я не буду говорить, что я о них думаю.

без блокировок (таблиц) тут именно как. движение меняет регистр или нет? где _именно_ у вас появился минус? Еще раз просмотрите 2 транзакции, меняющие запись регистра. Очевидно, что блокировка _одной_ (и той же) изменяемой записи блокировочником производится самим,ля без ансам,ля в виде требований блокировок на _всю_таблицу_, накладываемыми одноесиной. таких ансам,лей нам не надо.
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951853
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надоел


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
есть ли "структура БД" у 1С?
    #34951917
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow
надоел 2ScareCrow слиф зощитан. впредь дурь-то придерживайте при себе - за антиллехента сойдете.


Итак. возвращаемся к утверждению: чтобы прога работала нормально с разными хранилищами - ее работа с хранилищами должна быть версифицирована - с тем чтобы не накладывать лишних ограничений там, где для данного типа хранилищ такая-то проблема решается иначе.
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / [игнор отключен] [закрыт для гостей] / есть ли "структура БД" у 1С?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]