Имя: Пароль:
1C
1С v8
Создать, заполнить, открыть.
,
0 Sevish
 
01.03.22
16:24
Добрый день!
Если я ставлю документ, что он вводится на основании другого документа, то у последнего в меню "Ввести на основании" появляется нужный пункт. Нажимаю, срабатывают процедуры обработки заполнения, документ открывается. Все отлично!

Теперь мне нужно сделать это программно. Создал документ, вызвал "Заполнить()", записал документ - все отлично!

Как открыть? Не "ПоказатьЗначение", а открыть так, чтобы он появился на "Панели открытых"?
1 Kassern
 
01.03.22
16:26
(0)
Форма = ПолучитьФорму("Документ.НужныйДокумент.ФормаОбъекта");
    ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную
    ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере
    КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее
    Форма.Открыть();
2 Kassern
 
01.03.22
16:27
в ЗаполнитьДокументНаСервере()
Создается док, заполняется и в конце
ЗначениеВДанныеФормы(Док,ДанныеФормы); // Кладем обратно в объект формы уже созданный документ
3 Fragster
 
гуру
01.03.22
16:28
Расширение формы клиентского приложения для документа (Client application form extension for documents)
Основание (Basis)
Описание:
Тип: Произвольный.
Объект, являющийся основанием для создания нового объекта.
Использование в версии:
Доступен, начиная с версии 8.2.
4 Fragster
 
гуру
01.03.22
16:30
это к тому, как его надо было открывать до заполнения
5 Fragster
 
гуру
01.03.22
16:30
незаписанный
6 Fragster
 
гуру
01.03.22
16:30
Расширение формы клиентского приложения для документа (Client application form extension for documents)
Ключ (Key)
Использование:
Ключевой.
Описание:
Тип: ДокументСсылка.<Имя документа>.
Ключ объекта.
В случае отсутствия или неверного значения создается новый объект с использованием остальных параметров.
Использование в версии:
Доступен, начиная с версии 8.2.
     Методическая информация
7 Fragster
 
гуру
01.03.22
16:31
а вот это - как надо открывать записанный
8 Fragster
 
гуру
01.03.22
16:31
и в управляемых формах нужно забыть про "получитьФорму" в 99% случаев, надо использовать ОткрытьФорму с нужными параметрами
9 Sevish
 
01.03.22
16:41
Ой простите :( забыл сказать, что у меня управляемые формы. И "ОткрытьФорму" срабатывает так же как и "ПоказатьЗначение" - открывает отдельное окошко.
10 Kassern
 
01.03.22
16:45
(9) ПоказатьЗначение это вроде только для записанных объектах. Вы пробовали сделать, как я написал выше? Это рабочий код, как открыть форму документа заполненную программно пере записью в базу.
11 Kassern
 
01.03.22
16:46
(10) *записанных объектов
12 Sevish
 
01.03.22
16:51
Да, я понял суть предложения. Тогда чуть подробнее опишу задачу.
Есть список документов, у него есть реквизит "МожноСоздаватьнаОсновании".
В списке документов сделал кнопку, которая сначала проверяет реквизит, и если нельзя - отказ (пробовал использовать типовое создание, проверять там, писать в комментарий "отказ", но не понравилось решение).
Если можно создавать, то создаю программно на сервере, вызываю "Заполнить()" и (внимание) записываю. Увы, надо именно записать и открыть :(
Это вообще возможно на УФ?
13 Kassern
 
01.03.22
17:01
(12) блин я вас не могу понять, что вам надо. Вы хотите типовой кнопкой в списке документа создавать на основании документы с проверкой реквизита? Тогда причем тут открытие формы?
14 Kassern
 
01.03.22
17:02
Если вы хотите открыть форму записанного документа, то ОткрытьФорму вам в помощь, или ПоказатьЗначение
15 Kassern
 
01.03.22
17:03
если вам нужно программно заполнить документ и дать юзверу проверить перед записью, то смотрите вначале ветки.
16 Kassern
 
01.03.22
17:03
Если вы хотите в обработке заполнения проверять какой-то реквизит и на основании него не создавать документ, то у вас не верный подход. Отбирайте по данному реквизиту до ввода на основании
17 Fragster
 
гуру
01.03.22
17:05
(12) это делается через вызов исключения в обработке заполнения
18 Fragster
 
гуру
01.03.22
17:06
стандартной кнопкой
19 Sevish
 
01.03.22
17:06
От типовой кнопки я отказался. Пока буду пробовать открывать без записи, может тогда правда откроется на панели открытых.

А в принципе можно заставить "ПоказатьЗначение" открывать не свободным окном, а на панели?
20 Fragster
 
гуру
01.03.22
17:10
(19) зачем нужно использовать показать значение, если открытьформу работает как надо?
21 Fragster
 
гуру
01.03.22
17:15
может быть все дело в том, что кто-то одаренный в свойствах формы в конфигураторе указал режим открытия окна "блокировать окно владельца". Можно поменять там, а можно переопределеить с помощью параметров, передаваемых в ОткрытьФорму
22 Sevish
 
01.03.22
17:19
Нет, я создаю и пытаюсь открыть типовой документ и я пробовал переопределять. За совет спасибо, буду пробовать "ОткрытьФорму".
23 Sevish
 
01.03.22
18:07
Фантастика! Все сработало как в (2) и (3) если документ новый.
Но если у меня документ уже записан, как тогда его открыть тем же способом?
24 Fragster
 
гуру
02.03.22
10:46
(23) а это в (6) записано
25 Sevish
 
02.03.22
12:00
В (6) не написано что за метод :) подскажите, пожалуйста.
26 Sevish
 
02.03.22
12:04
ПараметрыФормы = Новый Структура("Ключ", ДопПараметры);
ОткрытьФорму("Документ.МойДок.ФормаОбъекта", ПараметрыФормы);        

"ДопПараметры" - ссылка из списка документов, но, почему-то, открывает новый документ. разбираюсь. А так да, спасибо за подсказку!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший