Кто и как решал проблему с блокировками в 1С? #94575


#0 by holpro
Кто и как решал проблему с блокировками в 1С?Интересуют мнения, подходы, средства.
#2 by holpro
Очень остроумно. Все, что там есть я уже читал.
#3 by МуМу
Ой, как я только эту проблему не решал:) А вообщем то действительно , яндекс рулит.
#4 by holpro
Яндекс то рулит, но ни одного реального решения, кроме как от софтпоинта я там не нашел. Да и то ихнее решенее в реале не видел.Просто проблема у нас такая стала. Вот и смотрю по ней материал.
#5 by mes
4 - просто надо заплатить денег тем кто умеет это делать
#7 by Lexusss
Есть еще решение от IBM. 32-х процессорный сервер, 128 Гб ОЗУ.
#8 by Дяпти
А можно стать Вашим франчом?
#9 by Матрейя
6. Но при каждой реорганизации конфигурации нужно ведь все начинать заново?
#10 by МуМу
То 8.Это наверное по мылу лучше обсуждать.:) К тому же аська моя у тебя есть.Вообщем то заметил что проблема блокировок в 50-и процентов случаев обусловлена действительно большими объемами данных а вот в 50-и остальных случаев кривостью конфигураций а также древностью серверов.
#11 by holpro
Дело не в деньгах. Если решение рабочее, то мы готовы за него платить. По софтпоинту - мы находимся в Новосибирске, они в Москве, и говорят, что презентацию могут провести только в Москве...А мы не хотим покупать неизвестно что. Для начала нужно увидеть и пощупать это решение собственными руками.
#12 by Дяпти
Да енто я так пошутил неуклюже :-) Хотя проблема ента мне очччень интересна, а вот заниматься времени нет.
#13 by МуМу
То 9. Нет, не надо. Система автоматически поддерживает свое актуальное состояние. А вот при изменении конфигурации нужно придерживатся некоторых несложных правил разработки. (они составленны в виде инструкций) Как правило это нужно учитывать только при добавлени новых объектов конфигурации(как правило новых документов).
#14 by smaharbA
если время когда проведется док не кретично, можно не проводить/записывать его, а сохранять в текст, проверять на возможность пров/зап в обработке ожидания (только ее придется поправить) когда свободно от блокировок тогда и проводить/записыватьЭто чтойто вроде стека получится
#15 by holpro
кретично
#17 by Темыч
ToyPaul ;
#19 by holpro
Такой вариант устраивает. Как с Вами связаться? Аськи нет :) Корпоративная политика такая :)
#21 by Vacony
Нужно проблему решать поэтапно. Для начала нужно поставить точки над тем. с чем боремся - Блокировки. Шаг 2 - откуда они берутся ? (какие действия).
#22 by holpro
Кого спросить?
#27 by Puh
Проблему блокировок можно решить за счет предварительного расчета движений и проводок документов. Хороший пример: документ "Начисление амортизации" у нас проводится 15-20 минут, проведение с предварительным расчетом, позволяет уменьшить блокировку таблиц до 1 мин.PS: способ конечно не нов, но вполне применим.
#28 by ANik
Можно подробнее?
#29 by Puh
Есть внешний отчет-расчет проводок и движений регистров. В документе, при нажатии на кнопку "Провести" вызывается этот отчет, который расчитывает проводки и движения и пихает их в глобальную переменную. Затем вызывается обработка проведения (только в этот момент происходит блокировка), которая только формирует проводки и движения (без расчета) на основании данных в глобальной переменной.
#30 by МуМу
То 27,28.А также я видел уже не раз много примеров "кривой" реализации снятия проблемы блокировок. Пример приводимый в 27 очень показателен - однозначно череват проблемами грязного чтения.Не верите? - Запустите одновременно предварительный расчет Начисление амортизации и вместе с ним какой нибудь документ по изменяющий данные амотризации. - Будут несогласованные данные. Хотя конечно такие вопросы можно решать регламентно но это очень не надежно.
#31 by ANik
Спасибо за консультацию. Как и ожидалось - чудес не бывает.
#32 by Puh
Я привел только направление, куда можно копать. Естественно грязное чтение при проведении с предварительным расчетом нужно блокировать. Это сделать можно, допустим перед запуском расчета проверять наличие блокировок на данные нужной предметной области. Если таких блокировок нет, то установить блокировку и выполнять расчет. Наличие блокировки не позволит провести во время расчета другой документ, изменяющий данные, использующиеся в расчете. Блокировки можно организовать на справочнике. В него писать данные о блокируемой предметной области и периоде. Чудес действительно не бывает. Всегда это чья-то работа.
#33 by Носорог
А в Украине (г. Киев) возможно получение демки. Меня интересуют ваши разработки, но покупать "кота в мешке" не хотелось бы.
#35 by МуМу
То 32.Согласен но тогда мы приходим к другому вопросу о самом механизме блокировок без привязке к бизнес логике.1) В 29 не прозвучало слово транзакция - это принципиально2) Ресурсы на обслуживание блокировок должны быть минимальны - через справочники это будет не эффективно а также ну предположим что будет если такакя обработка вывалится на полупути и останутся висеть блокировки-справочники - никто не смодет выполнять по этим областям никаких действий пока администратор вручную не снимет(это опять таки к вопросу транзакций)По этому надо применять максимально эффективный для SQL механизм блокировок и в зависимости от специфики БД специальный оптимизированный протокол.
#36 by toypaul
#37 by Puh
1) Не прозвучало.. а для чего?2) Почему через справочники будет не эффективно?Для установки блокировки нужно сделать несколько записей в справочник блокировок (в зависимости от количества блокируемых областей), это много времени не займет. На счет того, что если в момент проведения пользователь отвалится и заблокирует работу других, то есть хорошее средство, позволяющее отслеживать такие ситуации: при попытке провести документ проверяется наличие блокировок, если они есть, то проверяется наличие пользователя в системе (по идентифицирующему пользователю объекту). Если его нет, то блокировки снимает, тот кто хочет провести документ (ес..но автоматически). Идентифицирующий объект - это например элемент спр. "Пользователи". При входе в программу, каждый ставит на него блокировку и если вдруг вылетел, то блокировка автоматически снимется.
#38 by toypaul
забыл добавить - дешево и не менне качественно. плюс есть инструкция как сделать самим.
#39 by toypaul
2 Носорог. Наши разработки можно покупать на Украине. см. -
#40 by smaharbA
вполне согласен с , можно еще добавить построчное проведение (тем же способом), но тогда конечно будет сАвсем грязное чтение, но мне помнится вроде на софтпоинте тоже такой метод предложен.Другие методы либо малоэффективны либо дороги(у меня один вид доков до способа проводился аж по 3 часа, сейчас блокирует максимум на 10 минут, благо этих доков не много, но зато в самый активный период работы других ;
#41 by МуМу
То 38. Купить что ли, проверить;) Там ньюансов мнооого. Это я к чему - дешево хорошо не бывает. А если бывает то редко.То 37. Как это для чего транзакии!!!??? Транзакции и блокировки вещи не отъемлимые! К сожалению не многие это понимают отсюда некоторое непониманиею.По поводу второго пункта то это уж извините совсем несерьезно. В классических книгах описывают работу менеджера обработки транзакций и блокировок. Поверьте это вообщем то технологии отработанные годами. А вы предлагаете свой менеджер блокировок реализовать да еще на таком механизме. Проверять пользователя по процессу - ну это вообще не выдерживает критики.- select count(*) from sysprocesses where @@spid= @curspid не лучший вариант поверьте.Кроме этого как вы видите запись предметных областей в справочник? Если вы предпологаете писать в одну запись - это опять таки заблуждение.Попробуйте в SQL сделать апдейт по одной и той же записи таблицы -вы с удивлением обнаружете что SQL этого в рамках двух траназакций сделать не позволяет. Он накладывает свою блокировку.
#42 by Puh
На счет транзакций не было контекста и не было вопроса, поэтому спросил.На счет классических книг и т.д верю охотно. На счет критики: ее не увидел, возможно есть доводы, которые не были озвучены. Возможно данная схема не будет работать на очень больших базах и с очень большим количеством пользователей, но нас она пока устраивает (пусть она и не сделана по канонам SQL, а всего лишь стандартными средствами 1С). Привел ее только потому, что автор топика искал что-нибудь. Может быть его она устроит.На счет записи в справочник вопрос не понял.
#43 by МуМу
То 42. Утверждаю что если вы в транзакции будете писать в один и тот же эллемнт справочника значения предметных областей то вы параллельно эти две транзакции не проведете.
#44 by Puh
Я не буду писать одновременно даже если бы захотел, это не получится, т.к. есть блокировка таблицы. Да и не надо писать все значения в один элемент, можно в разные.ЗЫ: Мне кажется разговор зашел в тупик. Не понимаю смысл вашей критики. Если считаете, что Ваша система блокировок лучше нашей, то я не буду с этим спорить: флаг в руки и в путь!Как известно, некоторые задачи имеют несколько решений, так что предлагаю существовать параллельно :)
#45 by toypaul
не ожидал сразу столько заказов. народ - у нас очередь. понятно что всем срочно, но...есть же еще и софтпоинт!
#46 by ANik
Я тут стоял - помните? За мной еще лысый в очках занимал. Эй, не лезть не в очередь.
#47 by МуМу
У софтпоинта и своих заказов хватает,чужие не нужны :) ...
#48 by toypaul
покажите вашу руку - что-то плохо ваш номерок видать...стерся демпинг!
#49 by Неспец
Господин, Владимир! :) Вы обещали к 21 марта, потом к 30 марта, потом 10 апреля статью про подключение 1С к Юкону!!! И где? :)
#50 by МуМу
То 49. Будет демонстрация на семинаре. Дабы не уменьшать интерес к этой и другим проблеммам статью временно решил придержать. Извините что ввел в заблуждение, в принципе вам если будут интересовать конкретные вопросы - я отвечу по мылу.
#51 by Неспец
serg_winder (dog) mail (dot) ruмне бы список и тексты изменённых для подключения сист. процедур.Спасибо
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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