|
Перехватчик Событие_ОбработкаПроведения() | ☑ | ||
---|---|---|---|---|
0
varelchik
14.03.14
✎
18:40
|
Сделал перехват ОбработкиПроведения().
В догонку Соседней темы про проведеные документы. Вроде все как бы работает. Но вылезла одна весчь. В событии СозданиеКонтекста() Я устанавливаю форму текущего документа чтобы знать интерактивно проводиться документ или программно. Так вот если не трогать подбор из формы документа то все работает нормально. А вот как только в табличной части вызвать выбор Справочника, тогда в момент проведения пишет что не установлена расширяемая форма. где трабл? |
|||
1
varelchik
14.03.14
✎
18:41
|
Собственно сами функции:
Функция Событие_ОбработкаПроведения(Конт,Парам) Экспорт Если ПроведениеМОД(Конт)=1 Тогда Возврат 0; КонецЕсли; _КонтФормы=Конт; ЕстьТабличнаяЧасть=Метаданные.Документ(Конт.Вид()).РеквизитТабличнойЧасти(); Если ЕстьТабличнаяЧасть>0 Тогда Если Конт.КоличествоСтрок()=0 Тогда Сообщить("Не заполнена табличная часть!","!"); Возврат 0; КонецЕсли; КонецЕсли; стат=СпПосещения.Принадлежит(_КонтФормы.Вид()); Если стат=1 Тогда Возврат _Перехватчик.ВыполнитьОригинальноеСобытиеГК(Конт,"ОбработкаПроведения",Парам); КонецЕсли; Если Конт.Вид()="УстановкаСкидок" Тогда Возврат _Перехватчик.ВыполнитьОригинальноеСобытиеГК(Конт,"ОбработкаПроведения"); КонецЕсли; Если Конт.ДатаДок>ТекущаяДата() Тогда Сообщить("Запрещено проводить документы в будующем периоде!","!"); Возврат 0; КонецЕсли; Если глДатаЗапрета>=Конт.ДатаДок Тогда Сообщить("Запрещено проводить документы ДО : "+Строка(глДатаЗапрета),"!"); Возврат 0; КонецЕсли; Если Метаданные.Документ(Конт.Вид()).АвтоудалениеДвижений=0 Тогда Конт.ОчиститьДвижения(); КонецЕсли; //Если Конт.Вид()="ЗаявкаРемонт" Тогда // Рег=СоздатьОбъект("Регистр.ВзаиморасчетыПокупателей"); // Если Рег.ВыбратьДвиженияДокумента(Конт.ТекущийДокумент())=1 Тогда // Конт.ОчиститьДвижения(); // КонецЕсли; //КонецЕсли; Если ПустоеЗначение(рФорма)=0 Тогда Сообщить(рФорма); Сообщить(рФорма.ПолныйТипОбъекта()); Если рФорма.ТипОбъекта()="Документ" Тогда // это явно работа пользователя лИТЗ=глСервис.ПолучитьСписокАктивныхПользователей(2,); Если лИТЗ.КоличествоСтрок()>1 Тогда ИТЗ=СоздатьОбъект("ИндексированнаяТаблица"); ИТЗ.Загрузить(лИТЗ); ИТЗ.ДобавитьИндекс("инд","Режим"); Если ИТЗ.НайтиСтроку("инд",2)>0 Тогда Сообщить("Идет обмен! |Попробуйте позже."); Конт.НеПроводитьДокумент(); //Ответ=Вопрос("Идет обмен! //|Повторить попытку?","Да+Нет",50); //Если Ответ="Да" Тогда // Возврат Событие_ОбработкаПроведения(Конт,Парам); //КонецЕсли; Возврат 0; КонецЕсли; КонецЕсли; Конт.ДатаИзмененияДок = ТекущаяДата(); Конт.ТипУчета = 1; Конт.ФинУчет = 1; Если Конт.Проведен()=0 Тогда Конт.Автор=глПользователь; КонецЕсли; РегистрацияДоставки(Конт); Если глДокументыСоСтатусами.Принадлежит(Конт.Вид())=1 Тогда РаботаСоСтатусами(Конт); КонецЕсли; КонецЕсли; КонецЕсли; Возврат _Перехватчик.ВыполнитьОригинальноеСобытиеГК(Конт,"ОбработкаПроведения",Парам); КонецФункции // СобытиеГМ_ПриОбработкаПроведения |
|||
2
varelchik
14.03.14
✎
18:41
|
Процедура СобытиеГМ_СозданиеКонтекста(Конт) Экспорт
Если ПустоеЗначение(Конт)=1 Тогда Возврат; КонецЕсли; //Сообщить(Конт); _КонтФормы=Конт; рФорма=СоздатьОбъект("РасширениеФормы"); рФорма.УстановитьФорму(Конт.Форма); ОбъектФорма=СоздатьОбъект("Форма"); ОбъектФорма.УстановитьФорму(Конт.Форма); рФорма.УстановитьФорму(_КонтФормы.Форма); ПервыйПроход=0; Тип=рФорма.ТипОбъекта(); Вид=""; Если Тип="Документ" Тогда Если СпПосещения.Принадлежит(Конт.вид())=1 Тогда Перехват=СоздатьОбъект("ПерехватПосещения"); Перехват.Инициализация(Конт); Возврат; ИначеЕсли СпПослеЗаписи.Принадлежит(Конт.Вид())=1 Тогда Перехват=СоздатьОбъект("Перехват"); Перехват.Инициализация(Конт); Возврат; ИначеЕсли СпОстатки.Принадлежит(Конт.Вид())=1 Тогда Перехват=СоздатьОбъект("ПерехватОстатки"); Перехват.Инициализация(Конт); Возврат; КонецЕсли; КонецЕсли; Если (Тип="Документ") ИЛИ (Тип="Справочник") Тогда ПерехватДоп=СоздатьОбъект("Перехват"); ПерехватДоп.Инициализация(Конт); КонецЕсли; КонецПроцедуры // СобытиеГМ_СозданиеКонтекста |
|||
3
varelchik
14.03.14
✎
18:43
|
Перем рФорма;
Перем _КонтФормы; Переменные контекста класса. |
|||
4
Ksandr
14.03.14
✎
19:12
|
это 3.14здц
Это нахуа так извращаться? |
|||
5
Ksandr
14.03.14
✎
19:13
|
а, это походу 7.7, да?
|
|||
6
Мимохожий Однако
14.03.14
✎
20:24
|
Логичнее функции проверки реквизитов документов вставлять перед записью или при записи, но никак ни при проведении
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |