Как получить/установить дату создания документа 1С?
Как в 1С определить дату создания документа, используя запрос? Именно дату создания, а не дату документа.
Мне нужно выгружать документы во внешнюю систему, с 1С я почти не знаком, но для меня стало сюрпризом, что нет такого стандартного поля, которое можно получить в запросе.
Если такого поля нет — как можно подставлять дату создания при создании документа пользователем? Я попытался почитать форумы, но ответа не нашел, буду рад любой помощи!
Как узнать когда был создан документ в 1С v8 без журнала регистрации
Иногда необходимо знать дату создания документа, ошибочно полагать, что поле «Дата» содержит именно дату создания, тут можно проанализировать идентификатор объекта:
Функция ДатаСозданияСсылки ( Ссылка )
// любая ссылка хранит в себе уникальный идентификатор
ГУИД = Ссылка . УникальныйИдентификатор ();
// идентфикатор хранит в себе дату и время создания
Строка16 = Сред ( ГУИД , 16 , 3 ) + Сред ( ГУИД , 10 , 4 ) + Сред ( ГУИД , 1 , 8 );
Разрядность = СтрДлина ( Строка16 );
ЧислоСек = 0 ;
// время создания хранится в секундах
// от 15 октября 1582 года
// в шестнадцатиричной системе
Для Позиция = 1 По Разрядность Цикл
ЧислоСек = ЧислоСек +
Найти ( «123456789abcdef» , Сред ( Строка16 , Позиция , 1 ))*
Pow ( 16 , Разрядность — Позиция );
КонецЦикла;
ЧислоСек = ЧислоСек / 10000000 ;
// вычисляем смещение от начальной точки
датаТ = Дата ( 1582 , 10 , 15 , 04 , 00 , 00 ) + ЧислоСек ;
// составляем только дату
датаТ = Дата ( Год ( датаТ ), Месяц ( датаТ ), День ( датаТ ), 00 , 00 , 00 );
Возврат датаТ ;
Можно ли в 1с узнать кем был создан документ и когда
Если документ создан обработкой и в модулях документа не предусмотрено нештатных «штучек» для оставления следов, тогда НИКАК.<br>А чем не устраивает журнал регистрации? Есть все, что нужно: кто, когда, с какого компьютера.
Спасибо. Разобрался с журналом регистрации.
Читают тему:
Мероприятия
- Где купить СОФТ
- Вакансии фирм-партнеров "1С"
- Центры Сертифицированного Обучения
- Интернет курсы обучения «1С»
- Самоучители
- Учебный центр № 1
- Учебный центр № 3
- Сертификация по «1С:Профессионал»
- Организация обучения под заказ
- Книги по 1С:Предприятию
- WWW.1С.ru
- 1С:Предприятие 8
- 1С Отраслевые решения
- Образовательные программы
- 1С:Линк
- 1С:Консалтинг
- 1С:Дистрибьюция
- 1С для торговли
- 1С-Онлайн
- 1С Интерес
- 1С:Образование
- 1С:Торговая площадка
- 1C:Игры
- 1Софт
- ИТС.1C.ru
При использовании материалов активная прямая гиперссылка на перепечатанный материал обязательна.
Редакция БУХ.1С не несет ответственности за мнения и информацию, опубликованную в комментариях к материалам.
Редакция уважает мнение авторов, но не всегда разделяет его.
Дизайн сайта
Мы используем файлы cookie, чтобы анализировать трафик, подбирать для вас подходящий контент и рекламу, а также дать вам возможность делиться информацией в социальных сетях. Если вы продолжите использовать сайт, мы будем считать, что вас это устраивает.
Получение даты создания элемента справочника или документа
Интересно. А если GUID random-based, а не time-based?
(1) Я давно уже использую алгоритм удаления помеченных с «обратной раскруткой» на основе метода получения дат из ссылок и их сортировкой от свежих к более старым, чтобы минимизировать повторные попытки удаления объектов со связями. Прежде чем это сделать я просканировал всю базу на наличие random-based ссылок и их оказалось менее 1%. Кроме того есть задумка использовать поле ВерсияДанных в качестве вспомогательного поля для сортировки, т.к. почти во всех реализациях баз данных это инкрементальное числовое значение, которое говорит нам о том, что элемент был давно или недавно изменен. Проще говоря мы можем выбрать самые «старые» или редко-изменяющиеся элементы базы и поместить их в конец списка на удаление. Это даст нам возможность минимизировать вероятность возникновения новых связей для «свежепомеченных» на удаление объектов, особенно до попадания таких документов в закрытый период.
каким алгоритмом из Гуид получаете дату?
(3) В принципе найти данный алгоритм не сложно, на многих форумах и тематических сайтах он есть:
Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);
Для Позиция = 1 По Разрядность Цикл
ЧислоСек = ЧислоСек + Найти(«123456789abcdef»,Сред(Строка16,Позиция,1))*Pow(16,Разрядность — Позиция);