Имя: Пароль:
1C
1С v8
Проверка остатков после проведения
0 Vyacheslav 777
 
12.04.14
17:01
Здравствуйте уважаемые. У меня такой вопрос. Сейчас есть новое веение то что. После проведения документа проверять отрицательные остатки на момент времени. Я не совсем понимаю зачем?. Радченко считает что так будет правильно особо не объясняя почему. Мой знакомый главный бухгалтер говорит об об обратно то что Нужно вообще сделать колонку остатков и до проведения выдавать ошибку об отрицательных остатках. Как вы считаете как лучше и почему?
1 ДенисЧ
 
12.04.14
17:02
ключевое слово - блокировки.
2 Vyacheslav 777
 
12.04.14
17:04
В смысле?
3 Wobland
 
12.04.14
17:08
(2) вот тебе ещё ключевых слов: новая методика проведения документов 1с
4 Vyacheslav 777
 
12.04.14
17:10
Ясно. Спс.
5 iamnub
 
12.04.14
17:37
(0)
-- Мой знакомый главный бухгалтер говорит об об обратно то что Нужно вообще сделать колонку остатков

Бух пепелит напалмом, чо.

Вообще, тема сомнительная. 1С-методолог считает, что непроведение из-за нехватки остатков случается много реже, успешное проведение.

Потом, чтобы взять понять - хватает ли остатков для документа, надо вычислить остатки - НА МОМЕНТ документа. А это дорого.

А можно документ провести,  и типа взять результат с итогов, что дешевше. Намного.

Правда возникает еще куча вопросов, типа изменений задним числом и прочая и прочая...

Какие-то методологи и УТ11 придумали - чем их там кормят??

Мое мнение - вообще не проверять на остатки - глупости всё это.
6 floody
 
12.04.14
19:18
(5) если в базе много продаванов, могут продать один и тот же товар дцать раз, в одну секунду
7 floody
 
12.04.14
19:22
(0) "Радченко считает что так будет правильно особо не объясняя почему" ой, не гоните, уважаемый..

все всё прекрасно объясняют, и Радченко, и Гилев, и Чистов... просто видимо вы не хотите читать и понимать
8 Vyacheslav 777
 
12.04.14
20:01
iamnub
Полностью с вами солидарен.
Я думал  я один такой по незнанию. А оказывается мои знание еще Огого..
9 GANR
 
12.04.14
20:06
(0) Во-первых, это алгоритмически проще, во вторых, насколько я понимаю данные блокируются на более короткое время, так как возникают ближе к концу транзакции.
10 GANR
 
12.04.14
20:06
+(9) блокировки ближе к концу транзакции возникают
11 GANR
 
12.04.14
20:07
И возникает эта проверка не после проведения, а после записи движений в регистр.
12 Vyacheslav 777
 
12.04.14
20:10
Вот что нарыл.


Новая методика проведения используется только в том случае, когда известны значения всех измерений ресурсов и реквизитов для каждой формируемой записи регистра(например, если ведется только количественный учет товаров). В этом случае вся необходимая информация для формирования записей по списанию товаров в документе уже есть, т.о. можно применять новую методику.

В том случае, когда неизвестны какие-либо ресурсы (например нужно рассчитать себестоимость товара) или измерения (например нужно узнать по какой партии списывается товар), следует использовать старую методику проведения.

Выбор методики не зависит от количества регистров, а зависит только от возможности ее применения. Всегда, когда можно использовать новую методику, следует использовать именно ее. Возможна ситуация, когда при проведении в одном документе для разных регистров используются разные методики.
14 Vyacheslav 777
 
12.04.14
20:14
Радченко:
"Не глядя ни на что", нужно записать движения документа, а затем, когда движения уже записанны, прочитать из базы данных остатки.
15 iamnub
 
12.04.14
23:54
(14)
Чисто 1С-овская фича, применяемая только при такой же 1С-овской фиче - "оперативном проведении".

Я не знаю, что это за контора, где продаваны фигачат двадцать заказов в секунду и где (внимание) при такой работе расчет остатков на складе имел бы значение и смысл.

Всю жизнь жили без "новых методик" - и еще проживем.

Главное понимать - что подходов и методологий - множество, следовать им или нет - личный выбор каждого.

А то Радченко сказал - всё, мессия пришел.
16 GANR
 
13.04.14
22:29
(12) Методика применима далеко не всегда, но если есть возможность сделать по ней - надо применять ее.
17 vi0
 
13.04.14
23:06
(10) почему ближе то?

если по старой методике: Чтение+ПроверкаОстатков, Запись
то по новому: Запись,Чтение+ПроверкаОстатков

те же действия в разном порядке
при этом блокировка накладывается при первом действии в обоих случаех
18 hhhh
 
13.04.14
23:33
(17) по старой методике: проверка старых движений, удаление старых движений и только потом Чтение+ПроверкаОстатков, Запись . То есть там реально были тормоза и блокировки.
19 MadJhey
 
13.04.14
23:37
При сдаче на сертификат, если не используешь новую методику - изнасилуют в извр. форме.
20 vi0
 
13.04.14
23:44
(18)
> проверка старых движений
это что за проверка?
21 Torquader
 
13.04.14
23:45
(20) Если документ уже был проведён, то у него есть движения - и, если они соответствуют тому, что должно быть - то вообще что-то делать не нужно.
22 vi0
 
13.04.14
23:47
(21) такие проверки есть в типовых в старой методике?
23 Torquader
 
13.04.14
23:48
(22) Где-то я их видел, но не помню, где.
24 hhhh
 
13.04.14
23:49
(22) конечно есть и они занимают времени побольше, чем три остальных этапа
25 vi0
 
13.04.14
23:50
(23) и где такое можно увидеть?
желательно с версией
26 vi0
 
13.04.14
23:50
это к (24)
27 hhhh
 
13.04.14
23:51
в обраьотке проведения прям сначала.
28 vi0
 
13.04.14
23:53
(27) имею ввиду в какой конфигурации
29 hhhh
 
13.04.14
23:58
во всех
30 Vyacheslav 777
 
14.04.14
19:40
Прям за живое задел)
   MadJhey Тоесть при здаче экзаменов лучше использовать новую методику? Учту СПС.
31 Timon1405
 
14.04.14
22:10
(28) УТ11 -РТУ-Обработка проведения
ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);
32 vi0
 
20.04.14
07:38
(31) я спрашивал про "по старой методике: проверка старых движений"
но уже увидел в УПП
33 vi0
 
20.04.14
10:30
кто-нибудь видит преимущества новой методики в случае проведения нового документа?
34 vi0
 
21.04.14
08:42
подниму
35 Ненавижу 1С
 
гуру
21.04.14
08:47
что до проведения, что после проверять - в принципе пофиг - блокировки и так и так, но..
но ДО надо проверять на точку ДО момента документа, а дата может измениться, а там еще старые данные есть. Все это надо учесть, а после проведения - уже все свершилось, в этом плане проще
36 vi0
 
21.04.14
08:50
(35) ну так для этого на момент проверки остатков удаляются движения текущего документа в старой методике.
либо автоматически, либо кодом

Все таки вопрос другой назрел:
для НОВОГО документа, который не имеет движений такая методика имеет преимущества?
37 NcSteel
 
21.04.14
08:53
(36) да
38 Ненавижу 1С
 
гуру
21.04.14
08:54
(36) автоматически - это блокировка всей таблицы, кодом можно, но зачем специально, если при записи они все равно вытрутся
(37) интересно знать, какие?
39 NcSteel
 
21.04.14
08:56
(38) В старой схеме алгоритм проверки остатков занимает более продолжительное время, чем в новой. Что естественно влияет на общую производительность системы.
40 vi0
 
21.04.14
08:59
(38) почему всей таблицы?
кодом - если установлено НеУдалятьАвтоматически или Удалять..ПриОтменеПроведения
41 Ненавижу 1С
 
гуру
21.04.14
08:59
(39) почему больше времени для нового документа?
42 Ненавижу 1С
 
гуру
21.04.14
08:59
(40) я говорю про автоматически
43 vi0
 
21.04.14
09:01
(42) почему вся таблица то?
44 NcSteel
 
21.04.14
09:02
(41) Не важно для нового или не новго, но суть в том, что в запросе получаются больше данных, которые надо кодом обработать. В Новой схеме получаются только отрицательные остатки, которых в общем случае всегда меньше, чем строк в документе.
45 NcSteel
 
21.04.14
09:02
(43) При автомате вся таблица.
46 vi0
 
21.04.14
09:02
(44) ну так это можно воткнуть и в старой методике
47 Эмбеддер
 
21.04.14
09:05
(0) а бухгалтеру то какая разница, когда программа обнаруживает отрицательные остатки, результат один и тот же...
48 vi0
 
21.04.14
09:06
(45) откуда такая инфа?
если у нас кластерный индекс РН начинается с
Период + Регистратор + ..
49 NcSteel
 
21.04.14
09:08
(48) Минимум при записи пустого набора.
50 vi0
 
21.04.14
09:10
(49) чет не могу понять
что вы с Ненавижу 1С подразумевается под
"при проведении блокируется вся таблица"
?

весь регистр??
51 Ненавижу 1С
 
гуру
21.04.14
09:10
(50) да
52 vi0
 
21.04.14
09:11
(51) кончайте загонять
53 NcSteel
 
21.04.14
09:11
(52) бууууу, страшно? )))
54 vi0
 
21.04.14
09:12
(53) страшно за вас и ваше будущее)
55 NcSteel
 
21.04.14
09:13
(54) Профайлером посмотри диапазон блокировок при записи пустого набора.
56 Ненавижу 1С
 
гуру
21.04.14
09:14
(52) я проверял на базе MS SQL Server 2005
57 NcSteel
 
21.04.14
09:14
(58) 2008 та же история.
58 hhhh
 
21.04.14
09:16
(52) именно поэтому в типовых нигде нет автоматического. Потому что вдруг выяснилось про блокировку всей таблицы.
59 DexterMorgan
 
21.04.14
09:21
(33) запрос же намного проще, без соединений и нуллов, и время блокировки естественно сокращается
60 vi0
 
21.04.14
09:27
(59) про отсутствие соединений соглашусь
а чем так нулы плохи?
61 NcSteel
 
21.04.14
09:28
(60) Их еще обработать надо, а именно вставить isnull
62 NcSteel
 
21.04.14
09:29
(61) В общем запрос медленней + в коде доп проверка на количество остатков. Так что и для нового документа новая схема предпочтительней.
63 vi0
 
21.04.14
09:29
(61) это понятно
чем это плохо?
64 NcSteel
 
21.04.14
09:31
(63) доп время тратится, следовательно общее время блокировки увеличивется.
65 vi0
 
21.04.14
09:33
(64) думаю, что на isnull время меряется наносекундами
66 NcSteel
 
21.04.14
09:37
(65) Все меряется наносекунами, но вопрос не только в isnull, а еще в доп соединениях, в размере выборки и доп коде обработки. Так что по копейки и на рубль наскрести можно. Тем более, что в нагруженных системах даже копейки играют важную роль.
67 DexterMorgan
 
21.04.14
09:39
(65) ну честно сам не проверял, но где-то читал что тратится прилично. Ну проверить же не сложно =)
68 vi0
 
21.04.14
09:54
кстати насчет соединения
здесь его можно легко заменить объединением
такой запрос должен быть легче
69 vi0
 
21.04.14
19:24
коллеги, каким образом запись пустого набора блокирует весь регистр?
у меня не воспроизводится
70 Зойч
 
21.04.14
19:38
(69) Эскалация, не всегда бывает
71 vi0
 
21.04.14
19:39
(70) эскалация - это интересная тема, заблокирует легко и весь регистр
только коллеги, как то уверенно ее обошли выше в дискуссии
72 vi0
 
21.04.14
20:36
заморочился, замерил isnull
Создал таблицу и заполнил ее только значениями null

create table #t (a int)
while 1=1 insert into #t values(null)

всего 4.2 млн записей

сделал 2 запроса: выборку без isnull и с ним
навскидку увидел увеличение duration на 100 микросекунд, это 0.0001 секунд, это на 4.2 млн записей
вывода напрашиваются такие, что isnull не затратен

скрины профайлера (внизу с isnull)
http://www.foto-me.ru/v.php?id=b9b0a0d7f526e02078cf7bb5796b8056
73 hhhh
 
21.04.14
22:45
(72) 4 миллиона - это детский размер. Возьмите хотя бы 4 миллиарда.И блокировки вы здесь не учли.
74 vi0
 
21.04.14
23:01
(73) ну если в контексте проверки остатков реализации то вполне себе размер)
75 GROOVY
 
21.04.14
23:02
76 vi0
 
22.04.14
07:06
(75) а почему остатки берутся не оперативные?