Ввод на основании и открытый документ

  1. 9 г. назад

    8.3 Обычные формы

    Проблема с вводом на основании если уже открыт новый документ такого же типа, который вводится на основании. Т.е ввод на основании не срабатывает, срабатыват только "ПриПовторномОткрытии". Как обойти ситуацию? Есть способы?

    Ответы: (3)
  2. кстати, в клюшках такая же байда, емнип

  3. Зачем тебе два новых документа?

  4. (0) какой такой не срабатывает? запишись сначала

    Ответы: (4)
  5. (3) так об том и речь, что без записи хотят. я так понял

  6. вобщем задача была такая:
    у продавцов постоянно открыт новый документ пустой.
    При ввооде на основнии нужно либо перезаполнять этот новый, либо открыть еще один новый документ.
    Платформа стандартно ничего не делает в случае открытого нового документа.

    что я сделал:

    1) Убрал ввод на основании
    2)Прописал в документах свой ввод на основании
    3)в обработчиках событий своего воода на основании прописал код:

    Документ:

    сли Не ЭтоНовый() Тогда
    
    		ФормаНового=Документы.ЧекККМ.ПолучитьФормуНовогоДокумента();    
    		Если ФормаНового.Открыта() Тогда
    			
    			ФормаНового.Модифицированность = ЛОЖЬ;
    			ФормаНового.Закрыть();
    			
    		КонецЕсли;
    					
    		ЧекККМНаВозврат  = Документы.ЧекККМ.СоздатьДокумент();
    		ЧекККМНаВозврат.Заполнить(ссылка);
    		ФормаДокумента = ЧекККМНаВозврат.ПолучитьФорму();
    		ФормаДокумента.Открыть();
    		ФормаДокумента.Активизировать();
    						
    	КонецЕсли;
    

    Список:

    Если ЭлементыФормы.Список.ТекущиеДанные <> Неопределено Тогда
    		
    		ФормаНового=Документы.ЧекККМ.ПолучитьФормуНовогоДокумента();    
    		Если ФормаНового.Открыта() Тогда
    			
    			ФормаНового.Модифицированность = ЛОЖЬ;
    			ФормаНового.Закрыть();
    			
    		КонецЕсли;	
    	
    		ЧекККМНаВозврат  = Документы.ЧекККМ.СоздатьДокумент();
    		ЧекККМНаВозврат.Заполнить(ЭлементыФормы.Список.ТекущиеДанные.ссылка);
    		ФормаДокумента = ЧекККМНаВозврат.ПолучитьФорму();
    		ФормаДокумента.Открыть();
    		ФормаДокумента.Активизировать();
    			
    	КонецЕсли;
    

    В событии "ПриПовторномОткрытии" нужно всякое прописать. Я прописал:

    РаботаСДиалогами.УстановитьЗаголовокФормыДокумента(Строка(ВидОперации), ЭтотОбъект, ЭтаФорма);

или зарегистрируйтесь чтобы ответить!