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

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

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

Автор: Constantus 21.02.19, 16:30

Приветствую, форумчане!

8.3.6, УФ, полностью самописная

Имеется формы "Заказы". На форме имеютются несколько ТЧ на нескольких вкладках.

Возможно ли нажатием некой кнопки открыть отдельно модально форму со всеми этими ТЧ, вкладками, чтобы можно было редактировать, потом просто закрыть с сохранением всех изменений?

Нужна из-за того, что из-за большого объема данных в шапке и подвале, табличные данные слишком узкие и не видно все данные в ТЧ

Может лучше так задать вопрос.

Создаю некую форму этого документа в лайт-вершн (с минимальным набором в шапке и подвале) и вывожу ее кнопкой на весь экран модально.

Как правильно вызвать эту форму, чтобы данные, измененные в новой форме автоматически сохранялись в основной?

Автор: Bernet 21.02.19, 16:53

Constantus @ Сегодня, 16:30 * ,
В новой форме после закрытия делаете структуру с данными этой формы и передаете структуру параметром в функцию "Оповестить" (старая форма должна быть установлена Владельцем новой). В старой форме делаете обработчик события ОбработкаОповещения и там считываете эти реквизиты из структуры в свой основной объект

Автор: takefive 21.02.19, 17:31

Constantus @ Сегодня, 16:30 * ,

Процедура ПриОткрытии(Отказ)
    КопироватьДанныеФормы(ЭтаФорма.ВладелецФормы.Объект,ЭтаФорма.Объект);
КонецПроцедуры


Процедура ПриЗакрытии(ЗавершениеРаботы)
    КопироватьДанныеФормы(ЭтаФорма.Объект, ЭтаФорма.ВладелецФормы.Объект);
КонецПроцедуры


Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    ЭтаФорма.Модифицированность = Ложь;//чтобы не было вопросов...
КонецПроцедуры


владельца не забыть передать...

Процедура ОткрытьДубльФорму(Команда)
    ОткрытьФорму("имя формы",,ЭтаФорма);
КонецПроцедуры

Автор: Constantus 22.02.19, 11:25

takefive @ Вчера, 20:31 * ,


А где все эти процедуры размещать? В менеджере, модуле формы, в модуле объекта, на клиенте, на сервере?

Автор: takefive 22.02.19, 13:22

модуль формы на клиенте. Это же события. Конфигуратор сам все создает. Если будете копировать - помните о привязке к событиям

Автор: Constantus 22.02.19, 13:38

Я тут увидел, что у поля формы списка есть событие "Нажатие".

Создал дублирующее поле, на него повесил код:

&НаКлиенте
Процедура Номер1Нажатие(Элемент, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    
        СтандартнаяОбработка = Ложь;
    Форма = ПолучитьФорму("Документ.Заказ.Форма.ФормаЗаказаКонтроля",,ЭтаФорма);
    //Форма.Параметры.Просмотр = Истина;
    Форма.Открыть();
    
    
КонецПроцедуры


Не сработало... Надеялся, что откроет дублирующую форму (создал форму копированием и просто скрыл сворачиваемостью) Что не так? Или это событие реагирует на что-то другое?

Автор: Vidocq05 22.02.19, 14:31

Constantus @ Сегодня, 13:38 * ,
Если конфигурация самописная, то как вариант, изменить форму. Сделать чтобы форма состояла полностью из вкладок. Первая вкладка это шапка документа, вторая и т.д. это табличные части документа.

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