Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Процедура ПослеЗакрытия при работе с элементом справочника (число прочтений - 2768 )
Svetlana2007
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 14
Зарегистрирован: 21. Июля 2010
Процедура ПослеЗакрытия при работе с элементом справочника
31. Августа 2011 :: 12:52
Печать  
В Зик на компоненте Расчет с справочнике сотрудника привязан документ "Приказ о приеме на работу". При некоторых изменениях в справочник вношу изменения в этот документ. Но его нужно провести после закрытия формы элемента справочника.
//#########################################################
Процедура ПослеЗакрытия(конт) // из коллекции FormEx  
   // значения, которые здесь можно анализировать
     // ТипЗначенияСтр(Конт) = "ГрупповойКонтекст"
     // Фо = НеизвестныйОбъект
     // Конт.Форма = НеизвестныйОбъект
     // ТипОбъекта = "Справочник.Сотрудники.Форма"
     
     УспехПо = 0;
     Если ТипЗначенияСтр(Конт) = "ГрупповойКонтекст" Тогда
           Фо = 0;
           Попытка
                 УспехПо = 1;
                 Фо = Конт.Форма;
           Исключение
                 УспехПо = 0;
                 Сообщить(""+ОписаниеОшибки(),"!");
           КонецПопытки;
     
           Если УспехПо = 1 Тогда
                 ФормаРасш = СоздатьОбъект("РасширениеФормы");
                 ФормаРасш.УстановитьФорму(Фо);
                 ТипОбъекта  = ФормаРасш.ПолныйТипОбъекта();  
                 Если ТипОбъекта = "Справочник.Сотрудники.Форма" Тогда
                       Если Конт.ИзменилиДатуПриема= 1 Тогда
                             Если ПустоеЗначение(Конт.ПриказОприеме)=0 Тогда
                                   докиП=СоздатьОбъект("Документ.ПриказОПриемеНаРаботу");
                                   докиП.НайтиДокумент(Конт.ПриказОприеме);
                                   Если докиП.Выбран()=1 Тогда
                                         Если докиП.проведен()=1 Тогда
                                               докиП.провести();
                                               // дабы записать новую дату приема в периодическую историю
                                         КонецЕсли;
                                   иначе
                                         Предупреждение("Не удалось найти документ "+строка(Конт.ПриказОприеме)+" и изменить дату приема"+РазделительСтрок
                                         +"Откройте документ приема и непосредственно в нем измените дату приема!");
                                   КонецЕсли;
                             КонецЕсли;      
                       КонецЕсли;
                 КонецЕсли;
           КонецЕсли;
    КонецЕсли;
     
КонецПроцедуры //ПослеЗакрытия
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||

к сожалению, оказывается, что элемент справочника все еще занят и документ "Приказ о приеме" мне на это жалуется.
может я что-то не так организовала?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Процедура ПослеЗакрытия при работе с элементом справочника
Ответ #1 - 31. Августа 2011 :: 13:17
Печать  
У меня аналогичные вещи успешно работают
в стандартном методе  ПриЗакрытии()
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Процедура ПослеЗакрытия при работе с элементом справочника
Ответ #2 - 31. Августа 2011 :: 13:40
Печать  
Она периодику правит этому же элементу - там всегда запись заблокирована, по идее.
  
Наверх
 
IP записан
 
Svetlana2007
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 14
Зарегистрирован: 21. Июля 2010
Re: Процедура ПослеЗакрытия при работе с элементом справочника
Ответ #3 - 31. Августа 2011 :: 13:46
Печать  
ПриЗакрытии точно работать не будет. Я действительно хочу изменить периодические величины. До тех пор, пока форма элемента справочника открыта - из документа я периодические реквизиты изменить не могу.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Процедура ПослеЗакрытия при работе с элементом справочника
Ответ #4 - 31. Августа 2011 :: 14:36
Печать  
Svetlana2007 писал(а) 31. Августа 2011 :: 13:46:
ПриЗакрытии точно работать не будет. Я действительно хочу изменить периодические величины. До тех пор, пока форма элемента справочника открыта - из документа я периодические реквизиты изменить не могу.

Ну тогда может переодику заменить на регистр сведений ( хотя наверное это слишком много изменений в других местах)
или в После закрытие использовать ОбработкаОжидания и в
ней уже перепровести
и третий способ данные что нужно перепровести записываешь в отдельную таблицу и скажем при открытии важного журнала
или еще каком событии берешь  строку из таблицы прододишь и удаляешь строку ( и так пока есть строки).

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Процедура ПослеЗакрытия при работе с элементом справочника
Ответ #5 - 01. Сентября 2011 :: 04:45
Печать  
Svetlana2007 писал(а) 31. Августа 2011 :: 13:46:
ПриЗакрытии точно работать не будет. Я действительно хочу изменить периодические величины. До тех пор, пока форма элемента справочника открыта - из документа я периодические реквизиты изменить не могу.


Всё это можно сделать и без формекса, если что.
На вот, баянчик и еще  один баянчик
  
Наверх
 
IP записан
 
Svetlana2007
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 14
Зарегистрирован: 21. Июля 2010
Re: Процедура ПослеЗакрытия при работе с элементом справочника
Ответ #6 - 02. Сентября 2011 :: 11:24
Печать  
спасибо, баянчики очень интересны. Что-то подобное я уже делала с документами.
буду пробовать.  Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать