Имя: Пароль:
1C
1C 7.7
v7: открытие формы из формы 1с 7.7
,
0 jah1111
 
07.07.20
15:26
Есть кнопка на форме, в формуле которой указана процедура кнОткрыть()
которая в модуле формы выглядит так:

процедура кнОткрыть()  
открытьФорму("документ.тест2");
            конецпроцедуры

хотелось бы, чтобы при нажатии на кнопку на форме открывалася форма документа тест2 (или обработки, пока не решил)
но не открывается.
что не так?
1 Злопчинский
 
07.07.20
15:27
(0) Прочитать СП, уяснить какие контретно типы и значения передаются в параметрах.
2 Злопчинский
 
07.07.20
15:28
ОткрытьФорму(<?>,,)
Синтаксис:
ОткрытьФорму(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
Назначение:
Открывает визуальную форму существующего документа или элемента/группы справочника.
Возвращает: 1 - если действие выполнено, 0 - иначе.
Параметры:
<Документ> - выражение со значением типа 'документ';
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. После исполнения данного метода система вернет в данную переменную контекст открытой формы (необязателен);
<РежимПросмотра> - необязательный параметр. Числовое выражение: 1 - открыть форму в режиме только просмотра; 0 - открыть форму в режиме редактирования; -1 (минус единица) - в этом случае используется вариант, предусмотренный текущим значением параметра ''Режим открытия объектов'', установленным пользователем интерактивно.
3 Злопчинский
 
07.07.20
15:28
Что здесь непонятного в описании первого параметра?
4 Злопчинский
 
07.07.20
15:35
для открытия нового документа

ОткрытьФорму(<?>,,)
Синтаксис:
ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>,<ДокументОснование>)
Назначение:
Открывает визуальную форму ввода нового документа (в т.ч. в режиме ввода на основании).
Возвращает: 1 - если действие выполнено, 0 - иначе.
Параметры:
<ОписательОбъекта> - строка-описатель документа вида:
  'Документ.ХХХХХ', где ХХХХХХ - вид документа;
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. После исполнения данного метода система вернет в данную переменную контекст открытой формы (необязателен);
<ДокументОснование> - документ-основание для открытия формы ввода нового документа в режиме ввода на основании (необязателен).
5 Злопчинский
 
07.07.20
15:38
По идее в (0) все правильно.
на всякий случай напиши "Документ.тест2" с соблюдением регистра как в конфигураторе.
.
если не открывается - см. что не так. или нет в конфиге документа с видом "Тест2" или в форме документ.тест2 - что-то делается ПриОткрытии(), например СтатусВозврата(0); или как вариант - форма документ.тест2 ВООБЩЕ не определена или на ней нет активных элементов - на которых мог бы зафыиксироваться фокус - форма при этом тоже не откроется
6 jah1111
 
07.07.20
15:54
блиииииииииииииииииииииииин! неужели регистр! все заработало!
а я маюсь....!
спасибо тебе большое! (5)
7 Злопчинский
 
07.07.20
15:54
(6) ну и ок! Успехов! стучись если что.
8 Злопчинский
 
07.07.20
15:55
(6) вот блин никогда не столя вопрос про регистр у меня ;-)
всеглда тупо писал как в СП указано.. ;-)
9 jah1111
 
07.07.20
16:12
ну никогда не подумал бы что семерка так чуствительна к регистру!
10 Злопчинский
 
07.07.20
16:18
ну, в идентификаторах - да...
в индексах - там приводится в одному регистру все, так что нечуствительно
11 Ёпрст
 
07.07.20
20:31
(10) брехня.
в 7.7 рнгистронезависима
12 Злопчинский
 
07.07.20
20:48
(11) хм...
ТЗ.НайтиЗначение(чтото,поз,"ИмяКолонки") и
ТЗ.НайтиЗначение(чтото,поз,"имяколонки")
- прокатит?
13 Сияющий Асинхраль
 
07.07.20
21:11
(12) Должно... Сколько я помню семерку....
14 Ёпрст
 
07.07.20
21:38
(12) да
15 tgu82
 
07.07.20
21:57
(12) Мне кажется что регистр тут ни при чем
16 jah1111
 
08.07.20
19:11
(15) мужики, только что перепроверил, Злопчинский прав
исправил первую букву названия обработки с заглавной на строчную и обработка не открылась.
17 Злопчинский
 
08.07.20
19:12
(16) ну, если обработка - в составе конфиги, тто наверное да. если внешняя - то пофиг, имен файлов регистронезависимые
18 jah1111
 
08.07.20
19:17
(7) пришлось постучаться
никогда не работал с подчиненными формами
как правильно вернуться в родительскую форму?
Процедура     ПриповторномОткрытии() подходит плохо, так как работает только в несохраненном документе, если же документ уже закрывался то данная процедура открывает форму в не старом, а новом документе...

делаю так:
    Процедура     ПриповторномОткрытии()
                
                новаястрока();
                парам=форма.параметр;
                товар=парам.товар;
                марка=парам.марка;
                Брутто=парам.брутто;
                пересчет();
                
            конецпроцедуры

а подскажите как надо
19 Сияющий Асинхраль
 
08.07.20
19:27
Проверил :-) , забавно, название документа Регистронезависимо!!! Т.е. можно писать "тест2" можно "Тест2" - без разницы, форма запускается, а вот слово "документ" оказывается регистрозависимым :-(
20 Злопчинский
 
08.07.20
19:31
(18) "как правильно вернуться в родительскую форму?"
если форма - открыта - то можно.
если закрыта - то смотря что надо - имея обьект можно открыть его форму ЗАНОВО.
21 Злопчинский
 
08.07.20
19:32
(18) "как правильно вернуться в родительскую форму?"
- стандартно. воспользоваться ОткрытьФорму(......) - если она открыта - то сработает "ПриПовторномОткрытии"
22 Злопчинский
 
08.07.20
19:33
ну и дочернюю форму открыть можно МОДАЛЬНО. тогда возвра в род.форму произойдет при закрытии модальной дочерней формы. но с модальными - надо аккуратно.
23 jah1111
 
08.07.20
19:57
(21) немного уточню
в форме документа есть таблица
возле таблицы есть кнопка "Добавить"которая вызывает форму2
в форма2 я вношу некторые значения, которые после ее закрытия попададают в строку табличной части форма1
НО! если я сохраню документ, а потом  открою его снова и нажму "Добавить", то при закрытии формы2, откроется не документ1, а новый документ2
а мне надо возвращаться в тот же документ
24 Сияющий Асинхраль
 
08.07.20
20:16
Перечитай чего сам же написал :-( ... Перенумеруй для начала свои документы. Итак есть Документ с табличной частью. Строка этого документа что собой представляет - отдельный документ что-ли? Иначе зачем ты вызываешь форму документа? Если можно было сделать просто сложную или не очень форму ввода. При нажатии добавить у тебя помимо строки добавляется еще и документ или просто реквизиты новой строки? Короче, попробуй внятно объяснить что собой представляет Документ, Документ1, Документ2 и т.д...
25 Злопчинский
 
08.07.20
20:18
(23) ты блин разберсь что у тебя на форме - таблица(ТЗ) или табличная часть.
а то поток сознания напрягает
26 Злопчинский
 
08.07.20
20:19
(23) стукнись в скайп Zlopun
27 jah1111
 
09.07.20
19:34
(25) табличная часть
https://ibb.co/CVkw0xz
вот накидал приблизительно
добавляю строку, сохраняю документ.
хочу добавить еще одну строку, открываю сохраненный документ, нажимаю кнопку вызова формы2, заполняю, закрываю и... вместо добавления строки открывается пустой документ
28 jah1111
 
09.07.20
19:40
в дочерней форме перед закрытием выполняется
открытьформу("Документ.Родительский",парам);

в родительской форме данные заносятся в таблицу в процедуре ПриповторномОткрытии()
29 Ёпрст
 
09.07.20
20:10
Хз, че ты там рещшаешь, мот поможет ?
https://cloud.mail.ru/public/4sxY/4pvjFGvN7
30 Сияющий Асинхраль
 
09.07.20
22:21
(29) :-)))) Стоит пересохранить обработку в конфигураторе и перестают работать и Ins и Del :-(((
31 Злопчинский
 
09.07.20
22:24
(28) вызови обработку модально и передай туда контекст родителя. через контекст будет доступна текущапя строка ТЧ. ввел в обработке нужные данные. через контекст записал в нужную строку при закрытии обработки. всё.
32 Злопчинский
 
09.07.20
22:24
(28) .. и не надо никаких ПриПовторномОктрытии и прочего.
33 Ёпрст
 
09.07.20
23:53
(30) это можно поправить
34 Ёпрст
 
10.07.20
00:13
35 Ёпрст
 
10.07.20
00:13
так например, стал забывать уже 7.7
36 Злопчинский
 
10.07.20
01:32
(35) как же мы без тебя...
37 jah1111
 
10.07.20
08:57
(31) ну а как описать закрытие обработки в родительской форме?
38 Ёпрст
 
10.07.20
10:27
(37) какую задачу ты решаешь, напиши словами
39 Злопчинский
 
10.07.20
10:56
(37) никак.
а=1;
ОткрытьФормуМодально(...);
б=2; //пока форма открыта модально - этот оператор не выполнится.
.
т.е. открыть форму мордально - это представь что ты вставил кусок кода. Пока он весь не выполнится - обработка дальше не идет.
.
стучись в скайп Zlopun. А то ты на какой-то простейшей хне застрял и мучаешься, посмотрим что там у тебя...
40 Злопчинский
 
10.07.20
14:56
проведено беглое обучение/показ.
вроде что надо - сдлали.
41 Сияющий Асинхраль
 
10.07.20
15:42
Блин... Люди учитесь внятно формулировать задачу или вопрос. ТС три дня развлекался просто потому, что не смог сформулировать свои хотелки. Еще 8-го попросил переформулировать вопрос - не захотел (а скорее и не смог бы) :-((( . Но правильно сформированный вопрос - часто половина решения...
42 Arbuz
 
10.07.20
16:14
ещё немного подождать, сделают удаленный нейроинтерфейс и Злоп сможет подключаться и формулировать мысли за ТС-ов )))
43 Злопчинский
 
10.07.20
18:36
(42) "спасибо, поржал!" ;-)