Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 💫 читайте на сайте

1C Очистить Регистр Сведений Версии Объектов • Похожие публикации

Такое ощущение, что малые дети начали что-то делать, потом у них возникли трудности, они расстроились и бросили все, как есть.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Допустим, в отчете нам нужно получить срез последних записей для товаров и их цен с условием, что старая цена меньше или равно 50. Как программно запретить удаление записи регистра сведений 1С Обращайтесь в форму связи

Программная работа с регистрами сведений

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

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

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

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

Физически регистр сведений представляет собой таблицу, в которой хранятся следующие данные:

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

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

1C Очистить Регистр Сведений Версии Объектов

  • Выбрать(Отбор, Порядок) — выбирает записи с указанным отбором;
  • ВыбратьПоРегистратору(Регистратор) — выбирает все записи указанного регистратора;
  • Получить(Отбор) — получает ресурсы записи с отбором по всем измерениям.

Добавление записей

Программно добавить записи в регистр сведений можно при помощи:

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

Общая схема добавления записей в регистр сведений при помощи объекта НаборЗаписей выглядит так:

  • создание объекта НаборЗаписей ;
  • наложение отборов на измерения, период (если регистр периодический) и регистратора (если регистр подчинен регистратору);
  • добавление и заполнение значений полей записей;
  • запись набора записей.

Общая схема добавления записей в регистр сведений при помощи объекта МенеджерЗаписи выглядит так:

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

Такое ощущение, что малые дети начали что-то делать, потом у них возникли трудности, они расстроились и бросили все, как есть.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Допустим, в отчете нам нужно получить срез последних записей для товаров и их цен с условием, что старая цена меньше или равно 50. Регистры сведений. История одного «велосипеда» / Хабр Обращайтесь в форму связи

Как запретить удаление записи регистра сведений 1С по условию

//Проверим, что это удаление
Если ЭтотОбъект . Количество ( ) = 0 И ЭтотОбъект . Модифицированность ( ) = Истина Тогда

//Создадим менеджер записи регистра сведений
МЗ = РегистрыСведений . НашРегистр . СоздатьМенеджерЗаписи ( ) ;

//Заполним измерения в менеджере записи по данным отбора
Для каждого ЭлементОтбора из ЭтотОбъект . Отбор Цикл
МЗ [ ЭлементОтбора . Имя ] = ЭлементОтбора . Значение ;
КонецЦикла ;

//Получим запись по заполненным измерениям
МЗ . Прочитать ( ) ;

//Дальше можно проверять любые условия. В менеджере записи теперь
//заполнены все измерения, ресурсы и реквизиты
Отказ =? ( МЗ . Ресурс 1 = «Какое-то значение» , Истина , Ложь ) ;

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

Регистры сведений 1С | Секреты 1С: Эксперта | Яндекс Дзен
Откройте конфигурацию по кнопке Конфигуратор — Открыть конфигурацию . В правом окне откроется список всех объектов 1С.

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

Как программно запретить удаление записи регистра сведений 1С : 2 комментария

Можно также в форме списка регистра сведений сделать так
&НаКлиенте
Процедура СписокПередУдалением(Элемент, Отказ)
ТекСтрока=Элементы.Список.ТекущиеДанные;
//далее проводить анализ реквизитов записи через ТекСтрока. или ТекСтрока[ ]
//и при необходимости
Отказ=Истина;
КонецПроцедуры

Михаил, да, такой способ должен сработать. Но у него есть одно важное ограничение: он будет работать только при удалении записи из формы списка регистра. А если запись удаляется из какой-то другой формы, или вообще программно, то запрет уже не сработает.

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

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Если конфигурация типовая и изменений в нее пользователем не вносилось, проведите обновление последовательно всеми вышедшими релизами, без пропусков. Записи регистра сведений стали неуникальными при обновлении 1С Обращайтесь в форму связи

Регистры сведений. История одного «велосипеда»

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

Один из вопросов звучал безобидно и просто: «Что такое регистр сведений?» Тем удивительнее было наблюдать, как многие буквально спотыкались об него. Впечатление было такое, как будто человек шел, шел и не заметил стеклянную дверь. Тогда-то я впервые задумался о том, что не так с этим изобретением.

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

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

Тогда последние цены конкретных товаров у конкретных поставщиков будут следующие:

А последние цены просто товаров, без учета поставщиков:

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

01.08.2024 00:00:00 78364732678365738465734, Вилка, 155 р.

01.08.2024,00:00:00 78364732678365753438478, Ложка, 191 р.

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

Как видите, результат не только потерял уникальность, он еще и перестал выдавать последние записи. Он лишен вообще какого-либо смысла. Такое ощущение, что малые дети начали что-то делать, потом у них возникли трудности, они расстроились и бросили все, как есть.

На самом деле все это не так смешно, как я здесь описываю. Потому что в реальности происходит следующее. Вы сталкиваетесь с задачей получения последних записей по неполному набору «измерений». Открываете документацию. В описании виртуальной таблицы среза последних читаете:

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

Несколько конкретных примеров обработки регистров сведений (1С: Программисту: Регистры сведений) — 1C-h

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts