Вход | Регистрация
 

Ввод на основании

Ввод на основании
Я
   lamme
 
08.11.19 - 11:11
1С уф. один док вводиться на основании другого.
те штатно .. через ОбработкаЗаполнения в документе - который создается.

Ситуация
- заказ клиента - реализация.
Как можно запретить создавать вторую реализацию по заказу.
(т.е. выдавать окно = типа - реализация уже создана и пустую реализацию даже не открывать .)
Штатно - что-то типа - Отказ=истина - нет ничего ?
а то придется же ... какую то переменную заполнять в ОбработкаЗаполнения и в присозданиинасервере - отрабатывать эту переменную
 
 
   hhhh
 
1 - 08.11.19 - 11:13
(0) ВызватьИсключение
   Ненавижу 1С
 
2 - 08.11.19 - 11:16
(0) Придется конечно
   lamme
 
3 - 08.11.19 - 11:20
(1)
а как  ... не уловил )

ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

...
Если ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
ЕстьРанееСозданныеРеализации = НайтиРеал(ТипДанныхЗаполнения)
Если ЕстьРанееСозданныеРеализации тогда
иначе
ЗаполнитьДокументНаОснованииЗаказПокупателя(ДанныеЗаполнения);
конецесли;

конеесли;
   Mankubus
 
4 - 08.11.19 - 11:22
(3) ВызватьИсключение (Raise)
Синтаксис:
ВызватьИсключение <Выражение>

Описание:
При использовании данной формы оператора вызывается новое исключение. Результат вычисления выражения преобразуется к строке и данная строка используется в качестве описания исключения.
   lamme
 
5 - 08.11.19 - 11:28
(4)
я читать СП умею.
как применить - не понимаю.
   ДенисЧ
 
6 - 08.11.19 - 11:32
(5) Проверить наличие уже введённого на основании документа. Если есть - вызывать исключение.
   hhhh
 
7 - 08.11.19 - 11:34
(5) ну там где хотел написать Отказ = Истина, пишешь

ВызватьИсключение("Хрен вам, а не ввод на основании!!");
   lamme
 
8 - 08.11.19 - 11:38
пока делаю так .. может быть тупо
Если не ЕстьРанееСозданныеРеализации тогда
            ЗаполнитьДокументНаОснованииЗаказПокупателя(ДанныеЗаполнения);
        иначе
            Попытка
                ввв=ввв/0;
            исключение
                ВызватьИсключение "Уже есть созданная реализация";
            конецпопытки;    
        конецесли;
   lamme
 
9 - 08.11.19 - 11:39
работает ... )))
форма сообщения - как форма ошибки - но эффект нужный
   ДенисЧ
 
10 - 08.11.19 - 11:41
(8) Расстрелять. Зачем на ноль делить, если можно сразу исключение звать?
   lamme
 
11 - 08.11.19 - 11:42
(10)
как оно там вызовется ?
   Ёпрст
 
12 - 08.11.19 - 11:44
(11) п...ц

ВызватьИсключение
   Ёпрст
 
13 - 08.11.19 - 11:44
и попытку выкини из кода
   hhhh
 
14 - 08.11.19 - 11:45
(11) так пробуй
Если не ЕстьРанееСозданныеРеализации тогда
            ЗаполнитьДокументНаОснованииЗаказПокупателя(ДанныеЗаполнения);
        иначе
            ВызватьИсключение "Уже есть созданная реализация";
        конецесли;
   Ёпрст
 
15 - 08.11.19 - 11:45
Хотя, ВызватьИсключение - тот еще г..о код.
Проще уж завести переменную и потом в ПриОткрытии возврат и ПоказатьЗначение(переменная), в переменную пихать ссылку на документ-основание
   lamme
 
16 - 08.11.19 - 11:46
если честно - то для меня это открытие 
что ВызватьИсключение можно просто так = без попытка/исключение использовать
   lamme
 
17 - 08.11.19 - 11:47
ну да .. работает

Если не ЕстьРанееСозданныеРеализации тогда
            ЗаполнитьДокументНаОснованииЗаказПокупателя(ДанныеЗаполнения);
        иначе
            ВызватьИсключение "Уже есть созданная реализация";
        конецесли;
   lamme
 
18 - 08.11.19 - 11:48
спасибо
г*но код работает

правильнее - было бы через переменную.
и в присозданиинасервере() отрабатывать эту переменную ..
   Кодер
 
19 - 08.11.19 - 11:52
Многие конфы считают остаток от неотгруженного по счёту, может и эта так делает? Тогда в случае неполной отгрузки ты не заблокируешь продажу, но продашь остаток заказанного клиентом.

Отчёт есть в форме заказа?

И в любом случае - лучше выдать модальное предупреждение пользователю, чем мешать продажам.
   lamme
 
20 - 08.11.19 - 11:59
(19)
это проговарилось пользователю.
пяткой били в грудь и говорили - что такого быть не может. реализация создается после 100% оплаты. поэтому - сделано так.
и модальные окна на уф .. это печаль , однако

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.