Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача значения реквизита с обработки на форму нового документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Yevhenii
1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый!

Открываю ФормуНовогоДокумента по клику кнопки на обработке, на обработке есть заполненый реквизит ФизЛицо, в документе такой же. Хочу что б при создании он подтягивался
необходимо зарегистрироваться для просмотра ссылки
но я "не вижу" реквизитов обработки с обработчика документа "ПередОткрытием"

есть идея записать в какую то константу или глобальную переменную, но правильно ли это? или же все таки есть более простой и лёгкий способ передачи значения реквизита обработки в реквизит нового документа?

Bernet
Yevhenii @ Сегодня, 12:50 необходимо зарегистрироваться для просмотра ссылки ,
Цитата
но я "не вижу"
через точку вы их так не увидите, просто напишите код как в той статье и проверьте, все получится.
Городить лишние глобальные переменные или тем более константы в рамках данной задачи бессмысленно. Только разведете зоопарк лишних реквизитов.

P.S> Привет с Хмеля)
Yevhenii
Bernet @ Сегодня, 12:54 необходимо зарегистрироваться для просмотра ссылки ,


Да и сам понимаю что разводить зоопарк нет смысла

но если тупо скопипастить то вылазять ошибочки
{Документ.ВыдачаАванса.Форма.ФормаДокумента.Форма(25,9)}: Переменная не определена (Объект)
Форма = <<?>>Объект.ПолучитьФорму("ФормаДокумента",ВладелецФормы, КлючУникальности); (Проверка: Толстый клиент (обычное приложение))
{Документ.ВыдачаАванса.Форма.ФормаДокумента.Форма(26,19)}: Переменная не определена (ЗначениеПараметра)
Форма.ЭкспоСотр = <<?>>ЗначениеПараметра; (Проверка: Толстый клиент (обычное приложение))


что в принципе то и логично....

P.S> Привет с Хмеля) Взаимно rulez.gif



Плотно пообедав за счёт предприятия crazy.gif на свежую голову и сытый желудок задача была решена следующим образом:

в модуле основной формы открываемого документа была объявлена переменная:
Перем ЭкспортСотр Экспорт;

далее в обработчике нажатия на кнопку из обработки пишем следующее:
Форма = Документы.ВыдачаАванса.ПолучитьФормуНовогоДокумента();
    Форма.ЭкспортСотр = Сотрудник;
    Форма.ОткрытьМодально();

И последний шаг: в обработчике документа ПриОткрытии() заполняем нужные реквизиты
Если ЭтоНовый() Тогда    
        Сотрудник = ЭкспортСотр;
        Дата = ТекущаяДата();    
    Иначе
    КонецЕсли;


Элементарно не правда ли?) 19000000.gif
podcast
Yevhenii @ Сегодня, 13:56 необходимо зарегистрироваться для просмотра ссылки ,
Почему нельзя с обработки заполнить значение?
Форма = Документы.ВыдачаАванса.ПолучитьФормуНовогоДокумента();
    Форма.ЭкспортСотр.Значение = Сотрудник;
    Форма.ОткрытьМодально();
Bernet
Yevhenii @ Сегодня, 13:56 необходимо зарегистрироваться для просмотра ссылки ,
Чувак, у Вас ошибка вылазила как раз из-за того что на Вашей форме не было реквизита "ЭкспортСотр", Вы пытались тут сделать так:
Цитата
Форма.ЭкспортСотр = Сотрудник;

"ЭкспортСотр" - должен быть реквизитом формы если так обращаетесь к нему.
А дальше Вы делаешь так:
Цитата
Если ЭтоНовый() Тогда
Сотрудник = ЭкспортСотр;
Дата = ТекущаяДата();
Иначе
КонецЕсли;

т.е. Ваш реквизит называется "Сотрудник", по идее если бы написали в первом варианте Форма.Сотрудник = ЭкспортСотр то все бы получилось скорее всего)

Если не секрет какая контора?)


 ! 

необходимо зарегистрироваться для просмотра ссылки: 1
 
Yevhenii
podcast @ Сегодня, 14:07 необходимо зарегистрироваться для просмотра ссылки
да изначально так надо было и делать, просто мусора в голове было много вот и полез в дебри))
только у меня реквизит что на обработке, что в документе "сотрудник", а ЭкспортСотр это экспортная переменная
тогда б вышло всё это в три строчки кода:
Форма = Документы.ВыдачаАванса.ПолучитьФормуНовогоДокумента();
    Форма.Сотрудник.Значение = Сотрудник;
    Форма.ОткрытьМодально();


Bernet @ Сегодня, 14:16 необходимо зарегистрироваться для просмотра ссылки ,
да, Вы правы, только вариант получается запутаннее чем заполнить реквизит прям из обработки, ИМХО)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.