неверно что тип данных относится к базовым 1с

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

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

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

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

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

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

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

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

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

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

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

Общие типы

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

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

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

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

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

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

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

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

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

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

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

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

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

Источник

Типы значений в 1С 8.3

В данной статье мы подробно рассмотрим основные типы значений в 1С — примитивные, ссылочные, системные типы значений, а также познакомимся с основными приемами работы с типами значений.

Содержание

Вместо предисловия

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

Примитивные типы значений в 1С

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

Всего примитивных типов в 1С шесть:

Значения примитивных типов могут преобразовываться к другим типам. Для явного преобразования используются соответствующие методы глобального контекста — например, Строка(12345) приведет число к строке, Дата(«20210101») — преобразует строку в дату 01.01.2021, и др.

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

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

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

Прикладные типы значений

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

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

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

Интерфейсные типы данных в 1С

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

Общие типы данных

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

В отличие от примитивных типов, значения общих типов представляют собой совокупность значений свойств конкретного объекта. Каждое значение общего типа называется «экземпляром объекта», и создается ключевым словом Новый — Новый ТекстовыйДокумент, Новый ХранилищеЗначения, и т.д.

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

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

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

Составные типы значений

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

Проверка типа конкретного значения

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

Для такой проверки используется два метода глобального контекста: Тип и ТипЗнч.

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

Источник

Неверно что тип данных относится к базовым 1с

Войдите как ученик, чтобы получить доступ к материалам школы

Внутренний язык программирования 1С 8.3 для начинающих программистов: типы данных в 1С

Автор уроков и преподаватель школы: Владимир Милькин

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

Замечательно. Давайте двигаться дальше. Возможности программирования гораздо шире, чем вы можете себе представить на данный момент. Наберитесь терпения!

Типы данных

Задание №6. Запишите в формате компьютера (используя нужный тип данных) ответы на следующие вопросы:

Запишите себе на сколько из трёх вопросов вы ответили верно.

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

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

Обработка данных

Теперь, наконец, давайте обрабатывать эти данные! Какие операции мы можем совершать над данными? Это зависит от их типа.

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

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

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

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

Задание №8. Выполните указанные примеры на компьютере.

Задание №9. Запишите в формате компьютера следующую дату: 19 июля 1980 года. Напишите программу, которая прибавит к этой дате столько секунд, чтобы в результате получилось 20 июля 1980 года.

Преобразование данных

А что будет, если мы попытаемся обработать различные типы данных в одной команде? Напишем, например, вот так:

Какой ответ компьютер выведет на экран? Попытайтесь догадаться сами.

Операция умножения имеет более высокий приоритет, чем операция сложения. Поэтому сначала компьютер вычислит результат умножения друг на друга чисел 3 и 4. Получится число 12.

Далее компьютер попытается сложить два слагаемых: строку «3 * 4 = » и число 12, но так как первым идёт слагаемое с типом строка, то и второе слагаемое будет преобразовано в строку «12».

Результатом сложения строк «3 * 4 = » и «12» будет строка «3 * 4 = 12».

Убедитесь в этом, выполнив данную программу на компьютере.

Источник

Типы данных в 1С 8.3

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

Объектные и необъектные данные

Все данные в 1С можно поделить на 2 вида:

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

Примеры объектных данных:

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

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

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

Примеры необъектных данных:

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

Ссылка и Объект

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

Пустая ссылка — это ссылка, которой не соответствует ни один объект базы данных.

Ссылка доступна только для объектных данных.

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

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

Объект можно получить:

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

В данном примере на каждой итерации цикла из выборки будет получен очередной объект базы данных.

Для необъектных данных используется Набор записей.

Типы данных

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

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

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

При создании нового объекта конфигурации автоматически создаются новые типы:

Для примера добавим в конфигурацию два справочника: Номенклатура и Контрагенты. У справочника Номенклатура добавим реквизит Поставщик. В свойствах реквизита при выборе типа, помимо примитивных и общих типов будут доступны два новых типа: СправочникСсылка.Номенклатура и СправочникСсылка.Контрагент:

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

Составной тип данных

Если в окне выбора типа данных установить флаг «Составной тип данных», то такой реквизит сможет хранить значения нескольких типов данных. Например, установим для реквизита Поставщик галку «Составной тип данных» и укажем 2 типа: СправочникСсылка.Номенклатура и СправочникСсылка.Контрагент.

неверно что тип данных относится к базовым 1с. Смотреть фото неверно что тип данных относится к базовым 1с. Смотреть картинку неверно что тип данных относится к базовым 1с. Картинка про неверно что тип данных относится к базовым 1с. Фото неверно что тип данных относится к базовым 1с

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

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

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

Источник

Типы значений 1С

Типы значений 1С

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

Группы типов данных

Простые типы

Типы-объекты

Объекты из метаданных (прикладные)

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

Связанные с окнами, формами и элементами форм (полей, надписей, табличных данных и других)

Другие варианты подразделения значений

Задание типов значений

Значение может быть установлено:

Непосредственно

Через создание объекта

Через результат вызова системной функции

Через обращение к свойству объекта

Составные и простые типы

Если не указано специально, то тип значений не ограничивается.

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

Для других объектов, тип реквизитов может остаться не ограниченными (произвольного типа), либо ограничен через специальный тип «ОписаниеТипов«

Например, для простого случая

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

Приведение значений

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

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

Такие «сложные» преобразования требуется проводить с осторожностью.

Приведение значений через встроенные функции преобразования

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

Проверка типов

Сравнение производится через специальные функции ТипЗнч() и Тип().

Первая возвращает значение передаваемого типа, вторая задает тип для проверки

Сам объект «Тип» является вспомогательным и не может быть записан в реквизиты

Сравнение значений

Источник

Добавить комментарий

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