Имя: Пароль:
1C
1С v8
Как проверить дату записи в справочнике программно?
0 Demanufactyre
 
26.10.17
13:11
Здравствуйте! Запутался в одном вопросе. Как проверить дату записи в справочнике программно?
1 Волшебник
 
модератор
26.10.17
13:12
Её нужно сохранить.
Или долго и муторно искать по журналу регистрации.
2 Demanufactyre
 
26.10.17
13:15
(1) Записи справочника не хранят даты?
3 Ненавижу 1С
 
гуру
26.10.17
13:16
(2) а записи документов хранят что-ли?
4 Demanufactyre
 
26.10.17
13:17
(3) там вроде есть МоментВремен. Но это не точно.
5 h-sp
 
26.10.17
13:33
(4) заводите в справочнике реквизит ДатаЗаписи тип дата

потом в процедуре ПередЗаписью модуля объекта пишете

ДатаЗаписи = ТекущаяДата();


после этого можете проверить эту дату записи в коде. Ну или запросом.
6 Ненавижу 1С
 
гуру
26.10.17
13:34
(4) нет там ничего по теме
7 lodger
 
26.10.17
13:35
если не хочется дербанить типовой справочник - можно сделать независимый периодический РС и подписку на событие записи.
8 Fish
 
26.10.17
13:37
(5) А потом пользователь 10 раз откроет справочник и нажмет кнопку "ОК". И увидишь ты только дату последнего изменения.
9 Волшебник
 
модератор
26.10.17
13:37
(8) ну тогда версионирование
10 catena
 
26.10.17
13:38
(8)А мы не знаем, что автору нужно, может быть именно это.
11 Ненавижу 1С
 
гуру
26.10.17
13:40
(8) ну хорошо

Если ЭтоНовый() Тогда
12 X Leshiy
 
26.10.17
13:43
(11) Выкрутился!)
13 Demanufactyre
 
27.10.17
04:42
(11)Вариант
"Если ЭтоНовый() Тогда"
Не подходит.
(5) Вариант с создание реквизита не плохой, но он тоже не подходит, так как позиции в справочнике уже существуют.

Часть кода такая:
Если ЭтоНовый() Тогда
Кое-что добавляется;
Иначе Если НЕ ЭтоНовый() Тогда
Кое-что убирается
КонецЕсли;
КонецЕсли;

И надо еще что то похожее вот на это:
Если ДатаЗаписи < 27.10.2017 Тогда
Делать что-то другое;
КонецЕсли;
14 igorPetrov
 
27.10.17
05:49
(13) Вот, что за бред. Если хочешь, что бы помогли - озвучь задачу нормально.
15 Demanufactyre
 
27.10.17
06:04
(14)Я извиняюсь. Я думал, что запись все-так хранит дату и там будет что то на подобие ДатаЗаписи. Оказалось все на много сложнее.
В принципе задачу можно закрывать, я привязался к номеру документа.
16 Рэйв
 
27.10.17
06:10
(0)
Дарю.

//--------------
Функция ДатаСозданияСсылки(Ссылка) Экспорт
    
    Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
        Возврат Неопределено;
    КонецЕсли;    
        
    Момент = Дата(1, 1, 1);
    Попытка
        
        УИ = Строка(Ссылка.УникальныйИдентификатор());
        УИ = ВРег(СтрЗаменить(УИ,"-",""));
        
        Если Сред(УИ, 13, 1) = "1" Тогда
            
            Значение16 = ВРег(Сред(УИ, 14, 3) + Сред(УИ, 9, 4) + Сред(УИ, 1, 8));
            Цифры16    = "123456789ABCDEF";
            Значение10 = 0;
            Длина16    = СтрДлина(Значение16);
            
            Для Ном = 1 По Длина16 Цикл
                Значение10 = Значение10 + Pow(16, Длина16-Ном)*Найти(Цифры16, Сред(Значение16, Ном, 1));
            КонецЦикла;
            
            Значение10 = Значение10/10000000;
            Момент     = Дата(1582, 10, 15, 3, 0, 0) + Значение10;
            
        КонецЕсли;
        
    Исключение
    КонецПопытки;
    
    Возврат Момент;
        
КонецФункции
17 craxx
 
27.10.17
08:11
(13) Вопрос-то в чем? чего хочется-то от даты последней записи?
18 Wirtuozzz
 
27.10.17
08:23
(0) Путаться не нужно, нужно включить механизм версионирования данных и все. Будет видно, кто, когда, как менял тот или иной документ/справочник.
19 Wirtuozzz
 
27.10.17
08:25
(16) Офигеть, а это функция из типовой конфы или авторская разработка? если делал сам, то подскажи плиз, как разобрался как составляется GUID.
20 Fish
 
27.10.17
09:01
(19) Это неработающая (точнее некорректно работающая) функция :))
21 Fish
 
27.10.17
09:06
+(20) Т.е. дату из гуида она вытаскивает, но корректность этой даны никто не гарантирует.
22 _Дайвер_
 
27.10.17
09:12
(21) Почему? ГУИД меняется разве?
23 Рэйв
 
27.10.17
09:15
(19)Не, не сам. Гдето слямзил, уже не помню где:-)
(20)Да, плюс минус пару часов может приврать помоему , но дата верная:-)
24 2dolist
 
27.10.17
09:20
Может версионирование? Там ещё и все изменения видно будет. И откатить, если надо, можно. Конечно, смотря какой справочник, а то может и базу раздуть сильно.
25 2dolist
 
27.10.17
09:20
по версионированию наверняка ещё и данные можно подтянуть запросом.
26 Fish
 
27.10.17
09:24
(22) Гуид не меняется, но корректность даты никто не гарантирует.
(23) Только, если УИД был присвоен автоматически. По просторам интернета гуляет такая цитата, приписываемая Нуралиеву (оригинала не нашел):
"Уникальный идентификатор может быть и не сгенерирован при создании объекта, а взят из другой информационной системы. Не стоит его пытаться использовать в каком-либо качестве, кроме того, для которого он предназначен.
(с)
27 Рэйв
 
27.10.17
09:24
А я так и не понял почему запись реквизита при создании не кашерно для ТС.
28 2dolist
 
27.10.17
09:31
(27) так есть уже ж регистр. Версионирования. Прям так и называется. ВерсииОбъектов. Дополнительным плюсом является возможность просмотреть все версии, кто что менял и когда, откатиться на нужную версию. Ну и не надо ничего допиливать и придумывать.
29 2dolist
 
27.10.17
09:33
Если надо, например, первую или последнюю дату в отчётах доставать, да создайте просто доп реквизиты у номенклатуры, в которые регламентным заданием или подпиской, или как хотите, записывайте нужные данные, которые можно из регистра версий подтянуть без проблем.
30 Рэйв
 
27.10.17
09:38
(26)Ну да. Иначе был бы такой легальный метод в платформе.
31 Serg_1960
 
27.10.17
09:40
(23) Я помню где "где-то слямзил" :))
v8: Фактическая дата создания документа 8.1 ЗУП
32 Рэйв
 
27.10.17
09:42
(31)Не, помоему даже у того, кто слямзил оттуда:-)
33 ASU_Diamond
 
27.10.17
09:45
(28) объем базы после включения версионирования насколько возрастает?
34 Serg_1960
 
27.10.17
09:51
(33) На этот вопрос сложно ответить. Каждый раз когда объект будет записывается - будет создаваться новая запись о версии.
35 Рэйв
 
27.10.17
09:53
(34)Даже если ничего не мялось в самом доке? Ну нафиг. У меня история пишется в сам док и только если изменилось что-то или он был проведен.
36 Serg_1960
 
27.10.17
09:57
(19) "как разобрался как составляется GUID" - слухами земля полнится. Кто-то, где-то, что-то сказал а умные люди намотали на ус :) Сейчас уже всё проще:

"Как формируется GUID?"
http://catalog.mista.ru/public/635159/
37 2dolist
 
27.10.17
09:57
(33) Если только по одному справочнику делать, то не сильно. Ну а вообще, версионирование - вещь супер полезная и удобная. Только не советую по установкам цен её врубать. Есть баг с Format64 при записи данных установок цен для версионирования.
38 Serg_1960
 
27.10.17
10:00
(35) Sorry, но это не комильфо писать историю изменений в сам объект. Методически неверно. Так же, как, например, приклеить стикер с паролем на монитор :)
39 Fish
 
27.10.17
10:02
(35) Открыл проведённый документ, нажал ОК или Записать и закрыть (как делает большинство пользователей) - вот тебе и проведение.
40 Fish
 
27.10.17
10:04
(38) Кстати да, т.к. при удалении объекта теряется и его история, и уже не понять, что такой объект в принципе был.
41 Serg_1960
 
27.10.17
10:15
(39) Сейчас посмотрел, ради интереса по базе: взял 5555 записей документов "Заказ покупателя" и посмотрел сколько записей о своих версиях они создали. 90631 записей! Как мне это теперь развидеть и забыть? :)
42 2dolist
 
27.10.17
10:20
(41) отключить и забыть. А объём какой?
Вообще, если мешает, можно поставить период очистки.
43 Serg_1960
 
27.10.17
10:25
Нет, не мешает. От слова "совсем" :) 1 к 16 - на один документ в среднем 16 версий - просто у меня РИБ и туда пишется версия всякий раз, когда в базы узлов мигрирует измененный объект.
44 Рэйв
 
27.10.17
10:51
(38)Если удалили- значит и не надо было знать что там за объект:-) Мне история нужна чисто для утилитарных целей.Чтобы знать кого бухам грызть, если что-то накосячилось.Потому что если им не дать виноватого, то виноватым буду я:-)
45 catena
 
27.10.17
10:51
У меня логи выгружаются в другую базу, только до 1 мес хранятся в рабочей базе. Но мне их регламентно положено хранить.
46 Рэйв
 
27.10.17
10:52
+(44)А текст в реквизите хранить все таки как-то разумнее, чем городить целый регистр
47 Fish
 
27.10.17
10:56
(44) Так так ты быстрее попадёшь в такую ситуацию: раз объекта, в котором накосячили, уже нет, то нет и виновного, кроме тебя :))
48 Рэйв
 
27.10.17
10:58
(47)Так физически удалить никто кроме прогеров прав не имеет.Так что если объектудален совсем, то виноватых искать и не надо:-)
49 catena
 
27.10.17
11:05
(48)хм... А вы перед удалением проверяете лично все объекты? У меня, если "удалилосьнужноепростотакпометкуудаленияпоставиличтобывглазанебросалось" - виноват пользователь.
50 Рэйв
 
27.10.17
11:10
(49)Да пометку удаления пусть хоть заставятся.Все пишется в истории, кто когда поставил, кто снял. Возникнуь вопросы- сразу выкатим отчет под объекту. А вот физически удалить вместе с историей - это только я со товарищи.
51 catena
 
27.10.17
11:14
(50)Ну. Сегодня пользователь поставил пометку, завтра удалили, послезавтра утверждают, что вот тут у них была лошадь.
52 Рэйв
 
27.10.17
11:16
(51)Мы помеченные на удаление не удаляем даже до обрезки. Потому как база немаленькая и этот номер просто не проворачивается.Вернее может и проворачивается но еще ни у кого не хватило нервов дождаться проверки ссылочной целостности на 250 гигах:-)
Так что как пометили- так все и болтается пока в новом году не начинаем все разать
53 ildary
 
27.10.17
11:28
(33) в версионировании есть статистика по занимаемому пространству. По моим ощущениям - версии весят копейки (правда срок хранения максимум полгода).
54 Serg_1960
 
27.10.17
12:25
(53) Ваши ощущения субъективны :) Сам регистр - да, весит мало. Потому что весь "груз" версий - в хранилище. А в регистре версий - только ссылки.
55 Fish
 
27.10.17
13:15
(52) Ну это у вас так. А у нас помеченные на удаление регламентным заданием ежедневно чистятся.
56 Злопчинский
 
27.10.17
22:10
Версионирование это понятно.
Но нафига дата когда создан элемент справочника? То есть есть у нас 50 тыс однотипных записей. И зачем знать когда кскаято из тысяч однотипных записей была создана?
57 Wirtuozzz
 
27.10.17
22:39
(21) Да это все равно круто! Я думал что гуид это набор символов. а оказывается там полезная инфа есть
58 Wirtuozzz
 
27.10.17
22:39
(23) Красавчик, просто красавчик!
59 ildary
 
28.10.17
09:25
(56) например для подсветки новых товаров в списке.
60 ildary
 
28.10.17
09:26
(54) согласен. Жалко что нельзя померять хранилище. Есть вообще способы работы с ним? Для базопузомерства.
61 Злопчинский
 
28.10.17
10:28
(59) бяка, ну и как потом штатно сделать например типа Прайс по новинкам, появившимся в обороте за последний месяц? Или продажи по ним посмотреть?