Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Передача значения реквизита с обработки на форму нового документа          
Yevhenii Подменю пользователя
сообщение 05.09.17, 11:50
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 32
Из: Хмельницкий
Спасибо сказали: 0 раз
Рейтинг: 0

1С Предприятие 8.2 обычное приложение, обычная форма
Конфигурация "Управление торговым предприятием для Украины", редакция 1.2.

День добрый!

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

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



Signature
Хороший код - работающий код.

Bernet Подменю пользователя
сообщение 05.09.17, 11:54
Сообщение #2

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

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

P.S> Привет с Хмеля)


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Спасибо сказали: Yevhenii,

Yevhenii Подменю пользователя
сообщение 05.09.17, 12:56
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 32
Из: Хмельницкий
Спасибо сказали: 0 раз
Рейтинг: 0

Bernet @ Сегодня, 12:54 * ,


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

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


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

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



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

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

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

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


Элементарно не правда ли?) 19000000.gif


Signature
Хороший код - работающий код.

podcast Подменю пользователя
сообщение 05.09.17, 13:07
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

Yevhenii @ Сегодня, 13:56 * ,
Почему нельзя с обработки заполнить значение?
Форма = Документы.ВыдачаАванса.ПолучитьФормуНовогоДокумента();
    Форма.ЭкспортСотр.Значение = Сотрудник;
    Форма.ОткрытьМодально();

Bernet Подменю пользователя
сообщение 05.09.17, 13:16
Сообщение #5

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Yevhenii @ Сегодня, 13:56 * ,
Чувак, у Вас ошибка вылазила как раз из-за того что на Вашей форме не было реквизита "ЭкспортСотр", Вы пытались тут сделать так:
Цитата
Форма.ЭкспортСотр = Сотрудник;

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

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

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


 ! 

Правила: 1
 


Сообщение отредактировал logist - 05.09.17, 13:23


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Yevhenii Подменю пользователя
сообщение 05.09.17, 13:37
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 32
Из: Хмельницкий
Спасибо сказали: 0 раз
Рейтинг: 0

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


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


Signature
Хороший код - работающий код.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 0:47
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!