Проведение документов для 7.7 SQL 2000 базы с фильтрами

СПЕЦИАЛЬНО для SQL баз.
Обработка осуществляет выборочное проведение документов по видам и по фильтрам:
Фирмы, Контрагенты, Номенклатура. (под ТиС и подобные).
Использует 1С++

Обработка делалась под ТиС и самописные под SQL конфигурации.
Не секрет что скорость проведения документов в SQL базе значительно падает с нарастанием объема перепроводимого. Для обхода этой нехорошести был реализован метод в 1С++  ReconnectNative() за что DmitrO и остальным разрабам отдельное спасибо, а так же за кучу других вкусностей).


Собственно обработка формирует список документов к перепроведению по указанным фильтрам и наивозможно быстро перепроводит Wink

Для работы требуется 1С++ (у меня v 2.0.3.7) взять с оф. сайта

 

19 Comments

  1. Ёпрст

    Автор, ты явно не договариваешь:

    для ReconnectNative() нужно:

    1. чтоб были закрыты все открытые курсоры

    2. актуально только для 2000 скуля.

    3. перепровод не имеет смысла при сортировке по виду документа

    4. для фильтра по номенклатуре, например, выгружать ТЧ документа в СЗ — вообще не комильфо..

    5. каждый раз делать УстановитьТАна — это тоже ппц.

    Reply
  2. Noy

    (1) Справедливости ради замечу, что

    1. у автора есть предупреждение об открытых окнах (читай курсорах) в 1С

    3. перепровод делается в хронологическом порядке.

    зато добавлю в список:

    6. если балуешься с ТА, то его ее нужно возвращать на место, а не на последний док в базе (у меня такой документ Напоминание от 31.08.2012)

    Reply
  3. Ёпрст

    (2) ну да , с сортировкаой там загнул — не досмотрел код..

    Reply
  4. ShootNICK

    (1)

    1. отрабатывается. выдаст ошибку и предложить позакрывать все.

    2. 7.7 на 2005 штатно не ставится.

    3. сортировки такой в обработке и нету.

    4. как комильфо ? :))

    5. по тестам с «каждый раз установить» процентов на 30 быстрее. как быть ? сделать медленее ?

    upd про возвращать на место (или последний проведенный оперативный — согласный). просто у меня они как то совпадают 🙂

    Reply
  5. Ёпрст

    2. Штатно и реконнекта нет, это не означает, что на 2005 не работает

    3. см (3)

    4. Использовать запрос с фильтрами, и лучше прямой

    5. Не верю, что в цикле, установ ТА на документ быстрее, чем 1 раз установить на первый документ.

    Reply
  6. Ёпрст

    + обновление формы за каждый проход — это тоже не комильфо.

    Reply
  7. ShootNICK

    (5)

    2. хорошо. задам наводящий вопрос — что нуждно было напсать ? для MS SQL 2000 ? тогда бы было комильфо ? 😀

    5. вопросы веры я не рассматриваю 🙂 статистка — вот такая. если есть другая статистика — с удовольствием погляжу замеры.

    Reply
  8. Noy

    (4),(5) Установка ТА в цикле нехило тормозит, но можно использовать»комбинированный» подход: перебираем доки — если док не подходит по условию, но участвует в опер учете, то выставляем флаг «подогнатьТА» и при следующем доке устанавливаем ТА программно. В этом случае ТА будет корректно переносится самой системой, если документы проводятся по порядку и переносится программно, если есть «пропуски». А вот быстродействие такого метода сильно зависит от данных конкретной базы.

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

    Reply
  9. ShootNICK

    (8)

    про костыль не соглашусь. к сожалению вне зависимости прямой или кривой запрос используется на ошибку SQL2000 это не влияет. в 2005 пофиксили, да.

    я использовал оба метода : прямые запросы в документах + если надо чего то выборочно провести — эта обработка.

    без установки ТА итоги будут рассчитываться по 2 таблицам, а не браться из акутальных. практика показывает что расчет на ТА даже с учетом сдвига быстрее 🙂

    Если есть другая статистка — велкам.

    опять же — не нравится сдвиг ТА — используйте 1 алгоритм «без сдвига» 🙂

    Reply
  10. Ёпрст

    (9) есть… Штатное перепроведение. Через Операции-проведение.. быстрее.

    Reply
  11. ShootNICK

    (10)

    1. и к чему спич ? в штатном проведении есть мультифильтр ? 🙂

    2. у меня другая статистика : на ТиС было на 30% быстрее штатного. как быть ?

    кроме того на немаленькой базе как то проводили год — так вот начиная с 5го или 6го месяца штатное проведение месяца занимало около суток. С RN — увеличения длительности не было.

    и pls если есть что по обработке сказать — велкам. отвлеченные беседы на тему взаимодействия 77 и sql они тут лишние. хочется — создай тему на форуме, хотя вопросы эти 100 раз обсужены и разрешены.

    данная обработка (данная обработка) несет дополнительный довольно удобный функционал. не является ноу хау и откровением и успешно используется со времен написания ДмитрОм метода RN()

    Reply
  12. Ёпрст

    (11)

    1. ну , за такой «мультифильтр» нужно <нужное подчеркнуть>

    2. при правильном переписывании модуля проведения ( чтоб и останочки и запись в регистры +толкание файла итогов делал прямой запрос) достаточно штатного перепроведения, гда проведение всегда в ТА..

    вот тогда и скорость будет в разы быстрее..

    а так, костыль он и в африке костыль.

    ЗЫ: да и при офрмлении темы, желательно указывать, для какого формата базы костыль — не все же здесь кодеры, тут иногда и бухи/обычные пользователи заходят.. если что.

    Reply
  13. ShootNICK

    (12)

    1. мультифильтр — обычный. поставленную задачу — решает. не нравится — напиши под себя. болтать — не мешки ворочать.

    2. еще раз: в штатном проведении мультифильтра нет , в обработке — есть. понятно ли это ?

    3. при оформлении темы формат УКАЗАН.

    зы на мерянье органами меня не разведешь 🙂 не старайся.

    Reply
  14. Ёпрст

    офф

    блин.. достало, что не посмотришь каменты, пока сообщение не отправишь

    👿

    Reply
  15. Ёпрст

    (13)

    да не переживай,всё уже написано..

    >>>СПЕЦИАЛЬНО для SQL баз.

    У меня 2005 скуль, мне ваша обработка поможет ?

    Reply
  16. ShootNICK

    (15) — не поверишь. проведет по фильтру 🙂

    заголовок темы погляди %)

    ты зачем все это пишешь, поделись ?

    я конструктива не вижу.

    Разговор ведется на отвлеченные темы и о том что ты умешь писать мультифильтры (который взят с типовой кстати).

    По теме то есть что сказать ?

    Reply
  17. Ёпрст

    тест на просмотр

    Reply
  18. Ёпрст

    (16) А чего, уже и попостить нельзя ?

    А так, надоело — выкладывают одни баяны, ни одной новой идеии, в лучшем случае -«обертка» другая и всё…

    Да хоть в этой обработки — ни описани проблемы перепроведения в скуле, ни откуда ReconnectNative взялся, ни описания хотя бы, что он делает… Нате люди добрые и пользуйтесь. А то что даже сдесь, на инфостарте такого добра полна коробка…ээх.

    Было бы внятное описание — не было бы придирок.

    Reply
  19. ShootNICK

    (18) смысла не вижу.

    поиском прошелся не нашел.

    стесняюсь спросить — читал ли ты описание кроме анонса ?

    что делает — написано, зачем написана — написано, даже как делает (про реконнект) — написано.

    поделись, зачем ты пишешь не читая о чем обработка ?

    наверное у нас разное понимание зачем нужны обработки.

    мне и моим клиентам — чтоб работало хорошо.

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

    Reply

Leave a Comment

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