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

18 ответов на вопрос “Как программно сделать запись в регистр сведений?”

  1. Global Silver Elite Ответить

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

  2. Truthfont Ответить

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

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

  3. Bes Poleznyi Ответить

    Если регистр сведений подчинен регистратору, то для добавления записей в него необходимо создать набор записей этого регистра с установленным отбором по нужному регистратору, заполнить этот набор записей и записать его:
    Код 1C v 8.х // Добавление записей в регистр, подчиненный регистратору (замещение)
    НаборЗаписей = РегистрыСведений.ЛимитыВозвратнойТары.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период = ВыбранныйРегистратор.Дата;
    НоваяЗапись.Номенклатура = ВыбраннаяНоменклатура;
    НоваяЗапись.ДоговорКонтрагента = ВыбранныйДоговор;
    НоваяЗапись.ЛимитПоставщика = 50;
    НаборЗаписей.Записать();
    По умолчанию запись выполняется с замещением, т. е. существующие записи этого регистратора в регистре сведений будут удалены.
    Для того чтобы добавить записи к существующим записям регистратора, необходимо указывать значение Ложь параметра метода Записать() набора записей. При этом необходимо позаботиться о том, чтобы значения измерений добавляемых записей были уникальны для записей данного регистратора в регистре сведений, иначе запись выполнена не будет:
    Код 1C v 8.х // Добавление записей в регистр, подчиненный регистратору
    НаборЗаписей = РегистрыСведений.ЛимитыВозвратнойТары.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период = ВыбранныйРегистратор.Дата;
    НоваяЗапись.Номенклатура = ВыбраннаяНоменклатура;
    НоваяЗапись.ДоговорКонтрагента = ВыбранныйДоговор;
    НоваяЗапись.ЛимитПокупателю = 25;
    НаборЗаписей.Записать(Ложь);

  4. Уистер Ответить

    Как заполнить табличную часть формы программно? 6
    Нужно по кнопке Заполнить – сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код…17 правил для составления оптимального ЗАПРОСа к данным базы 1С 23
    Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно…Cодержимое указанного ниже веб-сайта в этом приложении блокируется… Aboutsecurity_1cv8c.exe 1
    Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже…PostgreSQL: установка, настройка, обслуживание 9
    PostgreSQL напрямую “из коробки” применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут…ZIP-архив Создание 0
    Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий:
    * Создать архив с необходимыми параметрами, в который будут помещаться файлы.
    * Поместить в архив необходимые файлы.
    * Записать…
    Посмотреть все результаты поиска похожих

  5. Aflame Ryaen Ответить

    hrcjack
    29.07.09 – 11:57
    РегистрКатегории = РегистрыСведений.КатегорииОбъектов;
    Запись = РегистрКатегории.СоздатьНаборЗаписей();
    Запись.Категория = Справочники.КатегорииОбъектов.НайтиПоНаименованию(“Проводки002”);
    Запись.Объект = Объект.Ссылка;
    Запись.Записать();
    выдает ошибку что поле “Объект” и “Категория” не обнаружены

    lxs
    1 – 29.07.09 – 11:59
    набор сначала надо почитать. Только таким образом не убейте все записи.. СП почитайте. Там есть неплохое описание.
    lxs
    2 – 29.07.09 – 11:59
    (1) “пРочитать”.. далее по тексту.
    zyto
    3 – 29.07.09 – 12:00
    Ещё надо отбор установить, и добавить запись…
    butterbean
    4 – 29.07.09 – 12:00
    (1) прочитать – не обязательно, главное отбор правильно установить
    Mort
    5 – 29.07.09 – 12:01
    (0) даж не знаю, чо посоветовать, юзать менеджер записи или застрелиться…
    hrcjack
    6 – 29.07.09 – 12:07
    РегистрКатегории = РегистрыСведений.КатегорииОбъектов;
    Набор = РегистрКатегории.СоздатьНаборЗаписей();
    Запись = Набор.Добавить();
    Запись.Категория = Справочники.КатегорииОбъектов.НайтиПоНаименованию(“Проводки002”);
    Запись.Объект = Объект.Ссылка;
    Набор.Записать();
    вот так работает
    lxs
    7 – 29.07.09 – 12:11
    А в регистре что остается после каждой новой записи?
    butterbean
    8 – 29.07.09 – 12:11
    (6) отбор забыл
    hrcjack
    9 – 29.07.09 – 12:11
    (7)
    ну сначала проверку делаю….. а потом пишу
    hrcjack
    10 – 29.07.09 – 12:14
    да в регистре ничего не остается…
    Рекламное место пустует
    lxs
    11 – 29.07.09 – 12:15
    потому что надо читать обязательно..
    butterbean
    12 – 29.07.09 – 12:16
    (11) да не надо читать, надо отбор ставить
    lxs
    13 – 29.07.09 – 12:17
    1. делаешь отбор.
    2. пишешь Набор.Прочитать().
    3. проверяешь на пустой набор (Количество()).
    4. если пустой, то Запись = Набор.Добавить();
    devlabnn
    14 – 29.07.09 – 12:21
    Вместо СоздатьНаборЗаписей делай СоздатьМенеджерЗаписи
    lxs
    15 – 29.07.09 – 12:24
    (14) согласен. Но с проверкой обязательной на возможность записи.
    devlabnn
    16 – 29.07.09 – 12:27
    (15)
    Пожалуйста, можно проверить запросом.
    На крайняк можно
    Попытка
    МенеджерЗаписи.Записать();
    Исключение
    КонецПопытки;
    butterbean
    17 – 29.07.09 – 12:27
    (13-15) а не проще СоздатьНабор() потом установить отбор по всем измерениям, добавить запись и записать… и никаких проверок и т.п.
    lxs
    18 – 29.07.09 – 12:34
    (17) а ты думаешь, что не вылетит ошибка при выборе уже существующих значений измерений?
    lxs
    19 – 29.07.09 – 12:36
    к (18) беру слова назад.
    hrcjack
    20 – 29.07.09 – 12:54
    не могу понять как отбор учтановить….
    если использовать
    РегистрКатегории = РегистрыСведений.КатегорииОбъектов;
    Набор = РегистрКатегории.СоздатьМенеджерЗаписи();
    то к “Набор” не дает применить метод “отбор”, он просто недоступен….
    если использовать конструкцию
    РегистрКатегории = РегистрыСведений.КатегорииОбъектов;
    Набор = РегистрКатегории.СоздатьНаборЗаписей();
    Набор.Отбор(“Объект”,Объект.Ссылка);
    ругается … говорит метод не обнаружен… вышел из положения запросом
    Запрос = Новый Запрос(“Выбрать
    |РС.Объект
    |ИЗ РегистрСведений.КатегорииОбъектов КАК РС
    |ГДЕ РС.Объект = &Ссылка И РС.Категория = &Категория”);
    Запрос.УстановитьПараметр(“Категория”, Справочники.КатегорииОбъектов.НайтиПоНаименованию(“Проводки002”));
    Запрос.УстановитьПараметр(“Ссылка”, Объект.Ссылка);
    КоличествоЗаписей = 0;
    Если Запрос.Выполнить().Выбрать().Следующий() Тогда
    Иначе
    // запись в регистр
    КонецЕсли;
    lxs
    21 – 29.07.09 – 12:56
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Набор = РегистрыСведений.КатегорииОбъектов.СоздатьНаборЗаписей();
    Набор.Отбор.Объект.Установить(Реквизит1);
    Набор.Отбор.Категория.Установить(Реквизит2);
    Запись = Набор.Добавить();
    Запись.Объект = Реквизит1.ПолучитьОбъект();
    Запись.Категория = Реквизит2;
    Набор.Записать();
    КонецПроцедуры
    Живой Ископаемый
    22 – 29.07.09 – 12:56
    Ну вот почему! Почему ты до сих пор не купил Габца и не держишь его на своем рабочем столе?
    ====
    i Как добавить запись в непериодический независимый регистр сведений?
    НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура);
    НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись. Номенклатура = ТекущаяНоменклатура;
    НоваяЗапись.Свойство = ТекущееСвойство;
    НоваяЗапись.Значение = ТекущееЗначение;
    НаборЗаписей.Записать();
    hrcjack
    23 – 29.07.09 – 12:57
    сенькс….
    hrcjack
    24 – 29.07.09 – 12:57
    куплю
    lxs
    25 – 29.07.09 – 12:59
    (21) Без ПолучитьОбъект().. это фигня не к этому примеру

  6. Талантливые Нюшата Ответить

    Господа, помогите пожалуйста с простенькой задачкой, которую я уже мучаю до посинения.
    Есть справочник Физические лица, и если выбрать или создавать какое-то физ лицо, то на вкладке можно (в моём случае необходимо) указать адрес по прописке. Этот адрес так же попадает в нужное поле из регистра сведений (Регистр сведений Контактная Информация).
    Собственно теперь я создаю в физ лицах запись – к пример Шишкин Михаил Валерьевич. Не заполняю его адрес.
    Иду в регистр сведений и хочу там создать запись, в которой будет указан тот же Шишкин и заполнить адрес, который попадёт в нужное поле в справочнике.
    Это всё я проделал вручную, то есть в режиме “Предприятие” – всё работает. но мне нужно сделать запись в регистр сведений программно. и вот тут я уже засел. не могу сделать, как не стараюсь. Помогите пожалуйста, как сделать эту проклятущую запись в регистр??
    Вот что пока у меня есть… но не записывает.
    ФизЛица = Справочники.ФизическиеЛица.Выбрать();
    КонтИнфа = РегистрыСведений.КонтактнаяИнформация;
    //создаем НаборЗаписей
    НаборД = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
    // устанавливаем параметры отбора по полному набору Измерений регистра:
    НаборД.Отбор.Объект.Установить();
    НаборД.Отбор.Тип.Установить();
    НаборД.Отбор.Вид.Установить();
    // Создаем новую строку в этом наборе записей:
    СтрокаДанных = НаборД.Добавить();
    // определяем значения Измерений этой строки:
    СтрокаДанных.Объект = “Шишкин Михаил Валерьевич” ;
    СтрокаДанных.Тип = “Адрес” ;
    СтрокаДанных.Вид = “Адрес по прописке” ;
    // определяем значения Ресурсов
    СтрокаДанных.Поле2 = “Калининградская обл.” ;
    СтрокаДанных.Поле4 = “г.Балтийск” ;
    СтрокаДанных.Поле6 = “ул.Кукушкина 2” ;
    СтрокаДанных.Представление = “Калининградская обл, г.Балтийск, ул.Кукушкиина 2”;
    НаборД.Записать();

  7. Дочь YouTube Ответить

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

  8. Спиридон Ответить

    Как заполнить табличную часть формы программно? 6
    Нужно по кнопке Заполнить – сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код…17 правил для составления оптимального ЗАПРОСа к данным базы 1С 23
    Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно…1C и Google Maps 15
    была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во…Cообщение: “Не удалось удалить чеки ККМ!” 2
    Пользователь с правами Администратор ККМ проводит Закрытие кассовой смены (Z).
    Выходит сообщение: ” Не удалось удалить чеки ККМ!”
    ФР печатает Z -отчет, но Отчет о рознчничных продажах не формируется.
    Необходимо дать…
    Microsift Visual C++ Runtime Library Program …1cv77s.exe abnormal program termination 0
    При запуске 1С 7.7 выдает сообщение:
    Microsift Visual C++ Runtime Library Program C:Program Files1Cv77BIN1cv77s.exe abnormal program termination
    Вариант 1. Обычно это происходит, когда повреждается файл регистрации. Точнее, когда не дописывает
    Посмотреть все результаты поиска похожих

  9. VideoAnswer Ответить

Добавить ответ

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