- Объект УправляемаяФорма. Как получить все реквизиты?
- 1с вывести список всех реквизитов
- 1С список реквизитов документа
- Общие реквизиты документа
- Создать общий реквизит
- Реквизиты документов 1С 8.3
- Табличные части документа 1С 8.3
- Стандартные реквизиты документа 1С
- Нумерация документов 1С
- Нумератор документов 1С
Объект УправляемаяФорма. Как получить все реквизиты?
1С:Предприятие 8.3 (8.3.4.437) в режиме управляемого приложения
Возникла следующая проблема.
Задача: получить все табличные документы из некой формы.
Решение: для этого нужно получить все реквизиты этой формы (метод ПолучитьРеквизиты()), отсеять ненужное и все.
На первый взгляд все просто, если бы не одно «но».
Инициатором действий является ОбщаяКоманда. т.е. к форме в этом случае можно достучаться только через ПараметрыВыполненияКоманды.Источник (коим как раз является нужная УправляемаяФорма)
Из клиента на сервер эту самую форму можно передать через ВременноеХранилище, потом на сервере и делать все что нужно.
Примерно такой код:
Если это делать через объект ЭтаФорма (контекстный вызов сервера), то метод отрабатывает как нужно.
ЭтаФорма и то, что я получаю из временного хранилища имеют одинаковые типы. А вот результат работы разный.
Народ, как можно побороть это «несчастье»?
Ну негде в моем случае взять контекст формы на сервере.
ПараметрыВыполненияКоманды.Источник доступен только на клиенте. Метод ПолучитьРеквизиты() доступен на сервере. Напрямую на сервер объект УправляемаяФорма (ПараметрыВыполненияКоманды.Источник)передать нельзя, только через временное хранилище. Как объект, УправляемаяФорма помещается во ВХ без проблем.
А вот когда уже получил на сервере и применил к нему метод ПолучитьРеквизиты() — вот здесь вылазят грабли.
Да, если на форме создать реквизит типа СписокТабДоков (СписокЗначений) и засунуть туда все ТабДоки — то без проблем получаю прямо на клиенте по имени этот реквизит и отправляю его в общую форму. Но такой реквизит нужно создавать на всех формах и пихать туда табДоки во время их заполнения прямо в той форме. Ладно если таких форм может быть только 1-2. А если их 15-20 а через месяц к ним еще десяток форм добавиться например.
Ежели выполнить ВсеРеквизиты=ЭтаФорма.ПолучитьРеквизиты() на сервере прямо в контексте формы, то все отрабатывается нормально
Похоже что 1С что-то намудрило, и для системы ПараметрыВыполненияКоманды.Источник и ЭтаФорма (в контексте формы) несколько разные объекты, хотя и визуально и их тип абсолютно совпадают. А вот объехать этот баг без создания дополнительного реквизита в форме пока не получается.
Источник
1с вывести список всех реквизитов
Что такое реквизиты 1С?
Мы с Вами недавно обсуждали справочники 1С и документы 1С. Работа пользователя со справочниками и документами в 1С состоит из заполнения полей на форме.
Реквизиты 1С – это поля справочника и документа, которые отображаются на форме, чтобы пользователь их заполнил.
Рассмотрим подробно тему реквизитов в 1С.
Что такое Реквизиты 1С
Каждый справочник и документ 1С состоит из набора полей. Такие поля называются реквизиты 1С (для программиста 1С).
В конфигураторе, в дереве конфигурации 1С, раскройте любой справочник или документ и Вы увидите ветку Реквизиты. Это список реквизитов (полей) справочника.
Поглядите как те же реквизиты 1С выглядят на форме справочника 1С.
Каждый реквизит 1С имеет свойства, в которых указано какой вид значения хранится в реквизите (строка, число и т.п.) и как с ним будет работать пользователь.
Нажмите правой кнопкой на любой реквизит 1С и нажмите Свойства. В окне справа откроется список свойств выбранного реквизита.
Основные свойства реквизитов 1С:
- Имя – наименование реквизита 1С в языке 1С (внимание – в имени реквизитов не должно быть пробелов и знаков препинания)
- Синоним – наименование реквизита каким его увидит пользователь в режиме Предприятие
- Тип – указывает какие данные можно будет хранить в реквизите 1С, нажмите на кнопку «…», чтобы изменить тип; основные типы:
o Число — используется для цифр, а также для радиопереключателя
o Строка — может быть ограничена по длине, дело в том, что не везде возможно использование неограниченной длины
o Дата
o Булево — для того, чтобы на форме была галочка (значения Истина/Ложь или Да/Нет)
o СправочникСсылка или ДокументСсылка – выбор значения справочника или документа.
Вы можете поставить галочку Составной тип данных и тогда 1С позволит Вам выбрать несколько типов данных одновременно. В этом случае пользователю будет отображаться кнопка Т, при нажатии на которых он выберет какие данные он хотел бы ввести.
Стандартные реквизиты 1С
Как Вы заметили, на форме справочника есть реквизиты 1С, которые отсутствуют в списке в конфигураторе: группа, наименование, БИК.
В форме списка справочника тоже есть реквизиты 1С, которых нет в списке: пометка удаления.
Это – стандартные реквизиты 1С. Что это такое? У каждого объекта 1С есть набор реквизитов 1С по умолчанию. У справочников это, например – код и наименование. У документов это – дата и номер.
Стандартные реквизиты 1С можно посмотреть следующим образом:
- Зайдите в редактор объекта 1С (справочника или документа), нажав на него два раза мышкой
- В открывшемся редакторе выберите закладку Данные
- Здесь Вы можете настроить стандартные реквизиты Код и Наименование справочника
- Нажмите кнопку Стандартные реквизиты 1С, чтобы посмотреть полный список.
Общие реквизиты 1С
Начиная с версии 1С 8.2.14 в 1С появился новый Объект 1С – Общие реквизиты 1С. С помощью него можно добавить реквизит (поле), который будет присутствовать сразу во множестве справочников и документов.
Свойства общего реквизита 1С:
- Автоиспользование – добавляет общий реквизит 1С сразу во все справочники и документы
- Состав – позволяет добавить общий реквизит 1С только в нужные справочники и документы (автоиспользование тогда в значение Не использовать).
Как добавить реквизит 1С
Нажмем правой кнопкой на ветку Реквизиты 1С нужного справочника и выберем Добавить.
Введем нужно Имя реквизита 1С, например «АдресОфиса» и синоним «Адрес офиса». Тип оставим по умолчанию Строка, но поставим галочку Неограниченная длина.
Добавим еще один реквизит 1С точно так же, только выберем тип Булево, назовем его «РаботаетПоВыходным».
Как вывести реквизит на форму 1С (толстый клиент 1С)
Раскроем ветку Формы того же справочника. Чтобы открыть форму — выберем форму элемента и нажмем на нее два раза мышкой.
Потяните мышкой за край формы и растяните ее (необязательный пункт).
В панели конфигуратора нажмите кнопку «Размещение данных». Также можно использовать меню Форма / Размещение данных.
Вы видите – наши реквизиты на форму не выведены. Установите на них галочку. А также галочки Вставить надписи и Разместить автоматически.
Как вывести реквизит на форму 1С (тонкий клиент 1С)
Раскроем ветку Формы того же справочника. Выберем форму элемента и нажмем на нее два раза мышкой.
На закладке Реквизиты раскройте строку Объект. Вы увидите список реквизитов, добавленных ранее в справочник.
Теперь просто перетяните из правого окна в левую нужный реквизит и он появится на форме.
Реквизиты формы 1С
В толстом клиенте у формы есть свои собственные реквизиты. Они находятся на закладке Реквизиты.
Эти реквизиты не сохраняются в базе данных, однако их можно использовать на форме для полей, которые нужны для работы с формой.
Например, Вы добавили на форму галочку. При ее нажатии на форме что-то происходит. Значение галочки для Вас неважно (записывать его не нужно) – она используется только для переключения формы при работе с ней. В этом случае в качестве данных Вы используете не реквизит справочника, а реквизит формы.
Периодические реквизиты 1С
В 1С версии 7.7 были периодические реквизиты. Их смысл таков: значение у реквизита разное в разные даты. Например, значение на 1 сентября – одно, а на 1 октября – другое. У одного и того же реквизита.
В 1С 8 периодических реквизитов нет. Это реализуется следующим образом:
- Добавляем регистр сведений и делаете его периодическим. Период может быть – секунда, день, месяц, квартал, год.
Добавляем измерение, у которого тип – нужный нам справочник (которому мы делаем периодический реквизит)
Добавляем в регистр сведений нужный реквизит (или несколько). Они будут периодические.
Теперь пользователь в форме элемента выбирает меню Перейти / ИмяСозданногоРегистра и может смотреть и изменять периодические реквизиты. Возможно вывести их на форму, но в этом случае придется дополнительно программировать.
Источник
1С список реквизитов документа
Такое понятие, как «Реквизиты», знакомо большинству людей. Но если говорить только о работе в программах 1С, то это понятие сужается до полей объекта, которые заполняются пользователем при вводе этого объекта в базу.
Общие реквизиты документа
Для того чтобы в каждом документе не заполнять повторяющиеся поля, используется один, общий для всех объектов реквизит. Это может быть наименование организации, автор документа и т.п. Ведь было бы неудобно описывать один и тот же реквизит отдельно, для каждого объекта метаданных. Такие реквизиты сами по себе представляют собой отдельный объект метаданных платформы 1С, к которому можно обращаться при помощи встроенного языка из модуля документа. Он будет доступен при редактировании формы документа.
Если мы зайдем в программу 1С в режиме Конфигуратор и откроем дерево метаданных, то в разделе «Общие» увидим отдельную ветвь – «Общие реквизиты».
Рассмотрим свойства этих объектов метаданных. Откроем двойным щелчком окно «Свойства».
Нажав на гиперссылку «Открыть», мы увидим список объектов, где используется, а где нет, данный общий реквизит, а также где используется «Автоматически».
Настройки в свойствах общих реквизитов:
- «Автоиспользование» указывает на применение для тех объектов, в составе которых стоит «Автоматический».
- Если в поле «Разделение данных» установлено «Не использовать», реквизит будет использоваться как входящий в состав нескольких объектов конфигурации. При установленном «Разделять», созданный разработчиком общий реквизит будет использоваться как разделитель данных.
Сразу после установления значения «Разделять», система создаст параметры по умолчанию.
Поясним на примере. Предположим, у нас имеется общий реквизит «Организация». То есть он будет в каждом объекте. Указанием, что он будет разделителем, в базе сформируется несколько областей, в которых будут храниться сведения в разрезе этого разделителя. В приводимом примере – в разрезе организации. Таким образом, пользователь может поучать данные не только все, но и по определенной области данных – только по своей организации.
Также в программе могут быть данные (области) доступные для всех пользователей. Например, справочник «Банки», «Валюты», «Контрагенты» и т.п. Пользователь вместе с доступом к своим данным имеет и к ним доступ, так как это неразделенные, общие для всех данные.
Создать общий реквизит
Для этого нажмем правой кнопкой мышки на общем реквизите и выберем команду «Добавить» или кнопка «Ins» на клавиатуре.
Для примера назовем его «Организация», соответственно тип укажем — СправочникСсылка.Организации.
Установим разделение данных – «Разделять».
В составе документов, где он будет стоять (к примеру, в счете на оплату покупателю), установим – «Использовать».
Открыв форму документа (дерево метаданных «Документы» — «СчетНаОплатуПокупателю», раздел «ФормаДокумента»), мы видим наше добавленное поле и среди элементов, и в списке. Также он автоматически разместился на форме документа.
Также он доступен при редактировании формы, и к нему можно обратиться из модуля документа и с легкостью добавлять в любые объекты программы 1С.
Например, указав в составе, что его необходимо вставлять в справочник «Номенклатура», приведет к его появлению в списке реквизитов указанного справочника.
Общие реквизиты ничем не отличаются от обычных, но при этом они могут быть заполнены сразу для нескольких объектов метаданных. Кроме обычного использования общих реквизитов, с их помощью реализуют разделение данных в программе и их области хранения. Но при создании общих реквизитов важно правильно оценить необходимость их введения, так как неправильное их применение может осложнить работу с программой и ее поддержку.
Что такое реквизиты 1С?
Мы с Вами недавно обсуждали справочники 1С и документы 1С. Работа пользователя со справочниками и документами в 1С состоит из заполнения полей на форме.
Реквизиты 1С – это поля справочника и документа, которые отображаются на форме, чтобы пользователь их заполнил.
Рассмотрим подробно тему реквизитов в 1С.
Что такое Реквизиты 1С
Каждый справочник и документ 1С состоит из набора полей. Такие поля называются реквизиты 1С (для программиста 1С).
В конфигураторе, в дереве конфигурации 1С, раскройте любой справочник или документ и Вы увидите ветку Реквизиты. Это список реквизитов (полей) справочника.
Поглядите как те же реквизиты 1С выглядят на форме справочника 1С.
Каждый реквизит 1С имеет свойства, в которых указано какой вид значения хранится в реквизите (строка, число и т.п.) и как с ним будет работать пользователь.
Нажмите правой кнопкой на любой реквизит 1С и нажмите Свойства. В окне справа откроется список свойств выбранного реквизита.
Основные свойства реквизитов 1С:
- Имя – наименование реквизита 1С в языке 1С (внимание – в имени реквизитов не должно быть пробелов и знаков препинания)
- Синоним – наименование реквизита каким его увидит пользователь в режиме Предприятие
- Тип – указывает какие данные можно будет хранить в реквизите 1С, нажмите на кнопку «…», чтобы изменить тип; основные типы:
o Число — используется для цифр, а также для радиопереключателя
o Строка — может быть ограничена по длине, дело в том, что не везде возможно использование неограниченной длины
o Дата
o Булево — для того, чтобы на форме была галочка (значения Истина/Ложь или Да/Нет)
o СправочникСсылка или ДокументСсылка – выбор значения справочника или документа.
Вы можете поставить галочку Составной тип данных и тогда 1С позволит Вам выбрать несколько типов данных одновременно. В этом случае пользователю будет отображаться кнопка Т, при нажатии на которых он выберет какие данные он хотел бы ввести.
Стандартные реквизиты 1С
Как Вы заметили, на форме справочника есть реквизиты 1С, которые отсутствуют в списке в конфигураторе: группа, наименование, БИК.
В форме списка справочника тоже есть реквизиты 1С, которых нет в списке: пометка удаления.
Это – стандартные реквизиты 1С. Что это такое? У каждого объекта 1С есть набор реквизитов 1С по умолчанию. У справочников это, например – код и наименование. У документов это – дата и номер.
Стандартные реквизиты 1С можно посмотреть следующим образом:
- Зайдите в редактор объекта 1С (справочника или документа), нажав на него два раза мышкой
- В открывшемся редакторе выберите закладку Данные
- Здесь Вы можете настроить стандартные реквизиты Код и Наименование справочника
- Нажмите кнопку Стандартные реквизиты 1С, чтобы посмотреть полный список.
Общие реквизиты 1С
Начиная с версии 1С 8.2.14 в 1С появился новый Объект 1С – Общие реквизиты 1С. С помощью него можно добавить реквизит (поле), который будет присутствовать сразу во множестве справочников и документов.
Свойства общего реквизита 1С:
- Автоиспользование – добавляет общий реквизит 1С сразу во все справочники и документы
- Состав – позволяет добавить общий реквизит 1С только в нужные справочники и документы (автоиспользование тогда в значение Не использовать).
Как добавить реквизит 1С
Нажмем правой кнопкой на ветку Реквизиты 1С нужного справочника и выберем Добавить.
Введем нужно Имя реквизита 1С, например «АдресОфиса» и синоним «Адрес офиса». Тип оставим по умолчанию Строка, но поставим галочку Неограниченная длина.
Добавим еще один реквизит 1С точно так же, только выберем тип Булево, назовем его «РаботаетПоВыходным».
Как вывести реквизит на форму 1С (толстый клиент 1С)
Раскроем ветку Формы того же справочника. Чтобы открыть форму — выберем форму элемента и нажмем на нее два раза мышкой.
Потяните мышкой за край формы и растяните ее (необязательный пункт).
В панели конфигуратора нажмите кнопку «Размещение данных». Также можно использовать меню Форма / Размещение данных.
Вы видите – наши реквизиты на форму не выведены. Установите на них галочку. А также галочки Вставить надписи и Разместить автоматически.
Как вывести реквизит на форму 1С (тонкий клиент 1С)
Раскроем ветку Формы того же справочника. Выберем форму элемента и нажмем на нее два раза мышкой.
На закладке Реквизиты раскройте строку Объект. Вы увидите список реквизитов, добавленных ранее в справочник.
Теперь просто перетяните из правого окна в левую нужный реквизит и он появится на форме.
Реквизиты формы 1С
В толстом клиенте у формы есть свои собственные реквизиты. Они находятся на закладке Реквизиты.
Эти реквизиты не сохраняются в базе данных, однако их можно использовать на форме для полей, которые нужны для работы с формой.
Например, Вы добавили на форму галочку. При ее нажатии на форме что-то происходит. Значение галочки для Вас неважно (записывать его не нужно) – она используется только для переключения формы при работе с ней. В этом случае в качестве данных Вы используете не реквизит справочника, а реквизит формы.
Периодические реквизиты 1С
В 1С версии 7.7 были периодические реквизиты. Их смысл таков: значение у реквизита разное в разные даты. Например, значение на 1 сентября – одно, а на 1 октября – другое. У одного и того же реквизита.
В 1С 8 периодических реквизитов нет. Это реализуется следующим образом:
- Добавляем регистр сведений и делаете его периодическим. Период может быть – секунда, день, месяц, квартал, год.
Добавляем измерение, у которого тип – нужный нам справочник (которому мы делаем периодический реквизит)
Добавляем в регистр сведений нужный реквизит (или несколько). Они будут периодические.
Теперь пользователь в форме элемента выбирает меню Перейти / ИмяСозданногоРегистра и может смотреть и изменять периодические реквизиты. Возможно вывести их на форму, но в этом случае придется дополнительно программировать.
Документы в 1С 8.3 предназначены для отражения определенных событий в программе, которые имеют отношение к предметной области. Например, касательно учета товаров, это могут быть события поступления товаров на склад, списание товара со склада, перемещение товаров между складами и т.п.. Основными стандартными реквизитами документов являются Номер документа и Дата документа. Как и в случае со справочниками, остальная вспомогательная информация может храниться в реквизитах и табличных частях.
Основное отличие Документов от Справочников в том, что Документ может делать движения в регистрах накопления, сведений, бухгалтерии и расчета.
Что такое Движения документа? Движения документа — это записи в регистрах накопления, сведений, бухгалтерии и расчета, которые создаются при проведении документа и уничтожаются при отмене проведения документа. Все просто. Разработчик самостоятельно настраивает, по каким регистрам будет делать движение его документ, естественно, что регистр перед этим должен быть создан.
В конфигурации, которую мы сделали в предыдущей статье, создадим два документа. Приход и Расход. Создать документ просто – нужно выделить ветвь Документы дерева метаданных, вызвать контекстное меню и выполнить команду «Добавить».
После создания, откроется конструктор документа, где на закладке Основные задаем имя документа и синоним.
Реквизиты документов 1С 8.3
Реквизиты документов создаются на закладке Данные в верхнем окне.
Можно создать неограниченное множество реквизитов, как ссылочных типов, так и примитивных типов.
Иногда, такие реквизиты у документов некоторые программисты называют «шапкой документа».
Табличные части документа 1С 8.3
У документа может быть неограниченно число табличных частей, которые необходимы для отображения списка однотипной информации (например, товары, их количество, цена и сумма, которые будут оприходованы).
Список табличных частей отображается в конструкторе документа на закладке «Данные» во втором окне.
Чтобы добавить реквизит в табличную часть, необходимо выделить нужную табличную часть и нажать на кнопку «Добавить реквизит».
У табличной части могут быть реквизиты, как примитивных, так и ссылочных типов. Количество реквизитов не ограниченно.
Стандартные реквизиты документа 1С
У любого документа есть стандартные реквизиты, которые автоматически создаются при создании документа в конфигураторе 1С. Чтобы посмотреть на них, необходимо нажать на кнопку «Стандартные реквизиты» закладки «Данные» в конструкторе документа.
Мы не можем удалить стандартный реквизит, или изменить тип стандартного реквизита, но можем поменять некоторые его свойства. Например, у созданного документа, я поменяю синоним для номера, пусть у стандартного реквизита Номер будет синоним «Порядковый номер».
Откроем палитру свойств стандартного реквизита
И поменяем синоним.
Теперь в пользовательском режиме поле «Номер» называется по другому.
Нумерация документов 1С
Каждый документ должен быть пронумерован, т.е. ему присвоится какой-то номер. Настройки нумерации документов задаются на закладке «Нумерация» конструктора документа.
На этой закладке при помощи свойства Автонумерация мы определяем, что у каждого документа номер будет на единицу больше номера предыдущего документа. Вся нумерация начинается с 1. При помощи свойства тип номера задаем какой номер будет у нашего документа числовой или строковый. По умолчания тип номера строка.
Документ, у которого номер имеет тип строка выглядит так.
Если номер имеет тип число, то документ будет выглядеть так
Интересное свойство Периодичность. При помощи этого свойства можно установить, что номера документов начинаются заново с какого-то периода. К примеру, если мы установим периодичность Год, то первый документ, созданный в начале года, будет иметь номер 1.
Нумератор документов 1С
В платформе 1С 8.3. есть такой объект Нумератор, при помощи этого объекта можно организовывать сквозную нумерацию документов.
Мы уже в этой статье сделали документ Приход, методом копирования и переименования сделаем документ Расход. Теперь сделаем так, чтобы у этих документов была сквозная нумерация. Для этого создадим нумератор: выделим ветвь Нумераторы (расположена в ветке Документы дерева метаданных), правой кнопкой мышки вызовем контекстное меню и выполним команду «Добавить».
Нумератор будет создан, справа откроется палитра свойств нумератора, где можно задать периодичность нумерации, тип номера и тп.
Осталось указать созданный нумератор в конструкторе документов Приход и Расход.
Мы уже создали документ Приход, у которого номер был 1, если сейчас создать документ Расход, то у него номер будет равен 2.
Остальные статьи по теме конфигурирования:
Более подробно и основательно работа с документами дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Источник