Имя: Пароль:
1C
1С v8
Событие ПередЗаписью
0 nbutt
 
03.12.12
05:51
Здравствуйте. Перешли на новую версию УТ, релиз 10.3.18.3. В справочние КонтактныеЛицаКонтрагентов не срабатывают процедуры ПередЗаписью, ни в модуле формы, нив модуле объекта. Форма обычная. В эти процедуры не попдаю отладчиком по точкам останова. Процедуры прикрепрены к событиям формы и объекта соответственно.
1 nbutt
 
03.12.12
05:53
Сами процедуры вот

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


Процедура ПередЗаписью(Отказ)
   // Вставить содержимое обработчика.
   Если ЭтотОбъект.ЭтоНовый() = Истина Тогда
       ФормаНового = ЭтотОбъект.ПолучитьФорму("ФормаВводаНового");
           Если НЕ ЗначениеЗаполнено(КонтактноеЛицо) Тогда
           // новое контактное лицо
           НовоеКонтактноеЛицо = Справочники.КонтактныеЛица.СоздатьЭлемент();
           НовоеКонтактноеЛицо.Фамилия                     = ФормаНового.ЭлементыФормы.Фамилия;
           НовоеКонтактноеЛицо.Имя                         = ФормаНового.ЭлементыФормы.Имя;
           НовоеКонтактноеЛицо.Отчество                    = ФормаНового.ЭлементыФормы.Отчество;
           НовоеКонтактноеЛицо.Наименование                = ФормаНового.ЭлементыФормы.Фамилия + " " +
                           ФормаНового.ЭлементыФормы.Имя + " " + ФормаНового.ЭлементыФормы.Отчество;
           НовоеКонтактноеЛицо.ДатаРождения                = ФормаНового.ЭлементыФормы.ДатаРождения;
           НовоеКонтактноеЛицо.НапоминатьОДнеРождения      = ФормаНового.ЭлементыФормы.НапоминатьОДнеРождения;
           НовоеКонтактноеЛицо.КоличествоДнейДоНапоминания = ФормаНового.ЭлементыФормы.КоличествоДнейДоНапоминания;
           НовоеКонтактноеЛицо.Пол                         = ФормаНового.ЭлементыФормы.Пол;
           
           Попытка
               НовоеКонтактноеЛицо.Записать();
           Исключение
               Отказ = Истина;
               Сообщить(ОписаниеОшибки());
               Возврат;
           КонецПопытки;
           
           КонтактноеЛицо = НовоеКонтактноеЛицо.Ссылка;
       КонецЕсли;
       
       Наименование = КонтактноеЛицо;
   КонецЕсли;
       
КонецПроцедуры
2 uraskin
 
03.12.12
06:17
проверьте привязаны ли они к самой форме.в свойствах формы должна быть ссылка на это событие
3 kosts
 
03.12.12
06:20
(0) Попробовать очистить кэш.
4 nbutt
 
03.12.12
06:23
(2) да, процедура в форме привязана к соответствующему событию. Кэш попробую сейчас.
5 nbutt
 
03.12.12
06:30
(3) к сожалению, очистка кэша тоже не помогла.
6 Cube
 
03.12.12
06:31
А отладчик-то подключен к пользовательскому сеансу?)
7 nbutt
 
03.12.12
06:33
(6) да, подключен)
8 vitek89
 
03.12.12
06:50
А если сообщить("что-нибудь") вписать, то сообщение вылазит?)
9 kosts
 
03.12.12
06:55
Сравни объедини этот справочник с типовой.

Попробуй сгенерировать эти процедуры заново, что бы автоматически вставились.
10 SeraFim
 
03.12.12
06:56
База файловая?)
11 nbutt
 
03.12.12
06:57
(9) в модуле формы не вылазит, это пробовал. в модуле объекта попробовал, аналогично ничего)
12 playmaker
 
03.12.12
06:59
И все-таки - "КонтактныеЛица" или "КонтактныеЛицаКонтрагентов"?
13 nbutt
 
03.12.12
07:02
(12) КонтактныеЛицаКонтрагентов. При его заполнении создается объект КонтактноеЛицо и используется уже в справочнике КонактныеЛицаКонтрагентов.
14 playmaker
 
03.12.12
07:02
(13) Ага, уже дошло
15 nbutt
 
03.12.12
08:09
Нашел косяк. Проверка на заполненность, как оказалось, проводится перед обработкой события ПередЗаписью. А наименование как раз пустое и в обработке события и заполняется. Всем спасибо за помощь, если что:)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс