gifts2017

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

Опубликовал Олег (agressor) в раздел Программирование - Практика программирования

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

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

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



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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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