Как стать автором
Обновить

Комментарии 12

" проектировать документы, которые отражаются в регистры независимо от других документов или состояний регистров " - это прям как "За все хорошее против всего плохого" - звучит прекрасно, на практике не реализуемо.

Почему же не реализуемо? Реализуемо. Было бы желание

Надеемся ваш следующий пост будет о изобретенной вами прорывной и не имеющей аналогов суверенной технологии расчёта себестоимости.

Себестоимость можно считать за пределами процедур обработки проведения. В типовых конфигурациях, кстати, стараются так делать, если вы еще не в курсе

Понятно, что изменения, произведенные в прошлом, влекут за собой необходимость сделать пересчет с момента изменения и до... прекрасного будущего, которое наступит 1 января 4000 года (максимальная дата в 1С + 1 секунда). Такой пересчет не всегда реально сделать

Как расчет себестоимости за пределами процедуры обработки проведения решает указанную вами проблему? Пересчет же нужен в любом случае при изменении прошлых документов.

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

Реальное время - это типовая ошибка многих разработчиков бухгалтерских программ.

В банках (в АБС) - это более-менее утресли через понятие ОПЕРАЦИОННЫЙ ДЕНЬ - то есть это некая абстракция (с форматом даты) в рамках которой осуществляется учёт первичных документов и проводок.

Соответственно, имеем операции:

Открытие операционного дня - разрешение добавление записей с данной датой

Закрытие операционного дня - запрещение добавления записей с данной датой и подведение итогов.

PS

В данный календарный день документы могут разноситься по нескольким открытым операционным дням.

Закрывать операционные дни желательно в естессвенной последовательности

PPS

Это даже как-то решает проблемы филиалов в разных временных зонах

PPPS

Ну 1С-ники просто эконимили на обслуживающем персонале - то есть не пользуются кожанными мешками - операторами по управлению операционными днями, а полагаются на чьи-то часы (непонятно чьими)

В банках своя атмосфера

В банках свои причины работать с такой абстракцией как опердень. И одна из этих причин - легаси: изначально банковское с его объемами транзакций по другому просто не умело.

Подобные подход применяли и в бухгалтерском ПО - тот же БЕСТ например. Да и в самой 1С в 6.0 так было, в 7.7 даже отдельная процедура была открытия нового периода, а в регистрах расчетов даже закрытие.

Тем не менее подход 1С реализованный в 8.х - оказался очень удобным, а закрытие периода - всего лишь прикладная опция, которая блокирует проведение документов ранее определенной даты.

По поводу работы в разных временных зонах - опять же, если для банковского ПО это норма, и эту возможность закладывали на этапе проектирования, для автоматизации бухгалтерии это скорее исключение, и, неудивительно, что этот функционал не реализован в системе.

При этом, возможность построения решений корректно работающих в разных часовых поясах у платформы 1С:Предприятие 8 есть, и более того, есть стандарт вендора для разработки таких решений.

Что-то такое пытались реализовать в "Рознице". Там тоже есть такое понятие открытие и закрытие смены.

Мне кажется, не случайно в СУБД существуют отдельно типы Date, Time и DateTime. Потому что тип в БД это отражение предметной области и если в предметной области значима только дата, без времени, то и не должно быть времени.

Автор гонит какую-то дичь. Во первых, в 1С8, у реквизитов есть ограничение типа, которое позволяет конкретизировать тип: Дата или ДатаВремя, поэтому любые запросы к базе данных будут типизироваться правильно.

Во вторых, автор вообще не понимает что такое типы, время в языке 1С дискретно поэтому 23.59.59, это всё равно что индекс 9 у массива из 10 элементов, у него нет никакого состояния конца 9го элемента или начала следующего, это конретный индекс.

В третьих, у ссылок, например, на документы, есть уникальный идентификатор, который можно считать ключём и если в массив по индексу 9 поместить пачку документов, то всегда можно их перебрать в порядке возрастания этого ключа, то есть выстроить в определённую последовательность и даже, это можно сделать с разными типами документов в перемешку (UIUD он такой). Но при этом доступ к этим документам, как было по индексу 9, так и остётся, очвидно, что как бы мы не перебирали элементы внутри пачки, на индекс 9 и его связь с пачкой это никак не влияет. Как показывает практика, порядок документов - важен и выборка пачки документов каждый раз в разном порядке, может сильно влиять на вычисления, поэтому в 1С дали возмоность с таким упорядочиванием работать, обозначив позицию в последовательности как момент времени, а ГраницаПериода всего лишь новый тип данных, который хранит одновремено два значения (Дата+UUID). Фактически, вместо примитивного типа, дали объект и методы работы с ним, но применимость у этого объекта весьма узкая, хоть и сильно упрощает многие моменты. Да в 1С много объектных фишек на уровне языка запросов, подобного SQL, но всё довольно примитивно. С введением, в новой платфоре, возможности работать с UUID в запросах, нет никаких сложностей полностью отказаться от момента времени и границы и сортировать "вручную" и резать последовательности по UUID, получая в точности тот же результат, но работая при этом раздельно со Ссылкой и с Датой. без всяких "непонятных" сущностей.

Статья типичного гумманитария, который познаёт цифровой мир через бесконеч-вечное и настолько преисполнился в своей мудрости, что готов изложить центральные концепции машины времени и вести нас в прекрасное будущее, которое наступит 1 января 4000 года .

А какова логика присвоения UUID в рамках секунды? Другими словами, по какому критерию UUID этих документов убывают? По алфавитному?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий