Как провести/перепровести другие документы из модуля документа (при проведении)?

Программирование - Практика программирования

Иногда необходимо при проведении документа, перепровести связанные с текущим, другие документы. В 1С:7.7 существует ограничение на проведение документов из модуля проведения, обойти ограничение можно следующим образом:
Иногда необходимо при проведении документа, перепровести связанные с текущим, другие документы. В 1С:7.7 существует ограничение на проведение документов из модуля проведения, обойти ограничение можно следующим образом:

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

 
Процедура ОбработкаПроведения()
	Док=СоздатьОбъект("Документ.Документ2");
	Док.Новый();
	//Заполняем реквизиты...
	Док.Записать();
	ОткрытьФормуМодально(Док.ТекущийДокумент(),"ПровестиИЗакрыть",0);
КонецПроцедуры
 



Документ2, Модуль формы:

Процедура ПриОткрытии()
	Если Форма.Параметр="ПровестиИЗакрыть" Тогда
		Провести();
		Форма.Закрыть();		
	КонецЕсли;
КонецПроцедуры
 

См. также

Комментарии
1. Доржи Цыденов (support) 4469 18.07.06 07:38 Сейчас в теме
Во втором документе надо можно форму не открывать, а сразу поставить СтатусВозврата(0)
Код
Процедура ПриОткрытии()
Если Форма.Параметр="ПровестиИЗакрыть" Тогда
Провести();
СтатусВозврата(0)
КонецЕсли;
КонецПроцедуры
Показать полностью

2. Павел Чистов (GROOVY) 2272 18.07.06 17:04 Сейчас в теме
Подниму рейтинг! Для новичков очень полезно!
3. Сhe Burashka (CheBurator) 19.07.06 02:18 Сейчас в теме
Хм...
а вот из модуля дока 2 не надо док3 провести...?
где начало того окнца, которым оканчивается начало?
4. DRAGO 10.08.06 11:21 Сейчас в теме
Ну не хочет док 2 выполнять команду "Провести();" !?
5. Доржи Цыденов (support) 4469 29.08.06 22:38 Сейчас в теме
Применял, и достаточно успешно! Проверь и не будет вопросов.
6. kiruha 29.08.06 18:19 Сейчас в теме
Блокировки видимо - пустое...
Ну а если второй документ не проведется - тоже сущая безделица...
Интересно - хоть кто то это применял на живых пользователях?
7. mishau У (mishau) 11.10.07 19:29 Сейчас в теме
Столкнулся с такой проблемой:
Провожу док раньше ТА. Из него проводится другой док, способом описанным в статье. Вылезает окошко "изменить время документа или провести задним числом". Что бы ни нажимал, второй документ не проводится. Процедуру обработка проведения во втором доке даже пустой оставлял. ТО же самое :(
База на SQL. Если форму второго документа не закрывать, а нажать там "провести" вылетает с ошибкой.
8. Владимир Костецкий (astonvilla) 226 11.10.07 22:25 Сейчас в теме
9. Олег Пономаренко (O-Planet) 6681 11.10.07 22:33 Сейчас в теме
ДЯ??? Не знал про ограничение... Блин! Как же у меня в "Кафе-УСН" проводятся сразу ТРИ типовых дока из "Производство"? О_о
10. Владимир Костецкий (astonvilla) 226 11.10.07 22:37 Сейчас в теме
Ото ж, решение проблемы существует уже ну оооочень много времени.
11. Юрий (yuraer) 35 30.10.09 14:56 Сейчас в теме
А как сделать непроведенным?
12. Galytskyy Volodymyr (arithmometr) 148 20.02.10 03:24 Сейчас в теме
(11)
Док.Удалить(0);
Док.СнятьПометкуУдаления();
13. Galytskyy Volodymyr (arithmometr) 148 20.02.10 03:27 Сейчас в теме
Описанный метод успешно использую на практике.
Это из недокументированных возможностей.
А вот вопрос к 1С-гуру: на сколько это безопасно для целостности данных.
Ответьте, пожалуйста, вместо того, чтобы оскорблять начинающих программистов.
14. Артур Аюханов (artbear) 867 20.02.10 08:24 Сейчас в теме
Способ давно известный и боянистый.
тонкостей тут много, как уже упомянуто в (6)
(13) Посмотри ветку http://www.1cpp.ru/forum/YaBB.pl?num=1265375919/11#11
там как раз глюки с подобным решением обсуждаются.
15. Денис (KrakoZyabl) 77 25.05.10 10:48 Сейчас в теме
Искал решение проблемы - эта ветка помогла.. ;)
Век живи - век учись. Спасибо :)
Однозначно плюс!
16. Кристина Сергеевна (hello world) 29.09.10 09:05 Сейчас в теме
17. Роман Березовский (sten_77) 28.06.16 19:41 Сейчас в теме
Попробовал этот метод он ставит чёрную галочку, а не красную и при проведении других документов в ручную выдаёт сообщение "Существую более ранние проведенные документы ". Как программно прописать чтобы ставило сразу красную галочку. Заранее спс
18. Олег (agressor) 116 29.06.16 16:59 Сейчас в теме
Это проблема не метода, сдвинута точка актуальности.
Нужно установить ТА на последний документ в полном журнале (контекстное меню).
19. Роман Березовский (sten_77) 01.07.16 12:25 Сейчас в теме
(18) agressor, у меня документ2 последний, а предпоследний документ1 он проведен. Если войти документ2 и нажать кнопку провести галочка становится красной, как программно сделать?
не помогает Провести(3);
20. Олег (agressor) 116 02.07.16 09:41 Сейчас в теме
Попробуй установить ТА программно
УстановитьТАна(НужныйДокумент);
Оставьте свое сообщение