# 1С # Встроенный язык # Типы данных и операторы **Переменные** Динамическая типизация. ``` а = -1; а = "Один"; Сообщить(а); //"Один" ``` ТипЗнч(элмас) - вывести тип переменной. Можно явно определить имя переменной, ключевое слово Экспорт позволяет обращаться к переменной через контекст модуля. Без экспорта только для эстетики кода. ``` Перем <Имя переменной 1> [Экспорт] ``` **Типы данных и преобразования типов** Примитивные типы данных
Тип | Описание |
Null | Исключительно для определения отсутствующего значения при работе с базой данных. |
Неопределено (Undefined) | Пустое значение, не принадлежащее ни к одному другому типу. ``` а = Неопределено; б = ?(а = Неопределено, 0, 1);//б = 0 ``` Прямое преобразование в булево: нельзя При сравнении любой тип не равен Неопределено ``` а = 0; б = ?(а = Неопределено, 0, 1);//б = 1 ``` |
Число | Определены основные арифметические операции. Максимальная разрядность 38 знаков. Разделитель точка. 32 знака. Прямое преобразование в булево: любое ненулевое Истина, 0 Ложь Преобразование в строку: Строка() |
Строка | Формат Unicode произвольной длины. В двойных кавычках. Многостроковый режим через | Прямое преобразование в булево: нельзя ``` а = ""; б = ?(а, 0, 1); //вызовет ошибку ``` Преобразование в число: ``` Ч1 = Число(СтрокаЧ1);//вызовет исключение при невозможности ``` Преобразование в дату: ``` Дата("20211231123456"); //YYYYMMDDHHMMSS Дата("2021", "12", "24", "12", "34", "56"); ``` |
Дата | Строка цифр, заключенная в одинарные кавычки вида: 'ГГГГММДДччммсс' Прямое преобразование в булево: нельзя Контроль заполненности: Перем.ЗначениеЗаполнено() Пустая дата - Дата(1,1,1) |
Булево | Значения данного типа имеют два значения Истина и Ложь |
Тип | Используются для идентификации типов значений. Это необходимо для определения и сравнения типов. |
Тип | Описание |
Массив | Аналог списка. Конструктор:
```
м1 = Новый Массив; //массив нулевой длины
м2 = Новый Массив(<ФиксированныйМассив>); //создание массива из фиксированного массива
м3 = Новый Массив(10, 3); //мас. из 10 эл-тов, каждый из которых - мас. из 3 эл-тов
```
Методы:
ВГраница - индекс верхней границы
Вставить(Индекс, Значение) - Добавляет Значение в указанный индекс со смещением. Если указать больше границы, то будут созданы несуществующие значения с типом Неопределено и последним - Значение.
Добавить - Добавляет элемент в конец массива.
Количество
Найти - Если найден - индекс, иначе неопределено.
Очистить - Удаляет все значения из массива.
Удалить - удаляет указанный индекс |
Структура | Аналог словаря. Ключи только строковые. Конструктор: ``` ст1 = Новый Структура; //пустая ст1 = Новый Структура("к1, к2", 1, 2) //структура с ключами к1, к2 и знач. 1 и 2 ``` Доступ к элементу: ``` а["к1"]; а.к1; ``` Перебор значений: ``` а = Новый Структура("к1, к2", 1, 2); Для каждого элмас из а Цикл Сообщить(элмас.Ключ + " " + элмас.Значение); КонецЦикла; ``` Вставить(ключ, значение) Количество() Очистить() - удаляет все элементы Свойство(Ключ, \[НайденноеЗначение\]) - безопасный поиск по ключу Удалить(Ключ) |
Соответствие | Как структура, только ключ может быть любого типа. |
Список значений | Как массив + строковое описание (Представление), Пометка и Картинка |
Таблица значений | Двумерная таблица. ``` тз = Новый ТаблицаЗначений;//Создание таблицы тз.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка")); //Имя — идентификатор колонки //Заголовок — представление колонки в диалогах //ТипЗначения — тип, может быть произвольного типа; //Ширина — ширина колонки в диалогах; найдКолонка = тз.Колонки.Найти("Наименование");//поиск колонки Если найдКолонка = Неопределено Тогда Сообщить("Колонка не найдена!"); КонецЕсли; //перебор колонок Для каждого Колонка Из тз.Колонки Цикл Сообщить(Колонка.Имя); КонецЦикла; Вставить() Вставляет новую колонку в указанную позицию коллекции Добавить() Добавляет новую колонку в конец коллекции Количество() Возвращает количество колонок в коллекции Найти() Ищет колонку в коллекции по имени Очистить() Удаляет все колонки из коллекции Сдвинуть() Сдвигает колонку влево или вправо Удалить() Удаляет колонку из коллекции ``` ``` СтрокаТЧ = тз.Добавить(); СтрокаТЧ.Наименование = "Стул деревянный"; тз = СтрокаТЧ.Владелец(); тз.Удалить(тз.Индекс(СтрокаТЧ)); Для Каждого СтрокаТЧ Из тз Цикл ИндСтроки = тз.Индекс(СтрокаТЧ); КонецЦикла; //поиск первой строки НайдСтрока = тз.Найти(Номенклатура, "Номенклатура"); //поиск набора строк ПараметрыПоиска = Новый Структура("Номенклатура", Номенклатура); мНайдСтроки = тз.НайтиСтроки(ПараметрыПоиска); ``` ``` Вставить() Вставляет строку на указанное место ВыбратьСтроку() Позволяет интерактивно выбрать строку в диалоговом окне ВыгрузитьКолонку() Выгружает значения ячеек указанной колонки в массив значений Добавить() Добавлет новую строку в таблицу значений ЗагрузитьКолонку() Загружает значения в ячейки указанной колонки из массива ЗаполнитьЗначения() Заполняет ячейки указанных колонок определенным значением Индекс() Возвращает индекс строки таблицы значений Итог() Возвращает просуммированный итог по колонке таблицы значений Количество() Возвращает количество строк в таблице значений Найти() Выполняет поиск строки по значению НайтиСтроки() Выполняет поиск строк по указанным параметрам Очистить() Очищает строки таблицы значений Получить() Возвращает строку по ее индексу Свернуть() Выполняет сжатие строк и колонок таблицы значений Сдвинуть() Сдвигает строку вверх или вниз по таблице Скопировать() Создает новую таблицу значений копированием текущей СкопироватьКолонки() Создает новую пустую таблицу значений путем копирования колонок текущей таблицы Сортировать() Выполняет сортировку строк таблицы значений по указанным колонкам Удалить() Удаляет строку таблицы значений ``` |
Фиксированный (массив, соответствие, структура) | Аналогичный объект только для чтения. |
Хранилище значений | Недоступен напрямую в управляемой форме. Нужно городить временное хранилище. |
Группа | Размещение модулей | Базовое назначение | Подробное описание |
Общие | Конфигурация - Общие - Общие модули | Хранение общего кода, доступного из остальных модулей. Настроить обработку событий нельзя. | В этой статье. |
Модули конфигурации | Конфигурация - Свойства. Модуль приложения Модуль внешнего соединения Модуль сеанса | Обработка общих событий платформы. Размещение подпрограмм обработки событий платформы. Например запуска приложения или внешнего вызова. | [Управление отображением и событиями платформы](http://bobrobotirk.ru/books/1s/page/upravlenie-otobrazeniem-i-sobytiiami-platformy "Управление отображением и событиями платформы") |
Модули классов | Конкретный класс. Модуль формы Модуль объекта Модуль менеджера | События, связанные с конкретным классом. Например нажатие кнопки "Показать группы" в окне списка справочника Номенклатура. | [Объекты конфигурации](http://bobrobotirk.ru/books/1s/chapter/obieekty-konfiguracii "Объекты конфигурации") |
В виде файлов | В виде файла | В виде обновления конфигурации | |
Описание | Элементы конфигурации сохраняются в отдельных файлах, описание - в xml файлах. Заменяет существующую конфигурацию. | Полная конфигурация в виде одного файла в собственном формате. Можно как заменить существующую конфигурацию, так и сравнить и найти отличия. | Инкрементная конфигурация в виде одного файла в собственном формате. Для использования требуется установленная предыдущая версия конфигурации. |
Расширение | Директория с xml файлами или zip архив директории | .cf | .cfu |
Сохранение | Конфигурация -> Выгрузить конфигурацию в файлы | Конфигурация -> Сохранить конфигурацию в файл | Конфигурация -> Поддержка -> Обновить конфигурацию |
Восстановление | Конфигурация -> Загрузить конфигурацию из файлов | Конфигурация -> Загрузить конфигурацию из файла | Конфигурация -> Поставка конфигурации -> Создать файлы поставки и ... |
Конфигурация без поддержки | Конфигурация с поддержкой с возможностью редактирования | Конфигурация с поддержкой без возможности редактирования |
[](http://bobrobotirk.ru/uploads/images/gallery/2025-01/1c-admin-config-not-in-support.JPG)Обновить нельзя без изменения статуса поддержки. | [](http://bobrobotirk.ru/uploads/images/gallery/2025-01/1c-admin-config-in-support-modif.JPG) Можно изменять конфигурацию, обновление в ручном режиме. | [](http://bobrobotirk.ru/uploads/images/gallery/2025-01/1c-admin-config-in-support.JPG) Обновление в автоматическом режиме. |
Право | Действия |
**Способы взаимодействия** | |
Тонкий клиент | право запуска тонкого клиента |
Веб клиент | право запуска веб-клиента |
Мобильный клиент | право запуска мобильного клиента |
Толстый клиент | право запуска толстого клиента |
Внешнее Соединение | право взаимодействия между базами 1С по COM технологии в качестве сервера (про деление на тип сервер / клиент предположение, не проверял) |
Automation | возможность взаимодействия между базами 1С по COM технологии или использование внешнего OLE соединения в качестве клиента. Например вызов сервера автоматизации OLE MS Office. (про деление на тип сервер / клиент предположение, не проверял) |
**Управление функциями и данными** | |
Администрирование данных | право административных действий над данными. В право входит: - Просмотр записей журнала регистрации и получение значений отбора без ограничений. - Установка часового пояса информационной базы (области данных) – вызов метода УстановитьЧасовойПоясИнформационнойБазы(). - Создание начального образа подчиненного узла распределенной информационной базы (вызов метода СоздатьНачальныйОбраз()). - Обновление нумерации объектов (вызов метода ОбновитьНумерациюОбъектов()). - Выполнение методов объекта СтандартноеХранилищеНастроекМенеджер в тех случаях, если выполняется работа с настройками пользователя, отличными от текущего. - Выполнение методов ПолучитьДанныеРегистрацииИнформационнойБазы()/УстановитьДанныеРегистрацииИнформационнойБазы(). Не позволяет открыть конфигурацию в конфигураторе, т е для манипулирования данными через созданные процедуры в режиме Предприятие. |
Администрирование | предоставляет полный доступ к любым данным и функциям. Подчинено праву Администрирование данных. - Редактирование конфигурации - Административные действия над всей информационной базой и редактирование списка пользователей (право для конфигурации). - Возможность настройки параметров соединения (для внешнего источника данных). - Отображение списка лицензий, использовавшихся при работе с конфигурацией и информационной базой, в окне О программе. - Удаление областей данных (включая удаление всех областей сразу). - Возможность выполнения фонового обновления конфигурации базы данных на стороне клиента. - Возможность устанавливать имя профиля безопасности в диалогах управления расширениями. |
Администрирование Расширений Конфигурации | управляет доступом к интерфейсу управления расширениями (как интерактивному, так и программному) в режиме «1С:Предприятие». В безопасном режиме администрирование расширений невозможно. |
Обновление Конфигурации Базы Данных | позволяет выполнять обновление конфигурации базы данных в неинтерактивном (не через конфигуратор) режиме, т е через обработку. Не позволяет в конфигураторе открыть конфигурацию. |
Режим технического специалиста | Похоже из практического позволяет получить ссылку на текущий объект или перейти по существующей ссылке. |
Регистрация в системе взаимодействия | Мутное право. Вроде требует полного доступа к базе, но при установке этого права, административные права не устанавливаются. Хз. |
**Монопольный режим и статус пользователей** | |
Монопольный Режим | право на использование [монопольного режима](http://bobrobotirk.ru/books/1s/page/monopolnyi-rezim "Монопольный режим") |
Завершение монопольного режима при начале сеанса | Сеанс другого пользователя с монопольным режимом может быть завершен при начале нового сеанса пользователя с правом ЗавершениеМонопольногоРежимаПриНачалеСеанса. |
Активные пользователи | Просто просмотр списка активных пользователей. |
Журнал регистрации | Просмотр журнала авторизации пользователей. |
**Доступные типы интерфейсов в режиме Предприятие** | |
5 штук, говорят сами за себя | |
**Возможность запуска внешних обработок/отчетов** | |
Интерактивное открытие ... (2 штуки, также ясно). | |
Вывод | Возможность копирования в буфер, печати, сохранения в файл |
**Другое** | |
Сохранение данных пользователя | Если право выключено, то: - Недоступна кнопка История, обращение к истории из встроенного языка вызывает исключение, интерактивные операции записи не фиксируются в истории. - В панели системных команд недоступна команда вызова списка избранного. В формах Получение ссылки и Переход по ссылке недоступна кнопка Добавить в избранное. При обращении к избранному из встроенного языка вызывается исключение. - Недоступна настройка форм (отсутствует команда Изменить форму). - Недоступны команды настройки панели разделов, панели навигации и начальной страницы. - В отчетах недоступны команды сохранения пользовательских настроек и вариантов отчета. Не выдается предложение запомнить изменения, выполненные пользователем в текущем варианте отчета. Изменения не сохраняются. Команда выбора настроек отчета доступна только в том случае, если у отчета или конфигурации установлено хранилище пользовательских настроек отчета. При вызове метода УстановитьТекущиеПользовательскиеНастройки() выдается исключение. - Недоступны команды сохранения и восстановления данных форм (команды Сохранить параметры и Восстановить параметры). Не выполняется автоматическое сохранение данных форм. - Настройки окон (размер и положение) сохраняются только на время сеанса. - Настройки размера панелей главного окна сохраняются только на время сеанса. - При программном сохранении настроек выдается исключение. - Настройки клиентского приложения сохраняются только на время сеанса. Не отображается флажок Устанавливать режим разрешения отладки при запуске (для тонкого и толстого клиента). Не отображается флажок Устанавливать режим низкой скорости соединения при запуске (для веб-клиента). - Не сохраняется настройка периода в списках. В диалоге настройки периода недоступен флажок Использовать эту настройку периода при открытии. |
<Прочие поля> | Конкретное имя поля | |
Способ установки ограничения | На всю запись | На отдельное поле записи |
Использование при запросе | Будет накладываться для всех полей объекта, кроме полей, для которых ограничения заданы явным образом | Условие будет накладываться только в том случае, если в запросе присутствует поле, для которого задано ограничение |
Название типа | Отображение в коде | Назначение |
СправочникиМенеджер | Справочники | Содержит все СправочникМенеджер и метод ТипВсеСсылки(), позволяющий получить ссылки на типы всех справочников для последующего сравнения с типом переменной. |
СправочникМенеджер | Справочники.ИмяСправочника | Это конкретный элемент СправочникиМенеджера. Понять и простить. ``` текноменкл = Справочники.Номенклатура; //текноменкл это справочникменеджер. ``` Общие действия, относящиеся к конкретному справочнику, а не к его конкретным объектам. Например, методы позволяют создать новый объект или найти объект по коду. |
МояСтрока | МоеЧисло | Результат |
олдж | 7 | 67 |
олдж | 8 | 67 |
фыва | 4 | 67 |
Компонент схемы | Назначение |
Наборы данных | Данные для дальнейшего представления. Могут быть запросы, объекты, объединения. Объединение объединяет из нескольких наборов данных (внешнее соединение). |
Связи наборов данных | Если есть несколько наборов данных и нужно использовать левое соединение. |
Вычисляемые поля | Значения этих полей получаются в результате вычисления выражений, написанных разработчиком в схеме компоновки данных, или в результате выполнения функций, описанных в общих модулях конфигурации. Дополнительные столбцы. |
Ресурсы | Групповые итоговые данные. Не отдельные столбцы, как в случае с вычисляемыми полями. |
Параметры | Параметры могут быть явно определены в запросе, например вид номенклатуры (&ВидНоменклатуры), а могут быть параметрами виртуальных таблиц базы данных, например начало и конец отчетного периода. Как правило, параметры выводятся пользователю перед формированием отчета. Затем заданные пользователем значения параметров передаются в отчет, и отчет формируется заново, например с новым отчетным периодом |
Макеты | |
Вложенные схемы | Для многократного использования разработанной схемы в других отчетах, связав родительский и вложенный отчеты по общему полю. |
Настройки | Содержит 4 типа блоков: группировка, таблица, диаграмма, вложенный отчет. |
Тип выборки | Описание | Функция в коде |
Линейный | все записи из результата запроса | Без указания способа или СпособВыборки = ОбходРезультатаЗапроса.Прямой; |
Иерархический | только записи результата запроса, находящиеся на одном уровне иерархии | СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией; |
По группировкам | только родительские записи, являющие групповыми итогами | СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам; |
Блок | Информация |
Область системных команд | Общие действия по управлению. Не зависит от конфигурации. Не настраивается пользователем и разработчиком. |
Панель разделов | Главное + подсистемы первого уровня. Не настраивается пользователем. **Настройка Главной:** ПКМ на корне - Рабочая область начальной страницы. Не зависит **Настройка набора видимых подсистем:** ПКМ на корне - Открыть командный интерфейс конфигурации. Делится по ролям пользователей. Т е можно в правах ролей задать доступ к подсистеме в целом, а можно скрыть из списка. Роли: жесткое ограничение. Сокрытие означает, что оно будет не видно, но часть функций можно включить в другие системы/подсистемы и будет видно. |
Панель функций текущего раздела | 4 части: Элементы и 3 выпадающих списка: Еще, Создать, Отчеты, Сервис. **Элементы:** Сначала списки. Важное выделены жирным, самые первые. Все, что не вошло, попадает в выпадающий список Еще. Зависит от размера окна, чем уже - больше элементов в Еще. Элементы из подчиненных подсистем независимо суммируются с набором текущей, могут повторяться, деление на подчиненные не видно. Увидеть деление на подсистемы через блок Панель инструментов. |
Панель инструментов | Состоит из Меню функций, Избранное, История, Поиск, Центр оповещений. В меню функций видно деление на подчиненные подсистемы. Через шестеренку пользователь может настроить под себя. Если оповещений в принципе нет - элемент Центр оповещений отсутствует. |
Панель избранного | По умолчанию выключена. Для включенной панели нельзя настроить отображение. |
Панель истории | По умолчанию выключена. Для включенной панели нельзя настроить отображение. |
Панель открытых | По умолчанию выключена. Одна строка внизу. |
Рабочая область | Отображение элемента из выбранного блока. |
Информационная панель | Отображение режима работы и отладочной информации. |
ОткрытьФорму | ПолучитьФорму | ПоказатьЗначение |
Основной универсальный способ. Сразу открывает форму. | Получаем форму без открытия, затем метод Открыть. Как ОткрытьФорму. | Типа упрощение, негибкое |
Модуль формы клиент | Модуль формы сервер | Модуль объекта сервер |
При чтении на сервере (существующий объект) | Обработка заполнения (новый объект) | |
При создании на сервере | ||
При открытии |