|
Конфликты блокировок. | ☑ | ||
---|---|---|---|---|
0
xipypg2012
30.05.16
✎
18:12
|
Подскажите добавили в программу регистр с условиями по которыем разрешается провести реализацию или нет. Так же в модуль документа добавили проверку которая высчитывает дебиторку и сверяет с условиями из регистра сведений. После этого стали возникать конфликты блокировки, в конторе работает несколько операторов которые проводят реализации. Такое ощущение что программа не дает одновременно обращаться к данному регистру запросом. Подскажите в этом ли причина и как можно это побороть?
|
|||
1
Heckfy
30.05.16
✎
18:13
|
Тут вам архитектор нужен по ходу...
|
|||
2
xipypg2012
30.05.16
✎
18:16
|
(1) кто это и что это такое?
|
|||
3
Fragster
гуру
30.05.16
✎
18:18
|
нужен код проверки и текущий установленный режим блокировок
|
|||
4
Necessitudo
30.05.16
✎
18:18
|
(0) 8.3? Управляемые режим?
|
|||
5
Heckfy
30.05.16
✎
18:20
|
(2) Это человек, который знает, как правильно спроектировать регистр, как включить управляемый режим блокировки, как описать эту самую управляемую блокировку для этого регистра и все такое...
|
|||
6
xipypg2012
30.05.16
✎
18:20
|
режив автоматичкий , какие управляемые) конфа ут 10.3
|
|||
7
Necessitudo
30.05.16
✎
18:22
|
(6) Вот и все. Запросы в транзакции ж. Переходите на управляемый режим.
|
|||
8
xipypg2012
30.05.16
✎
18:24
|
а для чтения тоже используется блокировки? ) просто я никогда не сталкивался с управляемыми блокировками
|
|||
9
Fragster
гуру
30.05.16
✎
18:24
|
(8) если запросом, то не должно быть блокировок. а вот если объектной моделью - то там да, блокировки будут.
|
|||
10
Fragster
гуру
30.05.16
✎
18:25
|
по этому в (3) я написал про код
|
|||
11
xipypg2012
30.05.16
✎
18:25
|
идет запросом, потом результат запроса просто сравнивается с дебеторкой
|
|||
12
Necessitudo
30.05.16
✎
18:26
|
(9) В любом случае если данные не меняются, то там лишь S блокировка. ТС явно что-то не договаривает.
|
|||
13
xipypg2012
30.05.16
✎
18:26
|
все выглядит примерно так
Если не (РольДоступна("ПроведениеБезПроверкиТП") или РольДоступна("ПолныеПрава")) Тогда Если РежимЗаписи = РежимЗаписиДокумента.Проведение и не отказ Тогда НеОплаченныеДокументыТП = ПолучитьНеоплаченныеДокументыВРазрезеТП(Источник); ТЗпоТорговым = ПолучитьДопустимоеКолДокНеоплаченныхТП(Источник.Проект,Источник.Дата); //ДопустимаяСуммаПДЗ = ПолучитьСуммуПДЗ(Источник.Проект,Источник.Дата); Для каждого стр Из ТЗпоТорговым Цикл Если НеОплаченныеДокументыТП.Количество()>0 тогда Если Стр.ДатаОтсрочки < Источник.Дата Тогда Если НеОплаченныеДокументыТП[0].ПроцентПросрочкиНал > стр.ПроцентНал Тогда Отказ = Истина; Сообщить("Процент наличной просрочки от общей дебиторской задолжности свыше - " + Стр.ПроцентНал + "%."); ИначеЕсли НеОплаченныеДокументыТП[0].ПроцентПросрочкиБезНал > стр.ПроцентБезНал Тогда Отказ = Истина; Сообщить("Процент безналичной просрочки от общей дебиторской задолжности свыше - " + Стр.ПроцентБезНал + "%."); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Если Источник.ДоговорКонтрагента.КонтролироватьГлубинуНакладных и НеоплаченныеДокументыТП[0].КоличествоДокументов >Источник.ДоговорКонтрагента.ГлубинаНакладных Тогда Отказ = Истина; Сообщить("Количество неоплаченных документов: " + НеоплаченныеДокументыТП[0].КоличествоДокументов + ", допустимое Количество неоплаченных документов: " + Источник.ДоговорКонтрагента.ГлубинаНакладных); ИначеЕсли Источник.ДоговорКонтрагента.КонтролироватьГлубинуНакладныхПросроченных и НеоплаченныеДокументыТП[0].КоличествоПросроченных >Источник.ДоговорКонтрагента.ГлубинаПросроченныхНакладных Тогда Отказ = Истина; Сообщить("Количество неоплаченных документов: " + НеоплаченныеДокументыТП[0].КоличествоДокументов + ", допустимое Количество неоплаченных документов: " + Источник.ДоговорКонтрагента.ГлубинаПросроченныхНакладных); КонецЕсли; КонецЕсли; КонецЕсли; Если Источник.СуммаДокумента > 60000 тогда НеоплаченныеДокументы = ПолучитьНеоплаченныеДокументы(Источник); Согласован = СогласованостьДокумента(Источник); Если НеоплаченныеДокументы.Количество()>0 и не Согласован Тогда Отказ = Истина; Сообщить("Сумма документа свыше 60000 рублей и по контрагенту есть ПДЗ. Проведение запрещено."); ИначеЕсли НеоплаченныеДокументы.Количество()= 0 и не Согласован Тогда Отказ = Истина; Сообщить("Сумма документа свыше 60000 рублей, необходимо согласование у коммерческого директора"); //Сообщение = "Сумма документа свыше 60000 рублей, до"; КонецЕсли; КонецЕсли; |
|||
14
Господин ПЖ
30.05.16
✎
18:27
|
>а для чтения тоже используется блокировки?
смотря в каком режиме, какая 1с и какая субд. |
|||
15
xipypg2012
30.05.16
✎
18:28
|
Запрос.УстановитьПараметр("ТипЦенРозница",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000008")); - из-за этого может быть?
|
|||
16
Маратыч
30.05.16
✎
18:28
|
(12) А если база файловая? Там вообще всегда serializable же.
|
|||
17
xipypg2012
30.05.16
✎
18:28
|
субд постгресс , режим обычные формы тонкий клиент . работают все на терминальном сервере не на 1с сервере
|
|||
18
Маратыч
30.05.16
✎
18:29
|
(17) А, ну все, serializable, если постгри. Переходите на управляемые.
|
|||
19
Господин ПЖ
30.05.16
✎
18:32
|
новый постгри вроде умеет таблицы не целиком лочить
|
|||
20
Господин ПЖ
30.05.16
✎
18:32
|
>Там вообще всегда serializable же.
не надо путать теплое с мягким |
|||
21
xipypg2012
30.05.16
✎
18:50
|
так при чтение таблицы чтоли тоже лочатся ??
|
|||
22
Fragster
гуру
30.05.16
✎
18:52
|
в случае постгре и автоматического режима при чтении данных запросом блокировка устанавливается на всю таблицу в режиме read committed, т.е. чтение друг другу не мешает.
я так понимаю, что проблемный регистр читается в функции ПолучитьДопустимоеКолДокНеоплаченныхТП, но непонятно как. |
|||
23
Fragster
гуру
30.05.16
✎
18:55
|
вообще можно настроить техножурнал на сбор инфы о блокировках, на какой строке кода на каких таблицах блокируется
|
|||
24
Fragster
гуру
30.05.16
✎
18:56
|
вообще код надо чистить, например один раз получить запросом или функцией общегоназначения.получитьзначенияреквизитов все необходимые данные из Источник.ДоговорКонтрагента
|
|||
25
MrStomak
30.05.16
✎
19:00
|
(6) в УТ 10.3 блокировки управляемые.
|
|||
26
xipypg2012
30.05.16
✎
19:37
|
нету но можно в принципе дописать, записывать в структуру и работать со структурой ......но сомневаюсь что решит проблему блокировок, просто каждый оператор работает ток со своими документами, поэтому и возник вопрос что блокировка гдето на этапе чтения регистров или получения данных
|
|||
27
Fragster
гуру
31.05.16
✎
09:36
|
(26) гугли натройку техножурнала, чтобы увидеть, на чем конкретно блокировки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |