Имя: Пароль:
1C
 
Текущая дата при создании нового документа
Ø (Волшебник 12.02.2024 18:38)
0 as303
 
12.02.24
14:47
Добрый день, добавил реквизит "ДатаСоздания" (тип дата и время соответственно) в документе Реализация товаров и услуг
Добавил реквизит на форму + убрал доступность для редактирования
Подскажите, как записать дату при создании документа, так чтобы при редактирование документа она не перезаписывалась, а осталось той, что была при создании. Спасибо
1 PLUT
 
12.02.24
14:51
(0)

Чтобы выяснить новый объект или нет, необходимо использовать конструкцию вида:

Параметры.Ключ.Пустая();
Если объект записан в базу данных, он содержит ссылку на объект — Ключ. Если ключ пустой- объект новый.

©пижженно с тырнета
2 as303
 
12.02.24
14:54
(1) Спасибо Вам огромное
3 AlexeyKh
 
12.02.24
15:08
самый простой вариант, просто проверяй заполненность ДатаСоздания, если Пустая - заполняешь,
в дальнейшем при открытии формы документа она уже будет заполнена и не будет перезаполняться.

пример кода  в событии формы, ПриСозданииНаСервере

Если Не ЗначениеЗаполнено(Объект.датаСоздания) Тогда
	Объект.датаСоздания = ТекущаяДата();
КонецЕсли;
4 mikecool
 
12.02.24
15:09
(3) минус 5 баллов, для старых документов, у которых не была заполнена дата - будет вранье
5 PR
 
12.02.24
15:16
(1), (3) Вы серьезно? Что за бред?

Правильно делать заполнение в обработчиках ОбработкаЗаполнения и в ПриКопировании

Единственно, если все-таки дата создания — это не когда начал создавать новый документ, а когда новый документ стал записывать, то тогда правильно делать заполнение в обработчике ПередЗаписью, в том случае, если Ссылка еще пустая

Все в модуле объекта конечно же
6 AlexeyKh
 
12.02.24
15:23
(4) так при добавлении нового реквизита
необходимо написать обработку заполнения ДатыСоздания
а дату брать из самой Ссылки документа, там как раз кодируется дата создания ссылки
7 AlexeyKh
 
12.02.24
15:25
вот вопрос для размышления -  а зачем вообще добавлять ДатуСоздания? если ее можно получить из Ссылки?
8 Волшебник
 
12.02.24
15:25
(6) Нельзя извлекать дату из ссылки, это моветон
9 PR
 
12.02.24
15:31
(7) Хочешь я тебе создам документ, где датой ссылки будет 3000 год?

Во-первых, это недостоверно
Во-вторых, как правильно заметил Волшебник, моветон
В-третьих, попробуй получи это в запросе
10 AlexeyKh
 
12.02.24
15:42
(9) "(7) Хочешь я тебе создам " - так через Ж.. можно все что угодно создать!

речь была о ссылке созданной типовым/платформенным механизмом

и сама по себе ДатаСоздания - мало информативна
тем более что ее так же можно "подредактировать"

пусть уже сразу, автор темы, включает механизм ИсторияИзменений
там хотя бы информативности больше.
11 PLUT
 
12.02.24
15:44
(5) а в (1) где бред?

про обормотчики ни слова, пусть (0) сам думает куда эту проверку на "ЭтоНовый()" присунуть
12 PR
 
12.02.24
15:49
(10) Не надо вот этого всего "через Ж.. можно все что угодно создать"
Еще раз, дата создания в ссылке — это недокументированный и негарантированный способ
И зачем вырезать аппендицит паяльной лампой через Ж.. — не очень понятно, разве что только кому-то больше нравится стоя и в гамаке
А правильно для этого заводить реквизит и не компостировать никому мозг своими копроидеями
13 PR
 
12.02.24
15:50
(11) Бред в том, что не нужно никакой проверки на ЭтоНовый делать
14 Волшебник
 
12.02.24
15:51
(10) реквизит можно извлекать из ИсторияИзменений, но зачем, если достаточно присвоить реквизит один раз при создании объекта и больше не менять? Потушите паяльную лампу...
15 olegves
 
12.02.24
15:57
(5) если делать в модуле объекта, тогда вместо ТекущаяДата() надо использовать ТекущаяДатаСеанса()
16 AlexeyKh
 
12.02.24
16:02
ну реквизит, так реквизит
тем более что в типовых документах их (дат) вообще нескольо
Дата документа,
Дата оригинала,
Дата входящая,
и др.
17 mikecool
 
12.02.24
16:05
(13) уточни - где не надо делать? в обормотке заполнения?
18 PR
 
12.02.24
16:07
(15) Не если, а всегда
19 PR
 
12.02.24
16:08
(17) В обработчиках ОбработкаЗаполнения и ПриКопировании
20 PR
 
12.02.24
16:10
+(19) В принципе, конечно, можно и там делать, потому что вдруг кто-то использует метод Заполнить для записанного документа
Но это уже, конечно, совсем высший пилотаж и душнилово
Но да, можно и это предусмотреть, тогда нужно проверять
21 PLUT
 
12.02.24
16:22
(19)
и непонятно, что (0) хотел

ДатаСоздания - ясно понятно, что это дата создания объекта (ну типа первый раз записали в базу)? или это дата нажатия на кнопку Добавить/копировать в журнале документов??

а то, как советует в (19)  пользователь нажал в пятницу скопировать - в обормотке ПриКопировании текущая дата. ушел домой. нажал кнопку записать в понедельник...

"дата создания" в пятницу, событие добавления документа в журнале регистрации (и в истории изменений, если включена) - в понедельник
22 PR
 
12.02.24
16:23
(21) См. (5)
23 PLUT
 
12.02.24
16:24
(22) см (1) и (21)
24 PR
 
12.02.24
16:44
(23) См. (22)