Реквизит регистра сведений на форме списка

 +15 

   

Распечатать

Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором?

Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация)

1.

Создание реквизита:

Добавляем новый реквизит формы (!!! не путать с реквизитом справочника !!!) с типом «ДинамическийСписок»
В поле «Основная таблица» выбираем нужный регистр сведений.

2.

Отображение на форме:

Перетащить реквизит формы в элементы формы (c права налево ).
Так же для отображения необходимо задать хотя-бы одну колонку для вывода.

3.

Настройка отбора:

В процедуре ПриСозданииНаСервере вручную устанавливаем необходимый отбор.

Пример:

Код 1C v 8.2 УП

 &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЭлементОтбора = КонтактнаяИнформация.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = Объект.Ссылка;
КонецПроцедуры

Решение явно не единственное, так что если кто что накопает ещё — пишите ;)

Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация)

1.

Создание реквизита:

Добавляем новый реквизит формы (!!! не путать с реквизитом справочника !!!) с типом «ДинамическийСписок»

В поле «Основная таблица» выбираем нужный регистр сведений.

2.

Отображение на форме:

Перетащить реквизит формы в элементы формы (c права налево :).

Так же для отображения необходимо задать хотя-бы одну колонку для вывода.

3.

Настройка отбора:

В процедуре ПриСозданииНаСервере вручную устанавливаем необходимый отбор.

Пример:

Код 1C v 8.2 УП

 &НаСервере 
      
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЭлементОтбора = КонтактнаяИнформация.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = Объект.Ссылка;
КонецПроцедуры

Решение явно не единственное, так что если кто что накопает ещё — пишите ;)

Информация взята с сайта http://helpf.pro

Подпишитесь на нашу рассылку новостей

Хотите узнать больше по этому вопросу?

Подпишитесь на нашу рассылку новостей

Подписаться

Чтобы задать вопрос или предложить тему статьи, нажмите на кнопку ниже:

Предложить статью

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

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

Структура

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

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


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

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


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

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

Периодичность

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


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

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

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

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

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


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

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

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

Уникальность записей

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

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

Формы

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

Форма списка

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


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

Форма записи

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


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

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

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

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

Здравствуйте, уважаемые специалисты по 1С. Помогите, пожалуйста, разобраться со следующим вопросом. Это — 1С 8.2, конфигурация «УТП». В справочнике есть периодические реквизиты, данные в них добавляются как самим справочником, так и при проведении из документа. Всё нормально работает, даже отображение значения периодического реквизита в форме элемента справочника (запросом из регистра сведений). Но вот с отображением этого реквизита в форме списка этого справочника возникли сложности. Код, я понимаю, совершенно неправильный:

Функция ПриОткрытии()
     ЭлементыФормы.СправочникСписок.Колонки.ЦенаПриходная = ВернутьПриходнуюЦену(СправочникОбъект.Ссылка);
КонецФункции   

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

            КонецФункции

Функция «ПриОткрытии» установлена в событии формы списка справочника «ПриОткрытии». При этом для «СправочникОбъект» отладчик показывает только код одной из записей данных, остальные поля/атрибуты в нём пустые, для «ВерсияДанных» есть фраза «Ошибка чтения значения». Подозреваю, что к моменту вызова «СправочникОбъект» сам справочник ещё не открыт, как его программно открыть — не пойму. Даже если бы нормально выгрузилось содержимое справочника, то надо было бы, конечно же, заполнить каждую строку элемента формы «СправочникСписок», но он не ведёт себя как таблица, и я не соображу, как по-нормальному пробежать его строки в цикле (если в этом вообще есть необходимость). Извините за сумбурность и обилие текста, вопрос вкратце таков: как правильно присвоить некоторым полям формы списка справочника соответствующие данные периодических реквизитов из регистра сведений ?

   TitanLuchs

19.09.08 — 13:02

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

  

Партнерская программа EFSOL Oblako

   Александр_Тверь

1 — 19.09.08 — 13:05

меня мучают смутные сомнения… а зачем Вам это надо?

   TitanLuchs

2 — 19.09.08 — 13:15

(1) Красиво и удобно потому что. Или среди адинеснегов тяготение к красоте и удобству не распространены? ))

   TitanLuchs

3 — 19.09.08 — 14:44

Таки никто 8.2 не юзает или всем просто лень отвечать по причине тяпницы?

   NULLL

4 — 19.09.08 — 14:52

(0) Если хочеш красиво, то забудь про 8.2. В управляемых форм намного меньше возможностей чем в обычных, и это даже может оказатся не возможным. Упарвляемая форма ориентриована на тонкий клиент, а не нарюшечки всякиею

По теме: создай форму для регистра мастером и посмтри что будет, я так многое делал.

   TitanLuchs

5 — 19.09.08 — 14:55

(4) Оно понятно, что возможностей меньше, но из этого «меньше» хочется выжать максимум. Счас попробую мастера.

   TitanLuchs

6 — 19.09.08 — 19:52

Ну в общем если кому интересно будет рассказываю:

1. Добавляем новый реквизит формы (!!! не путать с реквизитом справочника !!!) с типом «ДинамическийСписок»

2. В поле «Основная таблица» выбираем нужный справочник, перечисление или регистр сведений

3. Добавляем новый элемент формы — таблицу

4. В качестве данных для таблицы выбираем созданный нами реквизит формы

Наслаждаться еще рано, потому что никакой таблицы на форме не появится )) Таблица отображается только в том случае, если для нее определена хоть одна колонка. Колонки можно заполнить автоматически (1С сама спросит «Хотите ли вы добавить колонки?») или добавить руками в списке элементов формы.

Собственно все. Как настроить в режиме конфигуратора отбор и сортировку списка пока не знаю.

   TitanLuchs

7 — 19.09.08 — 19:58

(4) Кстати, получилось красиво несмотря на тонкий клиент )))

   NULLL

8 — 19.09.08 — 20:18

(7) Красиво то может и получилось, а как с функциональностью? Невозможным я имел ввиду синхронизацию.

   NULLL

9 — 19.09.08 — 20:33

Вот кстати как я делал:

Запрос динамического списка Реквизит2:

ВЫБРАТЬ

   НастройкаКассы.Коментарий

ИЗ

   РегистрСведений.НастройкаКассы КАК НастройкаКассы

ГДЕ

   НастройкаКассы.БанковскийСчетКасса = &БанкКасса

И потом:

Реквизит2.Параметры.Вставить(«БанкКасса»,оБанковскийСчетКасса);

Элементы.Таблица2.Обновить();

   TitanLuchs

10 — 19.09.08 — 20:50

(9) А в этом случае список обновляться будет? И как с редактированием: создать новый, изменить и т.д.?

   NULLL

11 — 19.09.08 — 20:58

Все нормально, тольк нельзя чтобы этот запрос выполнялся до

Реквизит2.Параметры.Вставить(«БанкКасса»,оБанковскийСчетКасса);

Тоесть это нужно в ПриОткрытии, а ты же тогда еще не знаеш по чем отбирать.

Кстати текст запроса можна менять програмно, даже после того как форма открылась.

   dangerouscoder

12 — 19.09.08 — 22:18

а где найти 1С 8.2? интересно посмотреть..
она на файлах работает? Linux?

   TitanLuchs

13 — 22.09.08 — 10:50

(11) Прикольно! Пока, правда, руки не доходят до этого, но позже обязательно попробую!

(12) Не знаю, нам 1С дала

   SilentMan

14 — 22.09.08 — 11:12

(6) Вместо пп.3 и 4 можно просто перетащить реквизит формы в элементы формы. А отбор с сортировкой можно настроить: в свойствах реквизита формы есть пунктик «Настройка списка». Справа жмем «Открыть» и настраиваем …

(4) А чего в упр.формах нельзя сделать?

   NULLL

15 — 22.09.08 — 12:33

(14) Помоему не доступны Структуры, само-собой запросы нельзя. Также нельзя ДокументОбъект.ПолучитьФорму. Вообще куче непреятностей.

   SilentMan

16 — 22.09.08 — 13:31

(15) Структуры — это только по-твоему, запросы — что мешает в модуле формы поместить серверную процедуру и сделать там все нужное?

Что мешает получить форму и открыть ее с передачей параметров?

Может дело не в ограничениях, а сложностях освоения доступных возможностей?

  

TitanLuchs

17 — 23.09.08 — 00:08

(14) Пробовал настроить отбор через настройку списка — не получилось. Мне нужно было чтобы регистр сведений отбирался по элементу справочника, в форме которого размещена форма списка регистра. Так в настройках можно указать только уже записанный ранее элемент. Тогда сделал как в (9): установил галку «Произвольный запрос» и дописал условие. Кста, строка «Элементы.Таблица2.Обновить();» не нужна — оно само все нормально обновляет.

Содержание

  1. Похожие FAQ
  2. Еще в этой же категории
  3. Функциональные возможности регистра сведений
  4. Структура объекта 1С «Регистры сведений»
  5. Периодичность регистра сведений 1С
  6. Подчинение регистратору
  7. Свойство «Режим записи»может быть в значении:
  8. Уникальность записей регистра сведений
  9. Свойства измерения регистра сведений
  10. Программная запись в регистр сведений 1С

1С:Предприятие 8 поддерживает готовую функциональность для организации выбора из форм списков объектных данных (справочников, документов и т.д.). В большинстве случаев выбираются именно такие значения. Однако, в некоторых случаях, необходимо организовать выбор и других значений. Механизм форм 1С:Предприятия 8 включает универсальный механизм выбора, позволяющий организовать выбор практически любых значений.

Для этого используется возможность открытия формы в режиме выбора и возможность обработки события выбора.

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

Вначале создадим новую форму списка регистра сведений и назовем ее «ФормаВыбора». В форме реализуем событие Выбор табличного поля отображающего список.

В этом событии мы отменяем стандартное действие, предусмотренное расширением табличного поля, и вместо него вызываем метод ОповеститьОВыборе() , передавая ему в качестве параметра текущую строку. Значением текущей строки будет являться значение типа РегистрСведенийКлючЗаписи. .

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

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

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

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

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

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

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

Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация)

1. Создание реквизита:
Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом «ДинамическийСписок»
В поле «Основная таблица» выбираем нужный регистр сведений.

2. Отображение на форме:
Перетащить реквизит формы в элементы формы (c права налево .
Так же для отображения необходимо задать хотя-бы одну колонку для вывода.

3. Настройка отбора:
В процедуре ПриСозданииНаСервере вручную устанавливаем необходимый отбор.

Пример:
Код 1C v 8.2 УП

Решение явно не единственное, так что если кто что накопает ещё — пишите 😉

Похожие FAQ

Еще в этой же категории

Заполнение списка значений в элементе поле выбора на форме 9
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Как установить параметр динамического списка? 8
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма

Программное создание таблицы значений с условным оформлением 6
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Форма

Как активизировать, перевести фокус на необходимый элемент на форме? 6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Форма

Программное добавление элементов на форму 6
ЭлементыФормы (Controls) . Добавить (Add) — Добавляет элемент управления на форму. Синтаксис: Добавить( Тип , Имя , Видимость , ПоместитьНа ) Параметры: Тип (обязательный) Тип: Тип. Тип добавляемого элемента управления: Индикатор; П Посмотреть все в категории Работа с Формой (Диалог) и её элементами

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti

Продолжаем рассматривать варианты размещения элементов на форме на примере вывода реквизитов документа на форму списка документов, состав документа представлен на рис. 1:

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 1. Реквизиты документа

Добавим на форму списка документов колонку со значением статуса приходной, статус приходной находится в регистре сведений. Открываем форму списка документа пр_Приходная. Если формы списка еще нет, то нажимаем значок лупы на вкладке Формы окна свойств документа (рис. 2):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 2. Создание формы списка документа

В открывшемся окне Конструктор формы документа нажимаем Далее > и выбираем поля, которые хотим вывести на форму (поля — это реквизиты и табличные части документа), нажимаем Готово. Открывается окно формы списка документа.

В форме списка документа открываем свойства реквизита Список (правой кнопкой мышки — Свойства), в окне Свойства ставим галочку у свойства Произвольный запрос (рис. 3):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 3. Свойства реквизита формы Список

После установки свойства Произвольный запрос состав свойств раздела Объект изменится (рис. 4):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 4. Состав раздела Объект окна Свойства

Нажимаем на гиперссылку Открыть свойства Настройка списка (рис. 4). Открывается окно Динамический список (рис. 5):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 5. Окно Динамический список

Добавляем в запрос текст для получения статуса приходной из регистра сведений. В примере используется регистр сведений пр_СтатусПриходной со значением свойства Периодичность — В пределах дня, состав регистра представлен на рис. 6:

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 6. Состав регистра с данными о статусе приходной

Изменить запрос в окне Динамический список можно нажав на кнопку Конструктор запроса… или можно сразу написать нужный текст в поле Запрос (рис. 7):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 7. Измененный запрос

Текст запроса:

ВЫБРАТЬ
                Документпр_Приходная.Ссылка,
                Документпр_Приходная.ПометкаУдаления,
                Документпр_Приходная.Номер,
                Документпр_Приходная.Дата,
                Документпр_Приходная.Проведен,
                Документпр_Приходная.Организация,
                Документпр_Приходная.ТипПриходной,
                Документпр_Приходная.Склад,
                Документпр_Приходная.Подразделение,
                Документпр_Приходная.Ответственный,
                Документпр_Приходная.Комментарий,
                пр_СтатусПриходнойСрезПоследних.Статус
ИЗ
                Документ.пр_Приходная КАК Документпр_Приходная
                                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.пр_СтатусПриходной.СрезПоследних КАК пр_СтатусПриходнойСрезПоследних
                                ПО пр_СтатусПриходнойСрезПоследних.Приходная = Документпр_Приходная.Ссылка

Важно проверить, что в поле Основная таблица окна Динамический список указан нужный документ (рис. 7), иначе, если поле будет не заполнено, то в форме списка документов не будет возможности добавлять новые документы и открывать существующие (и не будет привычных кнопок Создать, Создать копированием и т.п.). Нажимаем ОК. Теперь в составе реквизита Список те поля, которые были выбраны в запросе (рис. 8):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 8. Состав реквизита Список

Перетаскиваем новое поле Статус из вкладки Реквизиты на вкладку Элементы в состав элемента Список (рис. 8). И размещаем поле Статус на вкладке Элементы после полей Дата, Номер (рис. 9):

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 9. Размещение поля Статус

У реквизитов (на вкладке Реквизиты) в составе динамического списка можно отметить свойство Использовать всегда (рис. 8). Это нужно, когда поля должны быть в составе динамического списка в любом случае, даже если они не будут добавлены на форму как элементы, например, будут использоваться в дальнейшем в коде модуля формы списка документа.

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

УФ: Размещение элементов на форме в 1С — добавление колонки на форму списка (произвольный запрос динамического списка)

Рис. 10. Новая колонка формы списка

Понравилась статья? Поделить с друзьями:
  • Реквизит элемент документа виды реквизитов
  • Реквизиты госпошлин мировые судьи воронежа
  • Реквизитами необходимыми для бланка письма
  • Реквизиты госпошлина долевое строительство
  • Реквизитами оплаты госпошлины гибдд москвы