Можно ли в системе 1с предприятие определить свой тип данных например ценаноменклатуры

Обновлено: 07.07.2024

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

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

Описание системы типов содержится в синтакс-помощнике, во встроенной справке и в документации.

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

Типы данных, определенные на уровне платформы

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

Примитивные типы

Примитивные типы данных — это такие типы как Строка, Число, Дата, Булево и другие. Эти типы не являются чем-то особенным для «1С:Предприятия 8». Как правило, такие типы данных существуют и в других программных системах.

Система типов

Значения примитивных типов являются простыми неделимыми значениями, в которых нельзя выделить отдельные составляющие. Например, значениями типа Число могут быть 1, 8, 15 и др. Чтобы создать значение примитивного типа, в тексте программы нужно указать его литерал — символьный идентификатор значения.

Универсальные коллекции значений

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

Система типов

Общие типы

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

Система типов

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

Экземпляры объектов создаются с помощью специального оператора встроенного языка — Новый.

Интерфейсные типы

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

Система типов

Типы данных, образуемые в прикладном решении

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

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

Система типов

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

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

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

Система типов

Например, разработчик может добавить в свое прикладное решение новый справочник Номенклатура, который будет наследовать функциональность класса Справочники, или новый документ КассовыйОтчет, который будет наследовать функциональность класса Документы.

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

Например, после создания нового справочника Номенклатура, становятся доступны следующие типы данных:
  • СправочникМенеджер.Номенклатура;
  • СправочникСсылка.Номенклатура;
  • СправочникОбъект.Номенклатура;
  • СправочникВыборка.Номенклатура;
  • СправочникСписок.Номенклатура.

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

Система типов

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

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

Еще один момент, на котором следует акцентировать внимание, проще всего продемонстрировать на примере.

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

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


В конфигураторе форма выбора типа удобная с поиском, вопросов к ней нет. В режиме

1С:Предприятие с самой первой версии 8.0 и до сих пор это просто список с которым удобно работать только когда элементов мало. Пользователь с этой проблемой сталкивается очень редко, а вот разработчик намного чаще в разных инструментах. Например "Поиск ссылок на объект" нужно выбрать тип искомой ссылки из всех доступных вариантов, современные конфигурации большие в них много объектов и бывает достаточно затруднительно найти нужный.

Проблема уже достаточно старая и имеет множество решений в различных консолях и инструментах:

  • БСП общая форма "ВыборОбъектовМетаданных"
  • В инструментах разработчика от Сергея Старых
  • В редакторе объекта и консоли Олега Русова
  • В консоли Управляемая консоль отчетов

Стандартная форма. Нам такого родео не нужно!


Своя форма. Возможности

В Infostart Toolkit используется своя более удобная форма. Одна форма используется при выборе типа, при редактировании описания типов и отметке объектов метаданных. Форма практически повторяет форму из конфигуратора не нужно привыкать к новому ;)


Возможности:
  • Группировка по коллекциям метаданных
  • Поиск по подстроке, в т.ч. несколько слов, разделенных пробелом (регистр не учитывается).


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

  • Быстрая работа в больших конфигурациях (за счет того, что данные не считываются все сразу, получаются по разворачиванию ветки или началу поиска)

Где используется в наборе инструментов?

Форма в наборе инструментов используется повсеместно. Приведу еще несколько примеров:

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


Отбор метаданных в инструменте "Подписки на события"


Работа формы "вживую" (ERP Управление предприятием 2.5.6.124)

См. также (другие статьи по Toolkit):

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

Electronic Software Distribution

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

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

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

54-ФЗ

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

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

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

Хотелось бы иметь следующую функциональность.

* При двойном клике ЛКМ на строке дерева метаданных завершать выбор типа и закрывать диалог, считая результатом выбора несоставной тип.
* При установке очередного (не первого) флажка в дереве метаданных автоматически устанавливать флаг "Составной" в шапке диалог. Соответственно сбрасывать его при снятии флажков в дереве метаданных.
* Иметь возможность фильтровать дерево метаданных, оставляя только те объекты, что отмечены флажком.

Кажется, это бы добавило удобства.

* При двойном клике ЛКМ на строке дерева метаданных завершать выбор типа и закрывать диалог, считая результатом выбора несоставной тип.
* При установке очередного (не первого) флажка в дереве метаданных автоматически устанавливать флаг "Составной" в шапке диалог. Соответственно сбрасывать его при снятии флажков в дереве метаданных.
Не согласен, большой разницы нет, а поведение отличается от привычного.
* Иметь возможность фильтровать дерево метаданных, оставляя только те объекты, что отмечены флажком. (4) Опционально не хочется, такая неочевидная мелочь.
Буду дорабатывать постараюсь учесть, если есть закладка где отмечены выбранные типы, пожелание на счет составного становится удобным. Там были сложности с реализацией как в конфигураторе. Как ты предлагаешь будет проще внутри.

Писал в начале что проблема уже решалась. Добавлю вашу в список


Скачал, посмотрел. Не соглашусь что тоже самое.
* Поиска нет
* Все данные в дерево считываются сразу в больших конфигурациях ваша версия будет долго запускаться
* Требуется наведение "красоты" и снаружи и внутри (6) 1. Поиск можно штатный платформенный, как обычно; 2. Возможно, но на ЕРП тормозов не замечал; 3. Согласен. (7)
1. К сожалению его можно использовать только с 16 платформы
2. В ерп много обьектов

7000 если считывать сразу при открытии это создание 7000 строк в дереве если постепенно

30. Посмотри сколько займет запуск? У меня 0.2сек

(7) Сравнил запуск на своем компьютере в ERP 2.5:
Мой вариант первый запуск

0,1 повторный 0,02
Твой - первый 2,3 повторный 0,92.
На моем компе с SSD M2 вполне приемлимо, но разница в эффективности существенная. Когда добавишь картинки еще замедлится.
Динамическое считывание здесь очень полезно

(9) Не спорю, но мне и не надо было тогда. Так-то конечно, по событию развёртывания каждой ветки. (9) Поймать разницу на глаз 0,1 или 0,02 не возможно, поэтому нет смысла хвастать приводить значения меньше десятой. Я думаю, что разницу между 0,5 и 0,2 вы не ощутите. Исходя из этого основная разница в холодном старте.
Ну, а динамическое считывание - это основы в большинстве языков особенно связанных с фронтендом и веб-фронтендом, поэтому здорово когда 1С-ники на это заморачиваются. (11) Мне кажется вы что-то не так поняли.
Сравнение с вариантом что привел коллега приблизительно:
первый запуск: IS Toolkit 0,1 в варианте без дин. считывания 2,3
повторный запуск: IS Toolkit 0,02 в варианте без дин. считывания 0,92
На более медленном железе отличия во времени будут более значительными

В конфигураторе форма выбора типа удобная с поиском, вопросов к ней нет. В режиме

1С:Предприятие с самой первой версии 8.0 и до сих пор это просто список с которым удобно работать только когда элементов мало.

(15) Есть, но в конфигураторе удобнее:
Сразу видны все найденные типы не нужно искать дальше
Доступен поиск по словам
Видно картинку типа в списке непонятно что это регистр, справочник, перечисление Чем больше список, тем реже пользователь делает его просмотр без фильтра по содержанию элементов. В основном конечно пользователи вводят подстроку фильтра явно или выполняют поиск по первым символам неявно (набирая их просто в дереве, а не в отдельном поле). Именно эти 2 операции, начиная с и включая открытие формы списка, правильнее сравнивать, т.к. они самые частые.

Просмотры 2502

Загрузки 0

Рейтинг 22

Создание 26.07.21 11:00

Обновление 26.07.21 11:00

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

Тип файла Нет файла

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

Операционная система Windows

Страна Россия

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

Доступ к файлу Бесплатно (free)

Код открыт Да


См. также

Infostart Toolkit Промо

Простые и удобные инструменты: Консоль запросов, СКД, Редактор объекта, Поиск ссылок и другие. Редактор запросов и кода с раскраской и контекстной подсказкой. Улучшенный конструктор тонкого клиента и др.

02.09.2020 39664 133 221

Чтение метаданных 1С в SQL Server

Описание файла DBNames таблицы Params и файлов объектов метаданных таблицы Config.

16.02.2021 4106 zhichkin 63

Метаданные и их идентификаторы

Идентификаторы (GUID'ы) метаданных конфигурации. Немного о том, как их получить.

05.12.2020 12610 YPermitin 27

Выявляем и оптимизируем ресурсоемкие запросы 1С:Предприятия

Обычно предметом оптимизации являются заранее определенные ключевые операции, т.е. действия, время выполнения которых значимо для пользователей. Причиной недостаточно быстрого выполнения ключевых операций может быть неоптимальный код, неоптимальные запросы либо же проблемы параллельности. Если выясняется, что основная доля времени выполнения ключевой операции приходится на запросы, то осуществляется оптимизация этих запросов. При высоких нагрузках на сервер СУБД в оптимизации нуждаются и те запросы, которые потребляют наибольшие ресурсы. Такие запросы не обязательно связаны с ключевыми операциями и заранее неизвестны. Но их также легко выявить и определить контекст их выполнения, чтобы оптимизировать стандартными методами.

24.05.2020 11488 DataReducer 22

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка) Промо

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

5 стартмани

14.08.2018 125098 2997 Evg-Lylyk 749

Об общих реквизитах

Общие реквизиты. Что за ними скрывается?

28.10.2019 18934 YPermitin 31

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

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

2 стартмани

23.01.2019 43325 486 ROL32 50

Консоль запросов для управляемых форм 8.3

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

3 стартмани

08.11.2018 34979 449 ROL32 35

Подсистема "Инструменты разработчика" v6.14.2 Промо

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

23.09.2007 615667 36476 tormozit 2809

Диалоговое окно ввода описания типов

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

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

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

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

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

План счетов может быть организован иерархично, ограничений по числу уровней вложенности нет.

Предопределенные планы счетов

Типовые решения, в состав которых входит подсистема бухгалтерского учета, поставляются с предопределенным планом счетов.

Предопределенный план счетов

Как и любые предопределенные данные, эти счета можно отредактировать (добавить дополнительные счета) в режиме 1С:Предприятие, но нельзя удалить совсем.

Особенности работы с предопределенным планом счетов:

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

Предопределенный счет

  • "Имя" (с пустым - сохранить не даст);
  • "Вид";
  • "Забалансовый" (флаг по умолчанию установлен "ЛОЖЬ").

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

Структура объектов 1С "Планы счетов"

Планы счетов поддерживают многоуровневую иерархию "счет - субсчета":

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

Количество уровней вложенности субсчетов в системе 1С:Предприятие 8 не ограничено.

Создание и редактирование счетов может выполняться:

  1. разработчиком (предопределенные счета);
  2. пользователем, в процессе работы с прикладным решением ( пользователь не может удалять счета, созданные разработчиком ).

По любому счету или субсчету возможно ведение аналитического учета. При создании и редактировании плана счетов требуемому счету или субсчету можно поставить в соответствие необходимое количество субконто - объектов аналитического учета.

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

Для каждого счета можно задать:

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

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


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

Определяемый тип

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

Теперь данный определяемый тип можно указывать как тип для реквизитов объектов:

Определяемый тип

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

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

Определяемый тип

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

У определяемого типа есть некоторые ограничения:

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

Определяемый тип программно

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

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