Файл: Учебника Разработка предметноориентированных систем.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.01.2024
Просмотров: 446
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
(<+>/<−>). Это значит, что итоговое количественное значение регистра изменилось на соответствующую цифру.
Документ, который записал движения в регистр 1С, называют
Регистратор. Дата и время движения почти всегда равны дате документа. Дату движения называют Период.
Каждый регистр учитывает обычно движения какого-нибудь одного справочника. Например, регистр «Товары на складах» – движения товаров (в терминах 1С «номенклатуры»): сколько поступило товаров на склад, сколько убыло. Регистр 1С «Взаиморасчеты с контрагентами (покупателями и поставщиками)» – движения договоров с контрагентами – сколько стал должен контрагент после покупки или сколько должны ему после оплаты.
Справочник, в разрезе которого ведется регистр, называют основным измерением (аналитикой) регистра.
Конечно, никто не делает одно основное измерение у регистра 1С. Ведь если учитывать движения товаров, то интересно, не только какой товар уменьшился или прибавился, но и, например, по какому складу. Поэтому всегда есть три-пять дополнительных измерений, которые можно назвать дополнительной аналитикой регистра 1С.
Регистры 1С бывают разных видов. Цель использования регистра 1С зависит от его вида.
1. Регистры сведений.
Это обычная таблица, которая не имеет никаких движений
(приходов/расходов). Регистр сведений 1С обычно используется для хранения дополнительных данных справочников.
Регистры сведений используются для реализации задач хранения информации необъектных данных, развернутой в некоторых разрезах.
Для решения таких задач регистры сведений обладают функциональностью, которая включает в себя:
- уникальность записей в разрезах ключей записей;
- периодичность;
- подчинение записей регистратору.
Одним из основных «показаний» для использования именно регистров сведений для хранения данных является то, что регистры сведений обеспечивают уникальность хранимой информации для конкретных комбинаций значений разрезов ее хранения. То есть набор значений разрезов является уникальным ключом каждой записи регистра. Сама информация в регистре хранится в виде значений ресурсов. А разрезы хранения информации реализуются посредством измерений регистра.
Одной из возможностей регистра сведений является хранение данных не только в разрезе указанных измерений, но и в хронологическом разрезе. Такие регистры называются периодическими регистрами сведений. В результате в структуру хранения данных регистра будет добавлено поле «Период». Причем оно будет включено в состав ключа записей регистра.
Таким образом, в регистре сведений можно хранить не просто статические данные, но и историю изменений этих данных.
При такой организации хранения информации появляются возможности:
- получения информации, актуальной на тот или иной временной момент;
- получения информации о значениях данных, «вступающих в силу» после некого временного момента;
- получения картины «динамики» изменения данных за некоторый период;
- решения других прикладных задач, связанных с хранением информации в привязке ко времени.
Регистр сведений может содержать несколько измерений, ресурсов и реквизитов.
Нередко у разработчиков при проектировании прикладных решений возникает вопрос: «Что лучше? Создать несколько регистров с большим
количеством ресурсов, или наоборот, создать много регистров, но с меньшим количеством ресурсов?» В общем случае единого ответа на этот вопрос нет.
Для того чтобы облегчить принятие решения в каждой конкретной ситуации, приведем несколько моментов, на которые следует обращать внимание при проектировании регистров сведений.
Структурный подход. Каждая запись в регистре сведений содержит информацию о том, что для данной комбинации ключевых полей установлены некоторые значения ресурсов, в том числе и в периодическом регистре сведений. То есть, если запись добавляется или модифицируется, это выполняется для всех значений ресурсов. Нельзя отметить, что, начиная с такого-то момента, значение такого-то ресурса не меняется, а меняются только значения других ресурсов.
Восприятие пользователем. При проектировании регистра важно проанализировать, как реально меняются значения данных, которые будут храниться в регистре, и выработать определенную модель отражения этих изменений в базе данных. Важно, чтобы отражение предметной области в регистре правильно воспринималось пользователем.
Учет потенциальных модификаций состава регистра. Состав существующего регистра сведений всегда можно «расширить». Одним из направлений расширения является ввод новых разрезов информации, то есть измерений. Если потребуется, то лучше будет все же информацию разделить между несколькими регистрами.
Время получения данных, необходимых для работы механизмов решения. Например, при работе некоторого механизма важно получать данные объекта и данные, связанные с данным объектом. Очевидно, что получение этих «связанных» данных из нескольких ресурсов одного регистра
(одной таблицы) будет происходить в общем случае быстрее, нежели получение этих данных из нескольких регистров (нескольких таблиц).
Для того чтобы облегчить принятие решения в каждой конкретной ситуации, приведем несколько моментов, на которые следует обращать внимание при проектировании регистров сведений.
Структурный подход. Каждая запись в регистре сведений содержит информацию о том, что для данной комбинации ключевых полей установлены некоторые значения ресурсов, в том числе и в периодическом регистре сведений. То есть, если запись добавляется или модифицируется, это выполняется для всех значений ресурсов. Нельзя отметить, что, начиная с такого-то момента, значение такого-то ресурса не меняется, а меняются только значения других ресурсов.
Восприятие пользователем. При проектировании регистра важно проанализировать, как реально меняются значения данных, которые будут храниться в регистре, и выработать определенную модель отражения этих изменений в базе данных. Важно, чтобы отражение предметной области в регистре правильно воспринималось пользователем.
Учет потенциальных модификаций состава регистра. Состав существующего регистра сведений всегда можно «расширить». Одним из направлений расширения является ввод новых разрезов информации, то есть измерений. Если потребуется, то лучше будет все же информацию разделить между несколькими регистрами.
Время получения данных, необходимых для работы механизмов решения. Например, при работе некоторого механизма важно получать данные объекта и данные, связанные с данным объектом. Очевидно, что получение этих «связанных» данных из нескольких ресурсов одного регистра
(одной таблицы) будет происходить в общем случае быстрее, нежели получение этих данных из нескольких регистров (нескольких таблиц).
Время записи информации в базу данных. Запись в несколько регистров сведений в общем случае будет выполняться медленнее, нежели запись одной записи с несколькими ресурсами.
В ряде прикладных задач возникает необходимость обеспечения
«обоснования» хранимой в регистрах сведений информации наличием документов, зарегистрировавших изменения этой информации.
То есть данные регистра сведений должны четко «помнить», в связи с каким именно документом они там оказались. Чаще всего при этом необходимо обеспечивать гранулярность записи или модификации данных регистра сведений. В качестве такой «гранулы» используется набор записей, подчиненных документу-регистратору.
В состав регистра сведений, как объекта конфигурации, включаются:
- измерения;
- ресурсы;
- реквизиты.
Ресурсы хранят данные регистра, то есть ту информацию, ради хранения которой регистр, собственно, создавался и с которой работает функциональность регистра.
Измерения используются для обеспечения разрезов хранения этой информации.
Кроме того, для ситуаций, когда необходимо помимо данных хранить дополнительную информацию о собственно записях регистра, возможно использование реквизитов. Хотелось бы особо отметить, что деление информации регистра на реквизиты и ресурсы – элемент общего подхода.
И хотя технологически хранение информации ресурсов и реквизитов регистра сведений существенно не различается, правильное «отнесение» разработчиком данных к ресурсам или реквизитам позволяет впоследствии быстро отличить, что является «функцией» регистра, а что просто комментирует запись.
2. Регистры бухгалтерии.
Регистры бухгалтерии очень похожи на регистры накопления: они также могут иметь произвольный набор измерений, в разрезе которых накапливаются показатели, а также дополнительные реквизиты, в которых хранится произвольная информация о записях.
Любой регистр бухгалтерии обязательно должен быть связан с одним из планов счетов, который своими настройками влияет на хранение итогов. На структуру хранения записей регистра бухгалтерии в основном влияют как сама структура регистра (измерения, ресурсы, реквизиты) и его настройки
(включена ли корреспонденция, разделение итогов и др.), так и настройки используемых счетов (признаки учета счетов и субконто, вид счета и т. д.).
3. Регистры накопления (регистр остатков).
Регистр остатков – таблица движения документов (приход/расход), которая автоматически вычисляет итоговое значение на начало периода и итоговое значение на конец периода. Пример представлен в таблице 3.
Таблица 3
Регистры накопления, вид Остатки
Дата
Регистратор
Товар
Движения регистра
(приходы/расходы,
+/−)
Регистры накопления
(Итоги «Остатки»)
01.10.2020
Поступление товаров и услуг
Лопата
+10 0
10.10.2020
Продажа
Лопата
−8 2
Регистр накопления с видом «Остатки» обозначает, что будут храниться движения (приходы и расходы, которые также называют «Обороты») и дополнительно будут автоматически рассчитываться итоги, которые называют «Остатки».
Регистр остатков используют в том случае, когда у справочника логически может быть остаток. Например, когда необходимо учитывать движения товаров, то надо использовать регистр остатков – ведь можно сказать, что товара Лопата осталось 3 штуки.
4. Регистры накопления (регистр оборотов).
Это таблица движения документов (приход/расход), которая не считает итоговые значения.
Регистр оборотов ничем не отличается от регистра остатков, за исключением того, что у него не рассчитываются автоматически остатки.
Регистр оборотов используют в том случае, когда у справочника логически не может быть остатка. Если надо учитывать продажи товаров, то необходимо использовать регистр оборотов.
Например, продано товаров было +10, а потом товар вернули −2.
Логически понятия «остатка продаж» не существует, поэтому – итого – оборот
(сумма каждой строки оборота) стал 8.
5. Регистры расчетов.
Таблица движений в разрезе видов расчета и периодов. Используется при начислении заработной платы. Такие регистры расчетов называются
Сложные периодические расчеты.
Объект 1С «Регистры расчета» – это прикладные объекты конфигурации, служащие для хранения записей о тех или иных видах расчета, которые необходимо выполнить, и использующиеся в механизме сложных периодических расчетов.
Регистр расчета связан с одним из планов видов расчета, существующих в прикладном решении. Эта связь обусловливает наличие у каждой записи регистра поля Вид расчета, благодаря которому механизмы регистра могут отслеживать взаимное влияние записей расчета друг на друга.
Регистр расчета хранит данные не только в разрезе созданных измерений, но и в разрезе времени. Это является причиной существования у каждой записи регистра расчета еще одного обязательного поля – Период действия. При создании регистра расчета разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр.
Наряду с общими свойствами, присущими всем объектам метаданных, регистры расчета обладают рядом специфических свойств.
При редактировании регистра расчета определяется план видов расчета, поддержка периода действия и базового периода, периодичность, разрабатывается структура регистра: создаются наборы измерений, ресурсов и реквизитов регистра, если необходимо, создаются экранные и печатные формы просмотра движений регистра.
План видов расчета – основная характеристика регистра. Выбирается один из объектов типа «План видов расчетов».
Период действия – если свойство установлено, то устанавливается конкурирующий характер взаимного влияния движений данного регистра.
Примерами конкурирующих движений являются «начисление заработной платы» и «оплата больничного листа», так как нельзя одновременно получать и оклад, и деньги по больничному листу. Такие расчеты взаимно исключают друг друга во времени, и система должна гарантировать, что ввод одного из них приведет к исключению другого.
Периодичность определяется как период, в пределах которого движения могут влиять друг на друга и с которым регистрируются движения.
Регистр
1С
– это внутренний, программистский объект
«1С:Предприятие». Пользователи с ним не работают. Пользователи смотрят результаты в отчетах. Поэтому никакие регистры в интерфейс пользователя обычно не выведены, и их через меню открыть нельзя.
1 ... 5 6 7 8 9 10 11 12 13
Тема 3.4. Работа с запросами. Система компоновки данных. Отчеты
и печатные формы документов
«1С:Предприятие» поддерживается два способа представления данных:
- объектный способ, то есть процессы чтения и записи, реализованные посредствам объектов встроенного языка. Особенность данного способа – обращение к какому-либо объекту встроенного языка происходит как к единому целому, как к совокупности данных, хранящихся в базе данных. Разработчик в объектной модели оперирует объектами встроенного языка. В объектной модели при манипулировании данными
обеспечивается сохранение целостности объектов, кеширование объектов, вызов соответствующих обработчиков событий и т. д.;
-
табличный способ, то есть процесс чтения, реализован с помощью запросов к базе данных, составленных на языке запросов. В табличной модели объекты представляют собой совокупность связанных между собой таблиц, к которым можно обращаться при помощи запросов – как к отдельной таблице, так и к нескольким таблицам во взаимосвязи.
Разработчик в этом случае получает доступ к данным сразу нескольких объектов, что применимо для анализа больших объемов данных, например при создании отчетов. Однако в силу того, что данные, выбираемые таким способом, содержат лишь некоторые реквизиты анализируемых объектов, табличный способ доступа не позволяет изменять эти данные.
Работа с запросами
Для работы с запросами используется объект «Запрос». Он позволяет получать информацию, хранящуюся в полях базы данных, в виде выборки, сформированной по заданным правилам.
Исходную информацию запрос получает из таблиц. Таблицы делятся на реальные (объектные/необъектные) и виртуальные (реально не существуют в базе данных, формируются в тот момент, когда к ним обращается запрос). Для виртуальных таблиц можно задавать параметры, определяющие, какие данные будут включены в эти таблицы. Отдельный подкласс таблиц образуют объектные таблицы. В качестве объектной таблицы всегда выступает реальная таблица базы данных. Объектные таблицы предназначены для хранения состояния объектов системы «1С:Предприятие» (справочники, документы, регистры и др.). Каждая отдельная запись объектной таблицы хранит состояние определенного объекта соответствующего типа. В соответствии с этим у каждой объектной таблицы определено поле Ссылка на текущую запись.
Важно понимать, что прямого доступа к физическим таблицам, в которых хранится информация в базе данных, из «1С:Предприятие» получить нельзя.
-
табличный способ, то есть процесс чтения, реализован с помощью запросов к базе данных, составленных на языке запросов. В табличной модели объекты представляют собой совокупность связанных между собой таблиц, к которым можно обращаться при помощи запросов – как к отдельной таблице, так и к нескольким таблицам во взаимосвязи.
Разработчик в этом случае получает доступ к данным сразу нескольких объектов, что применимо для анализа больших объемов данных, например при создании отчетов. Однако в силу того, что данные, выбираемые таким способом, содержат лишь некоторые реквизиты анализируемых объектов, табличный способ доступа не позволяет изменять эти данные.
Работа с запросами
Для работы с запросами используется объект «Запрос». Он позволяет получать информацию, хранящуюся в полях базы данных, в виде выборки, сформированной по заданным правилам.
Исходную информацию запрос получает из таблиц. Таблицы делятся на реальные (объектные/необъектные) и виртуальные (реально не существуют в базе данных, формируются в тот момент, когда к ним обращается запрос). Для виртуальных таблиц можно задавать параметры, определяющие, какие данные будут включены в эти таблицы. Отдельный подкласс таблиц образуют объектные таблицы. В качестве объектной таблицы всегда выступает реальная таблица базы данных. Объектные таблицы предназначены для хранения состояния объектов системы «1С:Предприятие» (справочники, документы, регистры и др.). Каждая отдельная запись объектной таблицы хранит состояние определенного объекта соответствующего типа. В соответствии с этим у каждой объектной таблицы определено поле Ссылка на текущую запись.
Важно понимать, что прямого доступа к физическим таблицам, в которых хранится информация в базе данных, из «1С:Предприятие» получить нельзя.