1С 8 регистр сведений

  • автор:

Содержание

1С 8.x : Как получить последнее значение регистра сведений?

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  34
  Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cообщение: «Не удалось удалить чеки ККМ!»  2
  Пользователь с правами Администратор ККМ проводит Закрытие кассовой смены (Z). Выходит сообщение: » Не удалось удалить чеки ККМ!» ФР печатает Z -отчет, но Отчет о рознчничных продажах не формируется. Необходимо дать роли Администратор ККМ прав Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C  3
  При попытке удалить запись из регистра сведений — получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить — опять ошибка блокировки 🙁 Путем тестов было вяснено, что проблема В учетной политике не указан вид тарифа страховых взносов. Как указать?  0
  Создайте новую запись учетной политики с начала года — Например 01.01.2013 В учетной смотрите дату начала учетной политики. Поставьте дату начала года (например 01.01.13) закладка появиться должна. Проверьте Тариф страховых взносов: Меню Зарпла Ввод данных по командировкам в программе ЗУП  0
  Ввод сведений о командировках в программе 1С: Зарплата и управление персоналом 8 (ред.30) осуществляется в Разделе Кадры — Все кадровые документы — Создать — Командировка Откроется документ: Ввод сведений о командировках в программ Посмотреть все результаты поиска похожих

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

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

Например, для того, чтобы в независимый регистр сведений «ИсторияОбменаДанными» с измерением «УзелИнформационнойБазы» и ресурсами «ДатаПоследнейЗагрузки», «ДатаПоследнейВыгрузки» и др. добавить одну запись, содержащую значение некоторого свойства выбранной номенклатуры, можно использовать следующий код:

1С (Код)

В результате выполнения этого кода новая запись будет добавлена в регистр, или, если регистр уже содержит запись с выбранными значениям измерения «УзелИнформационнойБазы», — существующая запись будет заменена новой.

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

Например, для того, чтобы в тот же самый регистр сведений «ИсторияОбменаДанными» добавить несколько записей о значениях различных свойств выбранной номенклатуры, можно использовать следующий код (предполагается, что свойства и соответствующие им значения находятся в таблице значений «ТаблицаРезультаты», сформированной заранее):

1С (Код)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 НаборЗаписей = РегистрыСведений.ИсторияОбменаДанными.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.УзелИнформационнойБазы.Установить(прУзелИнформационнойБазы); Для Каждого СтрокаТаблицы Из ТаблицаРезультаты Цикл НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.УзелИнформационнойБазы = прУзелИнформационнойБазы; НоваяЗапись.ДатаПоследнейЗагрузки= СтрокаТаблицы.ДатаПоследнейЗагрузки; НоваяЗапись.ДатаПоследнейВыгрузки= СтрокаТаблицы.ДатаПоследнейВыгрузки; … КонецЦикла; НаборЗаписей.Записать();

В результате выполнения этого кода новые записи будут добавлены в регистр, или, если регистр уже содержит записи с указанным значением измерения «УзелИнформационнойБазы» (по которому установлен отбор в наборе записей), — существующие записи будут заменены новыми.

Если нужно изменить данные в регистре сведений также используем объект РегистрСведенийНаборЗаписей.<имя>. Только после установки отбора читаем данные и изменяем их.

1С (Код)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 НаборЗаписей = РегистрыСведений.ИсторияОбменаДанными.СоздатьНаборЗаписей(); // устанавливаем отборы НаборЗаписей.Отбор.УзелИнформационнойБазы.Установить(прУзелИнформационнойБазы); НаборЗаписей.Отбор.Период.Установить(ДатаПоследнегоОбмена); // читаем данные НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество() = 0 Тогда СтрокаИстории = НаборЗаписей.Добавить(); // данных нет, добавляем движение Иначе СтрокаИстории = НаборЗаписей; // данные есть, будем изменять КонецЕсли; СтрокаИстории.УзелИнформационнойБазы = прУзелИнформационнойБазы; СтрокаИстории.ДатаПоследнейЗагрузки = СтрокаТаблицы.ДатаПоследнейЗагрузки; СтрокаИстории.ДатаПоследнейВыгрузки = СтрокаТаблицы.ДатаПоследнейВыгрузки; … НаборЗаписей.Записать(); // записываем изменения

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

Категория: 1С:Предприятие

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

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

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

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

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

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

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

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

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

  • объекта НаборЗаписей;
  • объекта МенеджерЗаписи.

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

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

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

// Добавление записи в независимый непериодический регистр сведений НаборЗаписей = РегистрыСведений.ВерсииПодсистем.СоздатьНаборЗаписей(); // Этап 1 НаборЗаписей.Отбор.ИмяПодсистемы.Установить(ИмяПодсистемы); // Этап 2 // Этап 3 НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.ИмяПодсистемы = ИмяПодсистемы; НоваяЗапись.Версия = НомерВерсии; НаборЗаписей.Записать(); // Этап 4 // Добавление записи в независимый периодический регистр сведений НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); // Этап 1 // Этап 2 НаборЗаписей.Отбор.Валюта.Установить(Доллар); НаборЗаписей.Отбор.Период.Установить(НачалоДня(ТекущаяДата())); // Этап3 НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.Валюта = Доллар; НоваяЗапись.Курс = 57.92; НоваяЗапись.Кратность = 1; НаборЗаписей.Записать(); // Этап 4

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

  • создание объекта МенеджерЗаписи;
  • заполнение значений полей записи;
  • запись записи.

// Добавление записи в независимый непериодический регистр сведений Запись = РегистрыСведений.ВерсииПодсистем.СоздатьМенеджерЗаписи(); // Этап 1 // Этап 2 Запись.ИмяПодсистемы = ИмяПодсистемы; Запись.Версия = НомерВерсии; Запись.Записать(); // Этап 3 // Добавление записи в независимый периодический регистр сведений Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); // Этап 1 // Этап 2 Запись.Период = ТекущаяДата(); Запись.Валюта = Доллар; Запись.Курс = 57.92; Запись.Кратность = 1; Запись.Записать(); // Этап 3

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

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

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

  • создание объекта НаборЗаписей или МенеджерЗаписи;
  • наложение отборов;
  • чтение записей базы данных, соответствующих наложенным отборам;
  • редактирование прочитанных записей;
  • запись отредактированных записей.

// Редактирование записей с использованием объекта НаборЗаписей НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); // Этап 1 // Этап 2 НаборЗаписей.Отбор.Период.Установить(ДатаКурса); НаборЗаписей.Отбор.Валюта.Установить(Доллар); НаборЗаписей.Прочитать(); // Этап 3 Для Каждого Запись Из НаборЗаписей Цикл Запись.Курс = 57.84; // Этап 4 КонецЦикла; НаборЗаписей.Записать(); // Этап 5 // Редактирование записей с использованием объекта МенеджерЗаписи Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); // Этап 1 // Этап 2 Запись.Период = ДатаКурса; Запись.Валюта = Доллар; Запись.Прочитать(); // Этап 3 Если Запись.Выбран() Тогда // Проверка, что запись существует Запись.Курс = 57.92; // Этап 4 Запись.Записать(); // Этап 5 КонецЕсли;

Чтение записей

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

Запрос = Новый Запрос; Запрос.Текст = «ВЫБРАТЬ | КурсыВалют.Период, | КурсыВалют.Валюта, | КурсыВалют.Курс |ИЗ | РегистрСведений.КурсыВалют КАК КурсыВалют»; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл // обход результата выполнения запроса КонецЦикла;

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

// Получение записи, у которой валюта равна значению из переменной «ВыбраннаяВалюта» // и период МЕНЬШЕ или равен значению из переменной «ВыбраннаяДата» Запрос = Новый Запрос; Запрос.Текст = «ВЫБРАТЬ | КурсыВалютСрезПоследних.Период, | КурсыВалютСрезПоследних.Валюта, | КурсыВалютСрезПоследних.Курс |ИЗ | РегистрСведений.КурсыВалют.СрезПоследних(&Период, Валюта = &Валюта) КАК КурсыВалютСрезПоследних»; Запрос.УстановитьПараметр(«Валюта», ВыбраннаяВалюта); Запрос.УстановитьПараметр(«Период», ВыбраннаяДата); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл // обход результата выполнения запроса КонецЦикла; // Получение записи, у которой валюта равна значению из переменной «ВыбраннаяВалюта» // и период БОЛЬШЕ или равен значению из переменной «ВыбраннаяДата» Запрос = Новый Запрос; Запрос.Текст = «ВЫБРАТЬ | КурсыВалютСрезПервых.Период, | КурсыВалютСрезПервых.Валюта, | КурсыВалютСрезПервых.Курс |ИЗ | РегистрСведений.КурсыВалют.СрезПервых(&Период, Валюта = &Валюта) КАК КурсыВалютСрезПервых»; Запрос.УстановитьПараметр(«Валюта», ВыбраннаяВалюта); Запрос.УстановитьПараметр(«Период», ВыбраннаяДата); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл // обход результата выполнения запроса КонецЦикла;

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

Для непериодических регистров сведений:

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

Для периодических регистров сведений:

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

Удаление записей

Для удаления записи (записей) в независимом регистре сведений необходимо:

  • создать набор записей;
  • наложить требуемые отборы на измерения и период (если регистр периодический);
  • записать набор записей без предварительного чтения.
  • НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Валюта.Установить(Доллар); НаборЗаписей.Отбор.Период.Установить(НачалоДня(ТекущаяДата())); НаборЗаписей.Записать();

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

    • создать набор записей;
    • наложить отбор на регистратора;
    • записать набор записей без предварительного чтения.

    НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокументРегистратор); НаборЗаписей.Записать();

    Очистка регистра сведений

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

    НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); НаборЗаписей.Записать();

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

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

    Запрос = Новый Запрос( «ВЫБРАТЬ | ЦеныНоменклатуры.Регистратор |ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры» ); Выборка = Запрос.Выполнить().Выбрать(); НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); Пока Выборка.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор); НаборЗаписей.Записать(); КонецЦикла;

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

    Предназначение регистра сведений
    Добавление записей
    Изменение записей
    Чтение записей
    Удаление записей
    Очистка регистра сведений

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

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

    1. создание объекта НаборЗаписей или МенеджерЗаписи;
    2. наложение отборов;
    3. чтение записей базы данных, соответствующих наложенным отборам;
    4. редактирование прочитанных записей;
    5. запись отредактированных записей.

    Хранение данных 1С Предприятие 8.3. Регистры 1С. Описание и виды

    В этой статье будет описано: Хранение данных 1С Предприятие 8.3. Регистры 1С. Описание и виды

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

    Измерения и ресурсы. Описание

    С регистром непосредственно связаны такие понятия, как измерения и ресурсы.

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

    Можно сказать так, что к каждому измерению регистра относится некоторое количество ресурсов.
    Например, к каждому складу (склад — это измерение) относится некоторое количество (количество — это ресурс) товара (товар — это тоже измерение).

    Виды регистров 1С. Регистры: сведений, накопления, бухгалтерии, расчетов

    Регистры бывают разных видов.

    • Регистры сведений 1С — таблицы для хранения различной информации, наподобие таблиц MS Excel. В регистрах сведений можно, например, хранить информацию о ценах и скидках номенклатуры по разным прайс-листам или информацию о курсах валют.
    • Регистры накопления 1С — таблицы, в которых хранятся остатки, обороты и накапливаемые итоги. Например, если у нас было некоторого товара 20 штук и 3 штуки были проданы, то итоговый остаток, 17 штук, будет храниться в регистре накопления.
    • Регистры бухгалтерии 1С — таблицы, основанные на бухгалтерских планах счетов. Такие таблицы используются для ведения бухгалтерского учета, именно в регистры бухгалтерии записываются бухгалтерские проводки.
    • Регистры расчетов 1С — таблицы, основанные на планах видов расчетов. Такие таблицы служат для ведения учета по начислению заработной платы.

    В системе «1С:Предприятие 7.7» регистры и проводки являли собой различные объекты дерева метаданных.
    В системе «1С:Предприятие 8.3» бухгалтерские проводки записываются в один из видов регистров: регистры бухгалтерии.

    Принципы построения бухгалтерского учета и структура бухгалтерских проводок

    Упомянем вкратце о принципах построения бухгалтерского учета и структуре бухгалтерских проводок.
    Бухгалтерский учет — это упорядоченная система сбора, регистрации и обобщения информации в денежном выражении о состоянии имущества, обязательств организации и их изменениях (движении денежных средств) путем сплошного, непрерывного и документального учета всех хозяйственных операций.
    Объектами бухгалтерского учета являются: имущество организаций, их обязательства и хозяйственные операции, осуществляемые организациями в процессе их деятельности.

    Основные задачи бухгалтерского учета

    Основными задачами бухгалтерского учета являются:

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

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

    Бухгалтерский счет

    Бухгалтерский счет — это способ группировки и отражения в учете отдельных видов средств, их источников и хозяйственных процессов. То есть, объект бухгалтерской аналитики. Совокупность таких объектов, охватывающая все сферы деятельности предприятия и установленная законодательно, представляет собой план счетов.
    Разумеется, в деятельности отдельно взятого предприятия весь план счетов никогда не используется. Кто-то занимается производством и торговлей, кто-то — оказанием услуг, а кто-то — выращиванием нутрий. В каждом отдельно взятом случае будет задействован не весь план счетов, а лишь часть его.
    Каждому бухгалтерскому счету присвоен свой номер и название, установленные законодательством.
    В плане счетов выделяются и группируются экономически однородные счета — например, счета учета основных средств (10), подразделяющиеся на 10.1 (земельные участки), 10.2 (капитальные затраты по улучшению земель), 10.3 (дома и сооружения), 10.4 (машины и оборудование) и т. д., или, например, 36 (расчеты с покупателями и заказчиками), подразделяющиеся на 36.1 (расчеты с отечественными покупателями), 36.2 (расчеты с иностранными покупателями) и т.д.
    В конфигурациях, использующих планы счетов, они доступны в меню Операции | Планы счетов. В конфигурации «Управление торговлей», которую я взял в качестве примера, планы счетов не используются, поэтому в списке планов счетов пусто.
    Движение денежных средств между бухгалтерскими счетами называется проводкой и может быть записано, например, следующим образом: Д31.1/К36.1. Эта проводка представляет собой поступление в банк оплаты от покупателя.

    • Д31.1 означает «дебет 31.1» — деньги пришли на счет 31.1 (текущие счета в национальной валюте), т. е. дебет проводки — это счет, на который приходят деньги.
    • К36.1 означает «кредит 36.1» — деньги пришли со счета 36.1 (расчеты с отечественными покупателями), т. е. кредит проводки — это счет, с которого приходят деньги.

    Сальдо — это остаток денег на счете, он может быть как положительным, так и отрицательным. Остаток получается сложением всех сумм, которые приходили на счет и которые уходили с него.

    Некоторые счета всегда имеют положительный остаток (например, деньги на расчетном счете или в кассе, товары на складе). Такие счета являются активными, и сальдо у них дебетовое.
    Некоторые счета всегда имеют отрицательный остаток (например, реализация товаров, на склад товар пришел по одной цене, продался уже с другой, более высокой, т. е. со счета «Реализация товаров» уйдет больше денег, чем придет на него). Такие счета являются пассивными, и сальдо у них кредитовое.
    Наконец, часть счетов может иметь положительное сальдо, а может и отрицательное (например, какой-либо контрагент может задолжать нам, а можем и мы ему). Такие счета называются активно-пассивными.
    Если сложить сальдо по всем счетам, сумма обязательно должна быть равна нулю. Если это так, то бухгалтерский баланс сходится.
    Остаток по счетам позволяет нам видеть итоговую картину: сумму товаров на складах, сумму денег на расчетных счетах и в кассе, задолженность перед поставщиками и т. д. Однако этого недостаточно. Нам также важно видеть сумму не в общем, а по конкретному складу или даже товару, задолженность не перед всеми поставщиками, а перед конкретными. Для этого используются единицы аналитического учета, которые называются субконто. Например, для счета 28.1 (товары на складе) может иметься два субконто: «Номенклатура» (т. е. товары) и «Склады».
    Итак, самая различная информация, как для оперативного учета, так и для бухгалтерского, внесенная документами, может храниться в регистрах.

    Объект 1С «Регистры сведений» — это прикладные объекты конфигурации, которые позволяют хранить в прикладном решении произвольные данные в разрезе нескольких измерений.

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

    Функциональные возможности регистра сведений

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

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

    Структура объекта 1С «Регистры сведений»

    Информация в регистре сведений хранится в виде записей, каждая из которых содержит:

    1. значения измерений регистра (описывают разрезы, в которых хранится информация);
    2. соответствующие им значения ресурсов (непосредственно содержат хранимую информацию).

    Рисунок «Измерения и ресурсы»

    Рисунок «1С Регистры сведений»

    Например, регистр сведений цены товаров может иметь следующую структуру:

    где «Вид цен» может иметь значения «Оптовая», «Розничная», и т.д.

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

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

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

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

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

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

    Периодичность может принимать следующие значения:

    • Непериодический;
    • В пределах секунды;
    • В пределах дня;
    • В пределах месяца;
    • В пределах квартала;
    • В пределах года.

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

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

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

    Особенность периодического регистра сведений:

    • Возможность получать готовые значения «Срез первых» и «Срез последних». Эта информация позволяет очень быстро получить из базы данных информацию о последнем (первом) установленном значении на определенную дату.

    Рисунок

    Подчинение регистратору

    Внесение изменений в регистр сведений может выполняться:

    1. вручную;
    2. при помощи документов.

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

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

    Свойство «Режим записи»может быть в значении:

    1. «Независимый» — записи можно произвести как программно, так и из формы списка регистра сведений;
    2. «Подчинение регистратору» — обязательно указание документа-регистратора записи.

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

    Например, изменение цен компании может производиться только определенным кругом лиц, и каждое такое изменение должно сопровождаться «бумажным» документом. В этом случае можно использовать режим подчинения регистратору, при котором изменение цен может быть выполнено только специальным документом — «Изменение цен товаров».

    Уникальность записей регистра сведений

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

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

    Таким образом, например, в непериодическом регистре сведений «Цены товаров» с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти. Точно так же, как в периодическом регистре сведений «Цены товаров», подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом «Изменение цен товаров».

    Свойства измерения регистра сведений

    Особое внимание следует обратить на флаги «Ведущее» и «Основной отбор» палитры свойств измерений регистра сведений.

    Рисунок

    • Ведущее — свойство измерения, указывающее на то, что без значения этого измерения запись регистра не имеет смысл. Установка флага означает что система при удалении значения из измерения удаляет еще и запись регистра с «Ведущим» измерением. Может быть установлено только одно измерение.
    • Основной отбор — если регистр независимый, то по этим измерениям будет устанавливаться регистрация изменений для плана обмена. Аналогично использование «Основной отбор» по периоду включает основной отбор для периода периодических регистров.

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

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

    1. с помощью менеджера записи (для одиночной записи);
    2. с помощью набора записей (для двух и и более записей).

    Примеры :

    Использование менеджера записи: 1С (Код)

    Использование набора записей регистра сведений 1С: 1С (Код)

    для полной программной очистки всех записей регистра сведений.

    Формы объекта 1С «Регистры сведений»

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

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

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

    Форма списка регистра сведений 1С

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

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

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *