Нужно при проведении документа, создать другой на основании.
Пишу в обработке проведения:
ФормаДМ.Открыта() - всегда ложь, независимо от того, что я устанавливаю ПолучитьФорму. Судя по отладчику, ключ уникальности записывается в форму, и владелец записывается, но получается, что всегда форма закрыта.
Пробовал в процедуре ПередОткрытие дать отказ:
Тоже самое. Ключ уникальности в форме есть, владелец есть. Но ЭтаФорма.Открыта() все-равно ложь.
Не пойму, что не так?
Пишу в обработке проведения:
Если НЕ Отказ Тогда
Если СодержимоеДМ Тогда
ДокументДМ=Документы.ДвижениеДрагоценныхМатериалов.СоздатьДокумент();
ДокументДМ.ДокументОснование=ЭтотОбъект.Ссылка;
ДокументДМ.Заполнить(ЭтотОбъект.Ссылка);
ФормаДМ = ДокументДМ.ПолучитьФорму("ФормаДокумента",ЭтотОбъект.ПолучитьФорму("ФормаДокумента"), "Уникальность");
Если НЕ ФормаДМ.Открыта() Тогда
ФормаДМ.Открыть();
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПоказатьФормаДМ.Открыта() - всегда ложь, независимо от того, что я устанавливаю ПолучитьФорму. Судя по отладчику, ключ уникальности записывается в форму, и владелец записывается, но получается, что всегда форма закрыта.
Пробовал в процедуре ПередОткрытие дать отказ:
Если ЭтаФорма.КлючУникальности="Уникальность" И ЭтаФорма.Открыта() Тогда
Отказ=Истина;
КонецЕсли;
Тоже самое. Ключ уникальности в форме есть, владелец есть. Но ЭтаФорма.Открыта() все-равно ложь.
Не пойму, что не так?
По теме из базы знаний
- 1С8:борьба - личный опыт работы с платформой 1с8
- Менеджер открытых форм [update 29.12.22]
- "Учет штрафов ГИБДД" с возможной загрузкой из открытых источников в интернет Расширение конфигурации 1С: Предприятие 8.3
- Генерация сценариев тестирования внешних печатных форм средствами Vanessa Automation
- Монопольное открытие формы обработки 1с77
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
(3)В чем суть - Когда я провожу документ, открывается форма документа созданного на основании. Если я еще раз нажму проведение, то снова откроется форма документа созданного на основании. И так до бесконечности.
А мне нужно, если форма уже открыта, то новую не открывать. Получается так я не могу сделать?
(3)В чем суть - Когда я провожу документ, открывается форма документа созданного на основании. Если я еще раз нажму проведение, то снова откроется форма документа созданного на основании. И так до бесконечности.
А мне нужно, если форма уже открыта, то новую не открывать. Получается так я не могу сделать?
(6) В этом и проблема. Я указываю ключ уникальности:
Но, ФормаДМ.Открыта() - ложь.
Хотя через отладчик я вижу, что ФормаДМ.КлючУникальности = "Уникальность", как я и указывал.
ДокументДМ.ПолучитьФорму("ФормаДокумента",ЭтотОбъект.ПолучитьФорму("ФормаДокумента"), "Уникальность");
Но, ФормаДМ.Открыта() - ложь.
Хотя через отладчик я вижу, что ФормаДМ.КлючУникальности = "Уникальность", как я и указывал.
(8) Все верно. Получаю, но не открываю. После получения - открываю, с ключом уникальности.
Но при следующем проведении, все равно откроется новая форма. Хотя предыдущая форма уже открыта.
Т.е. ключ уникальности ничего не решает в этом случае. Действительно, сначала нужно записать документ, а после этого уже пользоваться ключом уникальности.
Но при следующем проведении, все равно откроется новая форма. Хотя предыдущая форма уже открыта.
Т.е. ключ уникальности ничего не решает в этом случае. Действительно, сначала нужно записать документ, а после этого уже пользоваться ключом уникальности.
ФормаДМ = ДокументДМ.ПолучитьФорму("ФормаДокумента",ЭтотОбъект.ПолучитьФорму("ФормаДокумента"), "Уникальность");
То есть в ДокументДМ.ПолучитьФорму в качестве владельца во втором параметре вы передаете еще не открытую форму ЭтотОбъект.ПолучитьФорму("ФормаДокумента")
Это вообще законно? :)
Кроме того проведение насколько я в курсе автоматически выполняется в транзакции, не думаю что для многопользовательской системы было бы хорошей мыслью затягивать транзакцию на время пока пользователи поработают с формами и будет собрана какая-то информация с клиентов... Поэтому 1с расположила обработку проведения в общем модуле документа, а значит выполняется она на сервере...
Пишу в обработке проведения
...ДокументДМ.ПолучитьФорму
...ДокументДМ.ПолучитьФорму
Исходя из вышеизложенного возникает вопрос, а не троллинг ли вообще вся эта тема...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот