Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 728
от 14.02.2008, 11:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 383, Экспертов: 48
В номере:Вопросов: 2, Ответов: 7

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 122335: День добрый. Вопрос такой - как передать в форму несколько параметров. Т.е., есть документ, при его закрытии(если срабатывает условие) открывается форма другого документа. Через Форма.Параметр() можно передать только одно значение. А можно ли как-то ...
Вопрос № 122336: И еще один вопрос. При открытии документа, нужно некоторые поля автоматом заполнить. Но заполнить из журнала. Пробовал по примерам из книг, но почему-то не получается. Лучше - кусок кода с комментами =)), так проще разобраться....

Вопрос № 122.335
День добрый. Вопрос такой - как передать в форму несколько параметров. Т.е., есть документ, при его закрытии(если срабатывает условие) открывается форма другого документа. Через Форма.Параметр() можно передать только одно значение. А можно ли как-то передать несколько? Например, в первом документе есть поля Сумма, Покупатель. Как сделать так, чтоб при ОткрытьФорму(),эти значения автоматом вставлялись в открываемую форму?
Отправлен: 09.02.2008, 11:24
Вопрос задал: stahh (статус: 3-ий класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: DERL.KG
Здравствуйте, stahh!
Передавайте в параметр список значений...
Ответ отправил: DERL.KG (статус: 8-ой класс)
Ответ отправлен: 09.02.2008, 12:07
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: svsrus
Здравствуйте, stahh!

СЗ = СоздатьОбъект("СписокЗначений");
СЗ.ДобавитьЗначение(Сумма,"Сумма");
СЗ.ДобавитьЗначение(Покупатель,"Покупатель");
ОткрытьФорму("Документ.ХХХ", СЗ);

...

в открываемом Документе в ПриОткрытии()

СЗ = Форма.Параметр;
Сумма = СЗ.Получить("Сумма");
Покуатель = СЗ.Получить("Покупатель");
Ответ отправил: svsrus (статус: 7-ой класс)
Ответ отправлен: 09.02.2008, 13:05
Оценка за ответ: 5
Комментарий оценки:
Спасибо.

Отвечает: Dmitry Stashenko
Здравствуйте, stahh!

Можно передать в открываемую форму список значений, например, а там разобрать его по запчастям. Кстати, если передать Контекст, то можно манипулировать той формой, откуда произошло открывание (т.е. извлекать и записывать данные формы непосредственно из/в нее). Это, понятное дело, может тут и не пригодится, потому как первый документ все равно закрывается, но вообще на будущее может помочь.

Приложение:

Ответ отправил: Dmitry Stashenko (статус: Студент)
Ответ отправлен: 09.02.2008, 13:28
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Действительно, мог бы и сам додуматься =))

Отвечает: Ткаченко Алексей Васильевич
Здравствуйте, stahh!
Можно также передать таблицу значений.
Ответ отправил: Ткаченко Алексей Васильевич (статус: 2-ой класс)
Ответ отправлен: 09.02.2008, 20:51

Отвечает: Сергей Максименко [Elric]
Здравствуйте, stahh!

Дополню ответ от Dmitry Stashenko, учитывая Ваш вопрос в мини-форуме:
А поподробней про Контекст можно? Может действительно пригодиться =))

Передавая Контекст, Вы по сути передаете возможность управлять всей средой, из которой была послана эта "передача". Т.е. если Вы передаете Контекст из формы какого-либо документа, то через него (Контекст) можете делать с ней все что угодно - записать, обратиться к реквизитам, закрыть и т.д. Если передаете Контекст из формы списка справочника, то получаете доступ к манипулированию этой формой списка, использованию всех ее методов и атрибутов.

Возьмем пример, когда из формы одного документа открывается форма другого и при этом передается Контекст.
Строка модуля формы первого документа (из которого вызываем):

ОткрытьФорму(Док,Контекст);

В процедуре ПриОткрытии() модуля формы второго документа (который открываем) можно прописать такие строки:

Конт=Форма.Параметр;
Если ПустоеЗначение(Конт)=0 Тогда
Если (Конт.ТекущийДокумент().Выбран()=1) И (Конт.Модифицированность()=0) Тогда
Сообщить("Документ "+Конт.ПредставлениеВида()+" № "+Конт.НомерДок+" от "+Конт.ДатаДок+" уже записан.");
Иначе
Сообщить("Записываем "+Конт.ПредставлениеВида()+" № "+Конт.НомерДок+" от "+Конт.ДатаДок+".");
Конт.Записать();
КонецЕсли;
Сообщить("Закрывам "+Конт.ТекущийДокумент());
Конт.СтрокаДействийФормы="#Закрыть";
КонецЕсли;

При этом если "первый" документ не был записан, он запишется, и в любом случае закроется его форма.
---------
В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал)
Украина, Киев
Тел.: (044) 22-88-369
Организация: МАКСЕР, "1С:Предприятие" в Киеве
Адрес: г. Киев
WWW: www.makser.com.ua
----
Ответ отправлен: 10.02.2008, 02:41


Вопрос № 122.336
И еще один вопрос. При открытии документа, нужно некоторые поля автоматом заполнить. Но заполнить из журнала. Пробовал по примерам из книг, но почему-то не получается. Лучше - кусок кода с комментами =)), так проще разобраться.
Отправлен: 09.02.2008, 11:31
Вопрос задал: stahh (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 13)

Отвечает: Астафьев Александр Николаевич
Здравствуйте, stahh! В журнале вы видите колонки полей со значениями реквизитов документов которые входят в этот журнал. Другого там нет по умолчанию. Т.е. заполнить из журнала это значит заполнить реквизитами других документов этого журнала. Обратитесь обработкой к документам этого журнал и берите из них что хотите.
Док=СоздатьОбъект("Документ.<ВидДокумента>");
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
Пока Док.ПолучитьДокумент()=1 Цикл
... (тут например) Клиент = Док.Контрагент;
... и т.д.
КонецЦикла;
Если в журнале документы нескольких видов прогоните такой цикл несколько раз для каждого вида документов.
Ответ отправил: Астафьев Александр Николаевич (статус: 10-ый класс)
Ответ отправлен: 09.02.2008, 22:50

Отвечает: Сергей Максименко [Elric]
Здравствуйте, stahh!

Единственный способ из формы документа (далее "форма1") получить доступ к элементам формы журнала документов (далее "форма2") это передать контекст формы2 в форму1. Например, если в форме2 сделать кнопку "Открыть документ" и прописать туда формулу ОткрытьФорму(Док,Контекст) (где Док - ссылка на открываемый документ), то потом в атрибуте Параметр формы1 будет контекст формы2, и можно будет обращаться к его элементам. Еще есть вариант передавать контекст через глобальную переменную либо через внешний файл, однако суть не сильно изменится.
Факт в том, что на открытую форму нет никаких внешних ссылок из внешней среды, за которые можно было бы ее "поймать". Единственный вариант, это принудительно передать из открытой формы (в даном случае, формы журнала) информацию туда, где она нужна (в данном случае, в форму открытого документа).
---------
В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал)
Украина, Киев
Тел.: (044) 22-88-369
Организация: МАКСЕР, "1С:Предприятие" в Киеве
Адрес: г. Киев
WWW: www.makser.com.ua
----
Ответ отправлен: 10.02.2008, 15:03


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное