перепроведение документа из модуля формы. #486000


#0 by mdx
Добрый день! Вопрос в следующем,как перепровести документ из его же модуля формы. пытался текущийдокумент.провести : текущийдокумент.провести; {Документ.ЗаявкаПокупателя.Форма.Модуль}: Не выбран документ! просто провести не работает тоже.как и записать. порвестии записать вызываются из процедуры которая вызывается при изменении договора. как быть?
#1 by zak555
зачем ?
#2 by АЛьФ
А какую ошибку дает на "просто провести"?
#3 by Любитель XML
попробуй вот так:
#4 by zak555
не проще поставить параметр приЗаписиПерепроводить ?
#5 by mdx
Данная команда не может выполняться в формуле элемента диалога!.(просто провести)
#6 by mdx
если вызываю записать таже ошибка что проыести
#7 by MadHead
Провести#
#8 by smaharbA
+ провести
#9 by Любитель XML
ты попробовал?
#10 by smaharbA
с чего это ? документ заблокирован для Док....
#11 by mdx
3 только попробовал - пишет: Объект заблокирован: Заявка покупателя ЗСУ-661 (02.06.10)
#12 by MadHead
Так если в формуле то наверное надо писать #Провести, если в процедуре, то Провести
#13 by smaharbA
сделайте мене пиписку под ником длиннее а то смотришь, у автора почти такая же
#14 by Попытка1С
У тебя с синим отливом...
#15 by mdx
#провести не канает
#16 by smaharbA
хорошо еще, что не с голубым
#17 by MadHead
тогда полтергейст.
#18 by ВедущийП
#Провести вешается на кнопку, в коде ее использовать нельзя. Записать должен работать в форме.
#19 by mdx
вроде все представленные варианты перепробовал. провести вызывается из процедуры присменедоговора,которая прописана в формулу реквизита договор в заявке покупателя
#20 by ВедущийП
Про Провести не знаю, не было необходимости в этом.
#21 by ВедущийП
Код в студию!
#22 by mdx
меня бы записать тоже устроила,но и она не работает
#23 by ВедущийП
Код процедуры присменедоговора в студию
#25 by mdx
после Провести она не дописана.
#26 by MadHead
(Так а дату ты меняешь?
#27 by Попытка1С
Дату не даст сменить если документ проведен
#28 by MadHead
Делай докне проведеным сначало
#29 by mdx
сейчас попробуюю делать непроведенным
#30 by ВедущийП
Если честно, код ужасен :) Правильно сказали, дату у проведенного документа изменить не даст, в модуле форму можно просто писать Проведен.
#31 by ВедущийП
Проверять дату на пустую дату правильнее ПустоеЗначение(Дата) = 0.
#32 by mdx
Данная команда не может выполняться в формуле элемента диалога! - это про сделать непроведенным
#33 by MadHead
Ну что ж остается только после выбора значения попробовать
#34 by ВедущийП
Обход блокировок в открытых формах документов и справочников. Алексей Николаев (AlexNik)   июнь 2002 -------------------------------------------------------------------------------- Иногда возникает необходимость изменения даты проведенного документа в момент, когда открыта форма этого документа. Пользователь хочет изменить дату документа, не открывая журнал и не закрывая форму документа. Проблема очевидна – пока открыта форма документа, он заблокирован, и программные действия (СделатьНеПроведенным, Записать и пр.) просто недопустимы. Необходимо придумать что-то такое, чтобы пользователь смог изменить дату проведенного документа, просто нажав на кнопку в открытой форме этого же документа. Та же самая ситуация возникает, когда мы хотим изменить родителя или владельца в открытой форме элемента справочника. Вопрос: а можно ли как-нибудь обойти блокировку некоторых методов объекта "Документ" или "Справочник", возникающуюю автоматически при открытии формы объекта? Ответ: "да, можно". Хотя ответ и не очивиден, но он именно таков. Механизм одинаков для всех случаев, для удобства рассмотрим пример решения задачи по изменению даты проведенного документа. Задача Пользователь открыл документ. Документ проведен. Пользователь меняет дату, жмет на кнопку (например, "Провести")… V7 не выдает сообщение "Изменена дата проведенного документа!", а молча отрабатывает действие пользователя. Решение Пытаемся переложить все программные манипуцляции с документом в обработку. Последовательность программных действий следующая. По кнопке в документе, например, по той же "ОК", открываем форму некоей обработки, в которую передаем необходимые параметры. В обработке, в процедуре ПриОткрытии, инициализируем переданные параметры, закрываем форму документа. В форме документа, в процедуре ПриЗакрытии, проверяем, что это "инициатива" служебной обработки, закрываем форму обработки. В форме обработки, в процедуре ПриЗакрытии, делаем необходимые манипуляции с документом, затем открываем его форму обратно. В результате наблюдаем эффект мелькания формы документа на экране. Если документ долго перепроводится, то открытое в этот момент окно формы обработки можно использовать для вывода сообщений, типа "wait please…".
#35 by Delorn
ошибку набери в яндексе...
#36 by ВедущийП
Что при этом происходит Oткрывается обработка, документ пока заблокирован закрывается документ (из обработки при ее открытии), документ еще заблокирован при закрытии документа вызываем закрытие обработки, документ пока заблокирован при закрытии обработки документ уже разблокирован (форма наконец-то закрыта), меняем его как угодно, открываем форму документа ... ... Всё, готово дело. Задача решена.
#37 by ВедущийП
Сорри за многобукв.
#38 by ВедущийП
Решал подобную задачу давно, поэтому и решение примерно помнил :) (С) не мой
#39 by ВедущийП
Только боюсь этот способ слишком крут для автора и некрасив по сути. Так что нужно как-то по другому организовать работу, без изменения даты в проведенном документе и без проведения при изменении договора.
#40 by mdx
а нужно проводить при изменении договора текущей датой и хоть ты тресни
#41 by FN
и все будет работать (чуть не так как ты планировал, но логически правильно)
#42 by mdx
сделало  договор в проведенном документе недоступным.жмакаем кнопочку выбрать и ничего не происходит.без вставленного в приоткрытии кода хоть выбирать позволяет
#43 by ВедущийП
Совсем не так, как ты планировал. Товарищ предлагает делать документ непроведенным вручную, перед изменением договора.
#44 by FN
, Именно. Так работать будет. Хотя можешь извратиться как в
#45 by ВедущийП
Смотри тот способ, который я привел выше. Это единственный вариант, ограничение платформы, в форме документа провести его или снять с проведения ты не сможешь.
#46 by mdx
буду разбираться с способом в жаль,конечно, что  не предусмотрен человеческий вариант =(
#47 by Ёпрст
предусмотрен.. еще как минимум 2.
#48 by Ёпрст
варианта есть.
#49 by Ёпрст
+48 даже 3
#50 by mdx
2 Епрст а можно подробнее еслине затруднит
#51 by mdx
желательно все 3 =)
#52 by FN
Может лучше пересмотри логику. А то закрадываются подозрения - зачем менять дату документа ЗаявкаПокупателя в зависимости от Договора
#53 by mdx
Эта логика жестко задана прям руским по белому,требование чтоб при смене договора документ подтягивался к текущей дате
#54 by ВедущийП
Именно вариант для снятия проведения из модуля формы, или похожие извращения?
#55 by FN
При каких условиях меняется договор?
#56 by mdx
когда менеджер ошибся в введенном договоре
#57 by FN
тогда делай как в - ошибаться меньше будут
#58 by mdx
стрго необходимо все делать из проведенного дока =( получается не вариант
#59 by Ёпрст
1. прямым запросом апдейтить все таблички 2. обход блокировок через открытие копии объекта (способ с синьёры) 3. исппользовать обработку ожидания.. Самый красивый(но затратный) - 2.. самый быстрый -1 .
#60 by mdx
можно подробнее про 2 способ?
#61 by FN
+ или сделай кнопку прямо в журнале "Изменить договор" и процедурку, в которой снимай с проводки, меняй договор и дату и проводи новым числом.
#62 by mdx
впринципе вариант
#63 by mdx
2 Епрст3 - откройте,пожалуйста, тайну второго способа?
#64 by Ёпрст
#65 by mdx
благодарствую
#66 by FN
возможно сейчас бред скажу, но родилась мысля: прямым запросом сбрасываем флаг проведения в журнале и чистим движения по регистрам (проводок думаю этот документ не делает) и тут же штатными средствами ставим новую дату и Провести...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С