Может я и повторюсь, но не выходит сделать следующее: в процедуре ОбработкаПроведения() документа реализация товаров и услуг, сваял процедуру, которая создает документ Оприходование товаров, если есть нехватка на складе.
код что то типо такой
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
//... стандартный код процедуры
СоздатьПоступление();
КонецПроцедуры // ОбработкаПроведения()
//моя процедура
Процедура СоздатьПоступление()Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
""; // текст запроса пропускаю, думаю это неважно, зачем захламлять...
Если Запрос.Выполнить().Пустой()Тогда
Возврат;
КонецЕсли;
ВыборкаЗапроса = Запрос.Выполнить().Выбрать();
ДокПриход = Документы.ОприходованиеТоваров.СоздатьДокумент();
ФормаПрихода = ДокПриход.ПолучитьФорму();
ФормаПрихода.Открыть();
ДокПриход.Товары.Очистить();
Пока ВыборкаЗапроса.Следующий()Цикл
НоваяСтрока = ДокПриход.Товары.Добавить();
НоваяСтрока.Номенклатура = ВыборкаЗапроса.Товар;
НоваяСтрока.Количество = -ВыборкаЗапроса.Количество;
// Выполнить общие действия для всех документов при изменении номенклатуры.
ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(НоваяСтрока, ДокПриход);
// Заполняем по типу цен
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(НоваяСтрока, ДокПриход, ДокПриход.ПолучитьВалютуРегламентированногоУчета(), ДокПриход.ПолучитьВалютуУпрУчета());
// Рассчитываем реквизиты табличной части.
ОбработкаТабличныхЧастей.ЗаполнитьПроцентРозничнойНаценкиТабЧасти(НоваяСтрока, ДокПриход);
ОбработкаТабличныхЧастей.РассчитатьРозничнуюЦенуТабЧасти(НоваяСтрока, ДокПриход, ДокПриход.ПолучитьВалютуРегламентированногоУчета());
НоваяСтрока.Качество = Справочники.Качество.Новый;
// Рассчитать реквизиты табличной части.
ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(НоваяСтрока, ДокПриход);
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(НоваяСтрока, ДокПриход);
НоваяСтрока.СуммаРегл = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(НоваяСтрока.Сумма, ДокПриход.ПолучитьВалютуУпрУчета(),
ДокПриход.ПолучитьВалютуРегламентированногоУчета(), ДокПриход.ПолучитьКурсУпрУчета(), 1, ДокПриход.ПолучитьКратностьУпрУчета(), 1);
КонецЦикла;
КонецПроцедуры
как бы все красиво работает, открывается форма оприходования, заполняется недостающим товаром, но... при проведении ругается
{ОбщийМодуль.РаботаСДиалогами(1164)}: Ошибка при вызове метода контекста (ЭтоНовый): Документ не выбран
Если ДокументОбъект.ЭтоНовый() Тогда
по причине:
Документ не выбран
И не только при проведении... вобщем в отладчике в форме документа (например при изменении склада) смотрю ЭтотОбъект - значение пустое... хотя ЭтотОбъект - тип документобъект, хранит все реквизиты документа, все вроде есть...
есть подозрение на транзакции, возможно не стоит создавать док в процедуре ОбработкаПроведения()