|   |   | 
| 
 | Как убрать это сообщение "Редактирование данных этого периода запрещено." | ☑ | ||
|---|---|---|---|---|
| 0
    
        mvgfirst 10.02.12✎ 01:32 | 
        Написал обработчик события "ПередЗаписью" для документа.
  Подписался на одноименное событие в документа РеализацияТоваровУслуг. В процессе обработки события устанавливаю Отказ = Истина. В результате получаю сообщение "Редактирование данных этого периода запрещено. Изменения не могут быть записаны..." Предположительно возникает из-за того что мой обработчик этого события срабатывает раньше чем обработчик проверяющий дату запрета. В итоге принимая на вход "Отказ = Истина" тот обработчик считает что сработала проверка по дате запрета. Теперь вот вопрос - как это убрать?! Я знаю что влиять на порядок срабатывания обработчиков "практически невозможно" (тем более что фирма 1С этого и не рекомендует). Но и вводить пользователя в заблуждение я тоже не хочу! Помогите обойти этот "глюк" | |||
| 1
    
        Господин ПЖ 10.02.12✎ 02:01 | 
        >Я знаю что влиять на порядок срабатывания обработчиков "практически невозможно"
  не обработчиков а подписок | |||
| 2
    
        mvgfirst 10.02.12✎ 02:49 | 
        (1) Убедил. Если я изменю текст своего вопроса - проблема в нем озвученная исчезнет сама собой?     | |||
| 3
    
        ZanderZ 10.02.12✎ 05:51 | 
        сделай свой обработчик "ПриЗаписи"     | |||
| 4
    
        Восточный Парень 10.02.12✎ 05:52 | 
        А если посмотреть что там на подписку повешано и привести в порядок процедуру?     | |||
| 5
    
        mvgfirst 10.02.12✎ 06:14 | 
        (3) А зачем? Как это решает проблему? Тем более в обработчике ПриЗаписи - запись уже происходит. Мне же этого не нужно. Мне нужно проверить (если документ проводят) и не проверять если просто записывают.     | |||
| 6
    
        Explorer1c 10.02.12✎ 06:18 | 
        (0)Сожги монитор     | |||
| 7
    
        mvgfirst 10.02.12✎ 06:19 | 
        (4) Это типовая конфигурация "УТП для Украины". Там таких "Обработчиков" 4 штуки не считая моего. И ни в одном из них нет анализа какое значение параметра приходит на вход обработчика. Т.е. если ранее какой-то из обработчиков уже сработал (как например мой) - все равно выполняется проверка, хоть смысла уже особо нет, и это понятно уже на входе в процедуру.
  И кстати, одна из причин почему я написал обработчик используя механизм Подписок - это невмешательство в конфигурацию на поддержке. Или, скажем так, вмешательство с минимальными последствиями для будущих обновлений. Поэтому я считаю, что лезть и править чужой обработчик - это как минимум неэтично, а как максимум нарушает принципы инкапсуляции :))) Хотя если общественность не подскажет иного более безопасного способа видимо придется так и поступить | |||
| 8
    
        mvgfirst 10.02.12✎ 06:19 | 
        (6) Ты уже нашел друзей в Астане? Если нет... то с такими шуточками точно не найдешь ;)     | |||
| 9
    
        ZanderZ 10.02.12✎ 06:21 | 
        (5) в обработчике "ПриЗаписи" так же можно отказаться от записи.
  и обработчики и подписки призаписи отрабатывают после передзаписью | |||
| 10
    
        mvgfirst 10.02.12✎ 06:22 | 
        (5) поправочка.... под фразой " Тем более в обработчике ПриЗаписи - запись уже происходит" имелось ввиду " Тем более обработчик ПриЗаписи срабатывает после записи... т.е. запись уже произведена"     | |||
| 11
    
        mvgfirst 10.02.12✎ 06:23 | 
        (9) Как в "ПриЗаписи" я буду различать "Проведение" от "Записи"?     | |||
| 12
    
        mvgfirst 10.02.12✎ 06:24 | 
        (9) Т.е. это как-то в Подписке "ПередЗаписью" в документе сохраняем флаг "Не сохранять"... а потом уже подпиской на "ПриЗаписи" выводим сообщение, и отказываемся от записи?     | |||
| 13
    
        mvgfirst 10.02.12✎ 06:26 | 
        Кстати до меня только что дошло, что я в своем то обработчике тоже не проверяю значение параметра Отказ перед выполнением проверок заполнения. 
  Полез исправляться. | |||
| 14
    
        shuhard 10.02.12✎ 08:03 | 
        (0) ключница УТП писала, в УПП всё О'К
  Процедура ПередЗаписьюДокументаПроверкаДоступностиПериода(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; ПроверкаПериодаДокумента(Источник, Отказ, РежимЗаписи); #Если НЕ ВнешнееСоединение Тогда Если Отказ Тогда Сообщить("Редактирование данных этого периода запрещено. Изменения не могут быть записаны...", СтатусСообщения.Важное); КонецЕсли; #КонецЕсли КонецПроцедуры // ПередЗаписьюДокументовПроверкаДоступностиПериода | |||
| 15
    
        mvgfirst 10.02.12✎ 12:01 | 
        (14) И не говори, вот сиди и думай потом...
  Реально в у меня в УТП 1.2.6.1 такого нет.... а ведь должно быть. | |||
| 16
    
        shuhard 10.02.12✎ 12:30 | 
        (15) а чё тут думать,
  нужно впендюрить в типовую код, написать в хотлайн и не забыть при обновлении | |||
| 17
    
        mvgfirst 10.02.12✎ 13:02 | 
        (16) я не могу писать в хотлайн... я не благлословлен Нуралиевым на такие деяния.
  Впиндюрить то я впиндюрю... но было бы здоров если кто-то из Благословленных написал ;) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |