Разделы сайта
Выбор редакции:
- Кредитное плечо Что происходит если увеличивается плечо финансового рычага
- Лицевые счета сотрудников по заработной плате
- Оквэд ремонт компьютерной техники
- Пушкин «Сказка о рыбаке и рыбке Сказки Пушкина: Сказка о рыбаке и рыбке
- Состояние опьянения: процедура отстранения от работы
- Годовой отчет по продажам Годовой отчет менеджера по продажам
- При прочих равных условиях сокращение совокупного спроса
- Анкета на прием на работу: образец, пример
- Вертикальная дифференциация продукта Ценовая и неценовая конкуренция
- Рекомендуемые характеристики вв Выбор типа ВВ и СИ
Реклама
Внести изменения в регистр сведений 1с 8.3. Внесение изменений в регистры |
Регистр сведений 1С 8 — объект метаданных, предназначенный для хранения справочной информации в разрезе определенных разработчиком измерений. Типичный пример использования регистра сведений — хранение информации о курсе валют в разрезе валюты и периода. Рассмотрим подробнее свойства и настройки регистра сведений. Два главных свойства регистра сведения — Периодичность и Режим записи . Это уникальные свойства регистра сведений, которых больше нет ни у одного объекта метаданных. Рассмотрим их подробнее. Данное свойство позволяет добавить к списку измерений дополнительное измерение — Период . С его помощью можно решить большое количество задач: хранение информации в базе данных, учитывая актуальность на определенную дату. Прикладных примеров использования периодов множество: хранение значение валюты на каждый день, хранение цены номенклатуры и т.д. Периодичность может принимать следующие значения:
Получите 267 видеоуроков по 1С бесплатно: При выборе периодичности, отличной от варианта Непериодический, система будет контролировать уникальность записей в пределах заданного промежутка времени. Если запись не уникальна, система 1C выдаст сообщение и не даст произвести запись в базу данных. А одна из главных особенностей периодического регистра сведений — возможность получать готовые значения «Среза первых» и «Среза последних». Эта информация позволяет очень быстро получить из базы данных информацию о последнем (первом) установленном значении на определенную дату. Режим записи регистра сведенийВ 1С 8.2 и 8.3 это свойство может быть либо в значении «Независимый», либо — «Подчинение регистратору». В первом случае записи можно будет произвести как программно, так и из формы списка регистра сведений. Во втором случае обязательно указание документа-регистратора записи. Это накладывает определенные ограничения, но в то же время открывает новые возможности. Свойства измерения регистра сведенийТакже следует обратить внимание на палитру свойств измерений регистра сведений 1С 8.3. Особенно на флаги Ведущее и Основной отбор:
Программная запись в регистр сведений 1СДобавить новые записи в регистр сведений можно двумя способами — с помощью менеджера записи и с помощью набора записей. Первый случай подойдет для одиночной записи, второй — для двух и и более записей. Использование менеджера записи: НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); Использование набора записей регистра сведений 1С: НовыйНаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); Существует несколько видов регистров в 1С:
На последних мы остановимся поподробнее, поскольку они позволяют компилировать данные из БД по разрезам измерений. Например, в «Ценыноменклатуры» хранятся данные для конкретной номенклатуры и характеристики по определенному виду цен. Рис.1 Регистр «Ценыноменклатуры» ХарактеристикиРегистр бывает как периодическим, так и непериодическим, когда не нужно сохранять последовательность изменений. Но если все-таки хранить нужно, то устанавливается, в пределах какого периода программа установит контроль уникальности записей: посекундно, за день, месяц, за квартал и год. Рис.2 Периодичность и режим записи Если попытаться создать две записи в пределах одного периода, программа выдаст ошибку «Запись с такими ключевыми полями существует!» и не даст произвести запись в базу данных. Также можно указать режим записи. Первый с «Подчинением регистратору», при котором записи будут регистрироваться документами и в каждой из них будет указан документ-регистратор. Если выбирать второй – независимый режим, то данные регистрируются не регистратором, а добавляются, например, непосредственно из списка или как обработка. Рис.3 Режимы записи Особенность периодического регистра в том, что можно использовать срез крайних или первых, получая готовые значения из базы данных о последнем/первом установленном значении на определенную дату. Запись в регистр сведений 1ССтроки в регистре с периодом и регистратором, содержащие информацию о ресурсах в разрезе измерений, называются записями. Чтобы добавить запись в регистр используются или менеджер записей, или набор записей. Если у записей в регистре имеется общий ключ, то необходимо использовать НаборЗаписей. А для записи одной единственной записи, если в регистре все записи уникальны, необходимо использовать МенеджерЗаписи. Пример записи при использовании объекта РегистрСведенийНаборЗаписей. Использование менеджера записи: НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»); НоваяЗапись.Период = Дата(31,12,2016); НоваяЗапись.Курс = 100; НоваяЗапись.Кратность = 1; НоваяЗапись.Записать();При использовании набора записей и метода «Записать» происходит запись в регистр сведений набора записей. При этом может происходить как просто добавление строк, так и замещение уже имеющихся строк в регистре. Для независимых регистров, без установки отборов, будет произведено удаление всех записей в регистре и замещение на добавляемые записи. Если записать без отбора данные в подчиненны регистр, возникнет ошибка. Пример записи с использованием набора записей в подчиненный регистратору регистр сведений ЦеныНоменклатуры: НовыйНаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НовыйНаборЗаписей.Отбор.Регистратор.Установить(Ссылка); НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить(); НоваяЗаписьНабора.Период = Ссылка.Дата; НоваяЗаписьНабора.Номенклатура = Ссылка.Номенклатура; НоваяЗаписьНабора.Цена = Ссылка.Цена; НовыйНаборЗаписей.Записать();Пример записи через менеджер записи: Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); Запись.Период = Дата; Запись.Курс = Курс; Запись.Валюта = Валюта; Запись.Записать();Поиск и чтение в регистре сведенийЧтобы найти в регистре сведений запись и прочитать ее, нужна помощь запросов. Например, нам надо получить цены, внесенные определенным регистратором: ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.Цена ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ГДЕ ЦеныНоменклатуры.Регистратор = &РегистраторИзменение и удаление записейЧтобы удалить запись регистра сведений, например, все курсы валюты EUR, воспользуйтесь следующим кодом: СтруктураОтбора = новый Структура("Валюта", Справочники.Валюты.НайтиПоНаименованию("EUR")); Выборка = РегистрыСведений.КурсыВалют.Выбрать(,СтруктураОтбора); Пока Выборка.Следующий() Цикл МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи(); Выборка.ПолучитьМенеджерЗаписи().Удалить(); КонецЦикла;Для быстрой и полной очистки регистра можно использовать следующий код: НоваяЗапись = РегистрыСведений.ТестовыйРегистр.СоздатьНаборЗаписей(); НоваяЗапись.Записать();Чтобы скорректировать и изменить регистр, а также быстро заполнить регистр данными, можно написать универсальную обработку. Регистры - это совокупность записей об объектах. Они не только хранят атрибуты объектов программы, но и записывают движения по этим параметрам. Их предназначение - сохранения данных и предоставление отчетностей по определенным параметрам. Параметры могут быть разнообразными, в зависимости от типа сохраняемой информации. В таблицах сохраняются свойства объектов. К примеру, для стоимости товара это будут:
В регистры записываются итоги операций, проводимых в системе. Каждый из документов записывает свои результаты. Такие записи называют Движениями. По ним можно провести сортировку и сравнение данных. Если добавить дополнительный параметр времени, например, цена на определенную дату, то выборку можно будет делать еще и по периодам времени. Хранение информации со значением периода помогает структурировать и отфильтровать нужные данные. Настройка в 1С 8.3 регистров сведенийНастройка таких глубинных элементов программы, в основном, занятие программистов и ежедневно с ними работать пользователям не приходится. В зависимости от типа регистра доступ к нему может находится под разными кнопками управления соответствующей подсистемы. Как правило, пользователи не нуждаются в информации, где находится регистр сведений в 1с 8.3 . Скажем только, что основной доступ к ним находится в разделе Конфигурации. Как в 1С 8.3 сделать запись в регистр сведенийЗаписи в регистрах являются следствием проведения операций в различных частях программы. Но есть возможность сделать непосредственные изменения. Для этого предусмотрена возможность записи в регистр сведений 1С 8.3 программно (пусть примером служит аналитика колебаний валютных курсов):
НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«UA»); НоваяЗапись.Период = Дата(30,07,2018); НоваяЗапись.Курс = 50; НоваяЗапись.Кратность = 1; НоваяЗапись.Записать();
НовыйНаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); //Внимание! Здесь важно указать критерии отбора. В противном случае все сделанные прежде записи исчезнут. НовыйНаборЗаписей.Отбор.Валюта.Установить(Гривна, Истина); НовыйНаборЗаписей.Отбор.Период.Установить(Дата(30,07,2018), Истина); //Теперь можно приступить к записыванию самого набора НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить(); НоваяЗаписьНабора.Валюта = Справочники.Валюты.НайтиПоНаименованию(«UA»); НоваяЗаписьНабора.Период = Дата(30,07,2018); НоваяЗаписьНабора.Курс = 50; НоваяЗаписьНабора.Кратность = 1; НовыйНаборЗаписей.Записать(); Как удалить регистр сведений в 1с 8.3
В программе 1с 8.3 добавить запись в регистр сведений относительно легко. Теперь рассмотрим вариант удаления. Возьмем гипотетический вариант, где нужно удалить информацию об Организации. В этом случае параметр УдаляемаяОрганизация будет иметь свою ссылку. Выполняем такие действия:
После этого нужно создать вариационную НаборЗаписей, где сделать выборку по компании такой же, как и УдаляемаяОрганизация. Получится пустая совокупность записей. Для полного удаления нужно его записать с замещением. Таким образом, вся информация, предназначенная для стирания, заменена на пустые значения. Обратите внимание, что выборку такого набора записей устанавливают исключительно на равенство. Регистры сведений 1С это структурированный набор данных с измерениями и ресурсами. Предназначен для хранения периодической информации. ПериодичностьИнформация хранится в разрезе измерений и периода. Регистру сведений, можно задать периодичность:
Периодичность нужна для выбора информации из регистра на определенный период времени. Если указать периодичность, записи в регистр будут производиться с периодом, когда была сделана запись. Допустим если посмотреть регистр «Цены номенклатуры», можно увидеть историю изменения цен, с какими измерениями и в какой период времени была сделана запись. Периодичность в регистрах сведений нужны для информации которая изменяется в течении времени, например: курсы валют, цены номенклатуры, скидки и наценки номенклатуры и т.д. РегистраторыЕсли делать запись в регистр сведений с помощью документа, нужно установить режим записи: «Подчинение регистратору» и выбрать документ, которым будет делаться запись в регистр. Тогда в регистре появится поле «Регистратор», где будет храниться информация, каким документом была сделана запись. Так же регистратор можно использовать как период, для этого укажите в поле «Периодичность» — «По регистратору». Подчинение регистратору делают, когда требуется жестко привязать регистр к документу и изменение записей в регистре в ручном режиме становится не доступным. Документы, которые будут в роли регистраторов, может быть несколько. Для того чтобы добавить регистратор, нужно зайти в свойства нужного регистра сведений, перейти на вкладку «Регистраторы» и установить галочки напротив документов, которые будут выполнять роль регистратора. Посмотреть движения, которые делает регистратор можно из документа. Для этого нужно зайти в интересующий Вас документ, нажать: Перейти – Движения документа по регистратору. В свойствах регистра не забудьте добавить права, их можно назначить на вкладке «Права». Затем в списке ролей нужно выбрать роль, которой требуется добавить права на регистр и в списке прав установить права на для выбранной роли. Уникальность записейУникальность записи зависит от периода и измерений. Например, если вы хотите записать в регистр «Цены номенклатуры» запись с одинаковыми измерениями, в один и тот же день, то у вас это не получится и программа вызовет ошибку, так как периодичность регистра в пределах дня. Если периодичность задана регистратором, он так же участвует в уникальности записи. Для не периодических и не зависимых регистров уникальность зависит от комбинации измерений. ФормыДля просмотра записей используйте форму списка, в ней можно установить отбор, по интересующим Вас полям, посмотреть историю записей и изменить их через форму записи. Посмотреть записи регистра можно следующим образом: в верхнем меню нажать кнопку «Операции» — «Регистры сведений». В открывшемся окне выберете нужный Вам регистр. После этого откроется форма списка в виде таблицы, где каждая стока является уникальной записью. Для редактирования / создания, используйте форму записи, если запись подчинена регистратору, тогда поле будет не доступно и форму создать не получится. Добавлять формы нужно в конфигураторе, зайдя в регистр сведений, во вкладке «Формы» и нажать на «лупу» у нужного вида формы. Далее откроется окно, где можно настроить поля будущей формы (расположение, названия и прописать функционал). Измерения, ресурсы и реквизитыИзмерения предназначены для формирования уникальности записи, по ним в дальнейшем можно осуществлять отбор и делать срез по конкретному измерению. Сочетание измерений и формирует ключ записи. Лучше не создавать большое количество измерений, чтобы таблица не разрасталась и в процессе работы с ней, не тормозила. У измерений есть галочка «Ведущее», если она установлена то запись будет храниться в базе данных, пока существует данное измерение. Ведущих измерений можно сделать несколько. Например, в регистре сведений «Цены номенклатуры», ведущим измерением является номенклатура, если удалить номенклатуру, которая участвует в записи, тогда автоматически удалится запись в регистре сведений по этой номенклатуре. Ресурсы предназначены для хранения суммовую информацию: количество, цена и т.д. Ресурсы в дальнейшем будем получать на определенный период времени (если регистр периодический), по измерениям. Реквизиты, в большинстве случаев, предназначены для хранения дополнительной информации, они не принимают участие в уникальности записи. Например, в реквизиты можно заносить информацию такую как автор, комментарий и т.д. С регистром сведений можно производить следующие действия:
Особенности— Уникальность записей по набору измерений: каждая запись в регистре сведений — это новое значение ресурса. — Записи регистра сведений могут быть как периодические, так и нет. — Регистр сведений может быть зависимым и независимым от регистратора. — Есть возможность сделать срез первых и последних записей на нужную дату. Это реализовано виртуальными таблицами: «СрезПервых» и «СрезПоследних». Для использования этих таблиц можно воспользоваться как отбором, так и запросом (в конструкторе запросов вы уведите эти виртуальные таблицы и сможете сделать по ним запрос). Эти таблицы будут доступны, если регистр сведений периодический. Регистр «Цены номенклатуры» — периодический регистр сведений, записи производиться по регистратору. На изображении видно, что периодичность установлена в пределах дня. Значит, цену можно изменить один раз в день по уникальным в течении дня измерениям. Регистр подчинен документу «Установка цен номенклатуры». Значит, запись в регистр происходит из этого документа. Движения по конкретному документу можно посмотреть из формы документа «Установка цен номенклатуры». Регистр предназначен для хранения информации по цена номенклатуры, с измерениями «Тип цен», «Номенклатура» и «Характеристика номенклатуры». Ведущим измерениями являются все три поля измерения, по нем можно будет делать отбор при выборке.
Заключение: после прочтения статьи Вы сможете создать регистр сведений 1С, добавить измерения и ресурсы, настроить формы редактирования и списка. Создать запись и сделать выборку существующих записей. Если остались вопросы, воспользуйтесь комментариями в статье, постараюсь оперативно дать ответ на интересующий Вас вопрос. В этой статье мы познакомимся с очень интересным объектом метаданных конфигурации 1С – регистром сведений. Регистры сведений применяются для хранения различной информации, которая может использоваться в прикладной задаче. Информация в регистре сведений хранится в определенных разрезах, которые называются измерениями, а еще она может изменяться во времени. Непериодический регистр сведений 1СОсновное предназначение регистров сведений в том, что в них должны храниться показатели аналитики. Например, у нас есть задача хранить виды топлива (АИ-92, АИ-95 и т.д.), но также и цену на этот вид топлива. Как это удобное всего организовать. Однозначно сами виды топлива необходимо хранить в каком-то справочнике. Так его и назовем – вид топлива. Но где же хранить цену на этот вид топлива? Самое первое решение в реквизите справочника. Очевидно, такое решение имеет место, если цена у нас ни когда не изменяется. Но в жизни такое редко случается, поэтому если мы так сделаем, то возникнет необходимость каждый раз изменять элемент справочника при изменении цены. В принципе, почему бы и нет. Но, если мы еще добавим новый разрез цены – поставщик топлива: у одного и того же вида топлива может быть разная цена для разных поставщиков, то хранение цены в реквизите справочника станет принципиально не возможной: мы не будем знать, к какому поставщику относиться эта цена. Для решения этих задач служит специальный объект конфигурации — регистр сведений. В этом регистре сведений можно создавать записи, в которых будет указано, что для такого-то вида топлива, для такого-то поставщика устанавливается такая-то цена. Сейчас мы и решим эту маленькую прикладную задачу: в нашей конфигурации есть два справочника «Виды топлива» и «Поставщики топлива» Необходимо организовать возможность хранения цены для каждого вида топлива с учетом поставщиков. Для этого в создадим новый регистр сведений ЦеныНаТопливо. На закладке Основные установим имя и синоним. Все остальное оставим как есть. Теперь на закладке данные создадим два измерения – ВидТоплива и ПоставщикТоплива, типы которых ссылки на соответствующие справочники. У обоих измерений поставим флаг – Ведущее . Это значит, что если мы удалим элемент справочника, который указан в какой-то записи регистра сведений, то эта запись удалиться автоматически. Так же есть одно интерфейсное следствие этого флага: если флаг установлен, то в форме элемента справочника мы сможем посмотреть на записи этого регистра для этого элемента. Установим для каждого измерения этот флаг. У нас непериодический регистр, и в нем два измерения ВидТоплива и ПоставщикТоплива это значит, что мы не сможем создать две записи с одинаковыми значениями полей ВидТоплива и ПоставщикТоплива . Программа выдаст ошибку. Что и разумно – не может быть две разных цены на один и тот же вид топлива у одного и того же поставщика. А если может, то это значит, что необходимо добавить еще один разрез (например, база поставщика). Кроме измерений у регистра сведений существуют Ресурсы и Реквизиты . Ресурс должен хранить основную информацию регистра сведений, т.е. те данные, ради которых он создан, а Реквизит содержит дополнительную второстепенную информацию о записи. Мы создадим ресурс – Цена (тип число 10,2). И всё. Сохраним конфигурацию и откроем этот регистр сведений и заведем какую-нибудь запись. Если мы сейчас попробуем создать запись с точно таким же набором измерений, то возникнет ошибка: «Запись с такими ключевыми полями существует». И последний момент: поскольку мы у измерения ВидТоплива установили флаг «Ведущее», то у элемента справочника ВидыТоплива появилась команда на открытие регистра сведений «Цена на топливо» Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
можно оплатить вручную: Яндекс.Деньги — 410012882996301 Вступайте в мои группы. |
Читайте: |
---|
Новое
- Лицевые счета сотрудников по заработной плате
- Оквэд ремонт компьютерной техники
- Пушкин «Сказка о рыбаке и рыбке Сказки Пушкина: Сказка о рыбаке и рыбке
- Состояние опьянения: процедура отстранения от работы
- Годовой отчет по продажам Годовой отчет менеджера по продажам
- При прочих равных условиях сокращение совокупного спроса
- Анкета на прием на работу: образец, пример
- Вертикальная дифференциация продукта Ценовая и неценовая конкуренция
- Рекомендуемые характеристики вв Выбор типа ВВ и СИ
- Презентация "Совершенствование техники чтения"