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

18.07.06

Разработка - Универсальные функции

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

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

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



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

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

См. также

Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"

Универсальные функции Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    657    9    user706545_kseg1971    0    

4

1С 7.7 и новый 1С:Контрагент

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    1820    zhenyat    7    

6

Печать таблицы значений в 1С 7.7 при отладке

Универсальные функции Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    4399    Zoltan_Black    11    

2

Установка принтера по умолчанию для 1С 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13286    4    alsen    3    

4

Формирование строки json в 1С: 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10094    malovandrey    2    

18

Как создать индикатор в 1С:Предприятии 7.7

Универсальные функции Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18672    2    HAMMER_59    6    

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

2. GROOVY 2505 18.07.06 17:04 Сейчас в теме
Подниму рейтинг! Для новичков очень полезно!
3. CheBurator 3119 19.07.06 02:18 Сейчас в теме
Хм...
а вот из модуля дока 2 не надо док3 провести...?
где начало того окнца, которым оканчивается начало?
4. 10.08.06 11:21 Сейчас в теме
Ну не хочет док 2 выполнять команду "Провести();" !?
5. support 4484 29.08.06 22:38 Сейчас в теме
Применял, и достаточно успешно! Проверь и не будет вопросов.
6. 29.08.06 18:19 Сейчас в теме
Блокировки видимо - пустое...
Ну а если второй документ не проведется - тоже сущая безделица...
Интересно - хоть кто то это применял на живых пользователях?
14. artbear 1448 20.02.10 08:24 Сейчас в теме
Способ давно известный и боянистый.
тонкостей тут много, как уже упомянуто в (6)
(13) Посмотри ветку http://www.1cpp.ru/forum/YaBB.pl?num=1265375919/11#11
там как раз глюки с подобным решением обсуждаются.
7. mishau 11.10.07 19:29 Сейчас в теме
Столкнулся с такой проблемой:
Провожу док раньше ТА. Из него проводится другой док, способом описанным в статье. Вылезает окошко "изменить время документа или провести задним числом". Что бы ни нажимал, второй документ не проводится. Процедуру обработка проведения во втором доке даже пустой оставлял. ТО же самое :(
База на SQL. Если форму второго документа не закрывать, а нажать там "провести" вылетает с ошибкой.
8. astonvilla 234 11.10.07 22:25 Сейчас в теме
9. O-Planet 6431 11.10.07 22:33 Сейчас в теме
ДЯ??? Не знал про ограничение... Блин! Как же у меня в "Кафе-УСН" проводятся сразу ТРИ типовых дока из "Производство"? О_о
10. astonvilla 234 11.10.07 22:37 Сейчас в теме
Ото ж, решение проблемы существует уже ну оооочень много времени.
11. yuraer 42 30.10.09 14:56 Сейчас в теме
А как сделать непроведенным?
12. arithmometr 152 20.02.10 03:24 Сейчас в теме
(11)
Док.Удалить(0);
Док.СнятьПометкуУдаления();
13. arithmometr 152 20.02.10 03:27 Сейчас в теме
Описанный метод успешно использую на практике.
Это из недокументированных возможностей.
А вот вопрос к 1С-гуру: на сколько это безопасно для целостности данных.
Ответьте, пожалуйста, вместо того, чтобы оскорблять начинающих программистов.
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 123 29.06.16 16:59 Сейчас в теме
Это проблема не метода, сдвинута точка актуальности.
Нужно установить ТА на последний документ в полном журнале (контекстное меню).
19. sten_77 01.07.16 12:25 Сейчас в теме
(18) у меня документ2 последний, а предпоследний документ1 он проведен. Если войти документ2 и нажать кнопку провести галочка становится красной, как программно сделать?
не помогает Провести(3);
20. agressor 123 02.07.16 09:41 Сейчас в теме
Попробуй установить ТА программно
УстановитьТАна(НужныйДокумент);
21. gamletspb 100 04.04.18 16:29 Сейчас в теме
Все бы хорошо, но если в процессе проведения вложенный документ не проводится, выводится соответствующее предупреждение, кое висит пока пользователь не ткнет кнопку ОК. И все бы ничего, но пока он этого не сделает транзакция проведения первичного документа так же висит не завершенная. В результате вся база висит в заблокированном виде, пока пользователь не удосужится нажать кнопочку.
22. Gkmy 28 06.04.18 20:33 Сейчас в теме
(21)
изображение бы, или конфигурацию - непонятно, о чем пишите.. по существу, задача: "в процессе проведения вложенный документ не проводится ... нажать кнопочку", - решаема, в большинстве последних конфигураций решена.
23. gamletspb 100 09.04.18 08:35 Сейчас в теме
(22) конфигурация - любая на платформе 7.7
речь идет о системном модальном окошке, которое в обязательном порядке вылазит при неудачном интерактивном проведении документа.

"задача: "в процессе проведения вложенный документ не проводится ... нажать кнопочку", - решаема, в большинстве последних конфигураций решена. " - хотелось бы узнать каким образом?
Прикрепленные файлы:
24. Gkmy 28 10.04.18 01:23 Сейчас в теме
(23)
ручками, программированием.. написал же: в большинстве последних конфигураций решена.
25. Gkmy 28 10.04.18 01:30 Сейчас в теме
окно "документ не проведен" (23) вам который метод выкидывает?
- вот за ним и ищите ответ своей задаче "в большинстве последних конфигураций" (21);
- за вас покуда только алиса и сири ответы ищут.
уровнем ниже опустимся, в код.. а так - диалог безпредметный.
26. gamletspb 100 10.04.18 08:13 Сейчас в теме
(25) оспади.. никакой метод его не выкидывает, оно на системном уровне генерируется и программно никак не управляется. Попробуйте в конфигураторе создать новый пустой документ и в модуле документа, в процедуре ОбработкаПроведения() прописать что-нибудь вроде
СтатусВозврата(0);Возврат;

Теперь если попытаетесь данный документ провести интерактивно в обязательном порядке получите вышеназванное окошко.
В то же время, если будете проводить методом Док.Провести() (из модуля формы другого документа или из обработки) - никакого модального окошка не будет, будет вполне себе безобидная надпись "Не удалось провести чего-то там " в окне сообщений.
27. gamletspb 100 10.04.18 11:30 Сейчас в теме
(25)
- за вас покуда только алиса и сири ответы ищут.

собственно ответов я не ищу, я у себя давно все сделал как мне надо и оно работает, я просто прокомментировал данную методику в том смысле, что у нее есть довольно существенный недостаток
29. Gkmy 28 10.04.18 14:09 Сейчас в теме
(27)
собственно ответов я не ищу, я у себя давно все сделал как мне надо и оно работает
так и вам о том же:
задача: "в процессе проведения вложенный документ не проводится ... нажать кнопочку", - решаема, в большинстве последних конфигураций решена.
28. Gkmy 28 10.04.18 14:05 Сейчас в теме
(26) ну и что это за педологическое извращение такое:
Процедура ОбработкаПроведения()
  СтатусВозврата(0); 
  Возврат;
КонецПроцедуры
30. gamletspb 100 10.04.18 14:28 Сейчас в теме
(28) простейшая имитация отмены проведения, что непонятного?
31. Gkmy 28 10.04.18 14:46 Сейчас в теме
(30)
простейшая имитация отмены проведения

"простейшая имитация отмены проведения", - на стадии отладки - согласен
найдёте подобную конструкцию в релизе
дам денег... которая сумма вас заинтересует?
32. gamletspb 100 10.04.18 14:53 Сейчас в теме
(31) Уважаемый, вы читать умеете или вам заняться нечем? Какой нафиг релиз? Я вам просто привел пример как быстро смоделировать ситуацию. Если вам лень три строки кода написать, чтобы самому убедиться, то мне далее данная дискуссия ни о чем не интересна - оставайтесь при своем загадочном мнении
33. Gkmy 28 10.04.18 14:59 Сейчас в теме
(32)
релиз

Рели́з (англ. release [rɪ'liːs]) — освобождение, выпуск: выпуск, демонстрация, публикация, показ — фильма, книги, пластинки, продукта; также сам выпускаемый объект; сообщение для печати; устройство, освобождающее что-либо: в частности...
Понятие релиз в моем контексте - равнозначно: конфигурации от 1С, официальные,
выпущенные конечному потребителю.
34. Gkmy 28 10.04.18 15:02 Сейчас в теме
(32)
Конструкция опубликованная вами:
Процедура ОбработкаПроведения()
  СтатусВозврата(0); 
  Возврат;
КонецПроцедуры

- яркий пример педалогического извращения. Конструкция недопустимая в рабочих ИБ. .
36. пользователь 10.04.18 15:25
Сообщение было скрыто модератором.
...
37. CheBurator 3119 10.04.18 23:34 Сейчас в теме
(34) с чего это она недопустимая?
в типовой ТиС сплошь и рядом при отработке процедур, выполняемых при проведении документа генерится СтатусВозврата(0) (даже внутри вызваемых дочерних процедур)
38. Gkmy 28 11.04.18 03:35 Сейчас в теме
(37)
сейчас у меня под рукой только Бух. уч. 636; вам пари или чего?
35. Gkmy 28 10.04.18 15:03 Сейчас в теме
(32)
О том, что такое "педалогическое извращение" - спрашивайте у гугл.
39. Yurek 13.09.22 12:09 Сейчас в теме
На мой взгляд, правильней будет так

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

Процедура ПриОткрытии()
Если Форма.Параметр="ПровестиИЗакрыть" Тогда
Провести();
Форма.Закрыть(0); //параметр 0 чтобы не задавало лишних вопросов
КонецЕсли;
КонецПроцедуры
Оставьте свое сообщение