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

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

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

Автор: Vzonder 27.12.16, 21:11

Очевидно, что можно навоять несколько форм списка, а так же форм документа (справочника и т.д.).
Предположим: Имеются 3 категории отдела, работающих с заказом покупателя.
Для каждого отдела создается своя форма списка заказа покупателя.
Назовем их:
ФормаСписка
ФормаСписка1
ФормаСписка2

Соответственно вызываются эти формы из панели меню.
Так же создаются формы документа (со своими наборами инструментов и т.д.)
ФормаДокумента
ФормаДокумента1
ФормаДокумента2

По умолчанию, из любой формы списка (ФормаСписка ; ФормаСписка1 ; ФормаСписка2) при выборе документа – будет открывать всегда одна форма, которая назначена основной.

Вопрос:
Как назначить каждой форме списка, свою форму документа?

Автор: Petre 28.12.16, 9:24

Если недостаточно средств для построения разного внешнего вида ОДНОЙ формы документа для разных отделов, тогда либо писать в форме списка свои события ("Выбор", "ПередНачаломДобавления"), либо открывать одну форму, из которой уже запускать необходимую.

Автор: podcast 28.12.16, 9:35

Vzonder @ Вчера, 21:11 * ,
А если сделать как в некоторых типовых формах, добавить все реквизиты с Трёх форм на одну, и просто выводить реквизиты по условиям.

Автор: Vzonder 28.12.16, 18:49

Нашел решение.
Подсказали на другом форуме, цитирую ответ:

Нужно для поля формы ДокументСписок добавить обработчик события Выбор.

В этом обработчике написать подобный код:

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


Все заработало сразу и отлично!

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