Имя: Пароль:
1C
1C 7.7
v7: Кстати о блокировках, пример Епрст
,
0 monsterZE
 
27.10.12
15:50
прикрутил сабж, за что Епрст отдельное спасобо! =)
блокировки регистрирую, но - перестали работать кнопки, изменяющие константы. т.е. (тож своя специфика) некоторые документы надо иметь возможност проводить не смотря на резервы товаров.
по кнопке меняем значение константы - ПродаватьЗарезервированный
проводим документ
меняем значение константы обратно.

после сабжа - значения констант (програмно) не изменяются. руками - пожалуйсто.. наставил возвратов в процедуры обработки блокировок - все работает как должно.
поменял условия на

   Тип = ТипЗначенияСтр(Объект);
   Если (Тип<>"Документ")
      и (Тип<>"Справочник")Тогда
       Возврат;
   КонецЕсли;    

так работает..
1 Злопчинский
 
27.10.12
16:21
ну ты реально монстр
2 monsterZE
 
27.10.12
16:25
(1) ..я думал мож кто прокоментирует, почему не меняются значения констант, если программа просто проходит процедуру формекса.. ПриНачалеБлокировкиОбъекта
3 КонецЦикла
 
27.10.12
16:36
(0) Было бы хорошо ссылку на Епрст или краткое описание методики
4 Холст
 
27.10.12
16:38
для нетелепатов можно подробнее ?
5 monsterZE
 
27.10.12
16:40
6 monsterZE
 
27.10.12
16:42
(4) используются процедуры формекса
ПриНачалеБлокировкиОбъекта(Объект)
и
ОбработкаБлокировкиОбъекта(Объект, Повторить, ДопТекст)
7 monsterZE
 
27.10.12
16:49
к (4) на форме журнала доков есть кнопка
     Константа.РазрешитьОтрицОстатки=Перечисление.Булево.Да;
     Константа.РазрешитьПродаватьРезерв=Перечисление.Булево.Да;
     Д=СоздатьОбъект("Документ."+СокрЛП(ТекущийДокумент.Вид()));
     Д.НайтиДокумент(ТекущийДокумент);
     Если Д.Провести()=1 Тогда
         глДобавитьВЖурналРег(ТекущийДокумент,"Документ","Проведен"); // "Открыт для редактирования" "Проведен"
     КонецЕсли;    
     Константа.РазрешитьОтрицОстатки=Перечисление.Булево.Нет;
     Константа.РазрешитьПродаватьРезерв=Перечисление.Булево.Нет;

после копипаста примера, как он есть, перестала проводить.. посмотрел - не меняются значения констант
далее все описал
8 monsterZE
 
27.10.12
16:52
при проведении проверяется значение этих констант и если они .Нет а товар в резерве - ничего не проводится
9 monsterZE
 
30.10.12
13:55
Епрст, про (2) ничего не подскажешь? =)
10 Mikeware
 
30.10.12
14:01
ничего подобного не наблюдается.
ну и шевелить такие константы вне транзакции - нехорошо...
11 Mikeware
 
30.10.12
14:01
+(10) делай тогда уж через параметры проведения....
12 Ёпрст
 
30.10.12
14:03
(9) Ща.. кину ссылку на пост
13 Ёпрст
 
30.10.12
14:05
Я как бэ.. пытался выяснить это у АЛьФа, но, безуспешно:

http://www.1cpp.ru/forum/YaBB.pl?num=1287670050
14 monsterZE
 
30.10.12
14:05
(10) угу, спс, поправлю
(12) если не сложно =)
15 Ёпрст
 
30.10.12
14:06
Короче, я забил на это и на константы :)
16 Sammo
 
30.10.12
14:08
А денюжку ему на кошелек то положил? Там реквизиты есть.
А то за спасибо сыт не будешь ;)
17 monsterZE
 
30.10.12
14:10
(15) да я бы так и не заметил.. если-б не кнопка =)
собсно основное - это элементы справочника и доки..
зы. спасибо за готовое решение!
(16) на кошелек - долго, дай номер в личку, баланс пополню =)