Семерка ПослеЗаписи

  1. 8 г. назад

    Как грамотно организовать событие ПослеЗаписи документа на семерке? Нужно после записи нового создавать элемент справочника с сылкой на документ.

  2. в ПриЗаписи делай

  3. Если новый документа там, насколько я понял, ссылка еще пустая.

  4. Надо переопределять кнопки ОК, Записать

  5. а документ проводится? может, в проведении лучше сделать?

  6. вот, например, кусок из типовой:

    Процедура ОбработкаПроведения(ВидыДвижений)
    	                   
    	Если Договор.Выбран()=0 Тогда
    		// в этом случае подставим по умолчанию предопределенного контрагента
    		СпрКонтрагенты = СоздатьОбъект("Справочник.Контрагенты");
    		НаимКонтрагента = "Розничная продажа";
    		Если СпрКонтрагенты.НайтиПоНаименованию(НаимКонтрагента,0,1) = 0 Тогда
    			// создаем юрлицо
    			СпрЮрЛица = СоздатьОбъект("Справочник.ЮрЛица");
    			СпрЮрЛица.Новый();
    			СпрЮрЛица.Наименование     = НаимКонтрагента;
    			СпрЮрЛица.ПолнНаименование = НаимКонтрагента;
    			Попытка
    			    СпрЮрЛица.Записать();
    			Исключение   
    				глНеПроводить(Контекст,ОписаниеОшибки());Возврат;
    			КонецПопытки;         
    			
    			// создаем контрагента
    			СпрКонтрагенты.Новый();
    			СпрКонтрагенты.Наименование = НаимКонтрагента;
    			СпрКонтрагенты.ЮрФизЛицо    = СпрЮрЛица.ТекущийЭлемент();
    			Попытка
    				СпрКонтрагенты.Записать();
    			Исключение   
    				глНеПроводить(Контекст,ОписаниеОшибки());Возврат;
    			КонецПопытки;
    
    
    Ответы: (6)
  7. 27.08.2015 09:16:18 отредактировано Hans

    (5) Да, уже нашел тоже пример в какой то конфе. Сделал по аналогии:

    Если Выбран() = 0 Тогда
    		
    		СтатусВозврата(0);
    		
    		НачатьТранзакцию();
    
    		Попытка
    			Записать();
    	
    		Исключение
    			ОтменитьТранзакцию();
    			Сообщить("Запись заказа наряда: " + ОписаниеОшибки(), "!");
    			Возврат;
    	
    		КонецПопытки;
    		
    		Диспетчеризация = СоздатьОбъект("Справочник.Диспетчеризация");
    		Диспетчеризация.Новый();
    		Диспетчеризация.Заказнаряд = ТекущийДокумент();
    		Диспетчеризация.Записать(); 
    		
    		ЗафиксироватьТранзакцию();
    		
    	КонецЕсли;

    Все это засунул в ПриЗаписи

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