#0
by Lampa82
Люди добрые, помогите кто-нибудь, плиз!!! Делаю ВНЕШНЮЮ обработку, надо создать новый документ (предположим, «реализация»), заполнить его некими параметрами по умолчанию (типа фирма, контрагент, склад и т.п.) и открыть его для редактирования. Вопрос: как передать в открывающуюся форму документа эти параметры? И возможно ли это? Вот кусочек моего текста: Док=СоздатьОбъект(«Документ.РеализацияРозница»); ОткрытьФорму(«Документ.РеализацияРозница»); - как связать вот эту форму именно с тем документом, который создавался выше, чтобы в этой открывающейся форме документа присутствовали все те параметры (Фирма, склад), которые определялись раньше для этого документа?..
#0
by Lampa82
Люди добрые, помогите кто-нибудь, плиз!!! Делаю ВНЕШНЮЮ обработку, надо создать новый документ (предположим, «реализация»), заполнить его некими параметрами по умолчанию (типа фирма, контрагент, склад и т.п.) и открыть его для редактирования. Вопрос: как передать в открывающуюся форму документа эти параметры? И возможно ли это? Вот кусочек моего текста: Док=СоздатьОбъект(«Документ.РеализацияРозница»); ОткрытьФорму(«Документ.РеализацияРозница»); - как связать вот эту форму именно с тем документом, который создавался выше, чтобы в этой открывающейся форме документа присутствовали все те параметры (Фирма, склад), которые определялись раньше для этого документа?..
#4
by Lampa82
Ага, не все так просто! Со списком значений, который в качестве параметра передается в форму при открытии я тоже пробовала. Ну типа так: Но в этом же случае надо менять и процедуру ПриОткрытии (которая находится в модуле формы документа): КонецПроцедуры // ПриОткрытии А дело в том, что ВСЕ надо сделать ВНЕШНЕЙ обработкой, не меняя ни модуль самого документа, ни модуль формы документа, чтобы потом у пользователя не возникло проблем с обновлением (типа обновили конфигурацию и затерли все изменения. Нельзя ли передать как-то эти параметры в форму документа, не изменяя ничего в процедуре ПриОткрытии, а ВСЕ сделать во ВНЕШНЕЙ обработке?.. Или может быть, эту же задачу можно решить с помощью какой-нибудь другой функции, не ОткрытьФорму?.. Просто жаль, что нет такого метода у документа Открыть, типа создали документ, определили для него все параметры и потом просто открыли этот документ (его форму): Док=СоздатьОбъект(«Документ.РеализацияРозница»); Док.Открыть; Такого метода, насколько я знаю, нет, но нельзя ли что-то вроде этого придумать?..
#5
by Стрелок
если не менять ПриОткрытии то можно так 1. создаём док программно 2. записываем его 3. открываем модально 4. после закрытия модальной формы спрашиваем про сохранение документа (вдруг откажутся). если не надо - удаляем через Удалить (непосредственное удаление)
#8
by Стрелок
Без записи? нет а вот схитрить и передать в открытую форму через её контекст кажется можно... только очень запутанно. надо на практике пробовать....
#9
by Lampa82
Увы...Чего-то не получается... В тексте просто дописала: ОткрытьФормуМодально(Док); И почему-то ничего не открывается... Хотя сам документ записывается, в журнале документов появляется... Может, чего-то еще упустила?.. Ладно, пойду спать, утро вечера мудренее...
#11
by Lampa82
Спасибо большое! Спать я все-таки не пошла... Сейчас как раз книжку читала, там то же самое написано, что документ надо "спозиционировать" :). Теперь форма открывается, однако номер документа какой-то странный получается, не по порядку нумерации (например, не BR0002686, а BB0140/445...) И откуда он такой берется?.. Ладно, все-таки пойду спать, завтра постараюсь доделать... Еще раз спасибо! :)
#13
by Lampa82
Легко сказать... Как?.. До профессионалов нам еще далеко... Пыталась использовать Док.ПрефиксНомера("BR"); или Док.УстановитьНовыйНомер("BR"); Тогда у документа заново нумерация начинается с BR-000001... Да еще и "тире" у префикса появляется...
#14
by Стрелок
сбита нумерация документов руками. а перенумеровать - есть куча обработок в инете.... не найдёте - завтра свистите на мыло (в карточке) - кину пару штук
#15
by Lampa82
Спасибо за помощь, поищем в инете, если их "куча", тогда что-то должно найтись... Или вдруг что-нибудь полезное еще в книжке найду... Ладно, сейчас пойду все-таки спать (голова уже квадратная), спокойной ночи! :)
#16
by Lampa82
Сейчас выяснила, что нумерацию нужно оставить так, как есть. Многие документы уже распечатаны, с ними работают, так что если вдруг перенумеровать, то никаких документов нельзя будет найти… Просто раньше вкладывали в эти номера какой-то «глубокий» смысл, а потом уже пустили автоматическую нумерацию. Но перенумеровать уже нельзя, иначе пользователь запутается… Придется искать обходные пути...
#17
by Стрелок
Обходной путь 1. создаём реквизит шапки - "Старый номер" 2. запускаем обработку которая пропишет в этот реквизит текущие номера документов 3. перенумеровываем документы так как положено 4. прописываем модуль формы документа так, чтобы при вводе нового "старый номер заполнялся текущим номером документа" 5. в журнале выводим колонку с "старым номером". 6. по желанию колонку с реальным номером 1С можно скрыть совсем....
#20
by Lampa82
Нет, к сожалению, этот обходной путь все-таки не совсем подходит, так как опять надо менять все в конфигурации (добавлять реквизит шапки, прописывать модуль формы документа, изменять журнал и т.д.), а изначально хотелось бы все сделать во внешней обработке.
#21
by Lampa82
Сейчас вернулась опять к началу :), пытаюсь опять открыть форму документа и изменить в ней параметры через контекст формы (благо в этом случае никаких проблем с нумерацией не возникает и при открытии формы нового документа номер у него проставляется верный). Прочитала в книжке про контекст формы, типа можно использовать такую запись: ОткрытьФорму(«Документ.РеализацияРозница»,КонтекстФормы); Причем написано (цитирую): «после исполнения данного метода система вернет в данную переменную (КонтекстФормы) контекст открытой формы. С помощью значения этого контекста можно затем произвольно МАНИПУЛИРОВАТЬ открытой формой, пока она открыта. Не означает ли это, что можно как-то через этот контекст передать в форму значения параметров?.. Когда пыталась прочитать значения параметров из формы документа через контекст, то все получалось, например: Фирма=КонтекстФормы.Фирма; В этом случае действительно выдает фирму, которая установлена в документе по умолчанию. Но когда пытаюсь передавать в форму значение параметра Фирма, то ничего не происходит. То есть пыталась сделать это так: Контекст.Фирма=Фирма; И ничего не получается, фирма не изменяется… Может быть, надо как-то обновить форму, чтобы изменилось значение фирмы?..
#23
by GrayT
................. КонтекстФормы.Фирма = ...... Но есть один существенный недостаток такого подхода....
#26
by Lampa82
Так я же говорю, ничего так не получается, в форме ничего не меняется, может, обновить ее как-нибудь можно?.. Или дело не в этом?.. А в чем "существенный недостаток"?..
#33
by Lampa82
GrayT, ты ГЕНИЙ! Ура, получилось! Так в чем же недостаток?.. Насчет фото: по-моему, это форменный шантаж... А вообще говоря, зачем тебе фото, ты лампу когда-нибудь видел?..
#34
by GrayT
Видел много и все они очень разные. Это не шантаж - это традиция. ЗЫ Я НЕ ГЕНИЙ! (я тебя не обзывал :
#35
by Lampa82
GrayT, извини, не хотела обидеть :) Еще очень глупый вопрос, наверное, не по теме: А как вы отвечаете на конкретные сообщения, чтобы рядышком номер предыдущего ответа высвечивался?..
#36
by GrayT
Просто номер в скобочках пишем. Через контекст новые строки не добавишь в новый док....
#37
by Lampa82
Razgon off, твой способ не помогает, я уже все испробовала, и даже так. Хотя вообще по описанию этой функции во втором параметре должен контекст формы передаваться, а не ссылка на документ: ОткрытьФорму("Документ.РеализацияРОзница",КонтекстФормы).
#40
by Lampa82
Печально... Опять придется поломать голову... Хотя в этом документе не требуется заполнять табличную часть, но в следующем моем задании (следующем документе, который надо сделать) именно такие требования: помимо параметров надо еще заполнить табличную часть товарами, проданными за день... Ладно, пошла биться головой об стенку... Все равно спасибо, ты мне очень помог!
#41
by Razgon_off
Странно или я не понимаю вашей методики... Или ещё что-то. Но почему то у меня получается делать новые доки полностью заполнять их потом открывать... Наверно надо бы за пивком..
#42
by mrkorn
чет я не догнал.. тебе надо из обработки создать и заполнить док? я делал проще... создавал док прописывал все реквизиты, какие надо и записывал
#50
by Lampa82
Смотрите выше, я так пробовала, но в этом случае у меня получается какой-то дурацкий номер у документа. Объясняю: просто раньше из каких-то соображений пользователи у документов делали номера с "глубинным" смыслом, типа BB040/230, потом перешли на автоматическую нумерацию BR0002985, так у меня теперь после строки: Док.Записать; в журнале появляется документ не с номером BR0002986, а с BB040/231. А когда я сразу же открываю форму для нового документа, то и номер там "правильный" BR0002986.
#55
by Lampa82
УРА,ЗАРАБОТАЛО! Вот из-за такой бяки я столько времени промучилась!Опять хочется "гением" обозвать, но я держу себя в руках... :) ОГРОМНОЕ СПАСИБО! Пошла вывешивать фотографию :)
#59
by mrkorn
а не боишься, что чего-нибудь сломаеться и перестанет работать? не выложить фотку меньший грех, чем подлог оной... так что бросай все дела и срочно вывешивай нормальную фоту
#61
by Rom_Kat
давай реальное фото и сразу решение получишь, а если фотка понравиться так и несколько...
#72
by Lampa82
Форма.Параметр=Контекст; Чегой-то не поняла... Загадками говорите?.. Это где такая строчка?.. Я вроде писала, что надо внешней обработкой делать, а в модуле формы ничего нельзя менять, соответственно через список параметров не передашь... А фирма в КонтекстеФормы берется как реквизит на форме документа...
#75
by Lampa82
Ну ладно вам вредничать... Сами-то своих фоток не выкладываете, что за дискриминация!
#82
by Rom_Kat
ты хочешь документ с открытой формой редактировать или отредактировать а потом открыть?
#83
by ChMikle
для того чтобы вызвать из обработки документ и т.п. используется контекст, который является параментром функции ОткрытьформуМодально(...). Контекст - список значений парметров , которые в процедуре приоткрытии вызываемого объекта извлекаются и устанавливаются... Напромиер : Из отчета ОСВ вам надо получить более детализированный отчет карточка счета по конкретному значению субконто... В данном случае для вызова отчета Карточка счета вам надо передать врем интервал, значение субконто и счета... прежде чем получить печатную форму
#89
by mrkorn
таким образом ты не заморачиваясь передашь все данные текущей формы, те сможеь достучаться до любой переменной формы из того места откуда была вызвана процедура ОткрытьФорму
#92
by Rom_Kat
там только с сохранением документов проблема будет так открыть модально не получится... вернее получится тока дальше работать не будет.
#93
by Lampa82
Я вообще-то хотела изначально отредактировать документ (т.е. установить параметры), а потом уже открыть. Но видимо, так не получится, придется сначала открыть, а потом уже параметры устанавливать. Насчет модальной формы - я вообще использую просто ОткрытьФорму, так как форма самой обработки у меня закрывается сразу же после ее открытия, практически стоит самой первой строчкой в программе: Форма.Закрыть; (зачем пользователю видеть какую-то форму обработки) Поэтому, наверное, если вы имели в виду в (Форма.Параметр=Контекст) форму ОБРАБОТКИ, то она у меня как-то вообще и не задействуется... Поэтому если имеется в виду "передать данные ТЕКУЩЕЙ формы" - формы обработки, то у нее и данных-то собственно никаких нет.. Или я уже совсем тупая и ничего не поняла?.. Тогда это совсем печальный случай... :(
#95
by Lampa82
Так я вроде так и делала. Чтобы не быть голословной, вот что у меня получилось в модуле обработки: и т.д. А потом открываю форму документа и вся проблема в том, как туда передать эти данные: ОткрытьФорму("Документ.РеализацияРозница",КонтекстФормы); Насколько я понимаю, здесь КонтекстФормы - это уже контекст формы документа, которая открывается, и так как я не додумалась, как же туда передавать параметры, я просто каждый параметр записываю туда по отдельности (уже в открытую форму): КонтекстФормы.Фирма=Фирма; КонтекстФормы.Склад=Склад; И т.д. То есть меняю параметры уже в открытой форме. Но хотелось бы, конечно, просто передать в форму документа эти параметры еще до ее открытия... Или имеется в виду "ввести все данные в обработку", то есть форму обработки не закрывать, а на самой форме обработки поместить все эти параметры, фирма, склад и т.д, то есть создать на форме обработки сам документ?..
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- V8 внешняя обработка.ПолучитьМакет
- Передача параметров из вызываемой формы в вызвавшую
- Внешняя компонента SysFTP для 1С 7.7
- Внешняя обработка. ПолучитьМакет("Макет1")
- Внешняя компонента.
- Передача параметров в форму и получение параметра потом
- Внешняя печатная форма
- внешняя печатная форма М-4 для 1с8
- СКД. Передача параметров из настройки на форму.
- Передача параметров методом POST через "HTTPСоединение"
- Передача товаров операция: передача товаров/материалов переработчику цена,сумма
- Передача списка дат в условие виртуальной таблицы
В этой группе 1С
- Как получить имя формы, как оно задано в конфигураторе?
- Контекстное меню формы списка справочника
- v7: Как перевести деньги с одного расчетного счета на другой?
- Использование export77.ert и import77.ert
- Создание договора контрагента
- Тип документа реквизита в запросе
- Нужна помощь с документами!
- v7: УПП. Неправильно закрывается 26 счет по статье затрат Амортизация НМА..
- ЗУП: расчет ЗП для совместителей на полставки
- Атолл Рабочее место кассира
- MXL to PDF (BMP)
- Возврат товара от покупателя в книгу Покупок.
- Использование циферной чати клавиатуры в 1С...
- DBF>2Гб Выгрузка не работает.
- Как разделить строку ?
- Сортировка строк книги покупок по дате документа
- Реализация MD5 на 1С
- Получить список доступных COM-объектов
- опять Server 2003 Terminal Server Licensing
- v7: Как в bat файле сделать паузу, ну скажем секунд 20?