Вход | Регистрация


1С:Предприятие ::

Метки: 

Как проверить дату записи в справочнике программно?

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

потом в процедуре ПередЗаписью модуля объекта пишете
ДатаЗаписи = ТекущаяДата();


после этого можете проверить эту дату записи в коде. Ну или запросом.
   Ненавижу 1С
 
6 - 26.10.17 - 13:34
(4) нет там ничего по теме
   lodger
 
7 - 26.10.17 - 13:35
если не хочется дербанить типовой справочник - можно сделать независимый периодический РС и подписку на событие записи.
   Fish
 
8 - 26.10.17 - 13:37
(5) А потом пользователь 10 раз откроет справочник и нажмет кнопку "ОК". И увидишь ты только дату последнего изменения.
   Волшебник
 
Модератор
9 - 26.10.17 - 13:37
(8) ну тогда версионирование
   catena
 
10 - 26.10.17 - 13:38
(8)А мы не знаем, что автору нужно, может быть именно это.
 
 Рекламное место пустует
   Ненавижу 1С
 
11 - 26.10.17 - 13:40
(8) ну хорошо
Если ЭтоНовый() Тогда
   X Leshiy
 
12 - 26.10.17 - 13:43
(11) Выкрутился!)
   Demanufactyre
 
13 - 27.10.17 - 04:42
(11)Вариант
"Если ЭтоНовый() Тогда"
Не подходит.
(5) Вариант с создание реквизита не плохой, но он тоже не подходит, так как позиции в справочнике уже существуют.

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

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

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



Список тем форума
Рекламное место пустует Рекламное место пустует
Ошибка? Это не ошибка, это системная функция.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует