Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Добрый день. На форме документа А есть кнопка с помощью которой открывается вспомогательный документ Б. Можно ли при закрытии документа Б передать значение в документ А?
Процедура ОбработкаПодбора(<?>,) КонецПроцедуры Синтаксис: ОбработкаПодбора(<Элемент>,<КонтФормы>) Назначение: Предопределенная процедура обработки подбора значения при нажатия кнопки Выбрать в Форме Подбора значения.
смотриТЕ в эту сторону
Причина редактирования: Предупреждение за ''Ты''! http://pro1c.org.ua/index.php?showtopic=2284
Группа: Местный
Сообщений: 124
Из: Полтавская обл.
Спасибо сказали: 72 раз
Рейтинг: 0
Если документ Б открывается отдельно то можно еще после закрытия документа Б, просто прочитать данные из базы... (это как ище один вариант) и вроде как бы можно ище через контекст формы (Форма.параметр), но точно не знаю, подойдет ли к вашей задачи...
Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Опишу ситуацию подробней.
Для каждой строки документа А создается, при необходимости, документ Б. Необходимо ПриЗакрытии документа Б в строке табл. части документа А изменить реквизит.
Я что-то не пойму, как это можно сделать с помощью ОбработкаПодбора(<?>,)?
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Открывайте Б через ОткрытьФорму() и, в качестве параметра, передавайте в Б контекст документа А и номер нужной строки, например. Тогда в документе Б в ПриЗаписи() изменяйте реквизит в А.
Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(5_kopeek @ 06.04.11, 13:16)
Открывайте Б через ОткрытьФорму() и, в качестве параметра, передавайте в Б контекст документа А и номер нужной строки, например. Тогда в документе Б в ПриЗаписи() изменяйте реквизит в А.
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Парам=Форма.Параметр; Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда Конт=Парам.Получить("Конт"); НСтр=Парам.Получить("НСтр"); Попытка Если Конт.ПолучитьСтрокуПоНомеру(НСтр)=1 Тогда Конт.УстановитьАтрибут("Кво",10000); //Конт.УстановитьАтрибут("НаименованиеНужногоРеквизита",ЗначениеНужногоРеквизита); КонецЕсли; // Конт.ПолучитьСтрокуПоНомеру(НСтр)=1 Исключение Сообщить("Не получилось! "+ОписаниеОшибки()); КонецПопытки КонецЕсли; // ТипЗначенияСтр(Форма.Параметр)="СписокЗначений"
Процедура ПриЗаписи() Если ТипЗначения(Форма.Параметр) = 100 Тогда формаМСК = Форма.Параметр.Получить("Конт"); формаМСК.НомВспомогательного=номердок; КонецЕсли;
По завершении процедуры ПриЗаписи() реквизит НомВспомогательного остается пустым. Только при повторном переходе на строку документа А для которой создавался документ Б заполняется реквизит НомВспомогательного. Такое ощущения, что нужно добавить форма.обновить(), но нет.
Подскажите, что делаю не так?
Причина редактирования: Когда Вы научитесь выделять код, а?
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
DAS_Alex, я ж Вам написала, пользуйтесь методом УстановитьАтрибут. И в моем варианте можно обойтись без проверки на открытость формы, чтобы исключить ошибку при групповой перезаписи, так как в таком случае Форма.Параметр не будет иметь тип СписокЗначений.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!