Имя: Пароль:
1C
1С v8
Как прервать Процедуру ОбработкаЗаполнения()?
, ,
0 SherifSP
 
10.01.13
13:45
Использую команду Возврат, но документ все равно открывается, но уже пустой
1 GROOVY
 
10.01.13
13:48
Открытие никак не связано с обработкой заполнения.
2 SherifSP
 
10.01.13
13:49
(1) Я понял, а как узнать в каком месте идет открытие документа?
3 DrShad
 
10.01.13
13:49
в процедуре формы ПриОткрытии и ПередОткрытием
4 SherifSP
 
10.01.13
13:52
(3) Это понятно, но открытие идет до процедуры ОбработкаЗаполнения(), какая процедура вызывает открытия формы?
5 Reset
 
10.01.13
13:54
(4) Не удастся тебе это.
Пиши в ПередОткрытием Отказ.
6 SherifSP
 
10.01.13
13:55
(5) Так и сделал, но думал может кто знает какие уникальные методы
7 DrShad
 
10.01.13
13:55
(4) открытие никогда не идет до ОбработкиЗаполнения
8 samozvanec
 
10.01.13
13:59
зачем?
9 SherifSP
 
10.01.13
14:00
А как в процедуре формы ПередОткрытием() отловить форму с которой я вызываю ОбработкуЗаполнения?
10 DrShad
 
10.01.13
14:01
(9) ОбработкуЗаполнения вызывается не для формы, а для объекта, пилять!
11 SherifSP
 
10.01.13
14:03
(10) Ок, как в процедуре При открытии формы отследить объект основание?
12 samozvanec
 
10.01.13
14:04
(10) тебе не интересно, что он сделать хочет?)
13 DrShad
 
10.01.13
14:04
(12) а не пофигу?
14 samozvanec
 
10.01.13
14:05
(13) ну как-то просто не все сходится, нечисто тут)
я бы даже что-то посоветовал, если б хоть часть задумки понимал.
15 SherifSP
 
10.01.13
14:05
(12) В зависимости от значения реквизита формы с которой я делаю ввод на основании, запретить или нет открытие формы
16 Reset
 
10.01.13
14:06
(11) Запомнить его в обработке заполнения ;)
17 DrShad
 
10.01.13
14:08
(15) а объект таки нужно создавать и записывать или нет?
18 samozvanec
 
10.01.13
14:08
(15) у тебя в обработке заполнения есть данные источника, при открытии формы есть данные объекта, созданного на основании источника. что не получается?
19 samozvanec
 
10.01.13
14:09
(15) стоп. именно реквизита формы? не объекта?
20 DrShad
 
10.01.13
14:09
(15) и мне вот интересно где идет открытие формы? не проще там ее не открывать?
21 Reset
 
10.01.13
14:09
и имя реквизиту поди Модифицированность?
22 SherifSP
 
10.01.13
14:09
(17) Зависит от значения реквизита формы
23 Reset
 
10.01.13
14:11
(22) ответь на --> (19)
24 DrShad
 
10.01.13
14:11
(22) форма без объекта не существует
25 samozvanec
 
10.01.13
14:13
(22) поясни по делу, называя вещи своими именами, типа "на форме есть такой-то реквизит, если он то-то, хочу то-то!"!
26 SherifSP
 
10.01.13
14:14
(17) Например
Процедура ОбработкаЗаполнения(Основание)
Если Форма.ДействияФормы Тогда
               ТорговаяТочка = Форма.ТекущийЭлемент.ТекущиеДанные.Наименование;
           Иначе
               Возврат;
           КонецЕсли;
КонецПроцедуры

Такое же условие хочу поставить и на открытие формы, но надо получить значение реквизита Форма.ДействияФормы
27 samozvanec
 
10.01.13
14:14
и на (19) ответь. а то что-то понятно, а что-то - нет, профессиональные телепаты с обеда не вернулись еще
28 Шапокляк
 
10.01.13
14:15
(17) Заполняй так, чтоб в процедуре ПередОткрытием формы заполняемого документа проверять, что-то типа
Процедура ПередОткрытием()
Если ЗначениеЗаполнено(ДокументОснование) И ТипЗнч(ДокументОснование)=Тип("ДокументСсылка.МойОфигенскийДокумент") Тогда
Если Не ЗначениеЗаполнено(МойРеквизит) Тогда
Сообщить("Я передумал");
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
29 sergei123654
 
10.01.13
14:15
ВызватьИсключение "ничего не хочу(";
30 DrShad
 
10.01.13
14:15
телепатирую - у ТС есть документ из которого на основании вводится штатной кнопкой другой, так вот ТС хочет либо открывать форму либо нет
31 SherifSP
 
10.01.13
14:15
(19) Да реквизита формы
32 sergei123654
 
10.01.13
14:16
(26) а вот так?
Процедура ОбработкаЗаполнения(Основание)
Если Форма.ДействияФормы Тогда
               ТорговаяТочка = Форма.ТекущийЭлемент.ТекущиеДанные.Наименование;
           Иначе
               ВызватьИсключение "ничего не хочу(";
           КонецЕсли;
КонецПроцедуры
33 SherifSP
 
10.01.13
14:16
(30) Вот это я и пытаюсь объяснить)
34 SherifSP
 
10.01.13
14:16
(32) Сейчас проверю
35 samozvanec
 
10.01.13
14:17
(26) короче суй реквизит свой, от которого отталкиваться хочешь, в объект, и оттуда и пляши. с одной формы на другую бэзникто ты ничего не перекинешь.
36 samozvanec
 
10.01.13
14:18
(32) товаришь, какая, к чертям, форма у вас в обработке заполнения? или я чего-то не знаю?)
37 SherifSP
 
10.01.13
14:19
Все, покатит и (32) спасибо за помощь
38 Reset
 
10.01.13
14:19
Занавес.
39 sergei123654
 
10.01.13
14:20
(36) неглаженная у меня форма, да и вообще я без формы и не в форме... а вот у (26) какаято форма есть
40 DrShad
 
10.01.13
14:20
(37) акуеть! так ведь и объект не создастся, а писал что только форму не нужно открывать
41 samozvanec
 
10.01.13
14:22
ВызватьИсключение - не пятница же вроде)
42 GROOVY
 
10.01.13
14:22
Жесть.
43 SherifSP
 
10.01.13
14:22
Еще вопрос, как передать основание в процедуру ПриОткрытии()?
44 sergei123654
 
10.01.13
14:23
(41) четверг! предвестник пятницы!
Родившегося 1 января в Темиртау мальчика родители назвали Ёлкой

Необычное имя дали родившемуся 1 января 2013 года мальчику супруги из Темиртау – мама Алмагуль Райхан назвала новорожденного сына Ёлка, передает ИА Новости-Казахстан.

По ее словам, столь необычное имя для младенца было выбрано на волне новогодних празднеств. Имя мать выбрала при согласии с супругом. Молодые родители надеются, что позитивное имя принесет их сыну удачу.
http://www.zakon.kz/kazakhstan/4534663-rodivshegosja-1-janvarja-v-temirtau.html
45 SherifSP
 
10.01.13
14:24
+(43) Чтобы по типу документа наложить условие на типовый механизм который отрабатывает ПриОткрытии()
46 samozvanec
 
10.01.13
14:24
Процедура ПриОткрытии(Отказ, СтандартнаяОбработка)

Если ОбработкаЗаполнения.Основание = Неопределено Тогда
Отказ = Истина;
КонецЕсли;

КонецПроцедуры
47 sergei123654
 
10.01.13
14:24
(43) зачем?
48 SherifSP
 
10.01.13
14:25
(47) Сообщения выдается, пресчитать дату оплаты?)
49 samozvanec
 
10.01.13
14:25
(46) если у тебя предыдущее прокатило, то и это может прокатить
50 sergei123654
 
10.01.13
14:31
в модуле объекта
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

Если ХОЧУ тогда
ДокументОснование = ДанныеЗаполнения.Ссылка;    
Иначе
ВызватьИсключение "не хочу";
КонецЕсли;
   КонецПроцедуры

в модуле формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.МоеИзобретение") тогда
сообщить("Взлетело");
конецесли;

КонецПроцедуры
51 Reset
 
10.01.13
14:47
(43)

---- Модуль объекта
Перем Основание;

Процедура ОбработкаЗаполнения(Параметр)
 Основание=Параметр;
КонецПроцедуры

Процедура ПолучитьДатуОплаты()
 ВызватьИсключение Основание.ДатаОплаты;
КонецПроцедуры
-------



---- Модуль формы

Процедура ПередОткрытием()

Попытка
 ПолучитьДатуОплаты();
Исключение
 ДатаОплаты=ОписаниеОшибки();
КонецПопытки;
Сообщить("Дата оплаты="+ДатаОплаты);

КонецПроцедуры
52 Reset
 
10.01.13
14:48
Процедура ПолучитьДатуОплаты() Экспорт // забыл
53 mikecool
 
10.01.13
14:50
в ПередОткрытием есть ПараметрОснование, емнип
54 Max Street
 
10.01.13
14:56
сорри, не читал все, что выше. может подойдкт что-то вроде такого:
&насервере
процедура присозданиинасервере
если типзнч(параметры.основание) = тип("документссылка.имя") тогда
если объект.имяреквизита.пустая() тогда
отказ = истина;
возврат;
конецесли;
конецесли;
конецпроцедуры
55 SherifSP
 
10.01.13
15:09
(51) У меня Динозавр 8.1, там переменной Основание нет, получил все через ДокументОснование)
56 mikecool
 
10.01.13
15:12
(55) а (53) не проверял?
57 SherifSP
 
10.01.13
15:13
Уже сделал все
58 SherifSP
 
10.01.13
15:15
(56) Проверял он не основание а ДокументОснование называется)