Цитата: item от Сегодня в 00:35Не проверял, но ИД базы должен быть зашит в ИД обьекта.Проверил, не зашит.
Цитата: sau от Вчера в 21:48Если база распределеннаяДа я вот тоже посмотрел повнимательнее:
Процедура Глобальная_ПриОткрытии(Конт) //Formex
глИзначальныйРежимОткрытияФормы = Конт.Форма.ТолькоПросмотр();
глИзначальныйПараметрФормы = Конт.Форма.Параметр;
КонецПроцедуры
//
Процедура ПослеОткрытия(Конт)
ТекущийРежимОткрытияФормы = Конт.Форма.ТолькоПросмотр();
Если (ТекущийРежимОткрытияФормы = 1) и (глИзначальныйРежимОткрытияФормы = 0) Тогда // форму перевели в режим просмотра
ТекущийПараметрФормы = Конт.Форма.Параметр;
Если ТекущийПараметрФормы = глИзначальныйПараметрФормы Тогда //убедимся, что ПриОткрытии не поменял Форма.Параметр()
Если СтатусВозврата() <> 0 Тогда // не бывает, иначе ПослеОткрытия не сработает, но посдтрахуемся
ТипКонтекста = глВернутьТипКонтекста(Конт);
Если (ТипКонтекста = "Справочник") или (ТипКонтекста = "Документ") Тогда
Если Конт.Выбран() = 1 Тогда
ТекОбъект = ?(ТипКонтекста = "Справочник", Конт.ТекущийЭлемент(), Конт.ТекущийДокумент());
ОткрытьФорму(ТекОбъект, глИзначальныйПараметрФормы, 1);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Цитата: item от 04 апреля 2026, 12:48Надо работать с ПриОткрытииФормыДокументаО, хорошо. Возможно что это самый рабочий вариант. Посмотрю в эту сторону. Справочники и форму операции - надо будет подумать.
Процедура ПриОткрытииФормыДокумента(ФСО, ИдВида, ИдОбъекта, ИдЖурнала, п4, ИдКопии, ИтТекущего, ВводНаОсновании, ИдВидаОснования, ТолькоПросмотр, п10, п11, п12, п13, ПараметрФормы) // предопределенная формекс
Перем Объект, ВидОбъекта, МетаТип, ДатаЗапретаРедактирования, Заголовок;
глОтладка("ПриОткрытииФормыДокумента:" + ИдВида + ":" + ИдОбъекта);
Если ИдВида = 0 Тогда // хз, но вдруг
Возврат;
ИначеЕсли ИдОбъекта = 0 Тогда // новый объект
Возврат;
ИначеЕсли ТолькоПросмотр = 1 Тогда
Возврат;
КонецЕсли;
// определение объекта
СписокВнутр = ЗначениеИзСтроки("{""СписокЗначений"",{}}");
СписокВнутр.ДобавитьЗначение("O"); // O - метка документа
СписокВнутр.ДобавитьЗначение("0");
СписокВнутр.ДобавитьЗначение("0");
СписокВнутр.ДобавитьЗначение("0");
СписокВнутр.ДобавитьЗначение("0");
СписокВнутр.ДобавитьЗначение("0");
СписокВнутр.ДобавитьЗначение(Формат(ИдВида, "Ч10") + Формат(ИдОбъекта, "Ч10") + " ");
ЗначениеВнутр = "{" + СписокВнутр.ВСтрокуСРазделителями() + "}";
Объект = ЗначениеИзСтрокиВнутр(ЗначениеВнутр);
Если ТипЗначенияСтр(Объект) <> "Документ" Тогда
глОтладка("ПриОткрытииФормыДокумента: не определён объект! <" + Объект + ">", "!");
Возврат;
КонецЕсли;
ВидОбъекта = Объект.Вид();
Заголовок = "";
ДатаЗапретаРедактирования = глДатаЗапретаРедактирования(ВидОбъекта, Заголовок);
Если Объект.ДатаДок <= ДатаЗапретаРедактирования Тогда
КонтПросмотра = ПараметрФормы;
ОткрытьФорму(Объект, КонтПросмотра, 1);
//Сообщить("Документ открыт только для просмотра!!!");
Если ТипЗначенияСтр(КонтПросмотра) = "ГрупповойКонтекст" Тогда
КонтПросмотра.Форма.Заголовок("[" + Заголовок + " по " + ДатаЗапретаРедактирования + "]", 1);
КонецЕсли;
ФСО = 0;
КонецЕсли;
// не оставляет записей в журнале регистрации
КонецПроцедуры //ПриОткрытииФормыДокумента
Цитата: trad от 03 апреля 2026, 21:58Блокировка(1)Блокировка(1) - там будут нюансы, связанные с тем, что открытую форму операции она считает блокировкой документа и наоборот. Плюс открытия форм с меткой (несколько к одному объекту). В целом, возможно рабочий вариант.
Цитата: item от 04 апреля 2026, 00:34Форма.ТолькоПросмотр()Форма.ТолькоПросмотр() будет давать 1 в обоих случаях и если форма изначально была открыта в режиме просмотра и если ПриОткрытии для формы был установлен флаг Форма.ТолькПросмотр(1), а это, как я писал выше, может быть 2 большие разницы.