Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: форма документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
DAS_Alex
Добрый день. На форме документа А есть кнопка с помощью которой открывается вспомогательный документ Б. Можно ли при закрытии документа Б передать значение в документ А?
endru
Процедура ОбработкаПодбора(<?>,)
КонецПроцедуры
Синтаксис:
ОбработкаПодбора(<Элемент>,<КонтФормы>)
Назначение:
Предопределенная процедура обработки подбора значения при нажатия кнопки Выбрать в Форме Подбора значения.


смотриТЕ в эту сторону
DAS_Alex
Еще варианты есть?
Vofka
Дынный чем не подходит?
shurik_shurik
Если документ Б открывается отдельно то можно еще после закрытия документа Б, просто прочитать данные из базы...
(это как ище один вариант) и вроде как бы можно ище через контекст формы (Форма.параметр), но точно не знаю, подойдет ли к вашей задачи...
mister-x
Ще можна подивитись в напрямку
ОткрытьФорму, ОткрытьФормуМодально


У відкриту форму із вищевказаних процедур можна передати переметр, який у процедурі
ПриОткрытии
можна прочитати:
_парам = Форма.Параметр
. Це може бути як одна змінна так і таблиця значень, і список значень.

переметр = параметр smile.gif
DAS_Alex
Опишу ситуацию подробней.

Для каждой строки документа А создается, при необходимости, документ Б. Необходимо ПриЗакрытии документа Б в строке табл. части документа А изменить реквизит.

Я что-то не пойму, как это можно сделать с помощью ОбработкаПодбора(<?>,)?
Ardi
DAS_Alex
Завести глобальную переменную которую считывать после закрытия формы Б.
Форму Б открывать модально.
5_kopeek
Открывайте Б через ОткрытьФорму() и, в качестве параметра, передавайте в Б контекст документа А и номер нужной строки, например. Тогда в документе Б в ПриЗаписи() изменяйте реквизит в А.
DAS_Alex
Цитата(5_kopeek @ 06.04.11, 13:16) необходимо зарегистрироваться для просмотра ссылки
Открывайте Б через ОткрытьФорму() и, в качестве параметра, передавайте в Б контекст документа А и номер нужной строки, например. Тогда в документе Б в ПриЗаписи() изменяйте реквизит в А.


Делаю так:

В документе А

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


Подскажите как в ПриЗаписи() документа Б изменить реквизит табл. части в А?
5_kopeek
    Парам=Форма.Параметр;  
    Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда
        Конт=Парам.Получить("Конт");  
        НСтр=Парам.Получить("НСтр");
        Попытка
            Если Конт.ПолучитьСтрокуПоНомеру(НСтр)=1 Тогда
                Конт.УстановитьАтрибут("Кво",10000);
                //Конт.УстановитьАтрибут("НаименованиеНужногоРеквизита",ЗначениеНужногоРеквизита);
            КонецЕсли; // Конт.ПолучитьСтрокуПоНомеру(НСтр)=1
        Исключение
            Сообщить("Не получилось! "+ОписаниеОшибки());
        КонецПопытки
    КонецЕсли; // ТипЗначенияСтр(Форма.Параметр)="СписокЗначений"
5_kopeek
То есть:
               Конт.УстановитьАтрибут("НаименованиеНужногоРеквизита",ЗначениеНужногоРеквизита);

, где НаименованиеНужногоРеквизита и ЗначениеНужногоРеквизита заменить нужнім smile.gif
DAS_Alex
Сделал так, но немного не работает.

В документе А -

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

В документе Б

Процедура ПриЗаписи()  
    Если ТипЗначения(Форма.Параметр) = 100 Тогда
    формаМСК = Форма.Параметр.Получить("Конт");
    формаМСК.НомВспомогательного=номердок;  
КонецЕсли;

По завершении процедуры ПриЗаписи() реквизит НомВспомогательного остается пустым.
Только при повторном переходе на строку документа А для которой создавался документ Б заполняется реквизит НомВспомогательного.
Такое ощущения, что нужно добавить форма.обновить(), но нет.

Подскажите, что делаю не так?
5_kopeek
DAS_Alex, я ж Вам написала, пользуйтесь методом УстановитьАтрибут. И в моем варианте можно обойтись без проверки на открытость формы, чтобы исключить ошибку при групповой перезаписи, так как в таком случае Форма.Параметр не будет иметь тип СписокЗначений.
DAS_Alex
Все. Получилось. Спасибо всем.

Добавил строчку:

формаМСК.форма.обновить()
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.