Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 02:53

Неявная запись при выполнении команды объекта

Автор vitasw, 16 дек 2015, 16:06

0 Пользователей и 1 гость просматривают эту тему.

vitasw

Наверное я прогулял этот урок...

УФ, управляемый интерфейс(не такси), форма документа.
У документа, как объекта метаданного есть команда объекта:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОбщиеПроцедуры.ПараметрПолучен(ПараметрКоманды);
КонецПроцедуры

Общий Модуль ОбщиеПроцедуры(сервер, вызов сервера):

Процедура ПараметрПолучен(ПараметрКоманды) Экспорт

    аа=56;   

КонецПроцедуры


В открытой форме документа меняю любой реквизит объекта (форма и объект становятся модифицированными) и вызываю команду (текст выше). В общем модуле я уже имею записанную ссылку, т.е. в момент вызова команды объекта происходит неявная запись самого объекта.
Вопрос: это так и должно быть? или это как-то регулируется какими-то настройками.

Спасибо.

TrigubovichL

Полагаю Вы совершенно уверены, что до вызова не записывали объект.

Если так, то есть такой метод: "УстановитьСсылкуНового()", который возможно вызывается при создании Вашего документа.
Обычно используется чтобы создать и записать в базу "подчиненные" справочники, документы, регистры и т.п., и занести в них эту ссылку до того, как будет записан сам объект.

vitasw

Цитата: TrigubovichL от 22 дек 2015, 11:45Если так, то есть такой метод: "УстановитьСсылкуНового()", который возможно вызывается при создании Вашего документа.

нет, не используется. Больше вообще нет никакого кода - это тестовая база.
Вопрос заключается не в том как обойти, а в том настраивается ли этот функционал или он жестко прописан на уровне платформы. Мне подобное поведение как раз и необходимо, но будет очень неприятно, если я где-то выключу эту настройку и объект перестанет записываться перед выполнением команды.

TrigubovichL

Создайте может подписку на событие "перед записью объекта" (для Вашего документа).
Поставьте в процедуре-обработчике точку останова и если там отладка остановится - гляньте стек вызовов.
А если туда отладчик не попадет - значит документ еще не записан.

vitasw

Зачем мне все это? Вы вообще читаете мои сообщения? или просто пытаетесь продемонстрировать свои знания? Мне нужна информация только о том, есть ли отдельная галочка, отвечающая за подобное поведение или нет. ВСЕ!

TrigubovichL

Просто в конфигурациях с которыми я сталкивался, для команды обычно указывался тип параметра. Например ДокументСсылка.ХХХХ

И когда человек нажимал на кнопку, соответствующую этой команде, а документ был модифицирован, на экране появлялся вопрос о необходимости записать документ. И не заметить такого сообщения было нельзя.

Если же у Вас такого вопроса не появляетя, то я не верю, что документ записан.
А то что ссылка не пустая значит лишь то, что Вы его когда-то раньше записали.

vitasw

Цитата: TrigubovichL от 22 дек 2015, 12:52Если же у Вас такого вопроса не появляетя, то я не верю, что документ записан.
Ну блин! Фома-неверующий! В прикрепленном файле база.

Цитата: TrigubovichL от 22 дек 2015, 12:52А то что ссылка не пустая значит лишь то, что Вы его когда-то раньше записали.
Если вы внимательно прочитаете мои сообщения, то речь идет об объектах уже существующих. Никто не говорил об новых объектах, речь идет только о тех объектах которые уже существуют в базе, но которые в форме объекта модифицируются:
Цитата: vitasw от 16 дек 2015, 16:06В открытой форме документа меняю любой реквизит объекта (форма и объект становятся модифицированными)

Для новых объектов - да, вопрос платформой генерится, а для существующих - нет.
Добавлено: 22 дек 2015, 13:51


В принципе, разобрался почему так происходит и по большому счету, это настраивается.

AleksSmirnov

Цитата: vitasw от 22 дек 2015, 13:46В принципе, разобрался почему так происходит и по большому счету, это настраивается.

Подскажите как это настраивается?

Похожие темы (5)

Рейтинг@Mail.ru

Поиск