Имя: Пароль:
1C
1С v8
Это написано на сайте ИТС.....
,
0 rowvg
 
naïve
04.05.22
13:10
...
Один из вариантов использования документа с отключенным автоматическим удалением движений – построчное проведение документа. При решении задачи автоматизации учета продавцов товаров в реальном времени это свойство может быть актуально. Представим себе ситуацию, что два менеджера продают один и тот же товар, количество которого ограничено. Пока первый из них, удостоверившись в наличии товара на складе по данным регистра, проводит свой документ с установленным свойством Автоматическое удаление движений, второй менеджер за те мгновения, когда старые движения уже удалены, а новые еще не записаны, успевает провести свой документ.
...

Как можно понять наличие такой чепухи на сайте ИТС?

https://its.1c.ru/db/pubapplied/content/191/hdoc
1 vde69
 
04.05.22
13:14
(0) у меня такое активно используется, это означает, что например даже помеченный на удаление документ может иметь проводки.

Это могут быть например "статусы", или "резервы" и т.д.
2 Ryzeman
 
04.05.22
13:19
Видел такое использование в WMS системе, ИМХО было оправдано. Вообще в среде высокой конкуренции за каждую строчку это актуально, хотя пример приведён не очень хороший.
3 Ненавижу 1С
 
гуру
04.05.22
13:23
Так-то не должно быть, ибо для второго удаление строк первым "не прозрачно" из-за транзакции. Второй должен видеть данные до транзакции или после, но не вовремя.
4 rowvg
 
naïve
04.05.22
13:34
(3) В том - то и дело, что во время обработки проведения на изменяемые таблицы накладывается исключительная блокировка, и никакой другой запрос не может наложить на эти данные даже блокировку на чтение.
5 vde69
 
04.05.22
13:40
(4) между добавлением товара в документ и проведением существует некий отрезок времени. А учитывая, что документ может быть большим то велика вероятность, что кто-то другой за это время уже продаст тот товар который ты подобрал в документ.

По этому проведение по регистру "резервы" могут делаться не при записи документа а непосредственно при подборе, то есть в записанном документе еще товара нет, но он уже в резерве.

зы
например менеджеры на среднем опте по запчастям бьют документы более 1000 строк, и подбор одного документа уходит минут 30 минимум. По этому для них это очень актуально...
6 Ненавижу 1С
 
гуру
04.05.22
13:41
(4) ну да, объяснение так себе
имхо, суть в том, что при "не удалять движения" не происходит двойной перезаписи регистра - сначала на удаление, потом на запись, также событий и итогов соответственно
7 Ненавижу 1С
 
гуру
04.05.22
13:42
(5) это похоже на правду, но замедляет подбор
8 vde69
 
04.05.22
13:46
(7) я уже лет 10 пользуюсь самописной системой формирования движений по регистрам, работает намного быстрее и позволяет например востанавливать движения без записи документа и выборочно по одному регистру
9 PR
 
04.05.22
13:54
(0) Грязное чтение, в результате которого товар вроде как свободен
10 Serg_1960
 
04.05.22
14:04
(5) Хех, писал как-то однажды нечто подобное, чтобы менеджеры не только могли оперативно видеть кто кому, что и сколько подобрал в ещё не записанных документах, но и получал оперативно рекомендации подобрать другой аналог позиции, если в других документах был указан более "приоритетный" покупатель или заказ.
11 rowvg
 
naïve
04.05.22
14:05
(9) Грязное чтение возможно только в случает уровня изоляции транзакций ReadUncommitted, который, очевидно, не устанавливается при проведении документов 1С.
12 PR
 
04.05.22
14:09
(11) Проведи эксперимент
Сделай документ, который делает движения по твоему регистру и в проведение вставь бесконечный цикл, пока не пройдет минута
Проведи документ, сформируй отчет по этому регистру, запусти перепроведение документа и не дожидаясь окончания минуты переформируй отчет
Удивляйся и делай выводы
13 Ненавижу 1С
 
гуру
04.05.22
14:42
(12) и что мы должны увидеть? состояние до начала транзакции? согласен
14 PR
 
04.05.22
14:44
(13) Ты умеешь читать?
Грязное чтение мы увидим, то есть удаленные записи
15 vde69
 
04.05.22
14:50
(12) для начала определи в какой сессии выполняется то или иное действие, по тому как результат для текущей и третьей сессии будет разный
16 PR
 
04.05.22
14:53
(15) В двух разных 1С
17 Ненавижу 1С
 
гуру
04.05.22
15:04
(14) неа, мы увидим состояние регистра ДО транзакции
18 PR
 
04.05.22
15:07
(17) Оставайся при своём мнении
19 Ненавижу 1С
 
гуру
04.05.22
15:10
(18) аналогично напишу про тебя )))
20 PR
 
04.05.22
15:12
(19) Да нет, я-то в отличие от тебя проверил, уже давно, пару лет назад где-то
21 Ненавижу 1С
 
гуру
04.05.22
15:12
(20) а я проверил только что и что?
22 PR
 
04.05.22
16:30
(21) Очень странно, но сейчас да, не воспроизводится
То ли я что-то не так проверяю, то ли пофиксили
Раньше можно было поймать
23 PR
 
04.05.22
16:33
+(22) v8: Почему в 1С 8 в варианте SQL возможно грязное чтение?
Не пару лет назад, оказывается, а восемь с половиной лет назад делал ветку :))
24 PR
 
04.05.22
16:35
Вообще, скорее всего, даже не 8.3 была
25 rphosts
 
04.05.22
17:08
(0) хороший наброс... Найдется много чел как за так и против...  Как хорошо, что до мордобоя дело не дойдет
26 ptiz
 
04.05.22
17:15
(20) У нас такое грязное чтение есть, т.к. на 8.2 сидим.
27 VladZ
 
04.05.22
17:26
(0) А, это 8.2.  Даже не хочу вспоминать, что там было.
28 PR
 
04.05.22
17:34
А, кстати, да, ссылка в (0) же на 8.2
29 ДедМорроз
 
04.05.22
22:09
Там не грязное чтение - раньше отдельно была запись документа и отдельно проведение - если документ не провелся,он оставался записанным,но не проведенным и тогда движения удалялись.
Сейчас транзакция одна,и если документ не проведется,то он остается в том состоянии,в котором был.
30 PR
 
04.05.22
23:23
(29) Не пори ерунду, все там было в одной транзакции, просто было грязное чтение
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.