1с посмотреть поля объекта

Обновлено: 02.07.2024

Позволяет просматривать метаданные конфигураций баз 1С на платформе 8.3 (тонкий, толстый, web клиент) и переходить к конкретным объектам базы данных. Не зависит от конкретной конфигурации (никаких БСП).

Работает с современными конфигурациями 1С с запретом на использование модальности и синхронных вызовов. В отличии от платформенного вызова «Все функции» быстро запускается, заточена на интерфейс «Такси».

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

Если Вас заинтересовала эта обработка, то рекомендую обратить внимание на Консоль запросов для управляемых форм 8.3

ВАЖНО: с целью повышения производительности обработка зачитывает только те данные, которые вам нужны, т.е. метаданные зачитываются только когда вы раскрываете конкретный узел дерева метаданных (на пример, когда вы раскрываете раздел "Документы" (первый раз) зачитываются метаданные документов конфигурации, до этого момента эти данные не зачитываются). По моему мнению платформенный вызов "Все функции" для больших конфигураций тормозит при первом вызове именно потому, что читает ВСЕ.

Демонстрационные видео ролики можно посмотреть здесь

Основное окно обработки предсатвляет собой дерево объектов конфигурации (напоминает окно Конфигуратора 1С), но имеет некоторые дополнительные разделы:

  • Пользователи - список пользователей информационной базы, с возможностью редактирования их свойств
  • Избранное - туда можно собрать объекты, которые в настоящий момент интересуют и не лазить по всему дереву метаданных (для меня очень удобно). Содержимое избранного сохранятся в настройках (настройки можно принудительно сохранить или восстановить стандартными командами платформы "Сохранить/Восстановить параметры. ".
  • ПрочиеКоманды - показываются команды, определенные в объектах конфигурации (Справочники, Документы, Обработки и т.д.). Можно тут же посмотреть права на эти команды. В конфигураторе для больших конфигураций типа ERP или CPM, где ролей больше 1000, утомительно это делать (для справки,в ERP 2.4.10.56 этих команд 665, а ролей - 1353).

Может рассчитать количество конкретных объектов в базе данных - команда "Рассчитать количество объектов". Если вы попытаетесь рассчитать количество объектов раздела метаданных, который никогода не раскрывали, то получите ноль - это не ошибка, это плата за производительность, сначала этот раздел надо хотя бы однин раз раскрыть, обратите внимание на раздел ВАЖНО выше.

Для дерева объектов метаданных основного окна навигатора можно установить отбор по подсистемам.

Особенности поведения при изменении отбора:

  • Дерево объектов полностью перестраивается
  • Количество объектов метаданных для раздела (на пример, Документы) рассчитывается без учета отбора, после разворачивания раздела количество объектов пересчитывается с учетом отбора

При наличии административных прав может обновить нумерацию объектов информационной базы (контекстное меню дерева объектов метаданных и команда в форме свойств объекта).

Для кого это нужно:

  • Для любых пользователей 1С - открывается быстрее чем "Все функции" и позволяет быстрее найти то что нужно
  • Для внедренцев и аналитиков (те, кто дает задания программистам) - можно, не обращаясь к конфигуратору, узнать все, что нужно
  • Для программистов - как ни странно, но некоторые сведения я быстрее получаю здесь, чем в конфигураторе (я программист)
  • Еще это нужно, когда необходимо что-то посмотреть по объектам метаданных, а конфигуратор занят

Для объектов конфигурации (справочник, документ, план счетов и т.д.) показывает свойства объекта.

Свойства объектов (перечень свойств зависит от типа объекта):

  • Свойства (ВидИерархии, ДлинаКода, ДлинаНаименования, КонтрольУникальности и т.д.)
  • Реквизиты (описание реквизитов объекта, в том числе общих)
  • Табличные часта объекта (описание реквизитов для каждой табличной части)
  • Отмечаются индексированные поля
  • Перечень объектов на основании которых может быть создан объект
  • Перечень объектов для которых данный объект является основанием
  • Команды (команды определенные в объекте)
  • Общие команды (общие команды, которые в параметре имеют этот объект)
  • Чужие команды (команды других объектов, которые в параметре имеют этот объект)
  • Подписки на события (подписки на события, в которых участвует этот объект)
  • Подсистемы (подсистемы, в которых присутствует этот объект или дочерние подсистемы)
  • Предопределенные (список предопределенных данных)
  • Движения (список регистров, для которых объект является регистратором)
  • Регистраторы (список документов, которые двигают данный регистр)
  • Состав (список объектов, входящих в подсистему)
  • Права доступа (роли и пользователи, имеющие доступ)
  • Структура хранения объекта в реальной базе СУБД (таблицы, индексы и их поля) - фишка для программистов, знакомых с SQL
  • Ссылки на объект (перечень зависимых объектов конфигурации)

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

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

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

Как самостоятельно встроить более новую версию Редактора объектов информационной базы 8.3 описано здесь.

ВАЖНО: Показывает роли и пользователей, имеющих доступ к объектам конфигурации (анализируются только основные права: чтение, получение и т.д.). Какое конкретно право будет анализироваться можно задать на закладке "Проверяемые права", установив нужное значение в колонке "Право".

На закладке "Стандартные функции" отображается команды, включенные в состав платформы (Журнал регистрации, Управление полнотекстовым поиском, Управление серверами и т.д.) аналогично меню платформы "Все функции" или "Функции для технического специалиста".

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

Можно запустить сеанс 1С под выбранным пользователем (ПАРОЛЬ ЗНАТЬ НЕОБЯЗАТЕЛЬНО) - полезно для проверки функционала под пользователями с ограниченными правами.

На закладке "Активные сеансы" отображается список активных сеансов и соединений с информационной базой, есть возможность завершить выбранные сеансы.

На закладке «Сервис» собраны некоторые полезные команды (для повседневной работы):

  • определение версии подсистемы БСП (если она есть)
  • изменение масштаба изображеняя (компактный / обычный)
  • обновить повторно используемые значения (для программистов)
  • очистить избранное
  • установить блокировку сеансов
  • установить / снять монопольный режим
  • заупустить новый сеанс (тонкий, толстый клиент, конфигуратор - как с текущей, так и с другой базой 1С)
  • системная информация (версия платформы, версия ОС и т.д.)

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

Как легко можно получить значение поля объекта в 1С?

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

2016-10-30_20-00-34

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

Предположим есть объект – элемент справочника «Контрагенты». Нам нужно обратиться к вложенным данным и получить элемент справочника «Контактные лица». Мы сможем это сделать через связку: Контрагент – ОсновноеКонтактноеЛицо – КонтактноеЛицо.

Обращение к функции будет следующим:

ПолучитьЗначениеПоляОбъекта(Контрагент, "Контрагент.ОсновноеКонтактноеЛицо.КонтактноеЛицо", "Контрагент");

Вот сама функция:

// Получает значение поля по его пути. // // Параметры: // Объект - <Произвольный> - Произвольный объект системы, содержащий структуру вложенных полей; // Путь - <Строка> - Строка, содержащая путь к заданному полю объекта. Наименования вложенных полей разделены между собой символом ".". // К примеру, путь: "Контрагент.ОсновноеКонтактноеЛицо.КонтактноеЛицо"; // НаименованиеОбъекта - <Строка> - Строка, содержащая имя объекта. Если этот параметр пустой, то путь не содержит наименования самого объекта. // К примеру, строка: "Контрагент". // // Возвращаемое значение: // <Произвольный> - Заданное поле объекта. // Функция ПолучитьЗначениеПоляОбъекта(Объект, Путь = "", НаименованиеОбъекта = "") Экспорт Если ТипЗнч(Путь) = Тип("Строка") Тогда ПутьМассив = РазобратьСтрокуВМассивПоРазделителю(Путь, "."); Иначе ПутьМассив = Путь; КонецЕсли; НачальныйИндекс = ?(ЗначениеЗаполнено(СокрЛП(НаименованиеОбъекта)) ИЛИ (ПутьМассив.Количество() > 0 И ПустаяСтрока(СокрЛП(ПутьМассив[0]))), 1, 0); Поле = Неопределено; Если (НачальныйИндекс = 0) ИЛИ ((НачальныйИндекс = 1) И (ПутьМассив.Количество() > 0) И (ПутьМассив[0] = НаименованиеОбъекта)) Тогда Поле = Объект; Для Индекс = НачальныйИндекс По ПутьМассив.Количество()-1 Цикл Элемент = ПутьМассив[Индекс]; Попытка Поле = Поле[Элемент]; Исключение Поле = Неопределено; Прервать; КонецПопытки; КонецЦикла КонецЕсли; Возврат Поле; КонецФункции;

А вот вспомогательные функции:

// Разбирает строку в массив подстрок по разделителю. // При этом пробелы между подстроками не учитываются. // // Параметры: // Стр - исходная строка; // СтрРазделитель - разделитель, по умолчанию ","; // ИгнорироватьПустые - игнорировать ли пустые места между разделителями. // // Возвращаемое значение: // Массив строк // Функция РазобратьСтрокуВМассивПоРазделителю(Знач Стр, СтрРазделитель = ",", ИгнорироватьПустые = Ложь) Экспорт Результат = Новый Массив; ВхождениеРазделителя = Найти(Стр, СтрРазделитель); Пока ВхождениеРазделителя <> 0 Цикл ЧастьДоРазделителя = СокрЛП(Лев(Стр, ВхождениеРазделителя - 1)); Если НЕ (ИгнорироватьПустые И ПустаяСтрока(ЧастьДоРазделителя)) Тогда Результат.Добавить(ЧастьДоРазделителя); КонецЕсли; Стр = СокрЛП(Сред(Стр, ВхождениеРазделителя + 1)); ВхождениеРазделителя = Найти(Стр, СтрРазделитель); КонецЦикла; Если НЕ (ИгнорироватьПустые И ПустаяСтрока(Стр)) Тогда Результат.Добавить(СокрЛП(Стр)); КонецЕсли; Возврат Результат; КонецФункции;

// Определяет относится ли данный объект к одному из типов: Число, Строка, Булево, Дата, УникальныйИдентификатор. // // Параметры: // Объект - произвольный объект данных // // Возвращаемое значение: // Истина - простой тип; Ложь - составной тип. // Функция ЭтоПростойТипДанных(Объект) Экспорт Возврат (ТипЗнч(Объект) = Тип("Число") ИЛИ ТипЗнч(Объект) = Тип("Строка") ИЛИ ТипЗнч(Объект) = Тип("Дата") ИЛИ ТипЗнч(Объект) = Тип("Булево") ИЛИ ТипЗнч(Объект) = Тип("УникальныйИдентификатор")); КонецФункции;

// По заданному объекту находит его принадлежность к определённому классу метаданных. // // Параметры: // Данные - Произвольное значение - Передаваемый объект; // Запрос - <Булево> - // Истина - Класс метаданных будет использоваться в запросе, // Ложь - Класс метаданных будет использоваться в коде. // По умолчанию этот параметр задан "Истина". // // Возвращаемое значение: // <Строка> - Название класса метаданных. // Функция ВернутьИмяТипаДанных(Данные, Запрос = Истина) Экспорт ТипДанных = ТипЗнч(Данные); ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипДанных); ИмяКоллекции = ""; Если ОбъектМетаданных <> Неопределено Тогда ПолноеИмяМетаданных = ОбъектМетаданных.ПолноеИмя(); МассивСтр = РазобратьСтрокуВМассивПоРазделителю(ПолноеИмяМетаданных, ".", Истина); ИмяКоллекции = ?(МассивСтр.Найти("ТабличнаяЧасть") = Неопределено, Лев(ПолноеИмяМетаданных, Найти(ПолноеИмяМетаданных, ".")-1), "ТабличнаяЧасть"); КонецЕсли; ИмяТипаДанных = ИмяКоллекции; Если ИмяКоллекции = "Справочник" Тогда ИмяТипаДанных = ?(Запрос, "Справочник", "Справочники"); ИначеЕсли ИмяКоллекции = "ПланСчетов" Тогда ИмяТипаДанных = ?(Запрос, "ПланСчетов", "ПланыСчетов"); ИначеЕсли ИмяКоллекции = "Перечисление" Тогда ИмяТипаДанных = ?(Запрос, "Перечисление", "Перечисления"); ИначеЕсли ИмяКоллекции = "Документ" Тогда ИмяТипаДанных = ?(Запрос, "Документ", "Документы"); ИначеЕсли ИмяКоллекции = "ПланВидовХарактеристик" Тогда ИмяТипаДанных = ?(Запрос, "ПланВидовХарактеристик", "ПланыВидовХарактеристик"); ИначеЕсли ИмяКоллекции = "ПланВидовРасчета" Тогда ИмяТипаДанных = ?(Запрос, "ПланВидовРасчета", "ПланыВидовРасчета"); ИначеЕсли ИмяКоллекции = "Отчет" Тогда ИмяТипаДанных = ?(Запрос, "Отчет", "Отчеты"); КонецЕсли; Возврат ИмяТипаДанных; КонецФункции;

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

2016-10-30_20-13-11

  • Выбираете объект (справочник или документ)
  • Задаёте путь к данным
  • Нажимаете кнопку «Выполнить»
  • Получаете доступ к объекту данных.

Смело используйте этот код 1С для реализации своих проектов! Если в коде имеются баги (ошибки), просьба сообщить об этом, написав в комментариях ниже.

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

Команду её вызова можно подключить ко всем "ссылочным" объектам.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Можно погуглить Инструменты разработчика и не изобретать множество велосипедов. (2) kosmo0,
Если речь идет об универсальном редакторе реквизитов, то за счет меньшей функциональности мой вариант получился интерфейсно удобнее. Но это, разумеется, вопрос личных предпочтений.

Просмотры 6917

Загрузки 9

Рейтинг 0

Создание 25.06.15 12:07

Обновление 25.06.15 12:07

№ Публикации 371556

Конфигурация Конфигурации 1cv8

Операционная система Не имеет значения

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Не указано

Курс рассчитан на тех, кто уже работает с платформой “1С:Предприятие” и имеет опыт доработки различных типовых прикладных решений. 1С:Предприятие для программистов: Расширения конфигурации. Онлайн-интенсив с 15 по 28 декабря 2021 г.

См. также

Конвертация любых адресов, написанных в свободной форме, к ФИАС Промо

Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал "ДА!", выкладываю данную обработку.

2 стартмани

30.06.2020 7695 68 XilDen 15

Управление платформенными обработками (расширение для типовых)

Расширение использует недокументированную возможность для управления платформенными обработками. Например, чтобы подменить "Активные пользователи" или доработать "Конструктор запросов".

1 стартмани

07.10.2021 3384 5 SeiOkami 23

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021 10497 31 Parsec1C 11

Универсальная обработка переноса данных из основной конфигурации в расширение

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

5 стартмани

05.10.2020 10425 65 biz-intel 71

Удаление и/или копирование сохраненных в 1С настроек (например настроек печати табличных форм) Промо

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

1 стартмани

01.09.2012 66888 1378 AnryMc 46

Улучшенная обработка универсального обмена данными в формате XML (УФ)

Улучшенная обработка "Универсальный обмен данными" с полноценными возможностями СКД для выборки данных (не только для отборов).

1 стартмани

23.06.2020 12976 136 Lem0n 1

Панель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками.

1 стартмани

01.05.2020 15306 112 sapervodichka 1

Работа с файлами (обычная и управляемая форма)

Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!

1 стартмани

10.06.2019 41647 222 Xershi 77

Групповая корректировка записей регистров (Управляемое приложение) v 2.1 Промо

Обработка предназначена для групповой корректировки записей регистров Накопления, Сведений и Бухгалтерии. Разработана специально для Управляемого приложения.

3 стартмани

06.09.2013 68810 321 kser87 59

Электронная таблица средствами 1С (Версия 2.0)

Функционал электронной таблицы для программ на платформе 1С реализован на основе табличных документов. Функционал реализован в виде обработки. Большую часть формы обработки занимают листы (закладки) с табличными документами, которые выполняет роль электронной таблицы. Листы могут быть добавлены, удалены или переименованы. Ограничение по количеству листов определяется возможностью платформы. В формулах электронной таблицы можно использовать любые языковые конструкции, процедуры и функции 1С, ссылки на другие ячейки электронной таблицы расположенные в том числе и на других листах. Допустимо обращаться к ячейкам электронной таблицы по имени именованной области. В случае использования в формулах электронной таблицы данных из самой таблицы пересчет зависимых ячеек с формулами производится автоматически. Электронную таблицу можно сохранить в файл.

1 стартмани

23.04.2019 23816 78 user706545_kseg1971 40

Удобная консоль регламентных и фоновых заданий

1 стартмани

06.02.2019 22210 211 Alxby 20

Редактор объектов информационной базы 8.3

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.57 от 09.10.2021

2 стартмани

23.01.2019 43327 486 ROL32 50

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

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

В обычном приложении у элемента формы 1С 8.3 было свойство "Значение", доступное как для чтения, так и для записи. Какой аналог в управляемом приложении?

Элементы формы 1С 8.3 могут содержать реквизиты двух видов: реквизиты объекта 1С и реквизиты формы.



Красным помечен реквизит объекта 1С Контрагент, а зеленым – реквизит формы в 1С.

Интерактивно выберем эти элементы в пользовательском режиме 1С и попробуем прочитать их «программно» кнопкой «Прочитать».



Если читать значения реквизитов в клиентской процедуре, то код для 1С Предприятия будет следующий:






Все бы хорошо: мы получили на клиенте значения реквизитов объекта 1С и формы, но – не значения элементов формы 1С. На клиенте значение элементов формы 1С получить нельзя.

2. Как получить значения из элементов формы 1С

Чтобы получить значения из элементов формы 1С, нам потребуется серверный вызов:



Именно на сервере у элемента формы 1С 8.3 становится доступно свойство ПутьКДанным, по которому его можно извлечь либо из Объекта, который имеет тип ДанныеФормыСтруктура:



…либо из Формы, которая имеет тип ФормаКлиентскогоПриложения:




Форма и ее элементы не видны на сервере без контекста. То есть код для 1С:Предприятия выдаст множество ошибок.

Также Форму нельзя передать как параметр в процедуру и функцию на сервер или в общий модуль.




Еще хочется разобрать момент, когда нам возможно увидеть состояние различающихся значений в элементе форме 1С и в объекте. Это возможно в событии элемента ОбработкаВыбора.
Например, при значении поля Контрагент - Ассоль, мы выбрали контрагента Бакалея:

Читайте также: