Имя: Пароль:
1C
1С v8
Измененный документ при открытии
0 LivingStar
 
19.04.13
07:50
Пользователю не нравится что при открытии документа он становится измененным. По закрытию требует сохранить изменения. Можно ли для документа как то задать, что бы он становился измененным только если в нем произвели какие то изменения?
1 Wobland
 
19.04.13
07:50
нужно
2 LivingStar
 
19.04.13
07:52
(1) а как это сделать?
3 al_zzz
 
19.04.13
07:52
Какие-то реквизиты документа изменяются в процедуре "ПриОткрытии()". Я бы через отладчик поискал какие.
4 Wobland
 
19.04.13
07:53
(2) избавиться от изменения данных объекта при открытии
5 LivingStar
 
19.04.13
07:54
(3)

Процедура ПриОткрытии()
   Организация = Справочники.Организации.НайтиПоНаименованию("ПиН");
   ЗаполнениеПолейШапки(Ложь);
КонецПроцедуры
6 LivingStar
 
19.04.13
07:54
(4) а где их тогда нужно заполнять?
7 zak555
 
19.04.13
07:55
(6) в передОткрием
8 Wobland
 
19.04.13
07:56
(5) не нужно их заполнять, это работа пользователя
9 LivingStar
 
19.04.13
07:56
(7) Ок, понял! Спасибо!
10 LivingStar
 
19.04.13
07:57
(8) ну организацию например, сделали замечание что это нужно заполнять программно, если она одна
11 zak555
 
19.04.13
07:57
ПередОткрытием
12 zak555
 
19.04.13
07:57
(8) а как быть к реквизитами, заполняемыми по умолчанию ?
13 Wobland
 
19.04.13
07:58
если ЭтоНовый при создании на сервере
14 Михаил 1С
 
19.04.13
08:00
(13) Можно даже не на сервере - не важно.
15 Михаил 1С
 
19.04.13
08:01
(11) Это вообще не важно - ПередОткрытием или ПриОткрытии. Хотя обычно делают как раз ПриОткрытии.
Но делают так, как написал Вобланд! - Если ЭтоНовый()... вот тогда только.
16 zak555
 
19.04.13
08:04
(15) БП 2.0 делает заполнение нового документа в процедуре ПриОткрытии -- итог форма только что открытого документа имеет флаг модифицированности

если бы 1с процедуру заполнения засунула в ПередОткрытием -- флага не было
17 Wobland
 
19.04.13
08:09
(16) не боги БП 2.0 писали. я как-то в своей самописке использовал снятие флага модифицированности для чего-то такого. видать, нашлась необходимость ;)
18 Михаил 1С
 
19.04.13
08:12
(16) Возможно, что ты и прав. Только зачем это делать? Чтобы всех обмануть?
В примере автора он вообще делает крутую ошибку - при каждом открытии документа заполняется шапка заного, при этом сотрутся все изменения пользователя, которые он делал до этого и сохранил. Уж хорошо будет предупредить его, что что-то поменялось.

В примере автора надо делать проверку на новый.

Хотя, спасибо, что сказал, буду знать.
19 Wobland
 
19.04.13
08:15
(17) вру. я принудительно взводил

&НаКлиенте
Процедура Загрузить(Команда)
   Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Если Диалог.Выбрать() Тогда
       Модифицированность=Истина;
   КонецЕсли;
КонецПроцедуры
20 Михаил 1С
 
19.04.13
08:18
(19) Я тоже ставил принудительно этот флаг - когда из формы документа заполнял значения Регистра сведений. Поля ввода были настроены на реквизиты Формы, а ПослеЗаписи шла запись из них в регистры. Но надо было, чтобы пользователь нажал на Запись, для этого я ставил модифицированность.
21 banco
 
19.04.13
08:22
(0) думаю правильнее в обработчике ОбработкаЗаполнения в модуле объекта
22 zak555
 
19.04.13
08:23
(18) я был невнимателен, что он каждый раз заполняет
я-то думал, что он говорит про "первый" раз =)
23 zak555
 
19.04.13
08:24
(19) (20) в приСозданииНаСервере перенесите
24 Михаил 1С
 
19.04.13
08:40
(21) Можно и так. Но он не всегда вызывается, не во всех документах он есть.
25 Михаил 1С
 
19.04.13
08:40
(22) Понятно.
26 Михаил 1С
 
19.04.13
08:42
(23) Не, не, у меня случай не создания нового, это я уже говорил про обычную работу с формой документа, а она же на клиенте открывается.
27 Serg_1960
 
19.04.13
08:49
(5) Мда... ТС, ты бы проверил сначала "А надо ли?" Надо ли заполнять организацию всякий раз, когда документ открывается? Эххх...
28 Михаил 1С
 
19.04.13
08:56
(27) Да он уже перестал читать нашу ветку, обрадовался совету про ПередОткрытием()...
Эхх, влетит он :)
29 LivingStar
 
19.04.13
09:21
(27) Правильное решение делать ПриОткрытии() и проверять ЭтоНовый(), заполнять только если документ создается !!!
30 Wobland
 
19.04.13
09:25
(29) на здоровье
31 LivingStar
 
19.04.13
09:42
спасибо!
32 banco
 
19.04.13
09:54
(24) в каком смысле не всегда вызывается и не во всех документах есть?
не вызывается только при копировании, но для этого есть обработчик ПриКопировании.
33 ICWiner
 
19.04.13
10:07
8 лет опыт, а такое кодят...
Организация = Справочники.Организации.НайтиПоНаименованию("ПиН");
Это самописка? Если нет, то у пользователя укажи по умолчанию организацию.
34 ICWiner
 
19.04.13
10:08
(32) А обработка заполнения случайно не для ввода на основании?..
35 banco
 
19.04.13
10:21
(34) при вводе на основании, а также при интерактивном вводе нового.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший