Имя: Пароль:
1C
1С v8
обработка заполнения отказ от открытия формы
0 prtx
 
26.02.16
09:08
доброе утро знатоки.

есть документ заказ и на основании этого документа можно создать только ОДИН документ отгрузки.

в модуле объекта в процедуре ОбработкаЗаполнения я проверяю это условие

пример:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПеремещениеТоваровЗаказ") Тогда
        
        ДокументСозданныйНаОсновании = ОбщегоНазначенияСервер.ДокументОснование(ДанныеЗаполнения.Ссылка, Документы.ПеремещениеТоваровОтгрузка);
        Если ДокументСозданныйНаОсновании <> Неопределено Тогда

            ОбработкаОшибкиКлиентСервер.СообщитьПользователю("ru = 'Ошибка! На основании документа """+ДанныеЗаполнения.Ссылка+""" уже создан документ """+ДокументСозданныйНаОсновании+""".';", "");
            Возврат;
        
        КонецЕсли;

с условием справляюсь нормально, если документ отгрузки уже существует то новый документ не заполняется, но проблема, в том что я не могу отказаться от открытия формы, как мне запретить открывать форму?

1с 8.3. уф
1 prtx
 
26.02.16
09:10
(0) я могу эту проверку замутить модуле формы, но это как-то не по феншую. (((
2 aleks_default
 
26.02.16
09:31
Замени команду ввода на основании своей.
3 hhhh
 
26.02.16
09:57
(0) ВызватьИсключение "ru = 'Ошибка! На основании документа """+ДанныеЗаполнения.Ссылка+""" уже создан документ """+ДокументСозданныйНаОсновании+""".';";
4 prtx
 
26.02.16
15:10
во как вариант который мне по душе это в модуле объекта создать экспортную переменную и при некоторых условиях присваивать ей значений.

пример (модуль объекта):

Перем мНеОткрыватьФорму Экспорт;

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    
    ЭтотОбъект.ДополнительныеСвойства.Вставить("НеОткрыватьФорму", Ложь);
    
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПеремещениеТоваровЗаказ") Тогда
        
        ДокументСозданныйНаОсновании = ОбщегоНазначенияСервер.ДокументОснование(ДанныеЗаполнения.Ссылка, Документы.ПеремещениеТоваровОтгрузка);
        Если ДокументСозданныйНаОсновании <> Неопределено Тогда

            ОбработкаОшибкиКлиентСервер.СообщитьПользователю("ru = 'Ошибка! На основании документа """+ДанныеЗаполнения.Ссылка+""" уже создан документ """+ДокументСозданныйНаОсновании+""".';", "");
            мНеОткрыватьФорму = Истина;
            Возврат;
        
        КонецЕсли;

Но в модуле формы я всегда ее вижу пустую, почему не сохраняется присвоенное ей Истина???
5 aleks_default
 
26.02.16
15:29
Вот извращенцы. Делов-то на 2 минуты. Пользуйтесь всеми преимуществами УФ.
6 aleks_default
 
26.02.16
15:33
В командном интерфейсе видимость команды создания на основании этого документа отключить. К документу добавить свою команду и добавить в нужное подменю в том же командном интерфейсею
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.