Имя: Пароль:
1C
1С v8
Запретить ввод на основании Документа
0 zhuk125
 
31.03.16
09:21
Добрый день. Есть два документа, ЗаказПокупателя и ЗаказПоставщику, если в Заказе покупателя стоит статус новый или Сформирован, запрещаю создание док. на основании Заказ покупателя.
Обычное приложение, "Упп для Украины". Вопрос, как сделать тоже самое только в Управляемом приложении, где разместить код? как переписать примерно понимаю

//    запрет к созданию каких-либо документов,  на основании заказа, пока не будет состояние "Утвержден
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда    
    а = Перечисления.СостоянияДокументов.Новый;
    в =  Перечисления.СостоянияДокументов.Сформировано;
    Если Основание.Состояние = а Или Основание.Состояние = в Тогда
       ВызватьИсключение "Нельзя создать Документ на основании, пока он в состоянии Новый или Сформирован";
    КонецЕсли;
КонецЕсли;//Конец Запрета
1 lamme
 
31.03.16
09:22
в модуле документа
в процедуре Процедура ОбработкаЗаполнения(Основание)
2 zhuk125
 
31.03.16
09:25
(1) этот код и так прописан в модуле Документа в Процедуре  ОбработкаЗаполнения(Основание) но он работает только в обычном приложении в Управляемом ничего не происходит (
3 Рэйв
 
31.03.16
09:34
Как вариант.

В подчиненных документах проверяй если это новый и у основания стоит статус Сформирован, то Отказ=Истина
4 Рэйв
 
31.03.16
09:38
*ПередЗаписью
5 Ёпрст
 
31.03.16
09:45
(0)
тупо запиши чего-нибудь в ОбработкаЗаполнения в какой-либо реквизит шапки, в ПриОткрытии проверяй этот реквизит, ежели заполнен тем, чем надо, Отказ = истина.
Усё.
6 Ёпрст
 
31.03.16
09:46
Можешь, и отдельный реквизит типа булева слепить, жалко, что ле..
7 hhhh
 
31.03.16
09:48
(2) посмотри отладчиком. Должен это код работать в уф.
8 mehfk
 
31.03.16
09:58
(0) В обработке заполнения нужные проверки + вызвать исключение, если проверки не прошли.
9 mehfk
 
31.03.16
09:59
(8) + Тьфу, не прочитал код. Будет работать и в УФ.
10 mehfk
 
31.03.16
10:05
Вот примерно так перепиши

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Документ1") Или
        ТипЗнч(ДанныеЗаполнения) = Тип("ДокументОбъект.Документ2") Тогда
        ВызватьИсключение "Нельзя!";
    КонецЕсли;
КонецПроцедуры
11 zhuk125
 
31.03.16
10:21
(10) Спасибо все работает)
12 Serg_1960
 
31.03.16
10:36
(7) Обработчик всегда вызывается, кроме создания нового документа копированием существующего. А вот код может быть нерабочим :(