1С:Предприятие 8.3 это платформа (среда исполнения и разработки) плюс конфигурация (прикладное решение). Разработчик описывает объекты конфигурации, а платформа сама создаёт таблицы в базе, формы по умолчанию и права. Собес обычно начинается с вопроса «какой объект выбрать для задачи».
Основные прикладные объекты
- Константа: одно значение на всю базу (основная валюта, организация по умолчанию).
- Справочник: списки условно-постоянной информации: номенклатура, контрагенты, склады. Есть код, наименование, реквизиты, табличные части. Бывает иерархическим и подчинённым другому справочнику (реквизит Владелец).
- Документ: хозяйственное событие с датой и номером: поступление, реализация. Умеет проводиться, то есть делать движения по регистрам.
- Перечисление: фиксированный набор значений, заданный разработчиком (статусы, виды операций). Пользователь не может добавить значение.
- План видов характеристик: виды свойств с разными типами значений. На нём строят дополнительные реквизиты, которые пользователь заводит сам.
- План счетов и план видов расчёта: основа для регистров бухгалтерии и расчёта.
- Регистры: сведений, накопления, бухгалтерии, расчёта. Хранят данные для быстрых итогов и срезов.
- Отчёты и обработки, бизнес-процессы и задачи, журналы документов, планы обмена.
Общие объекты: подсистемы, общие модули, роли, подписки на события, регламентные задания, функциональные опции, параметры сеанса, HTTP-сервисы.
Иерархия справочника
- «Иерархия групп и элементов»: родителем может быть только группа.
- «Иерархия элементов»: любой элемент может быть родителем.
Иерархия хранится в самом справочнике (поле Родитель), в запросах есть оператор В ИЕРАРХИИ.
Ссылки и объекты
Ссылочные объекты (справочники, документы, перечисления, ПВХ, планы счетов, бизнес-процессы, задачи, планы обмена) имеют уникальную ссылку. Записи регистров ссылок не имеют.
- Ссылка (СправочникСсылка.Номенклатура) указывает на запись и подходит для чтения и хранения в реквизитах.
- Объект (СправочникОбъект.Номенклатура) нужен для изменения: Ссылка.ПолучитьОбъект(), изменить, Записать(). В управляемом приложении объект доступен только на сервере.
- Менеджер (Справочники.Номенклатура) создаёт, ищет и выбирает элементы.
Удаление: пометка удаления и обработка «Удаление помеченных объектов» с контролем ссылок. Непосредственное Удалить() оставляет битые ссылки.
Модули
Модуль управляемого приложения, модуль сеанса, общие модули, модули объектов (логика экземпляра), модули менеджеров (логика объекта в целом), модули форм, модули наборов записей, модули команд.
Типы и коллекции
- Примитивы: Число, Строка, Дата, Булево, Неопределено, Null, Тип.
- Null приходит из базы (например, левое соединение без пары), Неопределено означает «нет значения» во встроенном языке.
- Массив индексируется с нуля.
- Структура: ключи только допустимые идентификаторы. Ключ "order-id" вызовет ошибку.
- Соответствие: ключ любого типа, в том числе ссылка.
- ТаблицаЗначений, СписокЗначений, ДеревоЗначений: таблица значений существует только на сервере.
Для текущей даты в прикладной логике используют ТекущаяДатаСеанса(): она не зависит от часов компьютера пользователя.
Частые ошибки
- Хранить статусы в справочнике, когда их набор фиксирован (или наоборот).
- Получать объект ради чтения одного поля.
- Удалять объекты напрямую.
- Использовать Структуру с ключами из внешних данных.
Что спросят на собесе
- Чем справочник отличается от документа и регистра?
- Когда нужен план видов характеристик?
- Чем ссылка отличается от объекта?
- Чем Null отличается от Неопределено?
- Какие виды модулей бывают?