Версия для печати темы (https://pro1c.org.ua/index.php?s=9166a9a872c8c91d44c7eea6ea4edd13&showtopic=58065)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Передача реквизитов между формами

Автор: 4andriy 31.03.20, 10:54

1C 7.7 Предприятие
Форма номер 1 - есть данные контрагента ТекущийЭлемент
Форма 2 - журнал документов
Форма 3 - сам документ с полем ввода Контрагент

В форме номер 3 нужно заполнить поле Ввода Контрагент из выбраного в форме 1.

Автор: Naghual 31.03.20, 12:51

Используйте глобальную переменную.

Автор: 4andriy 31.03.20, 13:31

Naghual @ Сегодня, 12:51 * ,
может есть пример какой-то?

Автор: 4andriy 31.03.20, 16:33

4andriy @ Сегодня, 13:31 * ,
не могу передать в форму значение контрагента

Форма.Параметр=Элемент.Контрагент;
{Справочник.Контрагенты.ФормаСписка.ОКПО.Модуль(327)}: Поле агрегатного объекта не обнаружено (Контрагент)


4andriy @ Сегодня, 15:43 * ,
как передать форма.параметр значение в справочнике?

4andriy @ Сегодня, 16:05 * ,
Форма.Параметр=СоздатьОбъект(ТекущийЭлемент());
{Справочник.Контрагенты.ФормаСписка.ОКПО.Модуль(327)}: Неудачная попытка создания объекта

Автор: Prospero 31.03.20, 21:24

4andriy, Можно подробнее, что Вы хотите сделать?
Форма 1 - это Форма списка справочника Контрагенты?
Вы становитесь на один из элементов....
Хотите его запомнить.
Жмакаете кнопочку открытия документа (Форма 3?) из нее
И при открытии хотите туда передать Контрагента?
Не могу придумать, куда журнал документов тут пристроить (Форма 2)
Поправьте пж.

Автор: 4andriy 31.03.20, 22:53

Prospero @ Сегодня, 21:24 * ,
в документе "счет" уже выбран контрагент
я нажимаю кнопочку - у меня создается документ документ ттн
но поле контрагент не заполнено
на основании не работает
в ттн вписан код:

Процедура ПриОткрытии()
Контрагент = Форма.Параметр;
КонецПроцедуры

со счета параметр Контрагент как присвоить Форма.Параметр - не работает

4andriy @ Сегодня, 22:49 * ,
в счете сделал процедуру:
процедура кн()
Форма.Параметр = СоздатьОбъект(Контрагент);
Форма.Параметр.ДобавитьЗначение(Контрагент,"Контрагент");
конецпроцедуры

ошибка:
: Неудачная попытка создания объекта

Автор: 4andriy 01.04.20, 10:50

4andriy @ Вчера, 22:53 * ,
через глобальные работает
через форма.параметр нет

Автор: Prospero 01.04.20, 21:29

Цитата(4andriy @ 01.04.20, 11:50) *
через форма.параметр нет

Ну, наверное потому, что
форма.параметр
в явном виде существует в принимающей форме,
которую пользуют через ОткрытьФорму (ОткрытьФормуМодально или ОткрытьПодбор)...
Вы ж явным образом пытались ему значение присвоить до этого счастливого момента.
Хотя по факту это всего лишь контекст, передающийся в открываемую форму.
Думаю, если бы Вы открывали Ваш ТТН через ОткрытьФорму и передавали бы туда Контрагента,
в форме ТТН ПриОткрытии у Вас бы все присваивалось, т.к. на момент открытия Параметр уже существовал бы с конкретным
значением (переданным ранее), а не с Неопределенным.
Ну и наверное, как вариант, в уже вызванной (открытой) форме Вы можете присваивать ему что-то и возвращать в вызывающую форму...
Наверное, как-то так... upset.gif
Может, гуру что подскажут еще, поправят.., конечно, если хотите до конца разобраться в этом вопросе... upset.gif

Автор: mut 02.04.20, 15:52

Чтобы ввести новый документ на основании текущего можно сделать так:

ОткрытьФорму("Документ.РасходнаяНакладная",,ТекущийДокумент());


Только убедитесь, что текущий документ уже записан, у вас откроется форма нового документа и должна сработать процедура ВводНаОсновании. В вводе на основании скопируйте контрагента из документа-основания.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua