Переключение на Главную Страницу Страницы: 1 ... 22 23 [24] 25 26 ... 60 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" (число прочтений - 304802 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #345 - 19. Ноября 2009 :: 10:11
Печать  
Захар Малиновский писал(а) 19. Ноября 2009 :: 10:01:
И собственные блокировки тут не суть дела.  У вас (без изменённых блокировок) ведь тоже кто то что то может провести , удалить из таблицы взаиморасчётов, чтобы потом записать новые движения , пока ваш отчёт читает данные.

У меня блокировки как раз "изменённые".  Подмигивание И nolock почему-то совсем не мешает.. А holdlock в описанном сценарии - это путь не только к относительно правдоподобным данным, но и к взаимоблокировкам.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: Класс "ПрямойЗапрос"
Ответ #346 - 19. Ноября 2009 :: 11:48
Печать  
berezdetsky писал(а) 19. Ноября 2009 :: 10:11:
Захар Малиновский писал(а) 19. Ноября 2009 :: 10:01:
И собственные блокировки тут не суть дела.  У вас (без изменённых блокировок) ведь тоже кто то что то может провести , удалить из таблицы взаиморасчётов, чтобы потом записать новые движения , пока ваш отчёт читает данные.

У меня блокировки как раз "изменённые".  Подмигивание И nolock почему-то совсем не мешает.. А holdlock в описанном сценарии - это путь не только к относительно правдоподобным данным, но и к взаимоблокировкам.


И опять я с вами не соглашусь.
Воспользовавшись намеренно неправильно монопольной блокировкой двух строк, можно попасть в деадлок с другим, таким же кодом , но с обратным порядком блокировки этих двух строк.  
Это все знают.
_Но_ это же не повод запретить вообще использование различных блокировок.  
Т.е. возможность указать хинт должна быть.
Возможность, а не обязанность.  
Пусть программист принимает решение о том как блокировать.
И кстате, сделать деадлок отчёта по взаиморасчётам с документами меняющими таблицы взаиморасчётов ,по обычной схеме "удалил-добавил", невозможно.
Потому как первым делом в проведении документов делаеться delete взаиморасчёты where iddoc = ... , а это сразу даёт IХ-lock на таблицу взаиморасчётов, она с чтением не совместима. Соответственно этот момент либо ждёт завершения чтения нашим отчётом (отчёт не nolock конечно), либо наш отчёт ждёт окончания проведения , ведь наш отчёт не nolock.

Я чесно не понял как у вас с nolock чтение отчёта , например взаиморасчётов, ожидает конца проведения документа  в другом подключении. Вы что то вроде по смыслу TABLOCK используете ? Ну вот конкретно, итоги по взаиморасчётам в режиме _по всем клиентам_ у вас  чем блокируються ? Несколькими блокировками или одной ?
  
Наверх
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #347 - 23. Ноября 2009 :: 07:32
Печать  
vandalsvq писал(а) 19. Ноября 2009 :: 09:17:
Однозначного ответа на то что быстрее нет. По крайней мере все очень сильно зависит от ситуации... т.е. от БД Улыбка

Это понятно, фанатизм редко бывает полезен. Только что переписал три запроса, пользователи жаловались на тормоза, а я никак понять не пог - чего оно так медленно...
После перестановки таблиц в запросе местами и замены inner на left - скорость выполнения выросла раз эдак 20:). Там табличное поле, как замерить - не знаю, но: тормоза были, а теперь все работает мгновенно.
Спасибо еще раз Очень довольный
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #348 - 27. Ноября 2009 :: 20:51
Печать  
Вышла новая версия. 1.04.007 от 28.11.09 г.. Для тех кто пользуется ВТ РегистрОстаткиОбороты на DBF базах данных обновиться необходимо обязательно.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #349 - 30. Ноября 2009 :: 18:31
Печать  
При реализации БИОстаткиОбороты обнаружил некоторую проблему в 1sqlite. Которая была озвучена Александру. Будем ждать новостей. А пока мой совет пользоваться версией из этого поста http://www.1cpp.ru/forum/YaBB.pl?num=1214205575/657#657 именно она на мой (имхо) взгляд самая правильная и стабильная. Без каких либо ошибок.

Пы.сы. в скором времени выложу класс с реализованными БИОстаткиОбороты и БИДвиженияССубконто. В общем работа над классом завершена практически полностью. Вроде бы. Конечно хотелось бы иметь что-то вроде ИТОГИ (как в 8-ке), но боюсь меня уже не хватит.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #350 - 01. Декабря 2009 :: 12:04
Печать  
Наткнулся на непонятное поведение $ПоследнееЗначение
Если у реквизита есть атрибуты, установленные вручную и документами, то изменения документами игнорируются, возращается последнее значение, установленное вручную. Врядли так и задуманоУлыбка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #351 - 01. Декабря 2009 :: 12:32
Печать  
Согласен... надо проверять Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #352 - 01. Декабря 2009 :: 13:39
Печать  
Тест нужен, или там и так понятно?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #353 - 01. Декабря 2009 :: 14:44
Печать  
Давай Улыбка

Пы.сы. обнаружил проблему у себя в РегистрОбороты если сам регистр с периодичностью > МЕСЯЦ. Как оказалось там 1С хитроватенько хранит обороты. Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #354 - 01. Декабря 2009 :: 14:45
Печать  
Хитроватенько это как? Не как обычно?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #355 - 01. Декабря 2009 :: 15:04
Печать  
Я даже не знаю как точно описать это. В общем кроме стандартного хранения (на начало периода накопленные за период), дополнительно на дату начала месяца конца периода хранится весь суммарный оборот за период. Т.е. итоговые обороты за каждый месяц будут храниться на дату начала месяца, а вот на начало последнего месяца периода будет хранится весь итоговый оборот за период. Т.е. за год обороты будут хранится так (пусть оборот каждого месяца = 1):
01.01 - 1, 01.02 - 1 ...... 01.11 - 1, 01.12 - 12
Во Улыбка

Пы.сы. РегистрОбороты от 1С++ работают правильно... как же я не догадался в них посмотреть с самого начала.  Круглые глаза
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #356 - 01. Декабря 2009 :: 15:32
Печать  
В тестовой базе единственный справочник с периодическим реквизитом.
В истории две записи, одна вручную, вторая - документом.
Отчет Тест должен бы показать запись, внесенную документом (она позже), но не тут-то былоУлыбка
  

test_016.rar ( 77 KB | Загрузки )
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #357 - 02. Декабря 2009 :: 06:20
Печать  
Выложена новая версия:
1.05.001 от 02.12.09 г.
- Исправлены ошибки и проведена оптимизация ВТ РегистрОбороты.
- Добавлена ВТ БИОстаткиОбороты.
- Доработана документация класса.

Проблему с $ПоследнееЗначение еще не смотрел. Думаю сегодня посмотрю.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: Класс "ПрямойЗапрос"
Ответ #358 - 02. Декабря 2009 :: 06:41
Печать  
Автор, а примешь несколько строк доработки класса ? Добавлю экспортные переменные РежимБлокировкиТаблицыДвиженийРегистра_ДляВТ, и РежимБлокировкиТаблицыИтоговРегистра_ДляВТ ?
Совместимость с тем что было понятно остаётся.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #359 - 02. Декабря 2009 :: 06:59
Печать  
2 Захар.
Ну если уж на то пошло, то есть ведь не только таблицы итогов и движений по регистрам, но и по бухгалтерии. Так что если уж делать, то делать для всех и универсально Улыбка.
И опять таки, в принципе я закончил с классом, и если и будут изменения, то только в виде исправления ошибок. Поэтому думаю ты можешь не беспокоиться и менять то, что тебе необходимо.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 22 23 [24] 25 26 ... 60
ОтправитьПечать