Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) (теория) Зачем сначала писать, потом проверять? В чем смысл? (число прочтений - 10000 )
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
(теория) Зачем сначала писать, потом проверять? В чем смысл?
02. Ноября 2010 :: 13:34
Печать  
Купил, наконец-то 8.2 - версию для обучения программированию. Читаю. Думаю. И натыкаюсь на такой пассаж:
Мы, в восьмерках, будем делать по новому: при списании со склада - вначале списывать, а потом проверять - не списали-ли мы лишнего. И если вдруг списали - тогда откатывать назад.
А в чем смысл, в чем выгода? Нафига это?
1. Вначале запросом получаем остатки товаров с себестоимостью.
2. Проводим.
3. Потом еще раз таким же запросом - ищем отрицательные остатки.
Так же дольше? На один запрос дольше, однозначно. Ведь сравнение на больше/меньше при проведение фактически бесплатное...
Или я чего-то не понимаю?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #1 - 02. Ноября 2010 :: 13:43
Печать  
все правильно чё. это как с бюджетными деньгами:
если вещь стоит 2 рубля, то закладываем 3, что бы рупь откатить
Улыбка
офф, конечно.
  

1&&2&&3
Наверх
 
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #2 - 02. Ноября 2010 :: 13:54
Печать  
Да я себе чуть мозг не вывернул, пытаясь придумать ситуацию, когда это даст выигрыш. Вроде как выигрыш может быть только тогда, когда нет первого запроса - т. е. на складе тупой количественный учет без суммового. Другими словами - в самом примитивном случае, в реальной жизни такого, как правило, не бывает.
Вот уж точно - книга заставляет думатьУлыбка
  
Наверх
 
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #3 - 02. Ноября 2010 :: 13:58
Печать  
Данный подход позволяет писАть проверки контроля остатков более универсально (а за универсальность всегда надо чем то платить) т.е. написал один раз контроль в модуле регистра и забыл о нем, нет необходимости отслеживать изменения\рефакторинг процедур проведения.
  
Наверх
wwwICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #4 - 02. Ноября 2010 :: 14:34
Печать  
classic писал(а) 02. Ноября 2010 :: 13:34:
1. Вначале запросом получаем остатки товаров с себестоимостью.
2. Проводим.
3. Потом еще раз таким же запросом - ищем отрицательные остатки.

п.1 не нужен в 8.2 Улыбка
сразу п.2 и п.3 Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #5 - 02. Ноября 2010 :: 14:46
Печать  
artbear писал(а) 02. Ноября 2010 :: 14:34:
п.1 не нужен в 8.2 Улыбка

хмм Озадачен
а каким чудесным образом происходит списание по среднему или списание партий?
  

1&&2&&3
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #6 - 02. Ноября 2010 :: 15:10
Печать  
classic писал(а) 02. Ноября 2010 :: 13:34:
Купил, наконец-то 8.2 - версию для обучения программированию. Читаю. Думаю. И натыкаюсь на такой пассаж:
Мы, в восьмерках, будем делать по новому: при списании со склада - вначале списывать, а потом проверять - не списали-ли мы лишнего. И если вдруг списали - тогда откатывать назад.
А в чем смысл, в чем выгода? Нафига это?
1. Вначале запросом получаем остатки товаров с себестоимостью.
2. Проводим.
3. Потом еще раз таким же запросом - ищем отрицательные остатки.
Так же дольше? На один запрос дольше, однозначно. Ведь сравнение на больше/меньше при проведение фактически бесплатное...
Или я чего-то не понимаю?


идея уводить проверку остатков в конец процедуры проведения связана с:

1. более простым запросом проверки - чем проще запрос, тем лучше ведет себя транслированный SQL запрос, а значит быстрее
2. чем быстрее запрос - тем меньше времени живет блокировка

и кстати по порядку - Артур почти правильно написал:

методика советует нечто следующее, если я правильно помню:

раньше было:
0. делаем всякую расчетную ересь - в том числе себестоимость
1. подготавливаем движения документа и проверяем остатки одним запросом
2. проводим если не было отрицательных остатков

стало:
0. делаем всякую расчетную ересь - в том числе себестоимость
1. подготавливаем движения документа запросом
2. проводим без всяких проверок
3. запросом ищем возникшие отрицательные остатки.

еще раз идея: один запрос со сложным соединением и 2 запроса без всяких JOIN'ов ведут себя совершенно по разному.

P.S. Кстати отдельно говорилось, что в сложных случаях все равно надо включать голову, помня в том числе и о новой методике.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #7 - 03. Ноября 2010 :: 09:32
Печать  
Идею понял, просто авторы неудачный пример выбрали. Эта схема идеально ляжет на выплату ЗП (контроль перевыплаты), или выдачу денег из кассы, и т. д.
А вот со списанием со склада эта схема не очень хороша - просто при расчете себестоимости (партий-ли, средней-ли, не важно) - мы уже получаем остатки, и грех не проверить их. И никакого упрощения и уборки join'ов не происходит при этом - тут выигрыша не будет. Тем более, при списании по фифо в самом алгоритме списания партий недостаток выскочит, сам-собой.
Выигрыш разве что в универсальности проверки.
Но идея имеет место быть, буду пользовать там, где это выгодно.
  
Наверх
 
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #8 - 03. Ноября 2010 :: 11:14
Печать  
1с утверждает что данная методика в основном для уменьшения времени блокировки итоговых таблиц.

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #9 - 03. Ноября 2010 :: 12:29
Печать  
Igor-bts писал(а) 03. Ноября 2010 :: 11:14:
1с утверждает что данная методика в основном для уменьшения времени блокировки итоговых таблиц.

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

Если принцип проведения такой же как и в v7 
то итоговые таблицы будут изменены и заблокированы ( точно для ms sql ) в начале модуля проведения и  до конца проведения.
Если этого не сделать то тогда в модуле проведения будут неверны остатки на ТА и любую дату после этого документа.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #10 - 03. Ноября 2010 :: 12:47
Печать  
Z1 писал(а) 03. Ноября 2010 :: 12:29:
Igor-bts писал(а) 03. Ноября 2010 :: 11:14:
1с утверждает что данная методика в основном для уменьшения времени блокировки итоговых таблиц.

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

Если принцип проведения такой же как и в v7  
то итоговые таблицы будут изменены и заблокированы ( точно для ms sql ) в начале модуля проведения и  до конца проведения.
Если этого не сделать то тогда в модуле проведения будут неверны остатки на ТА и любую дату после этого документа.


вообще отдельно говорится что необходимо менять принцип проведения - в частности для исключения неверных остатков явно управлять блокировкой.

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

  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #11 - 03. Ноября 2010 :: 12:50
Печать  
lustin писал(а) 03. Ноября 2010 :: 12:47:
Z1 писал(а) 03. Ноября 2010 :: 12:29:
Igor-bts писал(а) 03. Ноября 2010 :: 11:14:
1с утверждает что данная методика в основном для уменьшения времени блокировки итоговых таблиц.

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

Если принцип проведения такой же как и в v7  
то итоговые таблицы будут изменены и заблокированы ( точно для ms sql ) в начале модуля проведения и  до конца проведения.
Если этого не сделать то тогда в модуле проведения будут неверны остатки на ТА и любую дату после этого документа.


вообще отдельно говорится что необходимо менять принцип проведения - в частности для исключения неверных остатков явно управлять блокировкой.

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


Я говорю не о том принципе на который может влиять программист 1с в модуле проведения
а о том что заложено до начала модуля проведения.
Т.е до выполнения  модуля проведения должны быть сброшены данные предыдущих движений в итоговых таблицах и именно в этот момент и будут наложены ms msq блокировки в итоговых таблицах.
  
Наверх
 
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #12 - 03. Ноября 2010 :: 13:35
Печать  
В 8.2 изменен принцип блокировки.
Итоги блокируются при команде "Записать" движений в регистр.
либо управляемыми блокировками.
И "новая" методика работает так:
Формируем набор движений, быстро записываем и быстро проверяем хватило ли?
  
Наверх
ICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #13 - 03. Ноября 2010 :: 13:35
Печать  
Z1 писал(а) 03. Ноября 2010 :: 12:50:
Т.е до выполнения  модуля проведения должны быть сброшены данные предыдущих движений в итоговых таблицах и именно в этот момент и будут наложены ms msq блокировки в итоговых таблицах.


я правильно понял - что ты о тех блокировках которые устанавливает сама платформа в момент начала проведения перед передачей управления в модуль процедуре ОбработкаПроведения ?

если это так - то ты можешь этим управлять только с помощью режима управления блокировками объекта (автоматический/управляемый)

однако это еще одна методика - в серьезных решениях отказываться от автоматических блокировок и переходить на управляемые.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #14 - 03. Ноября 2010 :: 13:45
Печать  
в решениях 8.2 1с  отказывается от автоматических блокировок, которые ставятся при входе в обработчик проведения.
стараясь поставить как можно позже

Идея 1с чтобы "Управляемыми" блокировками пользоваться как можно реже.
Стандартная методика проведения:
1) Блокируем изменяемые данные
2) Выполняем проверку доступности данных,
3) Формируем набор движений
4) Открываем транзакцию
5) Записываем.
6) Фиксируем транзакцию и отменяем блокировку
Все это время данные заблокированы.

"Новая" методика
1) Формируем набор движений
2) Открываем транзакцию
3) Записываем - только в этот момент изменяемые данные блокируются.
4) Выполняем проверку
5) Фиксируем транзакцию и отменяем блокировку

Общее время блокировки во втором случае должно быть меньше.

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #15 - 03. Ноября 2010 :: 13:47
Печать  
Igor-bts писал(а) 03. Ноября 2010 :: 13:35:
В 8.2 изменен принцип блокировки.
Итоги блокируются при команде "Записать" движений в регистр.
либо управляемыми блокировками.
И "новая" методика работает так:
Формируем набор движений, быстро записываем и быстро проверяем хватило ли?

тогда понятно т.е пока не сделаем "Записать" движений в регистр.
итоги будут либо на начало проведения документа либо неактуальными.

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


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #16 - 03. Ноября 2010 :: 13:51
Печать  
и в дополнении - чтобы не было проблем с "узким местом" - таблицей итогов , опять же для сокращения времени блокировки в 8.2 введен режим разделения итогов.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #17 - 03. Ноября 2010 :: 13:54
Печать  
Igor-bts писал(а) 03. Ноября 2010 :: 13:45:
в решениях 8.2 1с  отказывается от автоматических блокировок, которые ставятся при входе в обработчик проведения.
стараясь поставить как можно позже

Идея 1с чтобы "Управляемыми" блокировками пользоваться как можно реже.
Стандартная методика проведения:
1) Блокируем изменяемые данные
2) Выполняем проверку доступности данных,
3) Формируем набор движений
4) Открываем транзакцию
5) Записываем.
6) Фиксируем транзакцию и отменяем блокировку
Все это время данные заблокированы.

"Новая" методика
1) Формируем набор движений
2) Открываем транзакцию
3) Записываем - только в этот момент изменяемые данные блокируются.
4) Выполняем проверку
5) Фиксируем транзакцию и отменяем блокировку

Общее время блокировки во втором случае должно быть меньше.

"Новая" методика не всегда применима.

ну это если исходить из оптимистического прогноза что  на минусы мы будем попадать очень редко
то так и надо делать как Вы описали

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #18 - 03. Ноября 2010 :: 13:55
Печать  
lustin писал(а) 03. Ноября 2010 :: 13:51:
и в дополнении - чтобы не было проблем с "узким местом" - таблицей итогов , опять же для сокращения времени блокировки в 8.2 введен режим разделения итогов.

опишите что это такое
  
Наверх
 
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #19 - 03. Ноября 2010 :: 14:03
Печать  
Z1 писал(а) 03. Ноября 2010 :: 13:54:
ну это если исходить из оптимистического прогноза что  на минусы мы будем попадать очень редко
то так и надо делать как Вы описали

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

Оптимизм здесь не причем.
Пока вы будете проверять на минусы, таблицу кто нибудь успеет изменить и ваши проверки станут не актуальны.

Вам придется блокировать данные "на запись" на время проверки.
В это время второй "быстрый" пользователь запускает проведение аналогичного документа и тоже блокирует те же самые данные "на запись" - ни тот ни другой не может закончить проведение.
Решение - блокировать не только "на запись", но и "на чтение", и пока ваш алгоритм проверки на отрицательные остатки неторопливо проверяет остальные получают сообщение "Истек интервал ожидания блокировки таблицы" или что-то похожее.  Улыбка
  
Наверх
ICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #20 - 03. Ноября 2010 :: 14:12
Печать  
Z1 писал(а) 03. Ноября 2010 :: 13:55:
lustin писал(а) 03. Ноября 2010 :: 13:51:
и в дополнении - чтобы не было проблем с "узким местом" - таблицей итогов , опять же для сокращения времени блокировки в 8.2 введен режим разделения итогов.

опишите что это такое


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

P.S. и вот только сейчас вспомнил - что не помню в какой конкретно версии введен режим разделения итогов - оказалось еще с тестовой 8.1 http://forum.klerk.ru/showthread.php?t=112638

  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #21 - 03. Ноября 2010 :: 14:14
Печать  
(Igor-bts)
скажите а точек "блокировок" одна на все регистры или на каждый регистр своя.

Если исходить из Вашего описания то непонятно как работает
аналог из v7 ПризаписиПерепроводить(1) или такого нет в v8
и все это лежит на сервере приложений ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #22 - 03. Ноября 2010 :: 14:21
Печать  
lustin писал(а) 03. Ноября 2010 :: 14:12:
Z1 писал(а) 03. Ноября 2010 :: 13:55:
lustin писал(а) 03. Ноября 2010 :: 13:51:
и в дополнении - чтобы не было проблем с "узким местом" - таблицей итогов , опять же для сокращения времени блокировки в 8.2 введен режим разделения итогов.

опишите что это такое


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

P.S. и вот только сейчас вспомнил - что не помню в какой конкретно версии введен режим разделения итогов - оказалось еще с тестовой 8.1 http://forum.klerk.ru/showthread.php?t=112638


не вижу выигрыша считать остатки надо будет дольше
v7 не допускает ошибок ( просто падает ) если каким либо образом
пытаетесь добавить (insert )  тот же самый набор в rg
здесь же из-за какой либо ошибки ( сбился индекс и.т.д)
возможно будет записать неправильные данные.
+ в v7 индекс уникальный а описанная схема это исключает и работа с итоговыми таблицами в целом замедлится
  
Наверх
 
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #23 - 08. Ноября 2010 :: 06:27
Печать  
скажите а точек "блокировок" одна на все регистры или на каждый регистр своя.


Для каждого своя.

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #24 - 08. Ноября 2010 :: 07:32
Печать  
Igor-bts писал(а) 08. Ноября 2010 :: 06:27:
скажите а точек "блокировок" одна на все регистры или на каждый регистр своя.
Для каждого своя.
Писать сложнее т.к. гораздо легче попасть на взаимоблокировку.



Цитата:
По разделению итогов.
Да в однопользовательском режиме будет замедление, но для разделенного (с большим количеством пользователей), будет выигрыш за счет снижения времени ожидания доступности таблицы на запись.
Я имею ввиду что в этом случае вычисление остатков будет занимать больше времени и очень сложно оценить стоит ли это применять или нет. На мой взгляд не стоит.




Также давайте обсудим когда начинается транзакция.
Если в v8 есть аналого при записеПерепроводить транзакция должна начинаться при записи документа(речь об ms sql)
  
Наверх
 
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #25 - 08. Ноября 2010 :: 08:20
Печать  
1) По первому утверждению. Почему? Предлагаемая 1с методика подходит не для всех задач. Если формируемые движения опираются на данные из этого же регистра, то новая методика не подходит, и действуем "по старому" .

2) По разделению итогов.
На сколько замедлится расчет итогов сказать не могу, но видимо 1с проводила исследования, прежде чем такое вводить. Могу предположить что записей итогов с разделением должно быть не слишком много.

3) Поведение транзакции не изменилось, она  так же начинается при записи документа, а вот алгоритм установки блокировок таблиц регистров изменился.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #26 - 08. Ноября 2010 :: 13:54
Печать  
Igor-bts писал(а) 08. Ноября 2010 :: 08:20:
1) По первому утверждению. Почему? Предлагаемая 1с методика подходит не для всех задач. Если формируемые движения опираются на данные из этого же регистра, то новая методика не подходит, и действуем "по старому" .

По-старому это как? ИМХО только новый вариант возможен.
Или ты про НаборЗаписей.Записать = ложь; ?
Пояснишь?
ЗЫ я еще только-только 8.2 начинаю щупать на самом деле.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #27 - 08. Ноября 2010 :: 14:36
Печать  
посмотри
http://www.1cpp.ru/forum/YaBB.pl?num=1288704846/0#14


НаборЗаписей.Записать = ложь;
всего лишь исключает запись по этому регистру из пакетной записи  Движения.Записать();
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #28 - 08. Ноября 2010 :: 14:49
Печать  
Igor-bts писал(а) 08. Ноября 2010 :: 14:36:
посмотри
http://www.1cpp.ru/forum/YaBB.pl?num=1288704846/0#14


НаборЗаписей.Записать = ложь;
всего лишь исключает запись по этому регистру из пакетной записи  Движения.Записать();

Так старой методики больше нету в 8.2, разве нет?
Иначе поясни, как на 8.2 запустить старую схему Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #29 - 08. Ноября 2010 :: 15:08
Печать  
Старая методика никуда не делась,  тем более что часть учетных задачи по другому не решишь.

Но 1с пытается в типовых решениях применить новую методику, разными ухищрениями.

Классический пример расход товара:
Если не надо рассчитывать себестоимость списания, или ее модно перенести на потом, то можно применить новую методику.
Списали + заблокировали данные,  проверили на отрицательные остатки.
Но если надо рассчитывать себестоимость, то (как в 77)
сначала блокируем данные, проверяем доступность ресурсов, рассчитываем себестоимость, списываем.

Весь сыр бор из-за блокировок итоговых таблиц регистров.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #30 - 08. Ноября 2010 :: 15:26
Печать  
Igor-bts писал(а) 08. Ноября 2010 :: 15:08:
Старая методика никуда не делась,  тем более что часть учетных задачи по другому не решишь.

Но 1с пытается в типовых решениях применить новую методику, разными ухищрениями.

Классический пример расход товара:
Если не надо рассчитывать себестоимость списания, или ее модно перенести на потом, то можно применить новую методику.
Списали + заблокировали данные,  проверили на отрицательные остатки.
Но если надо рассчитывать себестоимость, то (как в 77)
сначала блокируем данные, проверяем доступность ресурсов, рассчитываем себестоимость, списываем.

Весь сыр бор из-за блокировок итоговых таблиц регистров.


Каким оператором t-sql накладывается блокировка на итоговые таблицы регистров.

Еще вопрос стоит ли дискутировать с Вами по поводу #25 ?
Дело в том что v8 не знаю и что либо утверждая как то некомфортно себя ощущаю ( мои утверждения основываются на v7 , знания ms sql и общие знания по построению регистра накопления )
  
Наверх
 
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: (теория) Зачем сначала писать, потом проверять? В чем смысл?
Ответ #31 - 09. Ноября 2010 :: 15:21
Печать  
Z1 писал(а) 08. Ноября 2010 :: 15:26:
Каким оператором t-sql накладывается блокировка на итоговые таблицы регистров.

Еще вопрос стоит ли дискутировать с Вами по поводу #25 ?
Дело в том что v8 не знаю и что либо утверждая как то некомфортно себя ощущаю ( мои утверждения основываются на v7 , знания ms sql и общие знания по построению регистра накопления )


Со стороны t-sql, еще не заглядывал, (будет возможность посмотрю). Мои же утверждения строятся на документации от 1с.

Было желание поделиться "как стало"
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать