Внешняя обработка: передача параметров в форму документа #209187


#0 by Lampa82
Люди добрые, помогите кто-нибудь, плиз!!! Делаю ВНЕШНЮЮ обработку, надо создать новый документ (предположим, «реализация»), заполнить его некими параметрами по умолчанию (типа фирма, контрагент, склад и т.п.) и открыть его для редактирования. Вопрос: как передать в открывающуюся форму документа эти параметры? И возможно ли это? Вот кусочек моего текста: Док=СоздатьОбъект(«Документ.РеализацияРозница»); ОткрытьФорму(«Документ.РеализацияРозница»); - как связать вот эту форму именно с тем документом, который создавался выше, чтобы в этой открывающейся форме документа присутствовали все те параметры (Фирма, склад), которые определялись раньше для этого документа?..
#0 by Lampa82
Люди добрые, помогите кто-нибудь, плиз!!! Делаю ВНЕШНЮЮ обработку, надо создать новый документ (предположим, «реализация»), заполнить его некими параметрами по умолчанию (типа фирма, контрагент, склад и т.п.) и открыть его для редактирования. Вопрос: как передать в открывающуюся форму документа эти параметры? И возможно ли это? Вот кусочек моего текста: Док=СоздатьОбъект(«Документ.РеализацияРозница»); ОткрытьФорму(«Документ.РеализацияРозница»); - как связать вот эту форму именно с тем документом, который создавался выше, чтобы в этой открывающейся форме документа присутствовали все те параметры (Фирма, склад), которые определялись раньше для этого документа?..
#1 by ТелепатБот
#2 by floverr
ну наврно Док.Фирма = Спр.ТекущийЭлемент и т.д. ))
#3 by floverr
усе...спать ушоол, всем споки.
#4 by Lampa82
Ага, не все так просто! Со списком значений, который в качестве параметра передается в форму при открытии я тоже пробовала. Ну типа так: Но в этом же случае надо менять и процедуру ПриОткрытии (которая  находится в модуле формы документа):      КонецПроцедуры // ПриОткрытии А дело в том, что ВСЕ надо сделать ВНЕШНЕЙ обработкой, не меняя ни модуль самого документа, ни модуль формы документа, чтобы потом у пользователя не возникло проблем с обновлением (типа обновили конфигурацию и затерли все изменения. Нельзя ли передать как-то эти параметры в форму документа, не изменяя ничего в процедуре ПриОткрытии, а ВСЕ сделать во ВНЕШНЕЙ обработке?.. Или может быть, эту же задачу можно решить с помощью какой-нибудь другой функции, не ОткрытьФорму?.. Просто жаль, что нет такого метода у документа Открыть, типа создали документ, определили для него все параметры и потом просто открыли этот документ (его форму): Док=СоздатьОбъект(«Документ.РеализацияРозница»); Док.Открыть; Такого метода, насколько я знаю, нет, но нельзя ли что-то вроде этого придумать?..
#5 by Стрелок
если не менять ПриОткрытии то можно так 1. создаём док программно 2. записываем его 3. открываем модально 4. после закрытия модальной формы спрашиваем про сохранение документа (вдруг откажутся). если не надо - удаляем через Удалить (непосредственное удаление)
#6 by Lampa82
Спасибо! Сейчас попробую :)
#7 by Злопчинский
Можно...
#8 by Стрелок
Без записи? нет а вот схитрить и передать в открытую форму через её контекст кажется можно... только очень запутанно. надо на практике пробовать....
#9 by Lampa82
Увы...Чего-то не получается... В тексте просто дописала: ОткрытьФормуМодально(Док); И почему-то ничего не открывается... Хотя сам документ записывается, в журнале документов появляется... Может, чего-то еще упустила?.. Ладно, пойду спать, утро вечера мудренее...
#10 by Стрелок
Вот так надобно....
#11 by Lampa82
Спасибо большое! Спать я все-таки не пошла... Сейчас как раз книжку читала, там то же самое написано, что документ надо "спозиционировать" :). Теперь форма открывается, однако номер документа какой-то странный получается, не по порядку нумерации (например, не BR0002686, а BB0140/445...) И откуда он такой берется?.. Ладно, все-таки пойду спать, завтра постараюсь доделать... Еще раз спасибо! :)
#12 by Стрелок
Сбита нумерация... перенумеруйте документы.... приём ;))
#13 by Lampa82
Легко сказать... Как?.. До профессионалов нам еще далеко... Пыталась использовать Док.ПрефиксНомера("BR"); или Док.УстановитьНовыйНомер("BR"); Тогда у документа заново нумерация начинается с BR-000001... Да еще и "тире" у префикса появляется...
#14 by Стрелок
сбита нумерация документов руками. а перенумеровать - есть куча обработок в инете.... не найдёте - завтра свистите на мыло (в карточке) - кину пару штук
#15 by Lampa82
Спасибо за помощь, поищем в инете, если их "куча", тогда что-то должно найтись... Или вдруг что-нибудь полезное еще в книжке найду... Ладно, сейчас пойду все-таки спать (голова уже квадратная), спокойной ночи! :)
#16 by Lampa82
Сейчас выяснила, что нумерацию нужно оставить так, как есть. Многие документы уже распечатаны, с ними работают, так что если вдруг перенумеровать, то никаких документов нельзя будет найти… Просто раньше вкладывали в эти номера какой-то «глубокий» смысл, а потом уже пустили автоматическую нумерацию. Но перенумеровать уже нельзя, иначе пользователь запутается… Придется искать обходные пути...
#17 by Стрелок
Обходной путь 1. создаём реквизит шапки - "Старый номер" 2. запускаем обработку которая пропишет в этот реквизит текущие номера документов 3. перенумеровываем документы так как положено 4. прописываем модуль формы документа так, чтобы при вводе нового "старый номер заполнялся текущим номером документа" 5. в журнале выводим колонку с "старым номером". 6. по желанию колонку с реальным номером 1С можно скрыть совсем....
#18 by Lampa82
Спасибо, буду пробовать...
#19 by Стрелок
на здоровье
#20 by Lampa82
Нет, к сожалению, этот обходной путь все-таки не совсем подходит, так как опять надо менять все в конфигурации (добавлять реквизит шапки, прописывать модуль формы документа, изменять журнал и т.д.), а изначально хотелось бы все сделать во внешней обработке.
#21 by Lampa82
Сейчас вернулась опять к началу :), пытаюсь опять открыть форму документа и изменить в ней параметры через контекст формы (благо в этом случае никаких проблем с нумерацией не возникает и при открытии формы нового документа номер у него проставляется верный). Прочитала в книжке про контекст формы, типа можно использовать такую запись: ОткрытьФорму(«Документ.РеализацияРозница»,КонтекстФормы); Причем написано (цитирую): «после исполнения данного метода система вернет в данную переменную (КонтекстФормы) контекст открытой формы. С помощью значения этого контекста можно затем произвольно МАНИПУЛИРОВАТЬ открытой формой, пока она открыта. Не означает ли это, что можно как-то через этот контекст передать в форму значения параметров?.. Когда пыталась прочитать значения параметров из формы документа через контекст, то все получалось, например: Фирма=КонтекстФормы.Фирма; В этом случае действительно выдает фирму, которая установлена в документе по умолчанию. Но когда пытаюсь передавать в форму значение параметра Фирма, то ничего не происходит. То есть пыталась сделать это так: Контекст.Фирма=Фирма; И ничего не получается, фирма не изменяется… Может быть, надо как-то обновить форму, чтобы изменилось значение фирмы?..
#22 by GrayT
У тебя фото еще не спрашивали? ;-)
#23 by GrayT
................. КонтекстФормы.Фирма = ...... Но есть один существенный недостаток такого подхода....
#24 by Lampa82
Фото чего?.. Моей обработки?.. :)
#25 by GrayT
Но-но, не прикидывайся :)
#26 by Lampa82
Так я же говорю, ничего так не получается, в форме ничего не меняется, может, обновить ее как-нибудь можно?.. Или дело не в этом?.. А в чем "существенный недостаток"?..
#27 by Razgon_off
А почему низзя присвоить значение фирмы до открытия формы?
#28 by GrayT
Недостаток..... А где собственно говоря фото?
#29 by GrayT
Речь о форме нового документа
#30 by Razgon_off
не помогает... Или я чего-то не понимаю
#31 by GrayT
Док в твоем случае что? Видимо не понимаешь :(
#32 by Razgon_off
док в моем случае то что в
#33 by Lampa82
GrayT, ты ГЕНИЙ! Ура, получилось! Так в чем же недостаток?.. Насчет фото: по-моему, это форменный шантаж... А вообще говоря, зачем тебе фото, ты лампу когда-нибудь видел?..
#34 by GrayT
Видел много и все они очень разные. Это не шантаж - это традиция. ЗЫ Я НЕ ГЕНИЙ! (я тебя не обзывал :
#35 by Lampa82
GrayT, извини, не хотела обидеть :) Еще очень глупый вопрос, наверное, не по теме: А как вы отвечаете на конкретные сообщения, чтобы рядышком номер предыдущего ответа высвечивался?..
#36 by GrayT
Просто номер в скобочках пишем. Через контекст новые строки не добавишь в новый док....
#37 by Lampa82
Razgon off, твой способ не помогает, я уже все испробовала, и даже так. Хотя вообще по описанию этой функции во втором параметре должен контекст формы передаваться, а не ссылка на документ: ОткрытьФорму("Документ.РеализацияРОзница",КонтекстФормы).
#38 by Lampa82
В смысле, табличную часть товарами уже не заполнишь?..
#39 by GrayT
Нет.
#40 by Lampa82
Печально... Опять придется поломать голову... Хотя в этом документе не требуется заполнять табличную часть, но в следующем моем задании (следующем документе, который надо сделать) именно такие требования: помимо параметров надо еще заполнить табличную часть товарами, проданными за день... Ладно, пошла биться головой об стенку... Все равно спасибо, ты мне очень помог!
#41 by Razgon_off
Странно или я не понимаю вашей методики... Или ещё что-то. Но почему то у меня получается делать новые доки полностью заполнять их потом открывать... Наверно надо бы за пивком..
#42 by mrkorn
чет я не догнал.. тебе надо из обработки создать и заполнить док? я делал проще... создавал док прописывал все реквизиты, какие надо и записывал
#43 by GrayT
"полностью заполнять их потом открывать" - без предварительной записи? Научи, плиз.
#44 by mrkorn
во! как раз этого не заметил...
#45 by GrayT
Фото не будет?
#46 by mrkorn
потому у нее и не работает, что фота до сих пор нет...
#47 by Razgon_off
Нет ну то что предварительно Док.Записать это ессе-сно..
#48 by GrayT
То-то
#49 by Lampa82
Ладно, чтобы заработало, могу и фото дать, куда вывешивать?..:)
#50 by Lampa82
Смотрите выше, я так пробовала, но в этом случае у меня получается какой-то дурацкий номер у документа. Объясняю: просто раньше из каких-то соображений пользователи у документов делали номера с "глубинным" смыслом, типа BB040/230, потом перешли на автоматическую нумерацию BR0002985, так у меня теперь после строки: Док.Записать; в журнале появляется документ не с номером BR0002986, а с BB040/231. А когда я сразу же открываю форму для нового документа, то и номер там "правильный" BR0002986.
#51 by GrayT
Да какая разница - куданить-нить :) УстановитьНовыйНомер
#52 by Lampa82
Устанавливала, см.. Нумерация тогда с самого начала начинается BR00001.
#53 by GrayT
Значит там не "Б" англицкое а "В" русское
#54 by DF_Slayer
Сначала надо дату влепить, потом номер новый делать. Может из-за этого.
#55 by Lampa82
УРА,ЗАРАБОТАЛО! Вот из-за такой бяки я столько времени промучилась!Опять хочется "гением" обозвать, но я держу себя в руках... :) ОГРОМНОЕ СПАСИБО!  Пошла вывешивать фотографию :)
#56 by GrayT
Ждем'c
#57 by Lampa82
Воть, любуйтесь:
#58 by GrayT
Ну что ж Вуппи, не обессуть....
#59 by mrkorn
а не боишься, что чего-нибудь сломаеться и перестанет работать? не выложить фотку меньший грех, чем подлог оной... так что бросай  все дела и срочно вывешивай нормальную фоту
#60 by Rom_Kat
Переменная КонтекстФормы. Откуда там у тебя фирма взялась?
#61 by Rom_Kat
давай реальное фото и сразу решение получишь, а если фотка понравиться так и несколько...
#62 by Rom_Kat
+или это недостаток - фирмы то на самом деле там и нет
#63 by GrayT
Не трепыхайся. Лучше матчасть поучи.
#64 by Rom_Kat
да ладно матчасть... чего там нового ...:0
#65 by GrayT
Там ответ на твой 60 вопрос. И 62 неверное заключение - Вуппи увидела недостаток
#66 by Rom_Kat
ну и чем не так?
#67 by GrayT
Да не, все нормально. Проехали
#68 by Rom_Kat
Форма.Параметр = Контекст;
#69 by Rom_Kat
воще все недостатки снимает...
#70 by Lampa82
Нет, а что не нравится-то?.. Уж такая уродилась, или вам Памелу Андерсон подавай?..
#71 by mrkorn
нам не надо памеллу андерсон... нам интереснее втоя фотка... в разы
#72 by Lampa82
Форма.Параметр=Контекст; Чегой-то не поняла... Загадками говорите?.. Это где такая строчка?.. Я вроде писала, что надо внешней обработкой делать, а в модуле формы ничего нельзя менять, соответственно через список параметров не передашь... А фирма в КонтекстеФормы берется как реквизит на форме документа...
#73 by GrayT
Я б тебе ответил на твой вопрос, но не буду
#74 by Rom_Kat
+ фотку на базу...
#75 by Lampa82
Ну ладно вам вредничать... Сами-то своих фоток не выкладываете, что за дискриминация!
#76 by Rom_Kat
так ты ж уже все сделала...
#77 by Lampa82
А вот это к чему: Форма.Параметр=Контекст;
#78 by mrkorn
это не дискриминация - это традиция..
#79 by Lampa82
Вот так всегда: заинтригуют, а потом - молчок... :(
#80 by Lampa82
Неправильная традиция... Даешь равенство!
#81 by Lampa82
У меня и цифровика нету, и сканера нет, где ж я вам фотографию возьму?..
#82 by Rom_Kat
ты хочешь документ с открытой формой редактировать или отредактировать а потом открыть?
#83 by ChMikle
для того чтобы вызвать из обработки документ и т.п. используется контекст, который является параментром функции ОткрытьформуМодально(...). Контекст - список значений парметров , которые в процедуре приоткрытии вызываемого объекта извлекаются и устанавливаются... Напромиер : Из отчета ОСВ вам надо получить более детализированный отчет карточка счета по конкретному значению субконто... В данном случае для вызова отчета Карточка счета вам надо передать врем интервал, значение субконто и счета... прежде чем получить печатную форму
#84 by Rom_Kat
ну и что ты этим ответил на ?
#85 by ChMikle
Форма.Параметр=Контекст
#86 by ChMikle
что такое контекст , все ниасил читать :)
#87 by Rom_Kat
осилил... только Форма.Параметр=Контекст - это обратная связь
#88 by ChMikle
в смысле обратная ?
#89 by mrkorn
таким образом ты не заморачиваясь передашь все данные текущей формы, те сможеь достучаться до любой переменной формы из того места откуда была вызвана процедура ОткрытьФорму
#90 by mrkorn
Контекст, он и есть контекст... че непонятно?
#91 by Rom_Kat
молодец - 12.
#92 by Rom_Kat
там только с сохранением документов проблема будет так открыть модально не получится... вернее получится тока дальше работать не будет.
#93 by Lampa82
Я вообще-то хотела изначально отредактировать документ (т.е. установить параметры), а потом уже открыть. Но видимо, так не получится, придется сначала открыть, а потом уже параметры устанавливать. Насчет модальной формы - я вообще использую просто ОткрытьФорму, так как форма самой обработки у меня закрывается сразу же после ее открытия, практически стоит самой первой строчкой в программе: Форма.Закрыть; (зачем пользователю видеть какую-то форму обработки) Поэтому, наверное, если вы имели в виду в (Форма.Параметр=Контекст) форму ОБРАБОТКИ, то она у меня как-то вообще и не задействуется... Поэтому если имеется в виду "передать данные ТЕКУЩЕЙ формы" - формы обработки, то у нее и данных-то собственно никаких нет.. Или я уже совсем тупая и ничего не поняла?.. Тогда это совсем печальный случай... :(
#94 by mrkorn
а что мешает ввести все данные в обработку? а уже из нее создать док и заполнить его?
#95 by Lampa82
Так я вроде так и делала. Чтобы не быть голословной, вот что у меня получилось в модуле обработки: и т.д. А потом открываю форму документа и вся проблема в том, как туда передать эти данные: ОткрытьФорму("Документ.РеализацияРозница",КонтекстФормы); Насколько я понимаю, здесь КонтекстФормы - это уже контекст формы документа, которая открывается, и так как я не додумалась, как же туда передавать параметры, я просто каждый параметр записываю туда по отдельности (уже в открытую форму): КонтекстФормы.Фирма=Фирма; КонтекстФормы.Склад=Склад; И т.д. То есть меняю параметры уже в открытой форме. Но хотелось бы, конечно, просто передать в форму документа эти параметры еще до ее открытия... Или имеется в виду "ввести все данные в обработку", то есть форму обработки не закрывать, а на самой форме обработки поместить все эти параметры, фирма, склад и т.д, то есть создать на форме обработки сам документ?..
#96 by GrayT
Моих фоток тут вагон Ни чегошеньуи ты не поняла
#97 by Lampa82
Ладно, сделала так, как поняла... Все равно всем спасибо за помощь! :)
#98 by GrayT
Пожалуйста, заходите еще
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям