Как Очистить Набор Записей Регистра Сведений с Отбором • Добавление записей

Периодичность регистра сведений 1С

Одной из возможностей регистра сведений является хранение данных не только в разрезе указанных измерений, но и в разрезе времени.

Данное свойство позволяет добавить к списку измерений регистра дополнительное измерение — «Период».

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

Разработчик может указать минимальную периодичность, с которой записи будут заноситься в регистр:

Периодичность регистра сведений 1С

В этом случае к каждой записи регистра будет добавляться поле «Период», хранящее дату, которой были внесены записи в регистр.

При выборе периодичности, отличной от варианта «Непериодический», система будет контролировать уникальность записей в пределах заданного промежутка времени. Если запись не уникальна, система 1C выдаст сообщение » Запись с такими ключевыми полями существует !» и не даст произвести запись в базу данных.

Например, периодический регистр сведений «Цены товаров» может не только хранить информацию о том, какова цена на определенную номенклатуру сейчас, но и о том, как она изменялась в прошлом (или будет изменяться в будущем).

Заметки по 1С: Предприятие 8.2, 8.3: Регистры сведений

  • создание, изменение и удаление записей;
  • выбор записей в заданном интервале по заданным критериям;
  • выбор записей по регистратору;
  • получение значений ресурсов записей, соответствующих указанному периоду и значениям измерений;
  • получение значений ресурсов наиболее ранних и наиболее поздних записей регистра, соответствующих указанному периоду и значениям измерений.

Для того что бы понять и изучить, принципы программной с регистрами сведений, сделаем небольшую задачу на тестовой конфигурации «Управляемое приложение 1С». Создадим обработку, которая будет менять цены определенного вида у всех товаров на определенную дату.

Второй вариант открытия — с использованием серверного вызова

КлючЗаписиРегистра = ПолучитьКлючЗаписи(Новый Структура(«ГрафикРаботы,Дата,НачалоИнтервала», Расшифровка.ГрафикРаботы,НачалоДня(Расшифровка.Дата),Расшифровка.Дата));
ОткрытьФорму(«РегистрСведений.ТабельРаботы.Форма.ФормаНазначенияПериода», Новый Структура(«Ключ», КлючЗаписиРегистра));

В случае отсутствия записи, когда указаны не действительные измерения регистра, выйдет ошибка «Объект не найден»:

Запись = РегистрыСведений.ТабельРаботы.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись,Структура);
Запись.Прочитать();
Если Запись.Выбран() = Ложь
Возврат Неопределено;
КонецЕсли;

1с получить запись регистра сведений по ключу.
Регистры сведений в 1С — это прикладные объекты конфигурации для хранения данных в структурированном виде (в разрезе измерений). Например, в регистре сведений можно хранить курсы валют в разрезе валют, цены номенклатуры в разрезе номенклатур, ФИО физических лиц в разрезе физических лиц и т.д.
Мнение эксперта
Ксения Диянова, эксперт по вопросам красоты, чистоты, гармонии
Все вопросы задавайте мне, с удовольствием отвечу!
Задать вопрос эксперту
Для удаления всех записей в независимом регистре сведений достаточно записать набор записей этого регистра без установки отборов. Вместе с каждой записью, находящейся в регистре сведений, в его реквизитах можно хранить дополнительную произвольную информацию. Объект 1С Регистры сведений Задавайте все свои вопросы мне, я с радостью отвечу!

Отбор записей регистра сведений по ресурсу

Для удаления всех записей в независимом регистре сведений достаточно записать набор записей этого регистра без установки отборов:

Изменение записей

Изменять существующие записи регистров сведений возможно при помощи объектов НаборЗаписей и МенеджерЗаписи . Ограничения объекта МенеджерЗаписи были описаны выше.

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

Кроме чтения запросом возможно использование методов объектной модели.

  • Выбрать(НачалоИнтервала, КонецИнтервала, Отбор, Порядок) — выбирает записи с указанным отбором, у которых период находится между НачалоИнтервала и КонецИнтервала ;
  • ВыбратьПоРегистратору(Регистратор) — выбирает все записи указанного регистратора;
  • Получить(Период, Отбор) — получает ресурсы записи с отбором по всем измерениям и периоду;
  • ПолучитьПервое(НачалоПериода, Отбор) — получает ресурсы наиболее ранней записи, соответствующей указанным периоду и отбору;
  • ПолучитьПоследнее(КонецПериода, Отбор) — получает ресурсы наиболее поздней записи, соответствующей указанным периоду и отбору;
  • СрезПервых(НачалоПериода, Отбор) — получает таблицу наиболее ранних записей, соответствующую указанным периоду и отбору;
  • СрезПоследних(КонецПериода, Отбор) — получает таблицу наиболее поздних записей, соответствующую указанным периоду и отбору.

Записи регистра сведений стали неуникальными при обновлении 1С

  • измерения — описывают разрезы, в которых хранится информация;
  • период — поле, используемое для разворота данных по времени. Поле добавляется автоматически при указании свойства «Периодичность», отличного от «Непериодический»;
  • регистратор — поле, используемое для хранения документа, с которым связана запись. Поле добавляется автоматически при указании свойства «Режим записи» в значение «Подчинение регистратору»;
  • ресурсы — непосредственно хранят информацию для комбинации измерений;
  • реквизиты — дополнительная произвольная информация, относящаяся к конкретной записи регистра.

При возникновении ошибки будет выдано предупреждение о возникшей ситуации с регистром, которое не позволит продолжить обновление, пока не будет исправлена ошибка.

Заметки по 1С:Предприятие 8.2, 8.3

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).

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

На следующей схеме изображено взаимодействие объектов встроенного языка для работы с регистрами сведений.

РегистрСведенийМенеджерЗаписи.. Позволяет читать, записывать и удалять отдельную запись регистра сведений. Используется только для регистров сведений, не изменяемых регистраторами, т.е. для которых в конфигураторе установлен режим записи Независимый.

РегистрСведенийЗапись.. Предоставляет доступ к записи регистра сведений. Объект не создается непосредственно, а предоставляется другими объектами, связанными с регистром сведений. Например, данный объект предоставляет записи регистра в наборе записей.

РегистрСведенийКлючЗаписи.. Представляет собой набор значений, однозначно идентифицирующих запись регистра. Объект используется в тех случаях, когда необходимо сослаться на определенную запись. Например, он выступает в качестве значения свойства ТекущаяСтрока табличного поля, отображающего список записей регистра.

// Пример: получить текущую цену из периодического регистра сведений «Цены».
Элемент = Справочники . Номенклатура . НайтиПоКоду ( 4 );
Отбор = Новый Структура ( «Номенклатура» , Элемент );
ЗначенияРесурсов = РегистрыСведений . Цены . ПолучитьПоследнее ( ТекущаяДата (), Отбор );
Цена = ЗначенияРесурсов . Цена ;

// 2. объект РегистрыСведенийМенеджер
// .
// []
// Для Каждого . Из . Цикл . КонецЦикла;

// Пример: получить начальную цену из периодического регистра сведений «Цены».
ИмяРегистра = «Цены» ;
Услуга = Справочники . Номенклатура . НайтиПоНаименованию ( «Диагностика» );
Отбор = Новый Структура ;
Отбор . Вставить ( «Номенклатура» , Услуга );
Цена = РегистрыСведений [ ИмяРегистра ]. ПолучитьПервое ( ТекущаяДата (), Отбор ). Цена ;

// Пример: активизировать требуемую строку списка регистра сведений.
СтруктураКлючевыхПолей = Новый Структура ;
СтруктураКлючевыхПолей . Вставить ( «Период» , Дата ( «20040331000000» ));
СтруктураКлючевыхПолей . Вставить ( «Номенклатура» , Справочники . Номенклатура . НайтиПоКоду ( «0000006» ));
Элементы . Материалы . ТекущаяСтрока = РегистрыСведений . Цены . СоздатьКлючЗаписи ( СтруктураКлючевыхПолей );

// Пример: показать номенклатуру, цена на которую была установлена в заданную дату и время.
Набор = РегистрыСведений . Цены . СоздатьНаборЗаписей ();
Набор . Отбор . Период . Установить ( ЗаданнаяДата , Истина);
Набор . Прочитать ();
Для Каждого ОчереднаяЗапись Из Набор Цикл
Сообщить ( «Номенклатура color: red;»>+ ОчереднаяЗапись . Номенклатура + «, цена color: red;»>+ ОчереднаяЗапись . Цена );
КонецЦикла;

1С регистр сведений обновить запись - Права пенсионеров и инвалидов
Например, периодический регистр сведений «Цены товаров» может не только хранить информацию о том, какова цена на определенную номенклатуру сейчас, но и о том, как она изменялась в прошлом (или будет изменяться в будущем).
Мнение эксперта
Ксения Диянова, эксперт по вопросам красоты, чистоты, гармонии
Все вопросы задавайте мне, с удовольствием отвечу!
Задать вопрос эксперту
Например, в регистре сведений можно хранить курсы валют в разрезе валют, цены номенклатуры в разрезе номенклатур, ФИО физических лиц в разрезе физических лиц и т. При работе в пользовательском режиме при попытке записи в регистр разных данных с одинаковыми ключевыми параметрами выдается ошибка, не позволяющая провести документ. Удаление записей Задавайте все свои вопросы мне, я с радостью отвечу!

Изменение записей

В примере происходит выборка цен с отбором по номенклатуре и по типу цен на текущую дату.

Сравнение конфигураций

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

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

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

Пошаговая инструкция сравнения основной конфигурации и конфигурации базы данных.

Откройте конфигурацию по кнопке Конфигуратор — Открыть конфигурацию . В правом окне откроется список всех объектов 1С.

Нажмите на кнопку ОК . Программа 1С выдаст окно сравнения конфигураций, в котором нужно перейти на регистр сведения Цены номенклатуры и раскрыть различия, нажав на «+» справа от объекта.

Из таблицы сравнения видно, что в регистре Цены номенклатуры в основной конфигурации отсутствует параметр измерения Тип цен .

Войдите в базу данных и откройте регистр Цены номенклатуры : кнопка Главное меню — Все функции — Регистры сведений — Цены номенклатуры .

Как видно из рисунка, сейчас в регистре сведений Цены номенклатуры для Комплекта постельного белья две записи для типов цен:

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

Удалите одну из записей для Комплекта постельного белья и выполните обновление сначала. На этот раз никаких ошибок программа 1С не выдаст!

Похожие публикации

&НаСервере
Процедура ИзменитьЦенуНаСервере ()
РегистрЦены = РегистрыСведений . ЦеныТоваров . СоздатьНаборЗаписей (); //1
РегистрЦены . Отбор . ВидЦен . Установить ( ВидЦены ); //2
РегистрЦены . Отбор . Период . Установить ( НачалоДня ( Дата )); //3
РегистрЦены . Прочитать (); //4
Для Каждого стрНабора из РегистрЦены Цикл
стрНабора . Цена = стрНабора . Цена *(( 100 + Процент )/ 100 ); //5
КонецЦикла;
РегистрЦены . Записать (); //6
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьЦену ( Команда )
ИзменитьЦенуНаСервере ();
КонецПроцедуры

Исправление ошибки «Записи регистра сведений стали неуникальными»

Последовательное обновление конфигурации без «пропусков»

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

При возникновении ошибки обновите текущую конфигурацию, например, Бухгалтерия предприятия 3.0.67.54 не сразу на релиз 3.0.67.72, а последовательно на:

1С регистр сведений обновить запись

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

Настройка автоматического обновления

Настройте автоматическое обновление 1С: раздел Администрирование — Настройки программы — Интернет-поддержка и сервисы — Обновление версии программы .

При автоматическом обновлении подобная ошибка, как правило, не появляется, так как все изменения разработчиков в «промежуточных» релизах, которые может пропустить пользователь при самостоятельном обновлении, учитываются автоматически.

Для автоматического обновления программы 1С должна быть настроена Интернет-поддержка.

Сравнение конфигураций

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

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

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

Пошаговая инструкция сравнения основной конфигурации и конфигурации базы данных.

Откройте конфигурацию по кнопке Конфигуратор — Открыть конфигурацию . В правом окне откроется список всех объектов 1С.

Добавление записей
Объект МенеджерЗаписи можно использовать только для работы с независимыми регистрами. Причем можно обрабатывать только одну запись. Объект предназначен в основном для интерактивной работы, но программно с ним также можно работать. На системном уровне МенеджерЗаписи использует объект НаборЗаписей .
Мнение эксперта
Ксения Диянова, эксперт по вопросам красоты, чистоты, гармонии
Все вопросы задавайте мне, с удовольствием отвечу!
Задать вопрос эксперту
Например, в регистре сведений можно хранить курсы валют в разрезе валют, цены номенклатуры в разрезе номенклатур, ФИО физических лиц в разрезе физических лиц и т. В этом случае можно использовать режим подчинения регистратору, при котором изменение цен может быть выполнено только специальным документом — Изменение цен товаров. Подчинение регистратору Задавайте все свои вопросы мне, я с радостью отвечу!

Периодичность регистра сведений 1С

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Изменение данных в регистре может осуществляться как вручную, так и при помощи документов. Режим записи в регистр определяет разработчик на этапе проектирования:

Плохо
0
Интересно
0
Супер
0

О проектеПравообладателямРекламаСогласие на обработку персональных данныхПользовательское соглашениеСправочникПопулярные страницы