Как атоматически закрыть документ открытый с помощью процедуры "ОткрытьФорму" ?

Новая тема
"Всем добрый день !!!
Люди добрые, помогите пожалуйста, если это не трудно !!!  

1.Предистория:
Наша компания ведёт складской учёт в программе 1с 77 Аналит: Фармация. Бухгалтерию же ведёт
в 1С 77 Буххгалтерский учёт. Особенность в том, что есть товары со ставками 18%, 10% и без НДС.
Чтоб не мучится со 100000 номеклатурой ещё и в бухгалтерии, я использую там вссего 3 наименования:
товар 10%, товар 18% и товар без НДС. Документы прихода и отгрузги товара прегружаютя соосветственно из складской базы в бухгалтерию со всей номенклатурой. Чтоб руками не обрабатывать в бухгалтерии опять все документы, т.е для автоматизации этого процесса, в процедурах
"При открытии" документов ПоступлениеТоваров и РасходнаяНакладная дописал весчи смысл которых такой: При открытии документов он обсчитывает сначала в табличной части, сколько товара по какой ставке и сумме пришло или ушло. Затем удаляет табличную часть и создаёт новую с нужной мне номенклатурой. Сводится соответственно всё к тому что надо открыть документ и нажать кнопку ОК.

2. Суть проблемы:
Так как документов за налоговый период очень много пытаюсь автоматизировать этот процесс написав документ (обработку) смысл которого сводится к тому, что он должен выбрать к примеру документы
(непроведённые) ПоступлениеТоваров в определённом периоде, автоматически открыть их
чтоб вступили изменения описанные в пункте 1, и провести их.

Форма документа:
С даты ...... по .......
Кнопки выполнить и закрыть.

Модуль документа:

Процедура Выполнить()

Перем БИ;

Если Дата1 <= Константа.ДатаЗапретаРедактирования Тогда
Предупреждение("Нельзя обрабатывать документы с датой, более ранней, чем дата запрета редактирования документов!");
Возврат;
КонецЕсли;
Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы(Дата1,Дата2);
Пока Док.ПолучитьДокумент() = 1 Цикл

Состояние("Обработка "+Док.ДатаДок);
Если Док.Вид() = "ПоступлениеТоваров" Тогда

      Докум = Док.ТекущийДокумент();
ОткрытьФорму(Докум);

Если ОткрытьФорму(Докум) = 1 Тогда
Сообщить ("Форма открыта: " + Докум);

Форма.Закрыть();
//Вот сдесь он закрывает у меня форму документа который используется т.е. обработку,
//А НУЖНО ЧТОБ ЗАКРЫЛ И ПРОВЁЛ ДОКУМЕНТ ПОСТУПЛЕНИ ТОВАРОВ !!!!!!!!!!

//Докум.Закрыть();
//Докум.Форма.Закрыть();

  глПриПроведении(Докум);

ИначеЕсли ОткрытьФорму(Докум) = 0 Тогда
Сообщить ("Форма не открыта !!!: " + Докум);
Конецесли;

Док.Записать();

// СДЕСЬ ОН ПИШЕТ ЧТО ДОКУМЕНТ ЗАБЛОКИРОВАН т.к. ОТКРЫТ !!!!
// КАК ЕГО ЗАКРЫТЬ ????????????????????????????????

//Если Док.ПометкаУдаления() = 1 Тогда
//Иначе
// Сообщить("Проведение "+Док);
// Если Док.Провести() = 0 Тогда
// Возврат;
// КонецЕсли;
//КонецЕсли;
            КонецЕсли;
КонецЦикла;
КонецПроцедуры

//________________________________­_____________________________________________

Процеду­ра ПриОткрытии()
   Дата1 = НачалоПериодаБИ();
   Дата2 = КонецПериодаБИ();
КонецПроцедуры


КАК ЗАКРЫТЬ ДОКУМЕНТ ПОСТУПЛЕНИЕ ТОВАРОВ ОТКРЫТЫЙ С ПОМОЩЬЮ ПРОЦЕДУРЫ
"ОткрытьФорму(Текущий документ)" ????????????????????????

ПОЖАЛУЙСТА ПОМОГИТЕ !!!!!!
"
"Зачем открывать и закрывать документы???
Делайте обработку табличной части в обработке.
После Докум = Док.ТекущийДокумент();
//Создайте ТЗ для временного хранения данных
Делайте Докум.ВыбратьСтроки();
Пока Докум.ПолучитьСтроку()>0 Цикл
//Здесь обсчет табличной части и заполнение временной ТЗ необходимыми данные
КонецЦикла;
Докум.УдалитьСтроки();
//И далее заново заполнение табличной части необходимыми значениями из временной ТЗ

Приблизительно так.
А открывать, закрывать документ это через (_!_)"
Большое спасибо !!!

А вообще в принципе возможно закрыть документ из модуля друго документа,
как в этом случае ??????

С Уважением,
               Дмитрий.
"Процедура ОткрытьЗакрытьДокумент()
Док=СоздатьОбъект("Документ");
Док.Выбрать("Выберите документ","""");
ОткрДок=Док.ТекущийДокумент();
Конт="""";
ОткрытьФорму(ОткрДок,Конт);
Сообщить(СокрЛП(Конт.Вид())+" № "+СокрЛП(Конт.НомерДок)+" от " +Строка(Конт.ДатаДок));
Конт.Форма.Закрыть();
КонецПроцедуры
"
"Лучше сделать так :
открываем документ... ОткрытьФорма(...,"Параметр_Открытия_Документа")

в модуле формы документа

//...
Процедура ПриОткрытии()
//..
Если ПустоеЗначение(Форма.Парамет)=0 Тогда
  Если Форма.Параметр = "Параметр_Открытия_Документа" Тогда
      Выполнить();
      Записать();
      Провести();
      СтатусВозврата(0);
  КонецЕсли;
КонецЕсли;
КонецПроцедуры
//...
"
Это если стоит вопрос о сохранении и проведении
Читают тему
(гостей: 2)

Быстрый переход