|
|
|
Какая процедура срабатывает при вводе на основании? | ☑ | ||
|---|---|---|---|---|
|
0
nlira
30.06.11
✎
10:57
|
Мне нужно: если документ1 - основание удовлетворяет какому то условию,тогда не создавать документ2 на основании документа1.
Сделала в модуле документа2 в процедуре: ОбработкаЗаполнения(Основание) ничего не делать,вывод предупреждения. Предупреждение выводит,но документ пустой создается автоматом и открывается. Где предотвратить это создавание и открывание пустого документа? |
|||
|
1
lxs
30.06.11
✎
10:59
|
ПередОткрытием(Отказ)
|
|||
|
2
Лефмихалыч
30.06.11
✎
11:03
|
// в модуле документа
Процедура ОбработкаЗаполнения(Основание) Если <Условие, при котором не надо создавать документ> Тогда ДополнительныеСвойства.Вставить("ОбработкаЗаполненияОтказ", Истина); ДополнительныеСвойства.Вставить("ОбработкаЗаполненияОписаниеОшибки", "Обкакалось <Условие, при котором не надо создавать документ>"); Возврат; КонецПроцедуры //в модуле формы Процедура ПередОткрытием(Отказ) Если ДополнительсныеСвойства.Свойство("ОбработкаЗаполненияОтказ", Отказ) и Отказ Тогда ОписаниеОшибки = ""; ДополнительсныеСвойства.Свойство("ОбработкаЗаполненияОписаниеОшибки", ОписаниеОшибки); Предупреждение(ОписаниеОшибки, 15, "Обкакался ввод на основании"); Возврат; |
|||
|
3
lxs
30.06.11
✎
11:04
|
(2) Какие некультурные комменты...
|
|||
|
4
nlira
30.06.11
✎
11:04
|
спасибо!!!
|
|||
|
5
Лефмихалыч
30.06.11
✎
11:04
|
кстати, вот это:
легко можно заменить на
|
|||
|
6
nlira
30.06.11
✎
11:04
|
Мне все равно,кулюторно,не кулюторно,скорее бы сделать. Спасибо!!!
|
|||
|
7
Лефмихалыч
30.06.11
✎
11:05
|
ДокументОбъект.<Имя документа>.ДополнительныеСвойства (DocumentObject.<Имя документа>.AdditionalProperties)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ДополнительныеСвойства (AdditionalProperties) Использование: Только чтение. Описание: Тип: Структура. Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события. XML-сериализация. |
|||
|
8
Ненавижу 1С
гуру
30.06.11
✎
11:05
|
(0)Предупреждение в обработке заполнения это зло
|
|||
|
9
nlira
30.06.11
✎
11:06
|
да? тогда не буду(8).
А в(8) только недоумевала что это,как будто мысли читает уже выдал |
|||
|
10
nlira
30.06.11
✎
11:06
|
в (7) то етсь
|
|||
|
11
Лефмихалыч
30.06.11
✎
11:07
|
(8) я еще встречал конфу, в которой сабж достигался при помощи
ВызватьИсключение "Обработка успешно завершена". |
|||
|
12
nlira
30.06.11
✎
11:11
|
перед открытием ставлю на ЭтоНовый? потому что создается то новыйдок
|
|||
|
13
nlira
30.06.11
✎
11:33
|
все равно открыывает!!!
|
|||
|
14
Лефмихалыч
30.06.11
✎
11:34
|
(12) не надо
(13) неправильно делаешь |
|||
|
15
73
30.06.11
✎
11:38
|
(13) Процедура ПередОткрытием событию формы назначена?
|
|||
|
16
nlira
30.06.11
✎
11:40
|
Да вот так сделала.
Если ТипЗнч(ПараметрОснование) = Тип("ДокументСсылка.ЗаказПокупателя") и не (НачалоДня(ПараметрОснование.Дата) = НачалоДня(ТекущаяДата()+24*60*60) или НачалоДня(ПараметрОснование.Дата)=НачалоДня(ТекущаяДата())) Тогда //ДополнительныеСвойства.Вставить("ОбработкаЗаполненияОтказ", ложь); //ДополнительныеСвойства.Вставить("ОбработкаЗаполненияОписаниеОшибки", "Реализация товаров не может быть сформирована, дата заказа больше текущей + 1 день"); Предупреждение("Реализация товаров не может быть сформирована, дата заказа больше текущей + 1 день"); Отказ = Истина; Возврат; КонецЕсли; Но (5) красиво,так сейчас постараюсь |
|||
|
17
nlira
30.06.11
✎
11:44
|
при создании документа Реализация на основании документа заказ покупателя сначала какая процедура срабатывает?
ОбработкаЗаполнения(Основание) в реализации или при отрытии? Просто что хочу сказать запрет сделать сделала,а если в программе бедолага прокручивает сначала обработку заполнения а потом на фиг скидывает все? |
|||
|
18
nlira
30.06.11
✎
11:48
|
как я и думала сначала заполняет потом открывает. То есть в заполнении тоже надо ставить условие и выкидывать
|
|||
|
19
73
30.06.11
✎
12:03
|
(18) Это ещё в (2) было...
|
|||
|
20
nlira
30.06.11
✎
12:15
|
и еще вопрос поставить надо на удаление документов тоже условие. Я это ставлю в событии СписокПередУдалением? Правильно так будет? Мне код не нужен,только цепь мыслей правильная.
|
|||
|
21
Лефмихалыч
30.06.11
✎
12:17
|
я ж рабочий код дал, надо было только скопипастить без ошибок...
|
|||
|
22
nlira
30.06.11
✎
12:21
|
даже не заходит перед удалением в событие,когда пытаюсь удалить
|
|||
|
23
73
30.06.11
✎
12:23
|
(22) Мож ты не удаляешь, а пометку удаления ставишь?
|
|||
|
24
nlira
30.06.11
✎
12:24
|
да пометку
|
|||
|
25
73
30.06.11
✎
12:25
|
(24) Это разные действия. И события разные...
|
|||
|
26
nlira
30.06.11
✎
12:27
|
я поняла заходит. Все. Только теперь как мне узнать в списке какая дата выбранного док на удаление?
|
|||
|
27
nlira
30.06.11
✎
12:27
|
Поле объекта не обнаружено (Дата)
Если не (Элемент.текущаяСтрока.Дата = НачалоДня(ТекущаяДата()+24*60*60) или НачалоДня(Элемент.Дата)=НачалоДня(ТекущаяДата())) Тогда |
|||
|
28
vmv
30.06.11
✎
12:30
|
(26) подписка на событие ПередЗаписью(), ПриЗаписи()
в дополнительныесвойства пишешь идентификатор списка, формы или просто "Рюшечка1". Пометка или удаление - это модификация объекта и эти обработчики срабатвают. Подписчики не завсимы от форм, но можно передать в них идентификаторы для кейс-условий вариантов поведения Все отстльные варинаты от лукавого |
|||
|
29
nlira
30.06.11
✎
12:33
|
ок!!! (28)
|
|||
|
30
73
30.06.11
✎
12:34
|
(28) Для 1го дока можно в модуле объекта прописать.
В ПередЗаписью определить пометку/снятие можно без ДопСвойств... |
|||
|
31
nlira
30.06.11
✎
12:38
|
Созадала подписку на собитя ПередПометкойНаУдаление.
А события нет ПередУстановкойПометкиУдаления чтобы выбрать,есть из удаления только событие ПередУдалением. Если событие перед удалением поставлю отработает? |
|||
|
32
nlira
30.06.11
✎
12:40
|
а (28) пишет события надо перед записью и при записи. Мне же надо перед пометкой удаления и перед удалением.
|
|||
|
33
nlira
30.06.11
✎
12:40
|
попробую как (28)
|
|||
|
34
vmv
30.06.11
✎
12:45
|
просто нужно четко понять, что "пометка" - это модификация, а "удаление" - это стирание записи из базы данных.
обработчики модфикации ПередЗаписью() ПриЗаписи(), обработчики удаления ПриУдалении(). Более того, в теле обработчика ПередЗаписью можно прописать дополнительноесвойство объекта, которое можно анализировать, когда запись(модификация) уже произошла, т.е. в ПриЗаписи(). Но и там и там можно блокировать завершение транзакций по каким-то своим соображениям. |
|||
|
35
73
30.06.11
✎
12:46
|
(32) просила цепь мыслей :
В ПередЗаписью объекта(или подписке) значение ПометкиУдаления объекта отличается от значения ПометкиУдаления хранящегося в базе. Это можно проверить: Если ПометкаУдаления <> Ссылка.ПометкаУдаления Тогда//операции с ПУ Если ПометкаУдаления Тогда //установка Иначе //снятие КонецЕсли; КонецЕсли; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |