Такая проблема нужно если ДанныеЗаполнения.ДокЦенообразование = Null, вводить документ на основании, иначе просто сообщение. А у меня получается так что и сообщение выдается и пустой документ ценообразование формируется. А надо что-то подобие выход из процедуры, т.е. что-бы документ на основании не вводился, даже пустой.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПриходнаяНакладная") Тогда
Если ДанныеЗаполнения.ДокЦенообразование = Null тогда
ДокументОснование = ДанныеЗаполнения.Ссылка;
Склад = ДанныеЗаполнения.Склад;
Для Каждого ТекСтрокаНоменклатура Из ДанныеЗаполнения.Номенклатура Цикл
НоваяСтрока = Номенклатура.Добавить();
НоваяСтрока.ЕдиницаИзмерения = ТекСтрокаНоменклатура.ЕдиницаИзмерения;
НоваяСтрока.Наименование = ТекСтрокаНоменклатура.Наименование;
НоваяСтрока.ЦенаЗакупки = ТекСтрокаНоменклатура.ЦенаЗакупки;
КонецЦикла;
Иначе
Сообщить ("Облом !!!");
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
тут возвратом не обойдешься...
всяко откроет пустой док.
обходится экспортной переменной в модуле объекта...
в твоей обработкезаполнения устанавливаешь ее в истину
а в передоткрытием() проверяешь эту переменую, если истина..то отказ..
Для передачи данных между обработчиками придумано свойство ДополнительныеСвойства
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший