Автор Тема: Не срабатывает управляемая блокировка БУ по ExtDimension  (Прочитано 4180 раз)

0 Пользователей и 1 Гость просматривают эту тему.

seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Доброго здравия!
Задача из Билета 2. На счете ПрибылиУбытки два оборотных субконто: Проект, Номенклатура. При проведении документа Затрат устанавливается управляемая блокировка на бухгалтерский регистр с целью заблокировать изменение по субконто Проект:

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.ПрибылиУбытки);
ЭлементБлокировки.ИсточникДанных = Проекты;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Проекты, "Проект");
Блокировка.Заблокировать();

Блокировка устанавливается (ТЖ):
35:02.791001-15981,TLOCK,5,process=rphost,p:processName=B2,t:clientID=1366,t:applicationName=1CV8C,t:computerName=SERAVKIN-PC,t:connectID=103,SessionID=175,Usr=DefUser,AppID=1CV8C,Regions=AccRg158.DIMS,Locks='AccRg158.DIMS Exclusive Account=113:8a7794de8067d40711e38e5f021cd9fc ExtDimension1=180:b39d742f68da505211e54374819ca908',WaitConnections=,Context='Форма.Записать : Документ.Затраты.ФормаОбъекта
Документ.Затраты.МодульОбъекта : 16 : Блокировка.Заблокировать();'

Однако документ РасходнаяНакладная (с движениями по БУ) по этому же проекту спокойно проводится параллельно(ставится точка остановки в блокировке):
36:09.526007-3,TLOCK,5,process=rphost,p:processName=B2,t:clientID=1370,t:applicationName=1CV8,t:computerName=SERAVKIN-PC,t:connectID=104,SessionID=177,Usr=DefUser,Regions=AccRg158.DIMS,Locks='AccRg158.DIMS Exclusive Correspond=0 Period=[T"20150801000000":+] Splitter=70 Account=113:8a7794de8067d40711e38e5f021cd9fc ExtDimension1=12:af8e001302ef902511df3fb7978637cf ExtDimension2=180:b39d742f68da505211e54374819ca908,WaitConnections=,Context=Форма.Записать : Документ.РасходнаяНакладная.Форма.ФормаДокумента

Что такое ExtDimension? Почему у ExtDimension разные номера? Почему блокировка не срабатывает?

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
seravkin, ИМХО, дело в том, что эта блокировка - на остатки, а на ПрибылиУбытки по субконто Проекты только обороты.
Файл посмотреть не смог, он просит 8.3.6, а я, видимо, как и большинство тут, сижу на учебной 8.3.5.  :D

ПС. А для чего вообще блокировать ПрибылиУбытки? Если чтобы не было движений от момента получения данных о продажах до момента завершения проведения, так они уже ни на что не повлияют, и всё равно пройдут после проведения, даже если заблокировать. Вроде как результат не меняется.
« Последнее редактирование: Август 18, 2015, 01:17:06 pm от alex1248 »


seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
ИМХО, дело в том, что эта блокировка - на остатки, а на ПрибылиУбытки по субконто Проекты только обороты.
Хм... Возможно. А оборотное субконто как-нибудь заблокировать можно?

Файл посмотреть не смог, он просит 8.3.6, а я, видимо, как и большинство тут, сижу на учебной 8.3.5.  :D
Выложил в режиме совместимости 8.3.5

ПС. А для чего вообще блокировать ПрибылиУбытки? Если чтобы не было движений от момента получения данных о продажах до момента завершения проведения, так они уже ни на что не повлияют, и всё равно пройдут после проведения, даже если заблокировать. Вроде как результат не меняется.
Ну, как бы задача учебная, тут всё должно быть идеально. А если в этот момент документ с продажами распроведут? И распределение будет вестись по несуществующему документу? Имхо, блокировать надо, т.к. если запрашиваются (хотел сказать "остатки") данные, и на их основании делается какое-то распределение, то блокировать надо, иначе результат распределения может оказаться неактуальным и перепроведение документа выдаст совершенно другой результат, что имхо не допустимо.

seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Тогда переформулирую вопрос по другому: как заблокировать оборотное субконто? Оборотный регистр тоже не блокируется?

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
... А если в этот момент документ с продажами распроведут? ...
Как раз сегодня вот здесь обсудили вопрос о том, почему нет смысла блокировать регистры при проведении приходной накладной.
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=642439
ИМХО, идентичная по сути ситуация.

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Тогда переформулирую вопрос по другому: как заблокировать оборотное субконто? Оборотный регистр тоже не блокируется?
По-моему, в "Проф. разработке", глава "Работа с данными" - "Механизм управляемых блокировок" - "Установка управляемых блокировок" как раз об этом.
Там есть и о том, как сам набор записей заблокировать (думаю, это как раз ваша ситуация).

seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
По-моему, в "Проф. разработке", глава "Работа с данными" - "Механизм управляемых блокировок" - "Установка управляемых блокировок" как раз об этом.
Там есть и о том, как сам набор записей заблокировать (думаю, это как раз ваша ситуация).
Благодарю за ответ, в этом разделе и вычитал имена полей пространства блокировок:
Имя пространства блокировкиИмя поля пространства блокировки
РегистрБухгалтерии.<имя>Период;
<имя измерения>;
<вид движения> – значение системного перечисления ВидДвиженияБухгалтерии;
Счет;
Субконто<N>;
<вид субконто>.

Блокирую счет и вид субконто (пробовал и субконто1) целиком. Блокирование набора не подходит, т.к. нужно заблокировать не конкретный набор записей, а изменение оборотов по субконто Проект.
« Последнее редактирование: Август 18, 2015, 10:26:17 pm от seravkin »

seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Как раз сегодня вот здесь обсудили вопрос о том, почему нет смысла блокировать регистры при проведении приходной накладной.
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=642439
ИМХО, идентичная по сути ситуация.
Хм... Разумное зерно в этом действительно есть. Документ Затраты должен учесть все Расходники до собственного момента времени. Новые расходники должны появляться оперативно и препятствовать им в этом смысла нет. А если кто-то хочет залезть задним числом, то после этого нужно Затраты перепровести. Значит блокировка действительно не нужна. Отлично!

Но вопрос с блокировкой уже представляет самостоятельный интерес. Допустим, не важно по какой причине, хочу заблокировать регистрацию новых оборотов по оборотному субконто. Можно это сделать или в принципе не возможно?

Vasёk

  • Новичок
  • *
  • Сообщений: 1
Хм... Разумное зерно в этом действительно есть. Документ Затраты должен учесть все Расходники до собственного момента времени. Новые расходники должны появляться оперативно и препятствовать им в этом смысла нет. А если кто-то хочет залезть задним числом, то после этого нужно Затраты перепровести. Значит блокировка действительно не нужна. Отлично!

Но вопрос с блокировкой уже представляет самостоятельный интерес. Допустим, не важно по какой причине, хочу заблокировать регистрацию новых оборотов по оборотному субконто. Можно это сделать или в принципе не возможно?
Думаю, возможно, но только если очень сильно постараться.