|
К вопросу о времени записей регистров накопления | ☑ | ||
---|---|---|---|---|
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С в БП завели сегодня док ручной операции и посмотрели два варианта без крыжика, а через минуту с крыжиком межотчётности?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |