"Всем добрый день !!!<br>Люди добрые, помогите пожалуйста, если это не трудно !!! <br><br>1.Предистория:<br>Наша компания ведёт складской учёт в программе 1с 77 Аналит: Фармация. Бухгалтерию же ведёт<br>в 1С 77 Буххгалтерский учёт. Особенность в том, что есть товары со ставками 18%, 10% и без НДС.<br>Чтоб не мучится со 100000 номеклатурой ещё и в бухгалтерии, я использую там вссего 3 наименования:<br>товар 10%, товар 18% и товар без НДС. Документы прихода и отгрузги товара прегружаютя соосветственно из складской базы в бухгалтерию со всей номенклатурой. Чтоб руками не обрабатывать в бухгалтерии опять все документы, т.е для автоматизации этого процесса, в процедурах<br>"При открытии" документов ПоступлениеТоваров и РасходнаяНакладная дописал весчи смысл которых такой: При открытии документов он обсчитывает сначала в табличной части, сколько товара по какой ставке и сумме пришло или ушло. Затем удаляет табличную часть и создаёт новую с нужной мне номенклатурой. Сводится соответственно всё к тому что надо открыть документ и нажать кнопку ОК.<br><br>2. Суть проблемы:<br>Так как документов за налоговый период очень много пытаюсь автоматизировать этот процесс написав документ (обработку) смысл которого сводится к тому, что он должен выбрать к примеру документы<br>(непроведённые) ПоступлениеТоваров в определённом периоде, автоматически открыть их<br>чтоб вступили изменения описанные в пункте 1, и провести их.<br><br>Форма документа:<br>С даты ...... по .......<br>Кнопки выполнить и закрыть.<br><br>Модуль документа:<br><br>Процедура Выполнить()<br><br> Перем БИ;<br><br> Если Дата1 <= Константа.ДатаЗапретаРедактирования Тогда<br> Предупреждение("Нельзя обрабатывать документы с датой, более ранней, чем дата запрета редактирования документов!");<br> Возврат;<br> КонецЕсли;<br> Док = СоздатьОбъект("Документ");<br> Док.ВыбратьДокументы(Дата1,Дата2);<br> Пока Док.ПолучитьДокумент() = 1 Цикл<br><br> Состояние("Обработка "+Док.ДатаДок);<br> Если Док.Вид() = "ПоступлениеТоваров" Тогда<br><br> Докум = Док.ТекущийДокумент();<br> ОткрытьФорму(Докум);<br><br> Если ОткрытьФорму(Докум) = 1 Тогда<br> Сообщить ("Форма открыта: " + Докум);<br><br> Форма.Закрыть();<br>//Вот сдесь он закрывает у меня форму документа который используется т.е. обработку,<br>//А НУЖНО ЧТОБ ЗАКРЫЛ И ПРОВЁЛ ДОКУМЕНТ ПОСТУПЛЕНИ ТОВАРОВ !!!!!!!!!!<br><br> //Докум.Закрыть();<br> //Докум.Форма.Закрыть();<br><br> глПриПроведении(Докум);<br><br> ИначеЕсли ОткрытьФорму(Докум) = 0 Тогда<br> Сообщить ("Форма не открыта !!!: " + Докум);<br> Конецесли;<br><br> Док.Записать();<br><br>// СДЕСЬ ОН ПИШЕТ ЧТО ДОКУМЕНТ ЗАБЛОКИРОВАН т.к. ОТКРЫТ !!!!<br>// КАК ЕГО ЗАКРЫТЬ ????????????????????????????????<br><br> //Если Док.ПометкаУдаления() = 1 Тогда<br> //Иначе<br> // Сообщить("Проведение "+Док);<br> // Если Док.Провести() = 0 Тогда<br> // Возврат;<br> // КонецЕсли;<br> //КонецЕсли;<br> КонецЕсли;<br> КонецЦикла;<br>КонецПроцедуры<br><br>//________________________________