0
Guerro
25.03.20
✎
13:09
|
Только начал работать с УФ.
Есть журнал документов "Склад", в модуле формы идет обработка внешнего события. Внешним событием выступает сканер ШтрихКода. У документа "Расход" есть ШтрихКод, при его сканировании в журнале "Склад", должно происходить:
1)Проверка на выдачу документа "Расход"
2)Если не выдан, то создать документ "ВыдачаТовара" на основании "расхода" с заполненными реквизитами и табличной частью. И открыть созданный документ не записывая его.
3)Если еще раз отсканировать этот же ШтрихКод, то провести документ "ВыдачаТовара" и закрыть форму.
Как это реализовано:
1)На форме журнала документов "Склад"
&НаКлиенте
Форма = ПолучитьФорму("Документ.ВыдачаТовара.Форма.ФормаДокумента");
ДанныеФормы = Форма.Объект;
Проводить = ВнешнееСобытиеНаСервере(ДокументРасход,ДанныеФормы);
&НаСервере
ПодчиненныеДокументы = ОсновныеФункции.ПолучитьСписокПодчиненныхДокументов(Рез);
Для Каждого СтрокаТЗ из ПодчиненныеДокументы цикл
Если ТипЗнч(СтрокаТЗ.Ссылка)=Тип("ДокументСсылка.ВыдачаТовара") тогда
Сообщить(""+Рез+" уже выдан!");
Возврат Ложь;
КонецЕсли;
КонецЦикла;
2)На форме журнала документов "Склад"
&НаСервере
ДанныеФормы.Контрагент = ДокументРасход.Дилер;
ДанныеФормы.ДокОснование = ДокументРасход.Ссылка;
ДанныеФормы.Склад = ДокументРасход.Склад;
ДанныеФормы.ТабличнаяЧасть1.Загрузить(ДокументРасход.ТабличнаяЧасть1.Выгрузить());
3)На форме журнала документов "Склад"
&НаКлиенте
Если Проводить Тогда
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
Сканировать=Ложь;
Форма.ОткрытьМодально();
Сканировать=Истина;
КонецЕсли;
4)Обработка внешнего события на форме ВыдачаТоваров
&НаСервере
Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
&На Клиенте
Закрыть();
________________________________________________________________________________
Проблема в том, что при проводки и закрытии "ВыдачаТовара". Обработка внешнего события формы "ВыдачаТовара", до сих пор активируется, при сканировании штрихкода и документ уже закрытый программно нельзя удалить, потому что он становится заблокирован. Как решить ситуацию, может неправильно закрываю или провожу?
P.S. Сканировать - реквизит формы журнала документов "Склад"
|
|