- Выбирать подходящий объект метаданных для задачи
- Знать стандартные реквизиты и табличные части справочников и документов
- Создавать элемент справочника и документ кодом, отличать ссылку от объекта
В обычном программировании таблицы базы данных, формы и меню создают вручную. В 1С ты просто описываешь объект метаданных — например, «справочник Товары, реквизиты: Цена, Единица», — а платформа сама создаёт таблицу, формы списка и элемента, команды. Конфигурация собирается из таких готовых «кирпичиков».
Константы и справочники
Константа хранит одно значение для всей базы: название организации, основную валюту, признак использования НДС. Справочник — это список однотипных элементов: товары, контрагенты, сотрудники, склады. У каждого справочника есть стандартные реквизиты: Код, Наименование, ПометкаУдаления и Ссылка.
- Иерархия: справочник можно разбить на группы (
Иерархия групп и элементов) — тогда появляются реквизитыРодительиЭтоГруппа. Например, «Напитки → Чай». - Владелец: справочник может быть подчинён другому, например договоры принадлежат контрагенту.
- Реквизиты и табличные части: собственные поля (Цена, Единица) и списки строк (например, штрихкоды товара).
- Предопределённые элементы создаются в конфигураторе и доступны в коде по имени:
Справочники.Склады.Основной.
Ссылка — лёгкий «адрес» записи в базе: её хранят в реквизитах и сравнивают, но изменить данные через неё нельзя. Объект (СправочникОбъект) — полная копия записи, загруженная в память: его изменяют и сохраняют методом Записать().
// Новый элемент справочника
НовыйТовар = Справочники.Товары.СоздатьЭлемент();
НовыйТовар.Наименование = "Çay 100 q";
НовыйТовар.Цена = 3.5;
НовыйТовар.Записать();
// Поиск и изменение существующего элемента
ТоварСсылка = Справочники.Товары.НайтиПоНаименованию("Çay 100 q");
Если Не ТоварСсылка.Пустая() Тогда
ТоварОбъект = ТоварСсылка.ПолучитьОбъект();
ТоварОбъект.Цена = 4;
ТоварОбъект.Записать();
КонецЕсли;
// Константа
Валюта = Константы.ОсновнаяВалюта.Получить();Справочники.Товары) → объект → Записать(). В английском синтаксисе: Catalogs, CreateItem(), FindByDescription(), GetObject(), Write().Документы
Документ фиксирует хозяйственную операцию, произошедшую в определённый момент: поступление товара, продажу, оплату. Его стандартные реквизиты — Номер, Дата, Проведен и ПометкаУдаления. Номера присваиваются автоматически и могут, например, начинаться заново каждый год. Главная способность документа — проведение: проведённый документ формирует движения в регистрах — это мы разберём в отдельном уроке.
- 1Добавь документ
Документы→Добавить, имя:ПриходТовара. Синоним автоматически станет «Приход товара». Отметь подсистемуСклад. - 2Создай табличную часть
На закладке
Данные:Табличные части→Товары, реквизиты:Товар(типСправочникСсылка.Товары),Количество,Цена,Сумма(Число). - 3Проверь
Нажми F5, создай новый документ в разделе
Склади добавь несколько строк в табличную часть. Форму платформа построила автоматически — ты её не рисовал.
Приход = Документы.ПриходТовара.СоздатьДокумент();
Приход.Дата = ТекущаяДатаСеанса();
НоваяСтрока = Приход.Товары.Добавить();
НоваяСтрока.Товар = Справочники.Товары.НайтиПоНаименованию("Çay 100 q");
НоваяСтрока.Количество = 10;
НоваяСтрока.Цена = 4;
НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;
Приход.Записать(); // номер присвоится автоматическиСервер).Перечисления и другие объекты
Перечисление — фиксированный список значений, которые задаёт только разработчик: виды оплаты (наличные, карта), статусы заказа. В коде: Перечисления.ВидыОплаты.Наличные. Пользователь не может добавить новое значение — в этом главное отличие от справочника.
| Объект | Назначение | Пример |
|---|---|---|
Регистры сведений / накопления | накопленные или зависящие от времени данные | остатки на складе, цены |
Отчеты | анализ и вывод данных | отчёт о продажах |
Обработки | сервисные операции | групповое изменение цен |
Общие модули | повторно используемый код | функции расчёта налогов |
Роли | права доступа | «Кладовщик» видит только складские документы |
Подсистемы | разделы интерфейса | Склад, Продажи, Бухгалтерия |
Главное
- Ты описываешь объект метаданных — платформа сама создаёт таблицу, формы и команды.
- Справочники — для списков (
Код,Наименование, иерархия), документы — для операций во времени (Номер,Дата, проведение). - Ссылка — только для чтения; для изменения нужны
ПолучитьОбъект()иЗаписать(). - Значения перечисления задаёт только разработчик.
- Имя пишется в CamelCase без пробелов, пользователь видит синоним.
Проверь себя
Вопросов: 10. Каждый правильный ответ приносит XP.