Имя: Пароль:
1C
1С v8
К вопросу о времени записей регистров накопления
0 Гена
 
23.03.23
09:33
Недавно заинтересовался проблемой последней секунды в запросе по остаткам, но так как я полный ноль в языках программирования, то мне нечего делать в тематических ветках по данному вопросу, только в болталке. В своё время Александр I устно (неофициально) выслал Пушкина на юг из Петербурга, намёк на это мы помним по «Онегину»:

Где, может быть, родились вы
Или блистали, мой читатель;
Там некогда гулял и я:
Но ВРЕДЕН север для меня.


Почему понадобились костыли в запросах именно для конца периода, а не для его начала?

Думаю, что многие обращали внимание, как много в той же БП 3.0 дополнительных строк только для конца периода, включающих границу. Мне было также непонятно, почему для другого вида регистра «обороты» таких костылей нет. Ответ, как я и предполагал, зашит внутри языка 1С, ведь понятно, что внутри его лежит другой встроенный язык: SQL
Не буду ссылаться на конкретных авторов, исследовавших время в 1С, их тьмы, и тьмы, и тьмы.

Оказалось, что по запросу:

ДокументОбъект = Документы.ПростойДокумент.НайтиПоНомеру("000000001");

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	КакойТоТамРегистрОстатковОстатки.Номенклатура КАК Номенклатура,
	|	КакойТоТамРегистрОстатковОстатки.КоличествоОстаток КАК КоличествоОстаток
	|ИЗ
	|	РегистрНакопления.КакойТоТамРегистрОстатков.Остатки(
	|			&Период, 
	|			Номенклатура = &Номенклатура) 
	|		КАК КакойТоТамРегистрОстатковОстатки";	
Запрос.УстановитьПараметр("Номенклатура", Справочники.Номенклатура.Товар1);
Запрос.УстановитьПараметр("Период", ДокументОбъект.Дата);
РезультатЗапроса = Запрос.Выполнить();


платформа выполняет свой такой запрос на стороне базы данных (выбрал главное):

WHERE T4._Period >= @P5 AND T4._Period < @P6 AND T4._Active = 0x01 AND ((T4._Fld27RRef = @P7))

Видно, что для начала периода @P5 стоит условие >=, а вот для конца периода @P6 строгое <

По моей логике (если не прав – поправьте) 1С передаёт платформе ЦЕЛОЕ число для времени, хотя понятно, что в записанном более точном времени регистра могут быть и миллисекунды (только они не отображаются). Это как в экселе в формат ячейки для отображения поставить «без копеек» и 3.14 превратятся в 3.

Если так, то вот это ошибочное изначально условие T4._Period < @P6 напрочь выкидывает целую секунду. Когда программист в запросе предполагает, что он собирает движения и 59-ой секунды конца периода, то на самом деле он сбирает лишь движения < 59-ой секунды.

А вот для другого вида регистра накопления – для «оборотов» совсем другое дело внутри платформы:

WHERE T3._Period >= @P1
AND T3._Period <= @P2


Видно, что здесь берутся движения 59-ой секунды: нестрогое неравенство как <=

Надо было тогда ещё, на заре эпохи 1С сделать одинаково для обоих видов регистра: либо и там, и там «меньше», либо «меньше или равно». Так же одинаково как для начала периода и там, и там стоит одинаковое >=

В результате идёт многолетний костыль. Мы не можем одной записью для всех сдвинуть вперёд/назад на секунду конкретное время: поплывут либо обороты при нормальных остатках, либо обороты будут нормальные, а поплывут остатки.
Отсюда и необходимость в неизбежных дополнительных извращений в переопределении конца периода через опцию включения границы, либо принудительной добавки 1 секунды.

Если не утомил, то можно рассмотреть реальные миллисекунды в записях. Мне это интересно вот почему. Недавно в БП 3.0 появилась возможность для любой бух- отчётности формировать их с переключателем вверху справа: включать / не включать межотчётный период. Это наталкивает меня на мысль что есть возможность проведения новогоднекурантных документов не в 23:59:59 а в 23:59:59 + полсекунды. Сам я не умею смотреть, а кому интересно могут глянуть. И сообщить мне, если не внапряг )

Это может понадобиться тем программистам, кто помогает вести бухгалтерию у пользователей. С 2023 года вступают в силу новые ПБУ  и Минфин настаивает на обязательной переоценке некоторых активов. Причём отражать эту переоценку надо так:
Для 2022 на конец этих проводок нет, а для 2023 на начало есть!

Увидеть это можно на счетах 01 и 02 Именно их и переоценивали чаще всего за полсекунды до НГ.
Вот такой карамболь. Но раз в БП это реализовано, то иначе как внутрисекундным временем записи движений перед 12 ударом новогодних курантов я объяснить не могу.

Хотя можете и не проверять. Это болталка и я как тупой тролль могу себе позволить нести пургу.
2 alexxx961503
 
23.03.23
09:45
https://курсы-по-1с.рф/news/2022-12-28-interyear-accounting-changes/ и вот здесь подробное описание с получением данных в запросе
3 Волшебник
 
23.03.23
09:55
Остатки на 59-ю секунду — это остатки на начало 59-й секунды.

Чтобы получить остатки с учётом движений 59-й секунды, надо запросить остатки на 0-ю секунду следующего дня или на момент времени с ВидГраницы. Включая.

p.s. Клюшечники никак не разберутся в восьмёрке...
4 Гена
 
23.03.23
10:07
Зравствуйте всем. Я разобрался с изначальным ляпом в языке 1С. Меня всё-таки интересуют предновогодние полсекунды, ведь не зря новая сущность МоментВремениСУточнениемПериода ловит цифру 5. У многих пользователей должны были быть новогодние переоценки ОС. Нельзя ли глянуть время записи движений?
В крайнем случае эта опция "межотчётного периода" в последнем релизе БП появилась и в простом доке ручной операции. Если кто-то умеет смотреть время в отладчике - нельзя ли потратить минуту, завести любую операцию с включёнием этого параметра и глянуть время с точностью до долей секунды = верно ли моё предположение, что запись (строго бух!) будет на 23:59:59:500 31 декабря 2022 года?
Спасибо.
6 Гена
 
23.03.23
10:48
Тут попалась:

Функция ПолучитьТекущееВремяВМиллисекундах() Экспорт
	Если JavaScript = Неопределено Тогда
		Попытка
			JavaScript = Новый COMОбъект("MSScriptControl.ScriptControl");
		Исключение
			Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
			Возврат 0;
		КонецПопытки;
		JavaScript.Language = "javascript";
	КонецЕсли;
	Время = JavaScript.Eval("new Date().getTime()");
	Возврат Время;
КонецФункции


Может на её основе как-то сконстролить получение в миллисекундах не текущее время, а время записи?
7 magicSan
 
23.03.23
10:56
(6) РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&МомВрем, Физлицо = &Физик) КАК ВзаиморасчетыСРаботникамиОрганизацийОстатки";
МомВрем = Документы.НачислениеЗарплатыРаботникамОрганизаций.НайтиПоНомеру("00012","31.12.2009 23:59:59");
Запрос.УстановитьПараметр("МомВрем", Новый Граница(МомВрем.МоментВремени(), ВидГраницы.Включая));
8 azernot
 
23.03.23
10:57
(0) ЯННП. Вы что сказать-то хотите?
Ну приняли в своё время разработчики платформы 1С именно такое решение Метод менеджера РН Остатки() и виртуальная таблица Остатки() в запросах - получают остатки на начало переданного параметра (даты, границы, момента времени и т.п.).
Очевидно, что это был их осознанный выбор. У них были свои резоны. Вносить какие-то изменения в этот механизм они не планируют.

Так о чём тут предлагается похоливарить? Попытаться угадать их резоны? Или просто обвинить их в некомпетентности?
9 H A D G E H O G s
 
23.03.23
11:00
(0) так захотели сделать, так сделали, в чем сложность то?

Дата в sql хранится с точностью до секунды, миллисекунд там нету, datetime2(0) там используется.
Ноль в скобочках как бэ говорит это.
Стали использовать datetime2, потому что datetime Microsoft обьявила устаревшим..
10 Волшебник
 
23.03.23
11:05
Миллисекунды в датах проявляются в языке программирования. Если написать в табло выражение

ТекущаяДата()+0.666 - ТекущаяДата()


то в результате получим 0,666
Магия.
11 magicSan
 
23.03.23
11:09
(10) Чот мне думается что компилятор.
12 Гена
 
23.03.23
11:16
(10) Ага, есть. Тогда может просто в модуле прописать
Миллисекунды = (ДатаДок - Дата(31 декабря 23:59:59)) * 1000;
?
Я уже завёл ручной операцией от 31.12.2022 проводку Дт 84 - Кт 02.04 на сумму 100 рублей и убедился, что в ОСВ по году она не попадает, но попадает в то же ОСВ, только с флажком межотчётности )

Тогда куда мне вставить эту строку?
13 Волшебник
 
23.03.23
11:26
(12) Вставьте куда-нибудь...
14 azernot
 
23.03.23
11:27
(12) >Тогда куда мне вставить эту строку?
Гусары молчать! :)
15 Гена
 
23.03.23
11:29
(13) )
Ладно, подожду отклика программиста, которого пользователь замучает вопросом, а на фига я каждый раз для ОСВ баланса 2022 распровожу некоторые новогодние проводки, а для сверки баланса 2023 опять их провожу )
16 azernot
 
23.03.23
11:33
(15) Не поможет вам в этом случае никакие "полмиллисекунды" (даже если такие и существуют). Что бы вы не делали, таблица ОстаткиИОбороты() будет учитывать эти движения.
17 Гена
 
23.03.23
11:39
(16) Посмотреть-то я могу миллисекунды уже записанного документа ОперацияБух или это запрещено Законом1С ?
18 azernot
 
23.03.23
11:42
(17) Я абсолютно не возражаю, смотрите.
Правда я не представляю где и как, а самое главное - для чего, но совершенно не против! :)
19 Волшебник
 
23.03.23
11:46
(18) Считайте, что от меня согласование тоже получено.
20 Гена
 
23.03.23
11:48
(18) Благодарю )
Просто хочется разобраться в алгоритме межотчётности бух проводок. Либо это полсекунды, либо просто новая краска: есть пятно межотчётности = считается межотчётной, нет - не считается.

Да и вообще любопытно, а вдруг вообще любые документы записываются в базу с миллисекундами, а мы это не видим )
Пригодится приблуда для просмотра миллисекунд )
21 H A D G E H O G s
 
23.03.23
11:51
(17) нет. см (9)
22 Serg_1960
 
23.03.23
11:52
(19) Имхо, от методистов 1С тоже получено "одобрямс" после появления ТекущаяУниверсальнаяДатаВМиллисекундах()
23 H A D G E H O G s
 
23.03.23
12:02
ДатаВремя в ИТ - второй по сложности тип данных, после Строк.
Наследие бардака прошлого.
Не надо ничего усложнять и тащить какие-то миллисекунды в дату.
24 Волшебник
 
23.03.23
12:04
(23) Кстати, а как 1С учитывает 60-ю секунду?
https://ru.wikipedia.org/wiki/Дополнительная_секунда
25 H A D G E H O G s
 
23.03.23
12:09
(24) Слава Гейтсу, я этого не знаю. Почему слава - потому что такой проблемы у меня не вставало и значит она не существенна.
26 Волшебник
 
23.03.23
12:11
(25) На всякий случай дай своё согласование, чтобы Гена проверил 60-ю секунду в 1С.
27 H A D G E H O G s
 
23.03.23
12:13
(26) Сначало мы соберем митап в Zoom и хорошенько все обсудим.
28 Гена
 
23.03.23
12:15
(21) Вы второй раз ссылаетесь на целое число хранения даты в скуле.
А для чего тогда вот эта сущность?
https://xn----1-bedvffifm4g.xn--p1ai/wp-content/uploads/2020/11/EventSubscriptions271-pic01-min.png
Из БП 133.17:
Функция ВерхняяГраницаУточненияПериода() Экспорт
    Возврат Pow(10, Метаданные.РегистрыБухгалтерии.Хозрасчетный.ДлинаУточненияПериода) - 1;
КонецФункции
http://downloads.v8.1c.ru/content//Platform/8_3_9_2170/1cv8upd.htm#befed7e3-b616-11e6-a3f7-0050569f678a

Когда реквизит равен 3, секунда разбивается на 999 интервалов. Это как раз миллисекунды.
Ну и зачем это ввели, если в скуле всё равно по Вашим двум постам их принудят к целому?

Разработчики просто резвились после возлияний?
29 Волшебник
 
23.03.23
12:18
(27) Тогда воткни в календарь и кидай ссылку-приглашение.
Предлагаю ещё Цукерберга пригласить, потому что у компании МЕТА*(запрещена в России) есть своё мнение по поводу високосной секунды. Они предлагают размазывать её на 17 часов, чтобы по сути она исчезла как штука, но тогда длительность секунд будет разной, если считать в миллисекундах.
https://habr.com/ru/post/679370/
30 mikecool
 
23.03.23
12:24
(27) только онлайн со смузи в бассейне!
31 H A D G E H O G s
 
23.03.23
12:30
(28) Ну вот, для РБ запилили миллисекунды. Для РН такого нет
32 Serg_1960
 
23.03.23
12:30
[что-то заело меня] "а вдруг вообще любые документы записываются в базу с миллисекундами" - а почему это "вдруг", если "сразу же"?

Например, если ссылка на объект была создана 23.03.2023 11:41:33, то в GUID-е она будет зашифрована так:
15.10.1582 00:00:00 + 13898850093,9214927 секунд + СмещениеСтандартногоВремени() + СмещениеЛетнегоВремени()

PS: почему "15.10.1582"? Не спрашивайте у меня, - спросите у короля Испании Филиппа II:) Это он, в своём указе, закрепил (и объяснил) решение Папы Григория XIII :))
33 Волшебник
 
23.03.23
12:32
(32) Филипп II должен уйти.
34 magicSan
 
23.03.23
12:37
35 Serg_1960
 
23.03.23
12:35
(33) Уже ушёл. 13 сентября 1598 года :)
36 azernot
 
23.03.23
12:36
А я вот что-то не пойму с этим УточнениемПериода РБ. Как же собственно в наборе записей указать это самое уточнение?
Вот я хочу сделать какую-то там операцию переоценки, чтобы она не учитывалась в 2022 г, но учитывалась в начальных остатках 2023... И собственно как я должен это сделать?
37 mikecool
 
23.03.23
12:44
(36) тоже интересно
38 azernot
 
23.03.23
12:46
РегистрБухгалтерииЗапись.<Имя регистра бухгалтерии> (AccountingRegisterRecord.<Accounting register name>)
УточнениеПериода (PeriodAdjustment)
Использование:
Только чтение.

Почему-то тут указано только чтение.... Может ошибка в справке? Может быть для РБ с уточнением периода, можно в записи напрямую указать, хочу мол, чтобы эта запись была в уточнении периода №1, а вот эта в уточнении периода №2...
39 Garykom
 
23.03.23
12:53
(24) никак
эта дополнительная секунда виртуальная

т.е. просто последняя секунда фактически длится две, но по всем базам все что попало в эти две секунды записалось в одну
40 Волшебник
 
23.03.23
12:55
(39) Это же клондайк! В 60-ю секунду можно вставить не меньше тысячи межотчётных документов. Предлагаю поручить Гене проверить эту гипотезу в ближайшую доп.секунду, которая будет неизвестно когда.
41 Гена
 
23.03.23
12:56
(34) да это ясно и неинтересно... понятно, что для индексирования и вообще для сортировки обязательно надо было ввести составную дату с документом. Иначе не разобрать тысячи доков одной секунды. Речь не об этом. Речь о самом времени записи движений, времени регистра.
42 ptiz
 
23.03.23
13:02
(41) Это отдельный прикол от разработчиков платформы - сделать сортировкой "Дату + Ссылка на документ", без возможности управлять положением внутри секунды.
43 Chai Nic
 
23.03.23
13:02
Плохо, что в восьмерке отказались от парадигмы последовательности. То есть, нельзя управлять порядком документов в пределах одного кванта времени (секунды). Документы встают как попало, по сгенереной ссылке.
44 mars2020
 
23.03.23
13:04
А вообще по хорошему, момент времени должен обладать свойством глобальной уникальности. Это соответствует реальности и решает многие проблемы. В частности и ту, о которой вы говорите
45 Гена
 
23.03.23
13:07
(43) потому что управлять порядком документов на одном компе ещё можно придумать, а если их сеть? Да ещё в разных часовых поясах? Нет, идея составной даты логична.
46 Гена
 
23.03.23
13:08
Это как один ИНН и тысячи КПП к нему... составная маркировка ИННКПП сразу даст уникальный индекс.
47 Chai Nic
 
23.03.23
13:15
(45) Какие проблемы? Ну создадут ещё один "менеджер последовательностей" в составе кластера, который будет выдавать документу (движению) позицию в последовательности "после" или "перед" указанным.
48 Гена
 
23.03.23
13:20
(47) не нравится мне эта идея, но я не специалист, просто на уровне интуиции )
49 Chai Nic
 
23.03.23
13:21
(48) А идея с двиганием дат, как сейчас это происходит, вам нравится? Когда для обеспечения последовательности приходится менять секунды в датевремени документа. Это вообще выглядит как костыль.
50 Serg_1960
 
23.03.23
13:26
*(32) указывая дату "23.03.2023 11:41:33" - опечатался, время должно быть "10:41:33". Не принципиально, но всё же :(
52 Eiffil123
 
23.03.23
14:20
(28) это в 1С таким образом изобрели 13-й период (месяц)
53 Гена
 
23.03.23
23:08
(52) Понятно, что изобрели именно для межотчётного периода на стыке лет. А вот реализовали ли? )
Для проверки надо провести ручную операцию от 31 декабря 2022 с любой проводкой и крыжиком межотчётности вверху справа, и посмотреть время самого дока или его движений на предмет миллисекунд.

Ведь для чего-то задумывалась:

Функция ОсновноеЗначениеУточненияМежотчетногоПериода() Экспорт
	Возврат 5;
КонецФункции


Ведь, если звезды зажигают -
значит - это кому-нибудь нужно?
Значит - кто-то хочет, чтобы они были?

Пятёрка идеально вписывается посередине между 1 и 9. Как если бы полсекунды 0.5 в интервале разбиения секунды на десятичники )
54 Chai Nic
 
23.03.23
22:38
(53) Для РСБУ ересь это. Нарушается фундаментальный принцип непрерывности учета. Не должно начальное сальдо отличаться от конечного сальдо предыдущего периода.
Возможно, подобное требуется в каком-нибудь неправославном зарубежном бухучете по гаапу или мсфо, чтобы корректировать данные между периодами. У них там и корреспонденции в проводке не обязательны..
55 PR
 
23.03.23
23:14
(53) Реализовали
56 Волшебник
 
23.03.23
23:15
(54) Проводки без дебета или кредита? О... Извращенцы
57 PR
 
23.03.23
23:16
(54) Серьезно что ли, ересь?
Гугли "межотчетный период"
https://its.1c.ru/db/updinfo#content:1233:1
https://partners.v8.1c.ru/forum/topic/1591495
https://partners.v8.1c.ru/forum/topic/2042354
58 PR
 
23.03.23
23:17
(56) Без корреспонденции, а не без дебета или кредита
У нас это называется забалансовые счета
59 Волшебник
 
23.03.23
23:37
(58) Я там "или" написал. Короче, я понял
60 eddy_n
 
24.03.23
02:59
(4) Геннадий, МоментВремениСУточнениемПериода появился не сегодня и не вчера и не позавчера. Это далёкий уже 20.. год.
61 Гена
 
24.03.23
07:52
(60) Да, видел, я же сам дал ссылку на платформу от конца 2016 года. Просто не хотел забивать всем вам голову лишней историей вопроса.
(54) У бюджетников понятие межотчётного периода в приказах Казначейства существует давным-давно:
https://its.1c.ru/db/metbud81#content:6791:hdoc:_toc480556071

Примерно то же, только без явного упоминания межотчётности появилось и в приказах Минфина для коммерческих организаций. Понятно, что 1С как неоспоримый флагман и светоч не могла не отреагировать.
Я уже упоминал, но теперь акцентирую: раньше бухгалтеры проводили операции межотчётного периода одним доком Ручной операции от 31.12 Когда нужны были баланс или вух- отчёты за прошлый год, то этот док распроводили, когда же смотрели текущий - вновь проводили. Этакий костыль "щёлк-щёлк".

Для тех, кто только зашёл длинную ветку или читал по диагонали - мы здесь рассуждаем о том, что 6 лет назад в платформе был заложен механизм реализации записей не по целым секундам (как просит СКЛ), а по миллисекундам, с тем чтобы реализовать движения в межотчётный период, который длится всего одну новогоднюю секунду, даже меньше секунды.
На пальцах: записывает всё-таки сейчас программа 1С в лице последнего релиза БП документы или движения по миллисекундам (в районе полсекунды)?
62 Chai Nic
 
24.03.23
08:13
(61) Законодательно закрепленная ересь не перестает быть ересью. То, что постановщики бюджетного учета не осилили нормальный бухучет и ввели "межотчетный период", по сути рубит целостный учет на куски. С точки зрения учета это как бы ликвидация и учреждение организации одним днем. Экономического смысла в этом нет никакого, но чтобы цифирки проще было подогнать, придумали этот костыль.
63 mars2020
 
24.03.23
08:18
(56) А как еще отразить элементарную операцию: купил за 100 продал за 120? Так, чтобы без лишних оборотов?
64 Гена
 
24.03.23
08:24
(62) Хорошо. Пусть с этого года изменилась учётная политика. ОС стоило 100 в прошлом году, а с начала этого уже 120. Какой датой проведёте:
??? ... Дт 01 - Кт 84 :: 100
65 Гена
 
24.03.23
08:25
Поправка суммы разницы:
??? ... Дт 01 - Кт 84 :: 20
66 DGorgoN
 
24.03.23
08:34
(64) В начале года
67 Chai Nic
 
24.03.23
08:34
(64) "Пусть с этого года изменилась учётная политика. ОС стоило 100 в прошлом году, а с начала этого уже 120"
Это ересь. Учетная политика может привести к переоценке, но её нужно делать уже в новом году. Никакого "с начала года". Смена учетной политики это не взмах волшебной палочкой, делающий из 100 120.
68 Гена
 
24.03.23
08:41
(66) Если сделать проводку 01.01, то неправильно будет отражена бухотчётность этого года. По правилам БУ на начало года уже должно быть 120
69 Гена
 
24.03.23
08:43
(67) именно по взмаху и именно палочки )
По правилам Минфина разрыв в капитале между прошлым годом и текущим должен просто разъяснён в Пояснительной записке к балансу.
70 Гена
 
24.03.23
08:51
Цитата: (55) "Реализовали"
Прекрасный ответ на длинную ветку, который сразу отвергает любые робкие и глупейшие вопросы: "А как?", ведь это оскорбление недоверием честного слова программиста.

Как-то раз Д'Аламбер обучал математике одного крайне бестолкового, но очень знатного ученика. После нескольких безуспешных попыток растолковать неучу доказательство простой теоремы, Д'Аламбер в отчаянии воскликнул:
— Даю вам честное слово, виконт, что эта теорема верна!

Ученик тут же радостно воскликнул:
— Почему же вы мне сразу так не сказали? Ведь вы — дворянин и я — дворянин, так что вашего слова для меня вполне достаточно.
71 Chai Nic
 
24.03.23
09:08
(69) Черная магия бухучета прямо таки
72 Гена
 
24.03.23
09:13
(71) Мы такие )
Смотрите внимательно на план счетов... Дебет, Кредит... Дебет, Кредит... Ваше сознание становится спокойным, тело расслаблено, тепло распространяется от головы к ногам... Спите... Спите...
73 DGorgoN
 
24.03.23
09:25
(69) Уверен что методологи 1С собаку съели в этих вопросах - обратитесь к ним за пояснениями. Если и действительно так необходимо Минфину (я не проверял так ли это) то можно вставить в отчет момент времени и данные уже собирать с учетом этих особых особенностей. Я понимаю что и у 1С могут быть ошибки, но явно меньше чем у меня - их там целая толпа специалистов.
74 Гена
 
24.03.23
09:32
(73) зачем нам куда-то обращаться, если у нас у всех есть база и почти все здесь программисты. Нам трудно посмотреть есть ли во времени движений или доков миллисекунды? Или мы должны просить за нас посмотреть фирму 1С?
75 Гена
 
24.03.23
09:37
Просто разделение бух-отчётности по крыжику межотчётного периода в базе БП последнего релиза уже есть. Значит либо это миллисекунды предновогодней секунды, либо просто новая краска и отбор идёт по ней. Два пути и третьего не дано.

ОФФ: Пятничный. Про два пути (2 минуты)
Сын спрашивает отца что лучше: пойти в армию или жениться?
https://www.youtube.com/watch?v=GSCTKktSYiU
76 DGorgoN
 
24.03.23
10:00
(74) Ну потому что если ты программист то тебе дают обычное тз и ты по нему пишешь азиз и не вникаешь в сущности. Если ты постановщик задачи то ты пишешь тз в котором указаны ньюансы которые обсуждаешь с методистом.
Т.е. если ты человек 3 в 1 приходится это всё совмещать в себе. Ни одна система подвыверты и ньюансы всяких учётов не сможет без ньюансов в работе. Абсолютно тоже самое будет и в другом стеке, только дольше и дороже.
77 Гена
 
24.03.23
10:09
(76) На пальцах: aka Волшебник в посте (10) показал, что миллисекунды в 1С есть, только не отображаются.
Нужно проверить документы межотчётного периода на предмет их проведения по спрятанным миллисекундам. Для этого достаточно новой приблуды по следующему алгоритму:

Миллисекунды = (Дата(документа или регистра) - Integer(31 декабря 23:59:59)) * 1000;

И вывести результат.
78 DGorgoN
 
24.03.23
10:30
(77) Да, там DateTime2 в sql, с милисекундами.
Но что если у вас время документа 1 всё равно времени документа 2?
Поэтому используется позиция и момент времени.
79 Гена
 
24.03.23
10:40
(78) Цитата из поста (9): "Дата в sql хранится с точностью до секунды, миллисекунд там нету, datetime2(0) там используется.
Ноль в скобочках как бэ говорит это."

Господа скулисты, вы бы сначала между собой разобрались )
А то как жить? Кому верить? Горько мне, горько!
80 Гена
 
24.03.23
10:44
В любом случае
Практика - критерий истины (с) В.И.Ленин, ПСС, т.
Надо просто посмотреть в отладчике Дата1 - Целое(Дата1), вот и всё.
81 DGorgoN
 
24.03.23
10:46
(79) Закуси раз горько. Решение тебе уже посоветовали. Чем тебя не устраивает?
Глянул в бд специально для тебя - там есть и datetime2(0) и datetime есть. Но меня как то как 1с ника это не сильно колышит. Для генерации тиков колебаний фондового рынка есть иные инструменты нежели 1с - более быстрые, более точные, некоторые даже sql не использующие. Так что кому что и для чего.

Ты не ответил на вопрос: как ты используя голый sql выведешь 2 документа с абсолютно одинаковой датой?
82 DGorgoN
 
24.03.23
10:49
+ (81) В кишках конечно иногда приходиться ковыряться но бабе Зине пофигу какая там объектная модель и твои сексуальные трудности оптимальности и прозрачности кода её не колышат. Поэтому и есть одноэс, которая за тебя уже эту проблему решила.
Если уж на хардкор переходить то пиши сразу в ассемблере, да чего уж там в ассемблере - пиши сразу в байт коде!
А то понимаешь развели тут высокоуровневые яп.
83 DGorgoN
 
24.03.23
10:50
Скуль ему подавай понимаишь. Сразу давай в 1-ках и ноликах!
84 Гена
 
24.03.23
10:51
(81) Для этого достаточно соединить Дату с регистратором, заодно сразу уникальный индекс будет. Вы меня тут на что проверяете? Бесполезно, я дилетант.
Sum non a programmate!
85 ptiz
 
24.03.23
11:15
Про это речь? _PeriodAdjustment
https://disk.yandex.ru/i/Qyvo7PBa_zouLQ
86 Гена
 
24.03.23
11:19
(85) Спасибо. Похоже на то, что мы обсуждаем. Я правильно понимаю, что это не краска, а именно полсекунды? Или я губы раскатал?
87 ptiz
 
24.03.23
11:35
(86) Это числовое поле.
88 DGorgoN
 
24.03.23
11:35
(84) 1с думаю это сама сделает когда ты момент позицию документа будешь использовать.
89 Гена
 
24.03.23
11:40
(87) Боюсь показаться нудным, но ещё немного тупых вопросов (в начале ветке я предупредил, что туплю)
Понятно, что 5 это число. Оно сдвигает время в СКЛ базе на полсекунды для данного регистратора или просто некий допреквизит (краска)?
90 Garykom
 
24.03.23
11:46
(89) почему ты увидел 5 и подумал "полсекунды"?
91 ptiz
 
24.03.23
11:54
(89) Просто число. 1С в запросах по остаткам добавляет дополнительный отбор. В дополнение к дате и ссылке добавляется отбор на _PeriodAdjustment, если нужно.
92 Гена
 
24.03.23
12:17
(91) А в самом 1С в БП завели сегодня док ручной операции и посмотрели два варианта без крыжика, а через минуту с крыжиком межотчётности?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс