Для удобного просмотра сайта рекомендуется использовать Google Chrome.


Закрытая тема
Страница 1 из 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Следующая ПоследняяПоследняя
Показано с 1 по 10 из 137

Тема: Регистры сведений

  1. #1
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию Регистры сведений

    Регистры сведений

    Регистры сведений
    Основная задача регистра сведений - хранить существенную для прикладной задачи информацию, состав которой развернут по определенной комбинации значений и, при необходимости, развернут во времени. Регистры сведений информация в которых развернута во времени, называются периодическими.
    Например, если мы хотим хранить информацию о ценах конкурентов на продаваемые нами товары, то собранная информация о ценах разворачивается по товарам и конкурентам. А если мы хотим отслеживать динамику изменений цен, и будем заносить их периодически, то хранимая информация разворачивается также и во времени.
    Регистр сведений, фактически, представляет собой массив данных, необходимый, чтобы реализовать функцию, которая может выдать необходимую информацию по определенному набору аргументов. Аргументы функции называются измерениями, а результат функции - ресурсами. В приведенном выше примере регистр "ЦеныКонкурентов" будет содержать измерения "Конкурент" и "Товар", и ресурс "Цена". Ресурсов может быть больше чем один: например, можно хранить оптовую и розничную цены.
    Для разворота этой информации во времени используется поле "Период" регистра. Оно не вносится в качестве измерения, а добавляется системой автоматически при создании периодического регистра.
    Для периодических регистров сведений система поддерживает такие стандартные операции, как получение наиболее позднего или наиболее раннего значения по определенной комбинации измерений (например, получение последней введенной цены по конкретному товару и конкретному конкуренту), а также получения среза наиболее поздних или ранних значений. Например, могут быть получены все последние введенные цены по различным товарам и конкурентам.
    Если регистр не периодический, то поле "Период" для него не создается. В приведенном примере регистр "ЦеныКонкурентов" может быть непериодическим, если мы не хотим хранить историю изменения цен, а хотим иметь только актуальные цены. Тогда функция регистра сможет ответить на вопрос "какая сейчас цена у такого-то конкурента на такой-то товар", но не сможет ответить на вопрос "какая была цена у такого-то конкурента на такой-то товар в начале года".
    Из описанных принципов работы регистра сведений вытекает то, что в системе может быть только одна запись с определенным набором и периодом измерений. Действительно, по одному товару по одному конкуренту может быть только одна цена. Если по какой-либо причине мы можем получить несколько цен и хотим занести эту информацию в базу данных, то нам нужно создать еще одно измерение для хранения того значения, по которому эти цены могут различаться. Например, можно завести измерение "ИсточникИнформации". Тогда можно будет вводить цены конкурентов в разрезе источников.
    Уникальность записей по набору измерений принципиально отличает регистры сведений от регистров накоплений, которые позволяют вводить несколько записей с одинаковым значением измерений и периодом.
    Строки регистра сведений, содержащие информацию о значениях ресурсов для определенных значений измерений и конкретного периода, называются записями. Записи в регистр сведений можно вносить двумя способами: вручную или документами.
    Эти два варианта влияют на способ внесения информации, а не на основную логику работы регистра.
    Документ, которым вносится запись в регистр сведений, называется регистратором.
    Регистры, записываемые независимо, могут свободно редактироваться вручную или средствами встроенного языка. При этом если измерение такого регистра назначено как "ведущее" и значением измерения является ссылка на объект базы данных, то будет считаться, что запись регистра имеет смысл, только пока существует этот объект. Например, если назначить ведущим измерение "Конкурент", то считается, что запись имеет смысл только как информация по данному конкуренту. Соответственно, при удалении конкурента записи по нему будут удалены автоматически.
    Если регистр записывается регистратором, то это значит, что записи будут жестко подчинены регистраторам - документам. Обычно это значит, что записи будут порождаться при проведении документов. Соответственно, при удалении документа записи будут удаляться автоматически. В отличие от ведущих измерений, регистратор может быть только один.
    В программных модулях для общих действий над регистром сведений (поиск, выбор и создание записей регистра) служит объект РегистрСведенийМенеджер.. Для чтения, записи и удаления отдельных записей регистра сведений, не управляемого регистраторами, служит объект РегистрСведенийМенеджерЗаписи.. Для считывания и занесения набора записей в базу данных по определенному условию отбора служит объект РегистрСведенийНаборЗаписей.. Для динамического обхода записей регистра служит объект РегистрСведенийВыборка..

  2. #2
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    РегистрыСведенийМенеджер (InformationRegistersManager)

    РегистрыСведенийМенеджер (InformationRegistersManager)
    Элементы коллекции:

    РегистрСведенийМенеджер
    Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются менеджеры регистров сведений.
    Возможно обращение к менеджеру регистра сведений посредством оператора [...]. В качестве аргумента передается имя регистра сведений, как оно задано в конфигурации.
    Свойства:

    <Имя регистра сведений> (<Information register name>)
    Описание:

    Предназначен для управления регистрами сведений и предоставляет доступ к значениям типа РегистрСведенийМенеджер.. Доступ к объекту осуществляется через свойство глобального контекста РегистрыСведений.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.
    Возможен обмен с сервером.Пример:

    // менеджер регистров сведений предоставляет доступ к менеджеру
    // конкретного регистра (Курсы валют).
    Форма = РегистрыСведений.КурсыВалют.ПолучитьФормуСписка();
    Форма.Открыть();


  3. #3
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Свойства:
    РегистрыСведенийМенеджер.<Имя регистра сведений> (InformationRegistersManager.<Information register name>)


    РегистрыСведенийМенеджер (InformationRegistersManager)
    <Имя регистра сведений> (<Information register name>)
    Использование:

    Только чтение.Описание:

    Тип: РегистрСведенийМенеджер.
    Набор свойств содержит менеджеры регистров сведений. Доступ к менеджеру осуществляется по имени. Имена свойств совпадают с именами регистров сведений, как они заданы в конфигураторе.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.

  4. #4
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    РегистрыСведенийМенеджер.<Имя регистра сведений> (InformationRegistersManager.<Information register name>)

    РегистрыСведенийМенеджер (InformationRegistersManager)
    <Имя регистра сведений> (<Information register name>)
    Использование:

    Только чтение.Описание:

    Тип: РегистрСведенийМенеджер.
    Набор свойств содержит менеджеры регистров сведений. Доступ к менеджеру осуществляется по имени. Имена свойств совпадают с именами регистров сведений, как они заданы в конфигураторе.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.

  5. #5
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Методы:
    РегистрСведенийМенеджер.<Имя регистра сведений>.Выбрать (InformationRegisterManager.<Имя регистра сведений>.Select)


    РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
    Выбрать (Select)
    Вариант синтаксиса: Для периодического регистра

    Синтаксис:

    Выбрать(<НачалоИнтервала>, <КонецИнтервала>, <Отбор>, <Порядок>)Параметры:

    <НачалоИнтервала> (необязательный)

    Тип: Дата; МоментВремени; Граница.
    Начало интервала, за который будут выдаваться записи периодического регистра сведений. Если не указан, то будут выдаваться записи с самого ранней включительно. Может задаваться значениями типа Дата, МоментВремени или Граница.<КонецИнтервала> (необязательный)

    Тип: Дата; МоментВремени; Граница.
    Конец интервала, за который будут выдаваться записи периодического регистра сведений. Если не указан, то будут выдаваться записи до самой поздней включительно. Может задаваться значениями типа Дата, МоментВремени или Граница.<Отбор> (необязательный)

    Тип: Структура.
    Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться измерения или реквизиты, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или установлен признак "Ведущее". Вид сравнения может быть только Равно.
    Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение.
    Если параметр не указан, то отбор не используется.
    Важно! Структура может содержать только один элемент.<Порядок> (необязательный)

    Тип: Строка.
    Может содержать слово "Возр" или "Убыв", тогда стандартный порядок будет использоваться с указанным направлением.
    Может содержать имя поля (реквизита или измерения, для которых указано индексирование) и слово "Возр" или "Убыв", тогда упорядочивание будет производится по указанному полю в указанном порядке.
    Значение по умолчанию: "Возр"Вариант синтаксиса: Для непериодического регистра

    Синтаксис:

    Выбрать(<Отбор>, <Порядок>)Параметры:

    <Отбор> (необязательный)

    Тип: Структура.
    Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться измерения или реквизиты, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или установлен признак "Ведущее".
    Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение.
    Если параметр не указан, то отбор не используется.
    Важно! Структура может содержать только один элемент.<Порядок> (необязательный)

    Тип: Строка.
    Может содержать слово "Возр" или "Убыв", тогда стандартный порядок будет использоваться с указанным направлением.
    Может содержать имя поля (реквизита или измерения для которых указано индексирование) и через пробел слово "Возр" или "Убыв", тогда упорядочивание будет производится по указанному полю в указанном порядке.
    В качестве значения параметра может быть задана строка "<Нет>" ("<No>"). Это будет означать, что система выберет наиболее оптимальный порядок обхода такой выборки, который в общем случае не будет соответствовать порядку обхода по умолчанию.
    Значение по умолчанию: "Возр"Возвращаемое значение:

    Тип: РегистрСведенийВыборка.
    Описание:

    Формирует выборку записей регистра сведений.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.Пример:

    Курсы = РегистрыСведений.КурсыВалют;
    ОтборВалют = Новый Структура("Валюта");
    ОтборВалют.Валюта = ВыбВалюта;
    ВыборкаКурсовВалют = Курсы.Выбрать(,,ОтборВалют);
    Пока
    ВыборкаКурсовВалют.Следующий() Цикл
    Сообщить("Дата " + ВыборкаКурсовВалют.Период +
    " Валюта "+СокрЛП(ВыборкаКурсовВалют.Валюта) +
    ", Курс "+ ВыборкаКурсовВалют.Курс );
    КонецЦикла
    ;


  6. #6
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    РегистрСведенийМенеджер.<Имя регистра сведений>.ВыбратьПоРегистратору (InformationRegisterManager.<Имя регистра сведений>.SelectByRecorder)

    РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
    ВыбратьПоРегистратору (SelectByRecorder)
    Синтаксис:

    ВыбратьПоРегистратору(<Регистратор>)Параметры:

    <Регистратор> (обязательный)

    Тип: ДокументСсылка.
    Ссылка на документ, являющийся регистратором для записей регистра.Возвращаемое значение:

    Тип: РегистрСведенийВыборка.
    Описание:

    Формирует выборку по регистратору записей регистра сведений. Применяется для регистров сведений, для которых в конфигураторе установлен режим записи "Подчинение регистратору".
    Доступность:

    Сервер, толстый клиент, внешнее соединение.Пример:

    ВыборкаЦен =
    РегистрыСведений.МаркетингЦен.ВыбратьПоРегистратору(ВыбРегистратор);
    Пока
    ВыборкаЦен.Следующий() Цикл
    Сообщить("Дата " + ВыборкаЦен.Регистратор.ДатаДокумента +
    " Номенклатура "+СокрЛП(ВыборкаЦен.Номенклатура) +
    ", Конкурент "+ ВыборкаЦен.Конкурент );
    КонецЦикла
    ;


  7. #7
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    РегистрСведенийМенеджер.<Имя регистра сведений>.Получить (InformationRegisterManager.<Имя регистра сведений>.Get)

    РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
    Получить (Get)
    Вариант синтаксиса: Для периодического регистра

    Синтаксис:

    Получить(<Период>, <Отбор>)Параметры:

    <Период> (обязательный)

    Тип: Дата; МоментВремени.
    Определяет момент времени, на который необходимо получить значения ресурсов. Если указанный момент времени не совпадает с периодом ни одной записи регистра, то будет возвращена структура, содержащая пустые значения.<Отбор> (необязательный)

    Тип: Структура.
    Структура, содержащая отбор по измерениям регистра.
    В переданной структуре должны содержаться те измерения, по которым должны быть отфильтрованы записи. В элементе структуры задается имя и значение отбора. Должны указываться значения для всех измерений.
    Параметр обязателен для регистров, имеющих измерения.
    Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение.
    Неиспользуемым в сеансе разделителям регистра в структуре должен соответствовать элемент с указанным значением отбора, так же, как для всех измерений, иначе будет вызвано исключение.
    Если параметр не указан, то отбор не используется.Вариант синтаксиса: Для непериодического регистра

    Синтаксис:

    Получить(<Отбор>)Параметры:

    <Отбор> (необязательный)

    Тип: Структура.
    Структура, содержащая отбор по измерениям регистра.
    В переданной структуре должны содержаться те измерения, по которым должны быть отфильтрованы записи. В элементе структуры задается имя и значение отбора. Должны указываться значения для всех измерений.
    Параметр обязателен для регистров, имеющих измерения.
    Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение.
    Неиспользуемым в сеансе разделителям регистра в структуре должен соответствовать элемент с указанным значением отбора, так же, как для всех измерений, иначе будет вызвано исключение.
    Если параметр не указан, то отбор не используется.Возвращаемое значение:

    Тип: Структура.
    Структура, содержащая значения ресурсов.Описание:

    Получает ресурсы регистра сведений по указанным ключевым полям.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.

  8. #8
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    РегистрСведенийМенеджер.<Имя регистра сведений>.ПолучитьМакет (InformationRegisterManager.<Имя регистра сведений>.GetTemplate)

    РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
    ПолучитьМакет (GetTemplate)
    Синтаксис:

    ПолучитьМакет(<Макет>)Параметры:

    <Макет> (обязательный)

    Тип: Строка; ОбъектМетаданных: Макет.
    Имя макета, как оно задано в конфигураторе, или объект описания метаданного требуемого макета.Возвращаемое значение:

    Тип: ТабличныйДокумент; ТекстовыйДокумент; другой объект, который может быть макетом.
    Описание:

    Получает макет регистра сведений.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.Пример:

    Таб = Новый ТабличныйДокумент;
    Макет = РегистрыСведений.КурсыВалют.ПолучитьМакет("ТаблицаКурсов");
    Таб.Вывести(Макет.ПолучитьОбласть("Шапка"));
    Таб.Показать();


  9. #9
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    РегистрСведенийМенеджер.<Имя регистра сведений>.ПолучитьПервое (InformationRegisterManager.<Имя регистра сведений>.GetFirst)

    РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
    ПолучитьПервое (GetFirst)
    Синтаксис:

    ПолучитьПервое(<НачалоПериода>, <Отбор>)Параметры:

    <НачалоПериода> (необязательный)

    Тип: Дата; МоментВремени; Граница.
    Определяет момент времени, начиная с которого необходимо получить значения ресурсов. Может задаваться значениями типа Дата, МоментВремени или Граница. Если параметр не указан, то будут возвращены значения ресурсов самой первой записи регистра.<Отбор> (необязательный)

    Тип: Структура.
    Структура, содержащая отбор по измерениям регистра. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение.
    Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение.
    Если параметр не указан, то отбор не используется.Возвращаемое значение:

    Тип: Структура.
    Возвращает структуру, содержащую значения ресурсов.Описание:

    Получает значения ресурсов наиболее ранней записи регистра, соответствующей указанным периоду и значениям измерений регистра. Поиск по периоду осуществляется "включительно", т.е. если существует запись с таким же значением одноименного свойства, то она и будет найдена.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.Примечание:

    Применим только для периодических регистров сведений.Пример:

    МаркетингЦен = РегистрыСведений.МаркетингЦен;
    Цена = МаркетингЦен.ПолучитьПервое(ВыбДата, ВыбКлиент, ВыбТовар).Цена;


  10. #10
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    РегистрСведенийМенеджер.<Имя регистра сведений>.ПолучитьПоследнее (InformationRegisterManager.<Имя регистра сведений>.GetLast)

    РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
    ПолучитьПоследнее (GetLast)
    Синтаксис:

    ПолучитьПоследнее(<КонецПериода>, <Отбор>)Параметры:

    <КонецПериода> (необязательный)

    Тип: Дата; МоментВремени; Граница.
    Определяет момент времени, по который необходимо получить значения ресурсов. Может задаваться значениями типа Дата, МоментВремени или Граница. Если параметр не указан, то будут возвращены значения ресурсов самой последней записи регистра.<Отбор> (необязательный)

    Тип: Структура.
    Структура, содержащая отбор по измерениям регистра. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение.
    Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение.
    Если параметр не указан, то отбор не используется.Возвращаемое значение:

    Тип: Структура.
    Возвращает структуру, содержащую значения ресурсов.Описание:

    Получает значения ресурсов наиболее поздней записи регистра, соответствующей указанным периоду и значениям измерений регистра.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.Примечание:

    Применим только для периодических регистров сведений.Пример:

    Доллары = Справочники.Валюты.НайтиПоНаименованию("USD");
    Отбор = Новый Структура;
    Отбор.Вставить("Валюта", Доллары);
    Курсы = РегистрыСведений.КурсыВалют;
    ТекКурс = Курсы.ПолучитьПоследнее(ТекущаяДата(), Отбор);
    Сообщить("Текущий курс доллара: " + ТекКурс.Курс + " руб.");


Закрытая тема
Страница 1 из 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Следующая ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

     

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 03.02.2012, 20:23
  2. Ответов: 0
    Последнее сообщение: 25.01.2011, 19:29
  3. Ответов: 0
    Последнее сообщение: 19.01.2011, 21:04
  4. Ответов: 0
    Последнее сообщение: 14.01.2011, 18:40
  5. Очень большой регистр сведений
    от maverick в разделе 8.0/8.1
    Ответов: 0
    Последнее сообщение: 09.01.2011, 13:22

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения


Навигация по сайту:
, 1c, 1с 8.2, 1с 8.3, Скачать 1с, 1с бухгалтерия, 1с предприятие, Программа 1с,
1с торговля, 1с управление, 1с зарплата, Обновление 1с, Миста, Программирование 1с,

Положение об ответственности
Связь с администрацией erpsolution.ru@yandex.ru