Цитата(Vofka @ 24.06.11, 16:29)
Поэтому я изначально и сказал про процедуру
ОбработкаЗаполнения()
А как в ОбработкеЗаполнения отказаться от создания документа? Здесь я только могу заполнить реквизит Объект.Основание.
//
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ЗадачаСсылка.ЗаявкаНаРемонт") Тогда
// Заполнение шапки
ИнвНомер = ДанныеЗаполнения.ИнвНомер;
Отдел = ДанныеЗаполнения.Подразделение;
Основание = ДанныеЗаполнения.Ссылка;
КонецЕсли;
КонецПроцедуры
Цитата(DartRomanius @ 24.06.11, 17:32)
Ага.
В данной процедуре установить реквизит основание, ну а дальше в "ПриОткрытии".
Надо попробовать ваше более сложное сравнение.
Цитата(DartRomanius @ 24.06.11, 15:46)
Сделать более сложное сравнение, что-то типа:
Вернуть подчиненный
если подчиненный = неопределено тогда ничего не делаем (или по желанию)
если подчиненный = этот документ (сравнить по ссылке) тогда типа нормально
если подчиненный = не этот документ тогда идем в отказ
Спасибо за наводку.
//
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Ключ.Пустая() Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗаявкаНаРемонт.Ссылка
|ИЗ
| Документ.ЗаявкаНаРемонт КАК ЗаявкаНаРемонт
|ГДЕ
| ЗаявкаНаРемонт.Основание = &СсылкаНаЗаявку";
Запрос.УстановитьПараметр("СсылкаНаЗаявку", Объект.Основание);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
Сообщить("Заявка уже создана!!!"+ Символы.ПС +Выборка.Ссылка + Символы.ПС + "Для просмотра кликлите" + Символы.ПС + "на ссылку заявки на форме");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
//
Просто сделал проверку: если форма открывается по кнопке СоздатьНаОсновании, значит создается новый документ, и тогда применяем проверки и отказываемся от создания, если надо.
Если же просто открываем документ для просмотра или редактирования, тогда нестандартного не происходит.
Поправьте меня, если что-то сделал не так.
Спасибо за учебу!
Причина редактирования: Выделяем код!