Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Вопрос узкой специфики. Выполняется некая "атомарная" операция в 1С предприятии, суть не в самой операции. Под атомарной операцией прошу понимать некий набор действий с данными (в нашем случае изменяющий их), имеющих своей целью логическую завершенность. Допустим проведение документа. Разберем такой случай работы с данными. Пусть в момент времени исполнения такой атомарной операции, данные будут меняться в: реквизитах самого документа, его табличных частях, некоторых регистрах (дополнительные свойства конкретно этого документа). Итого три "места", где данные изменяться. В самой 1С сработает одна функция, которая изменит данные по порядку в трёх местах. Вопрос первый На стороне SQL сервера, на вход будут поданы: 1. Три запроса подряд? т.е. каждый - отдельная транзакция 2. Три запроса в рамках одной транзакции? 3. Изменения будут агрегированы движком (вот уж не знаю как он внутри устроен) в один SQL запрос, а рамках одной транзакции? Под транзакцией понимать только то, что принято для SQL серверов. Лично я склоняюсь к варианту один. Отсюда второй вопрос. Разумеется в момент выполнения атомарной операции может произойти сбой. По сути функция до краха попыталась записать данные только в реквизиты документа 1С и табличную часть, а разработчик функции не предусмотрел откат данных в первоначальное состояние, или форс-мажор какой с клиентом случился. Что произойдет на стороне SQL сервера: 1. Применяться изменения только для реквизитов документа и табличных частей, и данные в регистре не будут согласовываться с документом? 2. Неким непонятным мне образом (можете объяснить? допустим обрыв связи, или питания у клиента), все изменения касающиеся конкретно этого документа будут отменены? Несколько десятков книг с документацией по 1С присутствуют на столе, искал ответ в каждой. В интернетах гуглил безрезультатно. "А нафига?" - Рассматриваю лог транзакций MsSQL 2005, на предмет резервирования в реальном времени. Т.е. будет ли лог транзакций MsSQL, накаченный на ночной бэкап, соответствовать действительности. Вплоть до атомарности операций из 1С, к моменту краха системы. Ведь если, последние SQL транзакции до отказа не привели к логической целостности данных (атомарность операции не соблюдена), но были записаны в лог транзакций MsSQL, то в базе у меня последние изменения это простите кака, а не достоверные данные в документах. P.S. Пожалуйста не отвечайте в эту тему если у вас отсутствует личный опыт в поднятых здесь вопросах, или вы не можете сослаться на официальный или авторитетный (хотя-бы для Вас лично) источник информации. Тем-более если Вы "просто программист 1С", не отягощенный регалиями знаний T-SQL, ООП, многопоточности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 09:00 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
FZT, написано много, а по существу - практически ничего. 1) Какая версия платформы? После ответа на этот вопрос можно будет продолжить разговор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 09:37 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
Запись объектов в 1С, осуществляется в рамках одной транзакции. Например записывается документ, что происходит при этом: НачатьТранзакцию Обновить/Вставить шапку документа Обновить/Вставить строки документа для N табличных частей. В случае проведения Обновить/Вставить движения для N регистров определенных на этапе конфигурирования. ЗафиксироватьТранзакцию Если что-то произошло, будет полный откат транзакции. Данный алгоритм работает в 8, в 7 не копался, нужды не было... А вообще, мой вам совет - книга Радченко, там все описано про транзакции в 1С8 и профайлер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 10:23 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
FZTЗдравствуйте. Вопрос узкой специфики. Выполняется некая "атомарная" операция в 1С предприятии, суть не в самой операции. Под атомарной операцией прошу понимать некий набор действий с данными (в нашем случае изменяющий их), имеющих своей целью логическую завершенность. Допустим проведение документа. Разберем такой случай работы с данными. Пусть в момент времени исполнения такой атомарной операции, данные будут меняться в: реквизитах самого документа, его табличных частях, некоторых регистрах (дополнительные свойства конкретно этого документа). Итого три "места", где данные изменяться. В самой 1С сработает одна функция, которая изменит данные по порядку в трёх местах. Вопрос первый На стороне SQL сервера, на вход будут поданы: 1. Три запроса подряд? т.е. каждый - отдельная транзакция 2. Три запроса в рамках одной транзакции? 3. Изменения будут агрегированы движком (вот уж не знаю как он внутри устроен) в один SQL запрос, а рамках одной транзакции? Под транзакцией понимать только то, что принято для SQL серверов. Лично я склоняюсь к варианту один. Отсюда второй вопрос. Разумеется в момент выполнения атомарной операции может произойти сбой. По сути функция до краха попыталась записать данные только в реквизиты документа 1С и табличную часть, а разработчик функции не предусмотрел откат данных в первоначальное состояние, или форс-мажор какой с клиентом случился. Что произойдет на стороне SQL сервера: 1. Применяться изменения только для реквизитов документа и табличных частей, и данные в регистре не будут согласовываться с документом? 2. Неким непонятным мне образом (можете объяснить? допустим обрыв связи, или питания у клиента), все изменения касающиеся конкретно этого документа будут отменены? Несколько десятков книг с документацией по 1С присутствуют на столе, искал ответ в каждой. В интернетах гуглил безрезультатно. P.S. Пожалуйста не отвечайте в эту тему если у вас отсутствует личный опыт в поднятых здесь вопросах, или вы не можете сослаться на официальный или авторитетный (хотя-бы для Вас лично) источник информации. Тем-более если Вы "просто программист 1С", не отягощенный регалиями знаний T-SQL, ООП, многопоточности. Постскриптум такого содержания - это хамство, я тагду. оскорбление, квантор, презумпция тупости и т.д. [Лично я склоняюсь к варианту один.] - прямое следствие из содержания посткриптума, считать других людей идиотами, а разработчиков платформы 1С - идиотами в квадрате. Неленивый человек запустит 1С в режиме отладки, откроет профайлер MS SQL и будет не склоняться, а - знать. Это куда проще, чем гуглить и штудировать дестяки книг. "Атомарность" - это какая-то отсебятина применительно к бизнес-логике и поведению СУБД. Транзакция. Несколько простых упражнений, особенно с обработчиками событий, предоставят полный и исчерпывающий ответ. автор3. Изменения будут агрегированы движком (вот уж не знаю как он внутри устроен) в один SQL запрос, а рамках одной транзакции? я, например, не в состоянии представить себе такой один SQL-запрос, изменяющий совершенно разнородные данные в двух десятках таблиц. Одну транзакцию - могу. Один запос - нет. ["А нафига?" - Рассматриваю лог транзакций MsSQL 2005, на предмет резервирования в реальном времени. Т.е. будет ли лог транзакций MsSQL, накаченный на ночной бэкап, соответствовать действительности. Вплоть до атомарности операций из 1С, к моменту краха системы.] как вы считаете, может серьезная платформа выйти на рынок и иметь миллионы инсталляций в серьезных компаниях, а тем паче в малых конторках, если она не выполняет первейшее требование - транзакционную целостность? Я знаю ООП, многопоточность, IMAP, TCP/IP, AutoCAD, SQL, VB, JS, 1C, Delpho, COM, SMTP, OLE, patterns, UML, MS Project, case sensitive, EJB, Sharepoint, POP3, asm, hiew! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 10:57 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
вообще, что это за троллинг?! :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 10:58 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
МистерШоу"Атомарность" - это какая-то отсебятина ACID же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 11:30 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
XenoXМистерШоу"Атомарность" - это какая-то отсебятина ACID же ну при чем тут ACID, ТС намешал разные уровни в один котёл своего вопрос... оттедова же: "Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично." Вот пусть и познает 1Св терминах транзакций, а не атомарности SQL Server, многопоточности и ООП. Представляю себе, сколько должны были бы получать 1С-ники, если бы всё обстояло так, как в фантазиях автора...боги были бы, а не люди! Столпы! Атланты! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 11:40 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
автор2. Неким непонятным мне образом (можете объяснить? допустим обрыв связи, или питания у клиента), все изменения касающиеся конкретно этого документа будут отменены? читать что такое Rollback до просветления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 11:50 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
FZT, сразу издалека видно заоптимизатора... Оптимизировать нужно там, где это требуется и где это будет заметно пользователю . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 14:44 |
|
||
|
Атомарность операций 1С с сторонеей T-SQL СУБД
|
|||
|---|---|---|---|
|
#18+
FZT"А нафига?" - Рассматриваю лог транзакций MsSQL 2005, на предмет резервирования в реальном времени. Т.е. будет ли лог транзакций MsSQL, накаченный на ночной бэкап, соответствовать действительности. Вплоть до атомарности операций из 1С, к моменту краха системы. Как бы... 1. Режим восстановления базы? 2. Лог.... бэкап лога или тот лог, который у самого скуля. Если первое - то будет. Если второе.... то читайте про организацию лога в скуле и в частности о том, что такое ChekPoint. 3. Режим блокировок - в самой 1С: автоматический/управляемый. 4. Режим блокировок MS SQL - явные не явные. Курим как посмотреть в MS SQL(T-SQL) активные транзакции. 5. Думаем, о том, как организован лог. Есть ли перезапись файла лога или неограниченный рост(узнаем про LSN - что это такое и как с этим работать) :) FZT"Ведь если, последние SQL транзакции до отказа не привели к логической целостности данных (атомарность операции не соблюдена), но были записаны в лог транзакций MsSQL, то в базе у меня последние изменения это простите кака, а не достоверные данные в документах. 6. Берем "букварь" и читаем про ACID. Там черным по русски(или нет) как работает логирование в MS SQL. После ответов на эти вопросы, подумайте над формулировкой задач этого топика. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 16:54 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37787281&tid=1520439]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 309ms |

| 0 / 0 |
