Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) часть 7 отрицательные остатки в модуле проведения (число прочтений - 17872 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
часть 7 отрицательные остатки в модуле проведения
10. Декабря 2008 :: 05:44
Печать  
А не слишком ли расточительно искать отрицательные остатки в модуле проведения
т.е. в открытой транзакции ?
Ведь все это можно сделать в модуле ПриЗаписи()
(естественно поставив свою блокировку )
конечно это выливается в работу, но с другой стороны
мы сократим время проведения документа.

Кто что думает  по этому поводу
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #1 - 10. Декабря 2008 :: 06:03
Печать  
большого прироста на этом не получишь. Но отменить запись дока вполне разумно, пусть поправят остатки, если включен контроль отрицательных остатков.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #2 - 10. Декабря 2008 :: 06:03
Печать  
А если ты сначала записываешь документ (не проводишь!), потом записываешь и проводишь другой документ. Насколько правильные остатки будут в первом документе?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #3 - 10. Декабря 2008 :: 06:07
Печать  
ev-kov писал(а) 10. Декабря 2008 :: 06:03:
большого прироста на этом не получишь. Но отменить запись дока вполне разумно, пусть поправят остатки, если включен контроль отрицательных остатков.

почему не получу - транзакция дорогая операция
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #4 - 10. Декабря 2008 :: 06:08
Печать  
Nick писал(а) 10. Декабря 2008 :: 06:03:
А если ты сначала записываешь документ (не проводишь!), потом записываешь и проводишь другой документ. Насколько правильные остатки будут в первом документе?

остатки будут правильные потому что ставим свою блокировку и одновременно будет идти только одна проверка.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #5 - 10. Декабря 2008 :: 06:16
Печать  
Z1 писал(а) 10. Декабря 2008 :: 06:08:
Nick писал(а) 10. Декабря 2008 :: 06:03:
А если ты сначала записываешь документ (не проводишь!), потом записываешь и проводишь другой документ. Насколько правильные остатки будут в первом документе?

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


После проведения второго документа остатки изменятся. Или ты предлагаешь перед каждым проведением документ записывать?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #6 - 10. Декабря 2008 :: 06:22
Печать  
Nick писал(а) 10. Декабря 2008 :: 06:16:
Z1 писал(а) 10. Декабря 2008 :: 06:08:
Nick писал(а) 10. Декабря 2008 :: 06:03:
А если ты сначала записываешь документ (не проводишь!), потом записываешь и проводишь другой документ. Насколько правильные остатки будут в первом документе?

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


После проведения второго документа остатки изменятся. Или ты предлагаешь перед каждым проведением документ записывать?


нет наоборот первый док не записывать если ушли в минус.

возникает только одна проблема если док не проведен Призаписи() еще неизвестно
будем или нет мы проводить документ.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #7 - 10. Декабря 2008 :: 06:29
Печать  
Док1.Записать();

Док2.Записать();
Док2.Провести();

Док1.Провести();

Какие остатки получатся в первом документе?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #8 - 10. Декабря 2008 :: 06:34
Печать  
Nick писал(а) 10. Декабря 2008 :: 06:29:
Док1.Записать();

Док2.Записать();
Док2.Провести();

Док1.Провести();

Какие остатки получатся в первом документе?

ты что-то путаешь речь идет о ПриЗаписи() при итерактивном
изменении документа.
ИХМО если мы по каким-то причинам меняем документы из обработок то всю ответсвенность за данные берет сама обработка ( тот  кто ее писал)и уже не надо ничего проверять и как правило в этом случае
либо через параметр либо через переменную гл модуля в
Док.Провести()
отключают проверку на отрицательные остатки.


  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #9 - 10. Декабря 2008 :: 06:37
Печать  
Ну так ты можешь открыть уже записаный документ и просто его провести без его записи!
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #10 - 10. Декабря 2008 :: 06:39
Печать  
Nick писал(а) 10. Декабря 2008 :: 06:37:
Ну так ты можешь открыть уже записаный документ и просто его провести без его записи!

ну и что в любом случае проверка на отрицател. остаток идет без учета текущих движений документа.
А то что ты предлагаешь это вообще у нас запрещено - столько с этим
разбирался раньше с  провести без записи ИХМО полный бред и у меня нет отдельной кнопки Провести.
см пользователь изменил документ предположим склад перепровел документ по твоей логике и
документ не сохранил. после этого получим удовольствие разбираясь в ситуации.

у меня везде наоборот везде стоит
ПриЗаписиПерепроводить(1);
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #11 - 10. Декабря 2008 :: 06:43
Печать  
Я вот тоже не совсем понимаю. Пользователь ведь может встать в журнале на непроведенный документ, выбрать в контекстном меню "Провести " и всё.
И запись без проведения очень даже хорошая операция. Пример (учет бланков строгой отчетности): оператор списывает туеву хучу бланков, начинает проводить, ему выдается сообщение что один из этих бланков уже был списан (или вообще не было). Ес-но он его записывает, но не проводит, потом ищет что же слусилось с этим бланком, исправляет ситуацию и проводит уже ранее записанный документ. По-моему, очень даже логично. Неужели ему заново надо вбивать все бланки?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #12 - 10. Декабря 2008 :: 06:43
Печать  
Всё я сдаюсь Очень довольный.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #13 - 10. Декабря 2008 :: 06:49
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 06:43:
Я вот тоже не совсем понимаю. Пользователь ведь может встать в журнале на непроведенный документ, выбрать в контекстном меню "Провести " и всё.

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

И для конкретно моей ситуации это невозможно из-за организации учета. Сначала когда документ расх накл непроведен то у него всегда  сумма = 0. когда ставят итерактивно цены то док всегда проводят. Простой пользователь не может отменить проведенный документ или пометить его на удаление.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #14 - 10. Декабря 2008 :: 06:52
Печать  
Z1 писал(а) 10. Декабря 2008 :: 06:49:
JohnyDeath писал(а) 10. Декабря 2008 :: 06:43:
Я вот тоже не совсем понимаю. Пользователь ведь может встать в журнале на непроведенный документ, выбрать в контекстном меню "Провести " и всё.

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

И для конкретно моей ситуации это невозможно из-за организации учета. Сначала когда документ расх накл непроведен то у него всегда  сумма = 0. когда ставят итерактивно цены то док всегда проводят. Простой пользователь не может отменить проведенный документ или пометить его на удаление.

Я там ещё кое-что дописал.
А вообще мы что обсуждаем? Общий случай или организацию учёта в отдельно взятой фирме? ИМХО, как у тебя - не везде.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #15 - 10. Декабря 2008 :: 06:55
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 06:43:
Я вот тоже не совсем понимаю. Пользователь ведь может встать в журнале на непроведенный документ, выбрать в контекстном меню "Провести " и всё.
И запись без проведения очень даже хорошая операция. Пример (учет бланков строгой отчетности): оператор списывает туеву хучу бланков, начинает проводить, ему выдается сообщение что один из этих бланков уже был списан (или вообще не было). Ес-но он его записывает, но не проводит, потом ищет что же слусилось с этим бланком, исправляет ситуацию и проводит уже ранее записанный документ. По-моему, очень даже логично. Неужели ему заново надо вбивать все бланки?

запись без проведения у проведенного документа тоже плохо
см есть рн проведена
товар1 склад 1 колво 10 все одинаково и в регистре и в документе.
я зашел в документ и перезаписал ( даже на минус  никогда не попадем ) но не перепровел
товар1 склад 1 колво 5
т.е. имеем расхождение между регистором и документом.
после этого вошел еще раз в документ и распечатал СЧФ и торг12
естестенно мне в печатных формах везде будет 5 а по остаткам ушло 10.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #16 - 10. Декабря 2008 :: 07:02
Печать  
Я говорю про НОВЫЙ документ, у которого в процессе проведения лезут косяки.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #17 - 10. Декабря 2008 :: 07:09
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 07:02:
Я говорю про НОВЫЙ документ, у которого в процессе проведения лезут косяки.

ну а для нового документа ВСЕ косяки и выявляются при записи.
и у меня не пропускается ( не записывается док ) если в документе
есть 100 строк 99 правильные а одна неправильная то пока документ не исправит записи не будет.
смотри ведь если ты позволишь записать 99 строкправильных  и одна строка неправильная то если после записи у тебя "отвалиться сервер" , сеть либо еще что либо ( я понимаю что вероятность этого мала но по закону подлости это обязательно произойдет) то в базе будет записан некоректный "неправильный" документ.
И все это не пустые слова потому что постоянно все user-ы только и говорят "Программа глючит" , а после как правило выясняется что "глючат" люди.
Поэтому я стараюсь свести к минимуму явные и неявные неопределенное поведение программы не важно из-за каких причин


и если мы новый документ будем проводить с точки зрения пользователя вообще без разницы где будет проверка отрицат остатков.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #18 - 10. Декабря 2008 :: 07:24
Печать  
Ладно, увидел я в новом документе косяк в 100-й строчке. Ты не разрешаешь записывать. Я - разрешаю записать, но не разрешаю проводить, чтоб пользователь мог спокойно закрыть документ, найти где он лапухнулся (или занятся другими более важными делами), а потом вернутся к этому доку и провести его.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #19 - 10. Декабря 2008 :: 07:38
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 07:24:
Ладно, увидел я в новом документе косяк в 100-й строчке. Ты не разрешаешь записывать. Я - разрешаю записать, но не разрешаю проводить, чтоб пользователь мог спокойно закрыть документ, найти где он лапухнулся (или занятся другими более важными делами), а потом вернутся к этому доку и провести его.

ну вроде это не принципиальное отличие и наверное зависит от особенности учета.

  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #20 - 10. Декабря 2008 :: 07:45
Печать  
Ну как же не принципиальное. Я разрешаю записывать, а ты нет. В том то и дело, что ты говоришь об оптимизации работы конкретно своей компании.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #21 - 10. Декабря 2008 :: 07:51
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 07:45:
Ну как же не принципиальное. Я разрешаю записывать, а ты нет. В том то и дело, что ты говоришь об оптимизации работы конкретно своей компании.

но при твоем подходе ты все равно подразумеваешь что непроведенный
документ может в двух состояниях либо правильный либо не правильный ( даже если это состояние и нигде не отмечается в документе ).
Также мы с тобой сошлись, что проведенный документ должен быть всегда правильным.
а мое изменение subj ничего не меняет с точки зрения учета, а только чуть улучшает в среднем работу sql сервера.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #22 - 10. Декабря 2008 :: 07:56
Печать  
Т.е. всё-таки ошибочный документ записать можно, но у него будет какой-то флагЕстьОшибка=1. Так?

И что ты подразумеваешь под "своей блокировкой" в ПриЗаписи?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #23 - 10. Декабря 2008 :: 08:00
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 07:56:
Т.е. всё-таки ошибочный документ записать можно, но у него будет какой-то флагЕстьОшибка=1. Так?

да для твоего учета.


  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #24 - 10. Декабря 2008 :: 08:01
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 07:56:
И что ты подразумеваешь под "своей блокировкой" в ПриЗаписи?

sql блокировка.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #25 - 10. Декабря 2008 :: 08:03
Печать  
Z1 писал(а) 10. Декабря 2008 :: 08:01:
JohnyDeath писал(а) 10. Декабря 2008 :: 07:56:
И что ты подразумеваешь под "своей блокировкой" в ПриЗаписи?

sql блокировка.

SQL блокировка чего? Всей таблицы _1sjourn?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #26 - 10. Декабря 2008 :: 08:08
Печать  
Nick писал(а) 10. Декабря 2008 :: 08:03:
Z1 писал(а) 10. Декабря 2008 :: 08:01:
JohnyDeath писал(а) 10. Декабря 2008 :: 07:56:
И что ты подразумеваешь под "своей блокировкой" в ПриЗаписи?

sql блокировка.

SQL блокировка чего? Всей таблицы _1sjourn?

зачем  всей таблицы это уже проходили.
пользовательская блокировка.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #27 - 10. Декабря 2008 :: 08:09
Печать  
Z1 писал(а) 10. Декабря 2008 :: 08:00:
JohnyDeath писал(а) 10. Декабря 2008 :: 07:56:
Т.е. всё-таки ошибочный документ записать можно, но у него будет какой-то флагЕстьОшибка=1. Так?

да для твоего учета.

Это мне надо будет заводить общий реквизит и переписывать всё?
А в чём плюсы? Что таблиза блокируется не в ПриПроведении, а в ПриЗаписи?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #28 - 10. Декабря 2008 :: 08:10
Печать  
Цитата:
пользовательская блокировка.

Это что такое?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #29 - 10. Декабря 2008 :: 08:19
Печать  
просто развитие 1с шло от dbf к sql а в dbf действительно это логично было сделать в модуле проведения, а при переходе на
sql самый главный критерий ( наверное ) был полная совместимость.
но сейчас у нас есть 1с++
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #30 - 10. Декабря 2008 :: 08:24
Печать  
JohnyDeath писал(а) 10. Декабря 2008 :: 08:09:
Z1 писал(а) 10. Декабря 2008 :: 08:00:
JohnyDeath писал(а) 10. Декабря 2008 :: 07:56:
Т.е. всё-таки ошибочный документ записать можно, но у него будет какой-то флагЕстьОшибка=1. Так?

да для твоего учета.

Это мне надо будет заводить общий реквизит и переписывать всё?
А в чём плюсы? Что таблиза блокируется не в ПриПроведении, а в ПриЗаписи?

и блокировать не таблицу а только "конфликтующие сессии"
хп sp_getapplock и в ней выбрать конкретный склад.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #31 - 10. Декабря 2008 :: 08:28
Печать  
Что тебе мешает такую блокировку в модуль проведения вставить?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #32 - 10. Декабря 2008 :: 08:44
Печать  
Nick писал(а) 10. Декабря 2008 :: 08:28:
Что тебе мешает такую блокировку в модуль проведения вставить?

зачем если и так в модуле проведения все блокируется.
во вторых операция проведения Дорогая операция
из-за транзакции и из-за блокировки всей базы.
При записи таже самая вещь будет обходиться в среднем дешевле.
На сколько количественную оценку я сказать не могу.
И как косвенный эфект т.к. в модуле проведения не будет расчета остатков то время проведения тоже сократиться что тоже улучшит в среднем ситуацию.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #33 - 10. Декабря 2008 :: 08:48
Печать  
Какой смысл в твоей схеме оставлять блокировку в модуле документа?
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #34 - 10. Декабря 2008 :: 08:54
Печать  
Пока документ не проведен, но записан - считать его неправильным.
Кстати, при записи документа так же открывается "дорогая транзакция".
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #35 - 10. Декабря 2008 :: 08:58
Печать  
spock писал(а) 10. Декабря 2008 :: 08:54:
Пока документ не проведен, но записан - считать его неправильным.
Кстати, при записи документа так же открывается "дорогая транзакция".

но еще при этом нет блокировки журнала документов именно эти два события делают проверку дорогой в модуле проведения ( а не одно из них ).
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #36 - 10. Декабря 2008 :: 09:01
Печать  
Z1 писал(а) 10. Декабря 2008 :: 08:58:
spock писал(а) 10. Декабря 2008 :: 08:54:
Кстати, при записи документа так же открывается "дорогая транзакция".

но еще при этом нет блокировки журнала документов

а куда она делась?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #37 - 10. Декабря 2008 :: 09:04
Печать  
spock писал(а) 10. Декабря 2008 :: 09:01:
Z1 писал(а) 10. Декабря 2008 :: 08:58:
spock писал(а) 10. Декабря 2008 :: 08:54:
Кстати, при записи документа так же открывается "дорогая транзакция".

но еще при этом нет блокировки журнала документов

а куда она делась?

блокировка журнала идет при начале проведения
вызывается перед автоматической очисткой движений, а не при записи. При записи мы "висим" на файловой" блокировке открытой формы документа.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #38 - 10. Декабря 2008 :: 09:07
Печать  
Может быть я повторяюсь но: Какой смысл в твоей схеме оставлять блокировку в модуле документа?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #39 - 10. Декабря 2008 :: 09:13
Печать  
Nick писал(а) 10. Декабря 2008 :: 09:07:
Может быть я повторяюсь но: Какой смысл в твоей схеме оставлять блокировку в модуле документа?

не понял наоборот кусок кода по расчету отрицат остатков переносим из модуля проведения в модуль ПриЗаписи()
не понимаю о какой ты блокировке говоришь.
Второе возражение spock даже если учитывать только
begin tran то в модуле при записи мы гораздо раньше обнаружим
отрицательные остатки ( т.к между
Записать и Начало Проведения естьеще куча действий - Очистить движения, установить блокировку ) то в случае необходимости
отката транзакции ( отрицат остаток )
то т.к. проверка раньше то обнаружим это раньше и выиграем время и sql придеться тоже меньше данных откатывать и тоже будет небольшой выигрыш во времени.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #40 - 10. Декабря 2008 :: 09:15
Печать  
Z1 писал(а) 10. Декабря 2008 :: 09:04:
блокировка журнала идет при начале проведения

Ты это проверил или на каких-то других основаниях сказал?
« Последняя редакция: 10. Декабря 2008 :: 15:05 - spock »  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #41 - 10. Декабря 2008 :: 09:17
Печать  
Ну ты ведь сам писал:

Цитата:
зачем если и так в модуле проведения все блокируется.


Я тебе предлагаю заменить стандартную блокировку на твою блокировку по складу
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #42 - 10. Декабря 2008 :: 09:21
Печать  
Nick писал(а) 10. Декабря 2008 :: 09:17:
Ну ты ведь сам писал:

Цитата:
зачем если и так в модуле проведения все блокируется.


Я тебе предлагаю заменить стандартную блокировку на твою блокировку по складу

понял о чем ты говоришь.
только что ответил в этом случае если делать это в модуле проведения то при откате мы будем гораздо дальше
от begin tran и откат транзакции нам обойдется  дороже.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #43 - 10. Декабря 2008 :: 09:21
Печать  
spock писал(а) 10. Декабря 2008 :: 09:15:
Z1 писал(а) 10. Декабря 2008 :: 09:04:
блокировка журнала идет при начале проведения

Ты это проверил или на каких-то других основаниях сказал?

могу сегодня еще проверить только вечером.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #44 - 10. Декабря 2008 :: 09:29
Печать  
Z1 писал(а) 10. Декабря 2008 :: 09:21:
понял о чем ты говоришь.
только что ответил в этом случае если делать это в модуле проведения то при откате мы будем гораздо дальше
от begin tran и откат транзакции нам обойдется  дороже.


Ну тогда сам следи за движениями документа и удаляй их только когда будешь уверен что документ правильный
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #45 - 10. Декабря 2008 :: 09:31
Печать  
Nick писал(а) 10. Декабря 2008 :: 09:29:
Z1 писал(а) 10. Декабря 2008 :: 09:21:
понял о чем ты говоришь.
только что ответил в этом случае если делать это в модуле проведения то при откате мы будем гораздо дальше
от begin tran и откат транзакции нам обойдется  дороже.


Ну тогда сам следи за движениями документа и удаляй их только когда будешь уверен что документ правильный

ну это же не проблема. зачем удалять просто в модуле ПриЗаписи
из движений ТА вычесть текущие движения, а 1с пусть сам удаляет все как и сейчас.
  
Наверх
 
IP записан
 
Boris_1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 129
Зарегистрирован: 29. Января 2007
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #46 - 10. Декабря 2008 :: 11:32
Печать  
По моему проверять остатки только в процедуре при записи не Гут. Есть куча ситуаций, когда остатки надо проверять именно при проведении.
Ситуации которые сразу пришли в голову:
1. Выписка счетов с бронированием того товара, который есть на текущий момент на складе.
2. При использовании серого учета, накладная проводится только по упр. плану счетов, если офиц. товара не хватает, она все равно проводится - делаем движения (что надо купить) и т.д.

Я вообще при проведении документа проверяю остаток с учетом проданного до текущей даты. Проведение тяжеловато, но в итоге экономит кучу времени на разгибание всякой хрени.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #47 - 10. Декабря 2008 :: 11:55
Печать  
Boris_1c писал(а) 10. Декабря 2008 :: 11:32:
По моему проверять остатки только в процедуре при записи не Гут. Есть куча ситуаций, когда остатки надо проверять именно при проведении.
Ситуации которые сразу пришли в голову:
1. Выписка счетов с бронированием того товара, который есть на текущий момент на складе.
2. При использовании серого учета, накладная проводится только по упр. плану счетов, если офиц. товара не хватает, она все равно проводится - делаем движения (что надо купить) и т.д.

Я вообще при проведении документа проверяю остаток с учетом проданного до текущей даты. Проведение тяжеловато, но в итоге экономит кучу времени на разгибание всякой хрени.


у нас разрешена перевыписка товара. ну ее в принципе невозможно запретить - так как УРБД.
Кстати  УРБД тоже может вносить свою лепту в движение в минус независимо от того делали Вы строгие проверки или нет.

2. Здесь я как бы говорю о реальных складских остатках  ведь именно их и надо контролировать , а не о тех кому они принадлежат.

И моя идея нисколько не протеворечить Вашей просто проверка идет в другом месте вот и все и теоретически проверка будет выполняться быстрее.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #48 - 10. Декабря 2008 :: 12:43
Печать  
Z1 писал(а) 10. Декабря 2008 :: 08:58:
но еще при этом нет блокировки журнала документов

Перечитал еще раз. Есть мнение, что мы друг друга не поняли.
При заходе в процедуру ПриЗаписи() конечно же нет еще транзакции, она открывается при записи документа.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #49 - 10. Декабря 2008 :: 12:48
Печать  
spock писал(а) 10. Декабря 2008 :: 12:43:
Z1 писал(а) 10. Декабря 2008 :: 08:58:
но еще при этом нет блокировки журнала документов

Перечитал еще раз. Есть мнение, что мы друг друга не поняли.
При заходе в процедуру ПриЗаписи() конечно же нет еще транзакции, она открывается при записи документа.

ну вот тогда там вообще еще нет транзакции и проверка на отриц числа будет еще "дешевле".
Да я и имел ввиду проверять именно в модуле ПриЗаписи()
Ведь наверняка в этом модуле у всех стоят множество проверок на "правильность" документа
  
Наверх
 
IP записан
 
Boris_1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 129
Зарегистрирован: 29. Января 2007
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #50 - 10. Декабря 2008 :: 13:48
Печать  
По поводу УРБД - всем переферийным базам выделяем свои склады с которыми они работают, проблему с минусами почти решает.

По поводу проверки остатков в процедуре приЗаписи() - однозначно транзакцию по времени сократит.
Огромный минус в таком варианте - это нервы работников и программистов (я в основном жалею себя), документ на 100 строк - чего-то не хватает - он не записывается, по тому, что нет остатка. Яду выплеснут... Карма страдает Улыбка
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #51 - 10. Декабря 2008 :: 14:14
Печать  
Boris_1c писал(а) 10. Декабря 2008 :: 13:48:
По поводу УРБД - всем переферийным базам выделяем свои склады с которыми они работают, проблему с минусами почти решает.

По поводу проверки остатков в процедуре приЗаписи() - однозначно транзакцию по времени сократит.
Огромный минус в таком варианте - это нервы работников и программистов (я в основном жалею себя), документ на 100 строк - чего-то не хватает - он не записывается, по тому, что нет остатка. Яду выплеснут... Карма страдает Улыбка

Ну у нас нет таких позиций 10-20 строк.
Во вторых если минусы это итак что-то чрезвычайное.
Ну и кто сказал что по каким-то причинам в другом филиале
или в Москве не могут ( хотя и не должны ) трогать документ рн.
Вообщем время это сократит. Вот это я и хотел услышать в принципе.
Да можно даже и записать когда минус но при этом отослать письмо начальнику склада у Вас проблемы-с.
Как бы не зацикливайтесь как реагировать на событие, а то
идея что будет программа чуть лучше работать

  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #52 - 11. Декабря 2008 :: 06:29
Печать  
Время есть, можно пообсуждать Улыбка

Пользовательские блокировки - это замечательно, но они не панацея и ни чем не лучше родных блокировок в нашем случае.
Ты предлагаешь в процедуре ПриЗаписи делать проверки остатков - хорошо, но только с первого взгляда.
Твоя пользовательская блокировка условно накладывает блокировку на работу со складом, документа который сейчас записывается. Но в подавляющем большинстве случаев фирмы используют для основной отгрузки один склад. Получается, что в один момент времени можно записывать все так же один документ.
Конечно, если в компании у каждого сотрудника, выписывающего накладные, свои склад, то это будет хорошим подспорьем Улыбка

Теперь дальше, ты предлагаешь считать записанный документ правильным и всем записанным документам должно хватать товара (если я правильно понял). Но как определять свободный остаток при работе задним числом или в случаях, когда единовременно имеется несколько записанных правильных документов, но они еще не проведены? Брать остатки из регистра и суммировать с итогами по табличным частям документов? Или в твоей концепции не должно быть в базе вообще никогда записанных и непроведенных документов?

В динамике:
0. Нажали кнопку Провести (#Записать #Провести);
1. Запись документа;
1.1. Попали в ПриЗаписи();
1.2. Проверили свободный остаток (при помощи пользовательской блокировки) - хватает;
1.3. Вышли из ПриЗаписи();
1.4. Открывается неявная транзакция;
1.5. Записывается документ;
1.6. Фиксируется неявная транзакция;
2. Проведение документа;
2.1. Открывается неявная транзакция;
2.2. Попали в ОбработкаПроведения();
2.3. Выполнили движения регистров на основании данных табличной части документа;
2.4. Вышли из ОбработкаПроведения();
2.5. Фиксируется неявная транзакция;

Для твоей концепции узким местом будет огромный промежуток времени между 1.6 и 2.1:
- документ записался, транзакция зафиксировалась, все блокировки сняты (здесь закончился п. 1.6);
- здесь попадаем в промежуток времени, когда другие пользователи (при интенсивной работе) могут вклиниться (т.е. между 1.6 и 2.1) со своими проверками в ПриЗаписи();
- начался п. 2.1 ...
- ...
- ...

Про "дорогие транзакции": в нашей работе (1с) они редко, когда являются дорогими. Объемы изменяемых данных при записи/проведении документов незначительные. В случае отката транзакции все не очень страшно. А вот когда нужно откатить транзакцию с таблицы в 40 с лишним лямов строк, то вот это "дорогая транзакция"  Плачущий
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #53 - 11. Декабря 2008 :: 06:39
Печать  
Цитата:
А вот когда нужно откатить транзакцию с таблицы в 40 с лишним лямов строк, то вот это "дорогая транзакция"

Ужас, это где так?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #54 - 11. Декабря 2008 :: 06:39
Печать  
spock писал(а) 11. Декабря 2008 :: 06:29:
Время есть, можно пообсуждать Улыбка

Но в подавляющем большинстве случаев фирмы используют для основной отгрузки один склад. Получается, что в один момент времени можно записывать все так же один документ.
Конечно, если в компании у каждого сотрудника, выписывающего накладные, свои склад, то это будет хорошим подспорьем Улыбка

У нас 20 складов и значит для моей конфигурации это будет хорошо
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #55 - 11. Декабря 2008 :: 06:47
Печать  
spock писал(а) 11. Декабря 2008 :: 06:29:
Время есть, можно пообсуждать Улыбка
Теперь дальше, ты предлагаешь считать записанный документ правильным и всем записанным документам должно хватать товара (если я правильно понял). Но как определять свободный остаток при работе задним числом или в случаях, когда единовременно имеется несколько записанных правильных документов, но они еще не проведены? Брать остатки из регистра и суммировать с итогами по табличным частям документов? Или в твоей концепции не должно быть в базе вообще никогда записанных и непроведенных документов?

у нас документы-речь о расходных накладных- отгружаются (проводяться) только текущим числом. Все изменения документов задним числом непринципиальны для регистра ОстаткиТоваров. Никто не имеет права задним числом отменить что-либо затрагивающее количество. У нас проверка отрицат. остатков страх#ет от невнимательности пользователя ( вбил не тот товар)
или от реальной пересортицы реальных складских остатков и с этой точки зрения неважно где делать эти проверки.
(Для других конфигураций, других методик учета конечно все написанное здесь может быть и неверным ).
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #56 - 11. Декабря 2008 :: 06:50
Печать  
Опять же если где то разрешено работать задним числом с документами меняющие складские остатки то и изменение приходных накладных ( в приходе уменьшили количество со 100
до 10 ) может привести к минусам остатков - все ли поверяют такую ситуацию ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #57 - 11. Декабря 2008 :: 06:53
Печать  
Цитата:
1.6. Фиксируется неявная транзакция;

Не совсем понятна эта фраза. это какой оператор на t-qsl.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #58 - 11. Декабря 2008 :: 06:56
Печать  
Z1 писал(а) 11. Декабря 2008 :: 06:53:
Цитата:
1.6. Фиксируется неявная транзакция;

Не совсем понятна эта фраза. это какой оператор на t-qsl.

COMMIT TRAN
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #59 - 11. Декабря 2008 :: 06:59
Печать  
Цитата:
Для твоей концепции узким местом будет огромный промежуток времени между 1.6 и 2.1:

Да согласен промежуток огромный но чтобы в него попали две реальные отгрузки для проверки почти "фантастический шанс"
хотя согласен попасть может т.к. одна расх накладная висит на блокировке вот после освобождения мы и попали на эту ситуацию.
получается в этом случае что и теоретически можно и без своей блокировки проверять считая почти невозможными реальные одновременные отгрузки.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #60 - 11. Декабря 2008 :: 07:00
Печать  
spock писал(а) 11. Декабря 2008 :: 06:56:
Z1 писал(а) 11. Декабря 2008 :: 06:53:
Цитата:
1.6. Фиксируется неявная транзакция;

Не совсем понятна эта фраза. это какой оператор на t-qsl.

COMMIT TRAN


Так как раз фиксируется явная транзакция, а под неявными обычно подразумевают транзакции в которые оборачиваются любые операторы SQL типа insert, update
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #61 - 11. Декабря 2008 :: 07:01
Печать  
Z1 писал(а) 11. Декабря 2008 :: 06:59:
Цитата:
Для твоей концепции узким местом будет огромный промежуток времени между 1.6 и 2.1:

Да согласен промежуток огромный но чтобы в него попали две реальные отгрузки для проверки почти "фантастический шанс"
хотя согласен попасть может т.к. одна расх накладная висит на блокировке вот после освобождения мы и попали на эту ситуацию.
получается в этом случае что и теоретически можно и без своей блокировки проверять считая почти невозможными реальные одновременные отгрузки.


Нельзя так делать не в коем случае.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #62 - 11. Декабря 2008 :: 07:01
Печать  
Цитата:
Про "дорогие транзакции": в нашей работе (1с) они редко, когда являются дорогими.

Дорогими операции транзакции становятьяс не только ( и не столько) от количества строк в табличной части документа но и от большого числа работающих в базе данных одновременно пользователей.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #63 - 11. Декабря 2008 :: 07:02
Печать  
Nick писал(а) 11. Декабря 2008 :: 06:39:
Цитата:
А вот когда нужно откатить транзакцию с таблицы в 40 с лишним лямов строк, то вот это "дорогая транзакция"

Ужас, это где так?

тогда переведи точно строку что такое 40 лямов ?
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #64 - 11. Декабря 2008 :: 07:02
Печать  
Вы мне опять мозг разрушаете **crazy**
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #65 - 11. Декабря 2008 :: 07:03
Печать  
Z1 писал(а) 11. Декабря 2008 :: 07:02:
Nick писал(а) 11. Декабря 2008 :: 06:39:
Цитата:
А вот когда нужно откатить транзакцию с таблицы в 40 с лишним лямов строк, то вот это "дорогая транзакция"

Ужас, это где так?

тогда переведи точно строку что такое 40 лямов ?

Таблица, в которой более 40 миллионов строк.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #66 - 11. Декабря 2008 :: 07:08
Печать  
spock писал(а) 11. Декабря 2008 :: 06:56:
Z1 писал(а) 11. Декабря 2008 :: 06:53:
Цитата:
1.6. Фиксируется неявная транзакция;

Не совсем понятна эта фраза. это какой оператор на t-qsl.

COMMIT TRAN

уверен ?
тогда получается что возможна бредовая ситуация
док записан с новыми строками во время проведения sql отвалился
в базе будет документ с новыми строками и старыми движениями.

Как на эту ситуацию влияет оператор в форме документа
ПриЗаписиПерепроводить(1);
и на кнопке Ок стоит всегда
#Записать провести
тогда логично делать фиксацию транзакции только после проведения.

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #67 - 11. Декабря 2008 :: 07:10
Печать  
Nick писал(а) 11. Декабря 2008 :: 07:01:
Z1 писал(а) 11. Декабря 2008 :: 06:59:
Цитата:
Для твоей концепции узким местом будет огромный промежуток времени между 1.6 и 2.1:

Да согласен промежуток огромный но чтобы в него попали две реальные отгрузки для проверки почти "фантастический шанс"
хотя согласен попасть может т.к. одна расх накладная висит на блокировке вот после освобождения мы и попали на эту ситуацию.
получается в этом случае что и теоретически можно и без своей блокировки проверять считая почти невозможными реальные одновременные отгрузки.


Нельзя так делать не в коем случае.

почему все зависит от конкретики учета.
Смотри у нас вообще запрещена работа задним числом затрагивающая складские остатки, а для кого то это вполне нормально.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #68 - 11. Декабря 2008 :: 07:12
Печать  
spock писал(а) 11. Декабря 2008 :: 07:03:
Z1 писал(а) 11. Декабря 2008 :: 07:02:
Nick писал(а) 11. Декабря 2008 :: 06:39:
Цитата:
А вот когда нужно откатить транзакцию с таблицы в 40 с лишним лямов строк, то вот это "дорогая транзакция"

Ужас, это где так?

тогда переведи точно строку что такое 40 лямов ?

Таблица, в которой более 40 миллионов строк.

такими числами наша программа не оперирует ( да и я тоже  Улыбка )
ну чтобы это заработало в 1с надо как минимум изменичь разрядность количество строк в документе.

  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #69 - 11. Декабря 2008 :: 07:14
Печать  
Цитата:
тогда получается что возможна бредовая ситуация
док записан с новыми строками во время проведения sql отвалился
в базе будет документ с новыми строками и старыми движениями.


Я думаю профайлер ответит на этот вопрос, если при записи + проведение будет послано две две комманды commit, значит это возможно.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #70 - 11. Декабря 2008 :: 07:16
Печать  
проверю но я уверен почти на все 100% что стоит один commit
для
Код
Выбрать все
ПриЗаписиПерепроводить(1); 


Просто может уже кто-то проверил и точно знает.
Хотя такие тонкие материи знать и помнить - нереально.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #71 - 11. Декабря 2008 :: 07:17
Печать  
Z1 писал(а) 11. Декабря 2008 :: 07:16:
проверю но я уверен почти на все 100% что стоит один commit.
Просто может уже кто-то проверил и точно знает.
Хотя такие тонкие материи знать и помнить - нереально.

А мне почемуто кажется что два Улыбка
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #72 - 11. Декабря 2008 :: 07:19
Печать  
Nick писал(а) 11. Декабря 2008 :: 07:17:
Z1 писал(а) 11. Декабря 2008 :: 07:16:
проверю но я уверен почти на все 100% что стоит один commit.
Просто может уже кто-то проверил и точно знает.
Хотя такие тонкие материи знать и помнить - нереально.

А мне почемуто кажется что два Улыбка

проверю но я уверен почти на все 100% что стоит один commit
для
Код
Выбрать все
ПриЗаписиПерепроводить(1); 


Просто может уже кто-то проверил и точно знает.
Хотя такие тонкие материи знать и помнить - нереально.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #73 - 11. Декабря 2008 :: 07:22
Печать  
У себя  поставил уже очень давно всегда делать.
Код
Выбрать все
ПриЗаписиПерепроводить(1);  


Чего и Вам советую сделать.
чтобы не возникала ситуация из поста #66.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #74 - 11. Декабря 2008 :: 07:24
Печать  
Nick писал(а) 11. Декабря 2008 :: 07:00:
Так как раз фиксируется явная транзакция, а под неявными обычно подразумевают транзакции в которые оборачиваются любые операторы SQL типа insert, update

Так фиксируется любая транзакция.

1с открывает транзакции не явно/explicit (т.е. не BEGIN TRAN), а неявно/implicit (т.е. SET IMPLICIT_TRANSACTIONS).
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #75 - 11. Декабря 2008 :: 07:28
Печать  
spock писал(а) 11. Декабря 2008 :: 07:24:
Nick писал(а) 11. Декабря 2008 :: 07:00:
Так как раз фиксируется явная транзакция, а под неявными обычно подразумевают транзакции в которые оборачиваются любые операторы SQL типа insert, update

Так фиксируется любая транзакция.

1с открывает транзакции не явно/explicit (т.е. не BEGIN TRAN), а неявно/implicit (т.е. SET IMPLICIT_TRANSACTIONS).

понятно т.е. неявно открывается транзакция при первой записи
и явной фиксации транзакции.
тогда осталось посмотреть сколько commit один или два для случая
ПриЗаписиПерепроводить(1);
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #76 - 11. Декабря 2008 :: 07:29
Печать  
spock писал(а) 11. Декабря 2008 :: 07:24:
Так фиксируется любая транзакция.
1с открывает транзакции не явно/explicit (т.е. не BEGIN TRAN), а неявно/implicit (т.е. SET IMPLICIT_TRANSACTIONS).


Уболтал Улыбка.
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #77 - 11. Декабря 2008 :: 07:30
Печать  
Z1 писал(а) 11. Декабря 2008 :: 07:28:
spock писал(а) 11. Декабря 2008 :: 07:24:
Nick писал(а) 11. Декабря 2008 :: 07:00:
Так как раз фиксируется явная транзакция, а под неявными обычно подразумевают транзакции в которые оборачиваются любые операторы SQL типа insert, update

Так фиксируется любая транзакция.

1с открывает транзакции не явно/explicit (т.е. не BEGIN TRAN), а неявно/implicit (т.е. SET IMPLICIT_TRANSACTIONS).

понятно т.е. неявно открывается транзакция при первой записи
и явной фиксации транзакции.
тогда осталось посмотреть сколько commit один или два для случая
ПриЗаписиПерепроводить(1);


Не при первой записи, а даже при первом Select, собственно поэтому _1sjourn и блокируется.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #78 - 11. Декабря 2008 :: 07:33
Печать  
Nick писал(а) 11. Декабря 2008 :: 07:30:
Z1 писал(а) 11. Декабря 2008 :: 07:28:
spock писал(а) 11. Декабря 2008 :: 07:24:
Nick писал(а) 11. Декабря 2008 :: 07:00:
Так как раз фиксируется явная транзакция, а под неявными обычно подразумевают транзакции в которые оборачиваются любые операторы SQL типа insert, update

Так фиксируется любая транзакция.

1с открывает транзакции не явно/explicit (т.е. не BEGIN TRAN), а неявно/implicit (т.е. SET IMPLICIT_TRANSACTIONS).

понятно т.е. неявно открывается транзакция при первой записи
и явной фиксации транзакции.
тогда осталось посмотреть сколько commit один или два для случая
ПриЗаписиПерепроводить(1);


Не при первой записи, а даже при первом Select, собственно поэтому _1sjourn и блокируется.

ну тогда я не понимаю зачем 1с сделала такую неявную транзакцию но это и не важно, потому что не можем на это повлиять.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #79 - 11. Декабря 2008 :: 07:38
Печать  
Z1 писал(а) 11. Декабря 2008 :: 07:08:
Как на эту ситуацию влияет оператор в форме документа
ПриЗаписиПерепроводить(1);
и на кнопке Ок стоит всегда
#Записать провести
тогда логично делать фиксацию транзакции только после проведения.

Если документ уже проведен и в модуле формы выставлен ПриЗаписиПерепроводить(1), то запись и проведение выполняются в одной транзакции.
« Последняя редакция: 11. Декабря 2008 :: 15:10 - spock »  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #80 - 11. Декабря 2008 :: 07:40
Печать  
эта, я за вами не успеваю Улыбка
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #81 - 11. Декабря 2008 :: 07:42
Печать  
spock писал(а) 11. Декабря 2008 :: 07:38:
Z1 писал(а) 11. Декабря 2008 :: 07:08:
Как на эту ситуацию влияет оператор в форме документа
ПриЗаписиПерепроводить(1);
и на кнопке Ок стоит всегда
#Записать провести
тогда логично делать фиксацию транзакции только после проведения.

Если документ уже проведен и в модуле формы выставлен ПриЗаписиПерепроводить(1), то запись и проведение выполняется в одной транзакции.

YES. Это очень хорошо.
(теперь кстати понятно почему очень давно мы нарывались на ситуацию из поста #66.тогда был еще плохой сервер и сеть не очень и не было ПриЗаписиПерепроводить(1) имели таких несогласованностей много. Даже писал
специальный отчет чтобы находить логическое рассогласование регистров и документов).
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #82 - 11. Декабря 2008 :: 07:47
Печать  
Nick писал(а) 11. Декабря 2008 :: 07:01:
Z1 писал(а) 11. Декабря 2008 :: 06:59:
Цитата:
Для твоей концепции узким местом будет огромный промежуток времени между 1.6 и 2.1:

Да согласен промежуток огромный но чтобы в него попали две реальные отгрузки для проверки почти "фантастический шанс"
хотя согласен попасть может т.к. одна расх накладная висит на блокировке вот после освобождения мы и попали на эту ситуацию.
получается в этом случае что и теоретически можно и без своей блокировки проверять считая почти невозможными реальные одновременные отгрузки.


Нельзя так делать не в коем случае.

Nick может обоснуешь этот пост.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #83 - 11. Декабря 2008 :: 07:49
Печать  
Я кажеться понял еще прежде чем отвечать на  вопрос
где проверять отрицательные остатки
сначала надо ответить на вопрос

Зачем мы ( каждый в зависимости от учета ) проверяем отрицательные остатки ?
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: часть 7 отрицательные остатки в модуле проведения
Ответ #84 - 11. Декабря 2008 :: 15:18
Печать  
Z1 писал(а) 11. Декабря 2008 :: 07:49:
Я кажеться понял еще прежде чем отвечать на  вопрос
где проверять отрицательные остатки
сначала надо ответить на вопрос

Зачем мы ( каждый в зависимости от учета ) проверяем отрицательные остатки ?

Имхо, это настолько важный вопрос, что он включен в учётную политику организации
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать