Имя: Пароль:
1C
1С v8
Разные формы одного документа при разной Дате
,
0 Chuvaschow
 
21.06.16
12:41
Здравствуйте!

Подскажите, пожалуйста, как реализовать следующее: была у документа некая форма, с некой ДатыИзменения эта форма изменилась (точнее стала новая) и осталось теперь Форма1 и Форма2 (новая). Как при Дате <= ДатаИзменения открывать Форма1, и соответственно при Дате >= ДатаИзменения открывать Форма2 ? Грубо говоря, чтобы,как привык пользователь видеть до ДатыИзенения Форму1, открывать Форму1?
1 aleks_default
 
21.06.16
12:43
Обработку выбора в форме списка
2 Nuobu
 
21.06.16
12:45
(0) Форма печатная, или форма документа?
3 Chuvaschow
 
21.06.16
12:45
Форма документа
4 aleks_default
 
21.06.16
12:47
А еще есть ОбработкаПолученияФормы в модуле менеджера
5 Nuobu
 
21.06.16
12:47
(3) УФ или ОФ?
6 Chuvaschow
 
21.06.16
12:48
(5) УФ
7 lamme
 
21.06.16
12:48
(0)
делаешь новую форму.
ее ставишь основной формой документа.
в приотрытии() этой формы проверяешь дату
и по определенным условиям открываешь ту или иную форму
типа
Приоткрытии()


Если  дтатизменения>Некаядата тогда
ЭтотОбъект.ПолучитьФорму(ФормаДоНекойДаты).открыть()
иначе
ЭтотОбъект.ПолучитьФорму(ФормапослеНекойДаты).открыть()
конец
ЭтаФорма.Закрыть
8 Chuvaschow
 
21.06.16
12:48
(4) Из модуля менеджера не могу дотянуться до реквизита объекта Дата, для сравнения
9 lamme
 
21.06.16
12:48
(6)
пардон ... тогда не так
10 Chuvaschow
 
21.06.16
12:49
(7) Так пробовал, старая форма открывается на Создание, т.е. пустая
11 КоньЛапчатый
 
21.06.16
12:54
(10) так наверно параметру формы Ключ надо значение передать, чтобы открывался нужный документ.
12 Chuvaschow
 
21.06.16
12:55
Видится мне это так:

1. Получаем текущую строку (выбор из списка)
2. Получаем объект по текущей строке
3. Получаем форму по текущей строке
4. Если....Открываем то, что нужно

Верно?
13 Chuvaschow
 
21.06.16
12:55
(11) Сейчас попробуем
14 aleks_default
 
21.06.16
13:00
(8) там в параметрах есть ключ - ссылка на документ
15 КоньЛапчатый
 
21.06.16
13:00
Сделай основной новую форму.
В ней при открытии проверяй дату.
Если объек.дата <= НужнаяДата тогда
форма= получитьформу(...);
форма.параметры.ключ = этаформа.параметры.ключ;
Форма.Открыть();
конецесли;

Иначе ничего не делаем, потому что у нас итак нужная форма.
16 КоньЛапчатый
 
21.06.16
13:01
ну и само собой закрыть текущую форму не забудь.
17 Chuvaschow
 
21.06.16
13:10
Если Объект.Дата <= '20160531235959' Тогда
    СтараяФорма = ПолучитьФорму("Документ.АктОсвидетельствования.Форма.ФормаДокументаНеИспользуется");
    СтараяФорма.Параметры.Ключ = ЭтаФорма.Параметры.Ключ;
    Закрыть();
    СтараяФорма.Открыть();
    //Отказ = Истина;
КонецЕсли;


Открывает на создание.
18 ptiz
 
21.06.16
13:15
См. второй параметр у ПолучитьФорму()
19 Nuobu
 
21.06.16
13:15
СтараяФорма = ПолучитьФорму("Документ.АктОсвидетельствования.Форма.ФормаДокументаНеИспользуется", Новый Структура("Ключ", ЭтаФорма.Параметры.Ключ));
20 Chuvaschow
 
21.06.16
13:21
Взлетело! Огромное спасибо!

Все-таки странно, открывать форму из другой формы, логичнее делать проверку в списке. Или я не прав?
21 ptiz
 
21.06.16
13:23
(20) Неправ. Открыть документ можно из кучи мест.
22 Chuvaschow
 
21.06.16
13:27
(21) Можно :) Согласен. Тогда так - логичнее в форме списка делать проверку и выбирать форму документа. Снова нет?
23 Chuvaschow
 
21.06.16
13:27
Упс, тоже самое написал
24 Chuvaschow
 
21.06.16
13:28
хотел сделать акцент на слове "логичнее"
25 aleks_default
 
21.06.16
14:16
че вы огород городите, есть же событие специальное
26 Chuvaschow
 
21.06.16
14:21
(25) Можно узнать?
27 Nuobu
 
21.06.16
14:23
(26) -> (4)
28 Chuvaschow
 
21.06.16
14:27
(27) -> (8)
29 mistеr
 
21.06.16
14:30
(0) Ох, наешься ты потом с этими разными формами...
30 Chuvaschow
 
21.06.16
14:44
(29) Научите уму-разуму :) Правильно поступить нужно было как?
Оставить только новую форму?
31 Nuobu
 
21.06.16
14:45
(30) Да, оставить одну форму, а всё новое прописывать кодом.
32 Chuvaschow
 
21.06.16
14:46
Учту на будущее. Но все равно, для общего развития сегодняшнее решение положено на полочку :)
33 aleks_default
 
21.06.16
14:58
(28)->(14)