Имя: Пароль:
1C
1С v8
Запрет проведения документа
,
0 devochka_1c
 
22.04.12
16:49
Добрый день! подскажите, пожалуйста, что я делаю не так:
Самописная конфигурация, управляемое приложение. Устанавливаю дату запрета проведения в константе. Пишу следующий код в процедуре ОбработкаПроведения:

ДатаЗапрета = ОсновныеФункции.ЗапретИзмененияДанных();
Если ЭтотОбъект.Проведен И (ЭтотОбъект.Дата<ДатаЗапрета)
Тогда
Отказ= Истина;
КонецЕсли;

Нужно, чтобы документы с датой меньше даты запрета, если они не были проведены, проводились. А если были проведены не проводились. А у меня все документы не проводятся (как проведенные, так и непроведенные)...
1 Naumov
 
22.04.12
17:04
два раза вызывается обработчик
2 Mikhail Volkov
 
22.04.12
17:06
Может где-то есть запрет на запись всех документов с меньшей датой?
3 devochka_1c
 
22.04.12
17:08
(1)не совсем понятно
4 devochka_1c
 
22.04.12
17:09
(2)нет, запрет нигде не устанавливался
5 Mikhail Volkov
 
22.04.12
17:18
(4) т.е. без этого фрагмента все проводяться?
6 devochka_1c
 
22.04.12
17:25
(5)да, если убираю условие...система не видет проведенность документа, т.е для все документов Истина...
7 Mikhail Volkov
 
22.04.12
17:32
(6) Отказ = Истина, т.е. все документы не проводятся даже при отсутствии этого фрагмента?
8 devochka_1c
 
22.04.12
17:34
(7) если этот фрагмент убрать, то все проводится
9 unregistered
 
22.04.12
17:48
Если Ссылка.Проведен И (Дата<ДатаЗапрета) Тогда
  Отказ = Истина;
КонецЕсли;
10 devochka_1c
 
22.04.12
17:54
(9)Все равно не проводятся документы непроведенные раньше даты запрета...
11 Dethmont
 
22.04.12
18:02
Процедура обработкаПроведения()
Сообщить("Свойство документа проведение на входе в процедуру = "+Проведен);
//Ваш код
КонецПроцедуры;
12 ssh2006
 
22.04.12
18:04
(10) в модуле объекта в процедуре ПерелЗаписью

ДополнительныеСвойства.Вставить("Проведен", Проведен);

В обработке проведения

Если ДополнительныеСвойства.Проведен И (Дата<ДатаЗапрета) Тогда
  Отказ = Истина;
КонецЕсли;
13 devochka_1c
 
22.04.12
18:10
(12) Если вставляю в процедуре ПередЗаписью
ДополнительныеСвойства.Вставить("Проведен", Проведен);
то система ругается...
14 Мимохожий Однако
 
22.04.12
18:19
Матом ругается? Или всё-таки скопируешь сюда ругань?
15 ssh2006
 
22.04.12
18:20
(13) В модуле объекта ПриЗаписи?
16 ssh2006
 
22.04.12
18:20
(15) *ПередЗаписью
17 devochka_1c
 
22.04.12
18:22
(14) {Документ.РеализацияТоваров.Форма.ФормаДокумента.Форма(17,5)}: Переменная не определена (ДополнительныеСвойства)
            <<?>>ДополнительныеСвойства.Вставить("Проведен", Проведен);  (Проверка: Тонкий клиент)
{Документ.РеализацияТоваров.Форма.ФормаДокумента.Форма(17,49)}: Переменная не определена (Проведен)
            ДополнительныеСвойства.Вставить("Проведен", <<?>>Проведен);  (Проверка: Тонкий клиент)
18 ssh2006
 
22.04.12
18:22
(17) В модуле объекта нужно ПередЗаписью
19 devochka_1c
 
22.04.12
18:41
(18) Спасибо большое!
20 devochka_1c
 
22.04.12
18:41
А как добавить проверку того, что это вновь создаваемый документ?
21 unregistered
 
22.04.12
18:43
(20)
Если ЭтоНовый() Тогда
  Сообщить("Да он же новый!");
КонецЕсли;
22 devochka_1c
 
22.04.12
18:46
(21)Большое спасибо! я уже сама разобралась...
23 unregistered
 
22.04.12
18:47
(10) Тогда в обработчике перед записью документа такой код:

Если РежимЗаписи = РежимЗаписиДокумент.Проведение И Ссылка.Проведен И (Дата<ДатаЗапрета) Тогда
  Отказ = Истина;
КонецЕсли;
24 devochka_1c
 
22.04.12
19:16
(23) Cпасибо!
Закон Брукера: Даже маленькая практика стоит большой теории.