Имя: Пароль:
1C
1С v8
Как проверить изменен ли документ управляемое приложение 1с 8.3
0 Eeelena
 
12.03.18
14:24
Здравствуйте.

Как проверить изменен ли документ управляемое приложение 1с 8.3?
1 Cyberhawk
 
12.03.18
14:25
Распечатать и сравнить
2 bodri
 
12.03.18
14:25
(0) по подробней?
3 Eeelena
 
12.03.18
14:28
Ну вот есть метод

ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
Модифицированность (Modified)
Синтаксис:

Модифицированность()
Возвращаемое значение:

Тип: Булево.
Истина - объект изменен; Ложь - в противном случае.

При проведении я проверяю Документ.Модифицированность() , мне возвращается Ложь, хотя я изменила поле
4 Cyberhawk
 
12.03.18
14:30
Футбольное?
5 Eeelena
 
12.03.18
14:31
(4) реквизит)
6 Cyberhawk
 
12.03.18
14:33
См. (2)
7 bodri
 
12.03.18
14:34
(3) проведение происходит после записи объекта, поэтому Ложь
8 bodri
 
12.03.18
14:35
+ к (7) проверять на такое надо перед записью
9 DmitrO
 
12.03.18
14:35
При проведении объект только что записан, поэтому Модифицированность() всегда возвращает Ложь.

Определять изменен ли документ надо в событии формы ПередЗаписью на свойство формы Модифицированность.
10 bodri
 
12.03.18
14:37
(9) курите мат. часть:

ДокументОбъект.<Имя документа>.Модифицированность (DocumentObject.<Имя документа>.Modified)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
Модифицированность (Modified)
Синтаксис:

Модифицированность()
Возвращаемое значение:

Тип: Булево.
Истина - объект изменен; Ложь - в противном случае.
Описание:

Определяет, был ли изменен объект после считывания из базы данных.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Метод не позволяет определить, был ли изменен объект другими пользователями.
Пример:

Если РасходнаяНакладная.Модифицированность() Тогда
    Предупреждение(НСтр("ru = 'Документ был изменен.';"
     + " en = 'Document was changed.'"));
КонецЕсли;
11 Eeelena
 
12.03.18
15:02
(9) сделала переменную тип Булево в процедуре формы Перед записью написала

Изменен=ЭтаФорма.Модифицированность;

как мне теперь передать эту переменную в модуль объекта?
12 Cyberhawk
 
12.03.18
15:05
Передавай в доп. свойствах объекта
13 Mankubus
 
12.03.18
15:32
(11) не надо это делать. Проверяй перед записью в модуле объекта
14 Вафель
 
12.03.18
15:41
а зачем вообще проверять модифицированность в проведении?
15 Cyberhawk
 
12.03.18
15:46
(14) Пардигму обычного приложения и копрокод диалогов в обработке проведения модуля объекта при таком режиме не искоренить )
16 Eeelena
 
12.03.18
18:42
(14) нужно проверить внесены ли изменения, если да то записывать в регистр сведений, а так он делает запись в любом случае
17 Eeelena
 
14.03.18
07:46
решила задачу таким образом:

// В модуле формы &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Если ПараметрыЗаписи.РежимЗаписи = ПредопределенноеЗначение("РежимЗаписиДокумента.Проведение") Тогда // Задать вопрос и поместить ответ в ПараметрыЗаписи ПараметрыЗаписи.Вставить("Ответ",ХХХХХХ); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ,ТекущийОбъект, ПараметрыЗаписи) Если ПараметрыЗаписи.Свойство("Ответ") Тогда ТекущийОбъект.ДополнительныеСвойства.Вставить("Ответ", ПараметрыЗаписи.Ответ); КонецЕсли; КонецПроцедуры // в модуле объекта Процедура ОбработкаПроведения(Отказ, РежимПроведения) Если ДополнительныеСвойства.Свойство("Ответ") Тогда // анализируем ответ и выполняем некоторые действия КонецЕсли; КонецПроцедуры
18 Eeelena
 
14.03.18
07:47
// В модуле формы

&НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Если ПараметрыЗаписи.РежимЗаписи = ПредопределенноеЗначение("РежимЗаписиДокумента.Проведение") Тогда // Задать вопрос и поместить ответ в ПараметрыЗаписи ПараметрыЗаписи.Вставить("Ответ",ХХХХХХ); КонецЕсли; КонецПроцедуры

&НаСервере Процедура ПередЗаписьюНаСервере(Отказ,ТекущийОбъект, ПараметрыЗаписи) Если ПараметрыЗаписи.Свойство("Ответ") Тогда ТекущийОбъект.ДополнительныеСвойства.Вставить("Ответ", ПараметрыЗаписи.Ответ); КонецЕсли; КонецПроцедуры

// в модуле объекта Процедура ОбработкаПроведения(Отказ, РежимПроведения) Если ДополнительныеСвойства.Свойство("Ответ") Тогда // анализируем ответ и выполняем некоторые действия КонецЕсли; КонецПроцедуры
19 Cyberhawk
 
14.03.18
09:01
Достаточно ключ добавить, значение у тебя нигде не анализируется
20 Обработка
 
14.03.18
09:05
(0) Мне кажется вы 5-ое колесо прикручиваете к авто...
21 lodger
 
14.03.18
09:18
(20) скоро до 18 колес дело дойдет. и тогда пойдут нормальные коммерческие грузоперевозки!