Проверка остатков после проведения #705252


#0 by Vyacheslav 777
Здравствуйте уважаемые. У меня такой вопрос. Сейчас есть новое веение то что. После проведения документа проверять отрицательные остатки на момент времени. Я не совсем понимаю зачем?. Радченко считает что так будет правильно особо не объясняя почему. Мой знакомый главный бухгалтер говорит об об обратно то что Нужно вообще сделать колонку остатков и до проведения выдавать ошибку об отрицательных остатках. Как вы считаете как лучше и почему?
#1 by ДенисЧ
ключевое слово - блокировки.
#2 by Vyacheslav 777
В смысле?
#3 by Wobland
вот тебе ещё ключевых слов: новая методика проведения документов 1с
#4 by Vyacheslav 777
Ясно. Спс.
#5 by iamnub
-- Мой знакомый главный бухгалтер говорит об об обратно то что Нужно вообще сделать колонку остатков Бух пепелит напалмом, чо. Вообще, тема сомнительная. 1С-методолог считает, что непроведение из-за нехватки остатков случается много реже, успешное проведение. Потом, чтобы взять понять - хватает ли остатков для документа, надо вычислить остатки - НА МОМЕНТ документа. А это дорого. А можно документ провести,  и типа взять результат с итогов, что дешевше. Намного. Правда возникает еще куча вопросов, типа изменений задним числом и прочая и прочая... Какие-то методологи и УТ11 придумали - чем их там кормят?? Мое мнение - вообще не проверять на остатки - глупости всё это.
#6 by floody
если в базе много продаванов, могут продать один и тот же товар дцать раз, в одну секунду
#7 by floody
"Радченко считает что так будет правильно особо не объясняя почему" ой, не гоните, уважаемый.. все всё прекрасно объясняют, и Радченко, и Гилев, и Чистов... просто видимо вы не хотите читать и понимать
#8 by Vyacheslav 777
iamnub Полностью с вами солидарен. Я думал  я один такой по незнанию. А оказывается мои знание еще Огого..
#9 by GANR
Во-первых, это алгоритмически проще, во вторых, насколько я понимаю данные блокируются на более короткое время, так как возникают ближе к концу транзакции.
#10 by GANR
+ блокировки ближе к концу транзакции возникают
#11 by GANR
И возникает эта проверка не после проведения, а после записи движений в регистр.
#12 by Vyacheslav 777
Вот что нарыл. Новая методика проведения используется только в том случае, когда известны значения всех измерений ресурсов и реквизитов для каждой формируемой записи регистра(например, если ведется только количественный учет товаров). В этом случае вся необходимая информация для формирования записей по списанию товаров в документе уже есть, т.о. можно применять новую методику. В том случае, когда неизвестны какие-либо ресурсы (например нужно рассчитать себестоимость товара) или измерения (например нужно узнать по какой партии списывается товар), следует использовать старую методику проведения. Выбор методики не зависит от количества регистров, а зависит только от возможности ее применения. Всегда, когда можно использовать новую методику, следует использовать именно ее. Возможна ситуация, когда при проведении в одном документе для разных регистров используются разные методики.
#14 by Vyacheslav 777
Радченко: "Не глядя ни на что", нужно записать движения документа, а затем, когда движения уже записанны, прочитать из базы данных остатки.
#15 by iamnub
Чисто 1С-овская фича, применяемая только при такой же 1С-овской фиче - "оперативном проведении". Я не знаю, что это за контора, где продаваны фигачат двадцать заказов в секунду и где (внимание) при такой работе расчет остатков на складе имел бы значение и смысл. Всю жизнь жили без "новых методик" - и еще проживем. Главное понимать - что подходов и методологий - множество, следовать им или нет - личный выбор каждого. А то Радченко сказал - всё, мессия пришел.
#16 by GANR
Методика применима далеко не всегда, но если есть возможность сделать по ней - надо применять ее.
#17 by vi0
почему ближе то? если по старой методике: Чтение+ПроверкаОстатков, Запись то по новому: Запись,Чтение+ПроверкаОстатков те же действия в разном порядке при этом блокировка накладывается при первом действии в обоих случаех
#18 by hhhh
по старой методике: проверка старых движений, удаление старых движений и только потом Чтение+ПроверкаОстатков, Запись . То есть там реально были тормоза и блокировки.
#19 by MadJhey
При сдаче на сертификат, если не используешь новую методику - изнасилуют в извр. форме.
#20 by vi0
> проверка старых движений это что за проверка?
#21 by Torquader
Если документ уже был проведён, то у него есть движения - и, если они соответствуют тому, что должно быть - то вообще что-то делать не нужно.
#22 by vi0
такие проверки есть в типовых в старой методике?
#23 by Torquader
Где-то я их видел, но не помню, где.
#24 by hhhh
конечно есть и они занимают времени побольше, чем три остальных этапа
#25 by vi0
и где такое можно увидеть?
#26 by vi0
это к
#27 by hhhh
в обраьотке проведения прям сначала.
#28 by vi0
имею ввиду в какой конфигурации
#29 by hhhh
во всех
#30 by Vyacheslav 777
Прям за живое задел)    MadJhey Тоесть при здаче экзаменов лучше использовать новую методику? Учту СПС.
#31 by Timon1405
#32 by vi0
я спрашивал про "по старой методике: проверка старых движений" но уже увидел в УПП
#33 by vi0
кто-нибудь видит преимущества новой методики в случае проведения нового документа?
#34 by vi0
подниму
#35 by Ненавижу 1С
что до проведения, что после проверять - в принципе пофиг - блокировки и так и так, но.. но ДО надо проверять на точку ДО момента документа, а дата может измениться, а там еще старые данные есть. Все это надо учесть, а после проведения - уже все свершилось, в этом плане проще
#36 by vi0
ну так для этого на момент проверки остатков удаляются движения текущего документа в старой методике. либо автоматически, либо кодом Все таки вопрос другой назрел: для НОВОГО документа, который не имеет движений такая методика имеет преимущества?
#37 by NcSteel
да
#38 by Ненавижу 1С
автоматически - это блокировка всей таблицы, кодом можно, но зачем специально, если при записи они все равно вытрутся интересно знать, какие?
#39 by NcSteel
В старой схеме алгоритм проверки остатков занимает более продолжительное время, чем в новой. Что естественно влияет на общую производительность системы.
#40 by vi0
почему всей таблицы? кодом - если установлено НеУдалятьАвтоматически или Удалять..ПриОтменеПроведения
#41 by Ненавижу 1С
почему больше времени для нового документа?
#42 by Ненавижу 1С
я говорю про автоматически
#43 by vi0
почему вся таблица то?
#44 by NcSteel
Не важно для нового или не новго, но суть в том, что в запросе получаются больше данных, которые надо кодом обработать. В Новой схеме получаются только отрицательные остатки, которых в общем случае всегда меньше, чем строк в документе.
#45 by NcSteel
При автомате вся таблица.
#46 by vi0
ну так это можно воткнуть и в старой методике
#47 by Эмбеддер
а бухгалтеру то какая разница, когда программа обнаруживает отрицательные остатки, результат один и тот же...
#48 by vi0
откуда такая инфа? если у нас кластерный индекс РН начинается с Период + Регистратор + ..
#49 by NcSteel
Минимум при записи пустого набора.
#50 by vi0
чет не могу понять что вы с Ненавижу 1С подразумевается под "при проведении блокируется вся таблица" ? весь регистр??
#51 by Ненавижу 1С
да
#52 by vi0
кончайте загонять
#53 by NcSteel
бууууу, страшно? )))
#54 by vi0
страшно за вас и ваше будущее)
#55 by NcSteel
Профайлером посмотри диапазон блокировок при записи пустого набора.
#56 by Ненавижу 1С
я проверял на базе MS SQL Server 2005
#57 by NcSteel
2008 та же история.
#58 by hhhh
именно поэтому в типовых нигде нет автоматического. Потому что вдруг выяснилось про блокировку всей таблицы.
#59 by DexterMorgan
запрос же намного проще, без соединений и нуллов, и время блокировки естественно сокращается
#60 by vi0
про отсутствие соединений соглашусь а чем так нулы плохи?
#61 by NcSteel
Их еще обработать надо, а именно вставить isnull
#62 by NcSteel
В общем запрос медленней + в коде доп проверка на количество остатков. Так что и для нового документа новая схема предпочтительней.
#63 by vi0
это понятно чем это плохо?
#64 by NcSteel
доп время тратится, следовательно общее время блокировки увеличивется.
#65 by vi0
думаю, что на isnull время меряется наносекундами
#66 by NcSteel
Все меряется наносекунами, но вопрос не только в isnull, а еще в доп соединениях, в размере выборки и доп коде обработки. Так что по копейки и на рубль наскрести можно. Тем более, что в нагруженных системах даже копейки играют важную роль.
#67 by DexterMorgan
ну честно сам не проверял, но где-то читал что тратится прилично. Ну проверить же не сложно =)
#68 by vi0
кстати насчет соединения здесь его можно легко заменить объединением такой запрос должен быть легче
#69 by vi0
коллеги, каким образом запись пустого набора блокирует весь регистр? у меня не воспроизводится
#70 by Зойч
Эскалация, не всегда бывает
#71 by vi0
эскалация - это интересная тема, заблокирует легко и весь регистр только коллеги, как то уверенно ее обошли выше в дискуссии
#72 by vi0
заморочился, замерил 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)
#73 by hhhh
4 миллиона - это детский размер. Возьмите хотя бы 4 миллиарда.И блокировки вы здесь не учли.
#74 by vi0
ну если в контексте проверки остатков реализации то вполне себе размер)
#75 by GROOVY
#76 by vi0
а почему остатки берутся не оперативные?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С