1С: объекты конфигурации и язык запросов
Объекты конфигурации 1С — справочники, документы, регистры накопления, механизм проведения документов, язык запросов, построение отчётов на СКД.
Курсовая по 1С обычно требует разработать конфигурацию для учёта: справочники, документы, движения по регистрам и отчёты. Разберём эту схему целиком — она одинакова для склада, кадров и услуг.
Объекты конфигурации
| Объект | Назначение | Пример |
|---|---|---|
| Справочник | Условно-постоянные данные | Номенклатура, Контрагенты, Сотрудники |
| Документ | Событие хозяйственной жизни | Поступление товаров, Приказ о приёме |
| Регистр накопления | Количественный и суммовой учёт | ОстаткиТоваров, Продажи |
| Регистр сведений | Хранение значений с привязкой к периоду | Цены, КурсыВалют |
| Перечисление | Фиксированный набор значений | ВидОплаты: Наличная, Безналичная |
| Отчёт | Представление данных | ОстаткиНаСкладе, АнализПродаж |
| Обработка | Служебное действие | ЗагрузкаИзExcel |
Проведение документа
Процедура ОбработкаПроведения(Отказ, Режим)
// Контроль заполнения
Если НЕ ЗначениеЗаполнено(Склад) Тогда
Отказ = Истина;
Сообщить("Не указан склад");
Возврат;
КонецЕсли;
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого СтрокаТовары Из Товары Цикл
Если СтрокаТовары.Количество <= 0 Тогда
Отказ = Истина;
Сообщить("Некорректное количество в строке " + СтрокаТовары.НомерСтроки);
Продолжить;
КонецЕсли;
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТовары.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = СтрокаТовары.Количество;
Движение.Сумма = СтрокаТовары.Количество * СтрокаТовары.Цена;
КонецЦикла;
КонецПроцедуры
Язык запросов
ВЫБРАТЬ
Остатки.Номенклатура КАК Товар,
Остатки.Номенклатура.ЕдиницаИзмерения КАК Единица,
Остатки.КоличествоОстаток КАК Остаток,
Остатки.СуммаОстаток КАК Сумма
ИЗ
РегистрНакопления.ОстаткиТоваров.Остатки(
&ДатаОстатков,
Склад = &Склад
И Номенклатура.ВидТовара = &ВидТовара) КАК Остатки
ГДЕ
Остатки.КоличествоОстаток > 0
УПОРЯДОЧИТЬ ПО
Товар
ИТОГИ
СУММА(Остаток), СУММА(Сумма)
ПО
ОБЩИЕ
- Виртуальные таблицы Остатки, Обороты, ОстаткиИОбороты — главное преимущество запросов 1С: система сама считает итоги по движениям.
- Условия отбора ставят в параметрах виртуальной таблицы, а не в ГДЕ: тогда лишние записи отсекаются до вычисления итогов, и запрос работает быстрее.
- Обращение через точку (Номенклатура.ЕдиницаИзмерения) удобно, но порождает неявное соединение — в больших выборках заменяют явным СОЕДИНЕНИЕ.
- СОЕДИНЕНИЕ с подзапросом по виртуальной таблице — типовой приём для отчёта «остатки и обороты за период».
// Выполнение запроса в коде
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Номенклатура, КоличествоОстаток ИЗ
|РегистрНакопления.ОстаткиТоваров.Остатки(&Дата, Склад = &Склад)";
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("Склад", Склад);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Номенклатура.Наименование + ": " + Выборка.КоличествоОстаток);
КонецЦикла;
Контроль отрицательных остатков
// При расходе проверяем, хватает ли товара
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| Товары.Количество КАК Требуется,
| ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК Остаток
|ИЗ
| Документ.РасходТоваров.Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&Дата, ) КАК Остатки
| ПО Товары.Номенклатура = Остатки.Номенклатура
|ГДЕ Товары.Ссылка = &Ссылка";
// Если Требуется > Остаток — отказываем в проведении
Отчёты на СКД
- Создать объект Отчёт и открыть схему компоновки данных.
- Набор данных — запрос: указать таблицы регистров и поля.
- Настроить связи, вычисляемые поля и ресурсы (итоги по числовым полям).
- Задать параметры: период, склад, вид товара.
- В настройках задать структуру: группировки, таблицу или диаграмму.
- Настроить условное оформление — например, выделять красным отрицательные остатки.
Схема компоновки данных избавляет от программирования вывода: пользователь сам меняет группировки и отборы. В курсовой это стоит подчеркнуть как отличие от жёстко запрограммированного отчёта.
Что требуют в курсовой по 1С
- Постановка задачи и описание автоматизируемого процесса.
- Дерево объектов конфигурации со скриншотом.
- Модель данных: перечень справочников, документов, регистров и их реквизитов.
- Схема движения данных: какой документ формирует движения по каким регистрам.
- Листинги модулей проведения и текстов запросов.
- Скриншоты форм и готовых отчётов с заполненными данными.
- Права доступа по ролям, если это предусмотрено заданием.
Частые вопросы
Чем регистр накопления отличается от регистра сведений?
Регистр накопления суммирует движения и умеет считать остатки и обороты — для количественного учёта. Регистр сведений хранит значения на дату без сложения, например цену товара или курс валюты.
Зачем нужны документы, если можно писать в регистр напрямую?
Документ — первичное свидетельство операции, его можно распечатать, отменить проведение и перепровести. Прямая запись в регистр разрывает связь итогов с основанием, и восстановить историю становится невозможно.
Какую версию платформы выбрать для курсовой?
1С:Предприятие 8.3 в учебной версии: она бесплатна, ограничение по объёму данных для курсовой несущественно. Управляемые формы предпочтительнее обычных — на них строятся все современные конфигурации.