Загрузка данных
К сожалению, как текстовая языковая модель, я не могу напрямую сгенерировать, скомпилировать и отправить вам готовый файл формата .dt (выгрузку базы данных 1С).
Однако я могу предоставить вам полную архитектуру и пошаговую инструкцию с примерами кода, по которой вы сможете собрать эту конфигурацию в Конфигураторе 1С:Предприятие буквально за 30-40 минут. Это типичное задание для демонстрационного экзамена (WorldSkills/Профессионалы).
Ниже представлена структура решения.
1. Создание объектов метаданных (Структура БД)
Вам потребуется создать базовые объекты в дереве конфигурации.
Справочники
Товары
Реквизиты: Артикул (Строка), Цена (Число), Описание (Строка).
Пользователи (для кастомной авторизации)
Реквизиты: Логин (Строка), Пароль (Строка), Роль (ПеречислениеСсылка.РолиПользователей).
Клиенты (опционально, если нужно хранить данные клиентов).
Перечисления
РолиПользователей
Значения: Клиент, Менеджер, Администратор. (Гость — это состояние без авторизации, его можно не добавлять в перечисление).
Документы
Заказ
Реквизиты: Клиент (СправочникСсылка.Пользователи), СуммаДокумента (Число), Статус (Строка).
Табличные части: СписокТоваров (Реквизиты: Товар, Количество, Цена, Сумма).
2. Настройка ролей (Подсистема "Права")
В ветке Общие -> Роли создайте 4 стандартные роли платформы:
ПолныеПрава (Администратор) — галочки стоят везде (чтение, изменение, удаление всех объектов).
Менеджер — чтение справочника Товары, чтение и добавление документов Заказ.
Клиент — только чтение справочника Товары.
Гость — только чтение справочника Товары.
3. Разработка окна авторизации
Поскольку по заданию требуется окно, где есть вход по логину/паролю ИЛИ вход гостем, стандартное окно 1С не подойдет. Нужно сделать стартовую форму.
Создайте Общую форму с названием ФормаАвторизации.
На форму добавьте реквизиты: Логин (Строка) и Пароль (Строка, в свойствах поля на форме укажите "Режим пароля" = Истина).
Добавьте две кнопки: «Войти» и «Войти как Гость».
В свойствах конфигурации (правый клик по корню -> Свойства) в самом низу найдите "Рабочая область начальной страницы" и установите туда вашу ФормаАвторизации.
Логика работы формы авторизации (Модуль формы)
Фрагмент кода
&НаСервере
Функция ПроверитьПользователя(Логин, Пароль)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Пользователи.Ссылка,
| Пользователи.Роль
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.Логин = &Логин
| И Пользователи.Пароль = &Пароль";
Запрос.УстановитьПараметр("Логин", Логин);
Запрос.УстановитьПараметр("Пароль", Пароль);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
// Сохраняем роль в параметры сеанса или глобальную переменную для проверок
ПараметрыСеанса.ТекущаяРоль = Выборка.Роль;
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура Войти(Команда)
Если ПроверитьПользователя(Логин, Пароль) Тогда
// Открываем основную панель или список товаров
ОткрытьФорму("Справочник.Товары.ФормаСписка");
Закрыть(); // Закрываем форму входа
Иначе
Сообщить("Неверный логин или пароль!");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВойтиКакГость(Команда)
// Гостю не нужна проверка
ОткрытьФорму("Справочник.Товары.ФормаСписка", Новый Структура("ЭтоГость", Истина));
Закрыть();
КонецПроцедуры
(Примечание: для хранения роли лучше использовать Объект «Параметры сеанса» с типом ПеречислениеСсылка.РолиПользователей).
4. Ограничение интерфейса (Сортировка, поиск, фильтрация)
По заданию: Гость и Клиент не могут искать, фильтровать и сортировать. Менеджер и Админ — могут.
Откройте форму списка справочника Товары (Справочник.Товары.Форма.ФормаСписка). В модуле формы пропишите логику скрытия элементов управления при создании на сервере:
Фрагмент кода
&&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РольПользователя = ПараметрыСеанса.ТекущаяРоль;
ЭтоГость = Параметры.Свойство("ЭтоГость") И Параметры.ЭтоГость;
// Если это Гость или Клиент, отключаем элементы поиска и командную панель
Если ЭтоГость ИЛИ РольПользователя = Перечисления.РолиПользователей.Клиент Тогда
// Отключаем строку поиска
Элементы.СписокСтрокаПоиска.Видимость = Ложь;
// Отключаем возможность настройки списка (сортировки, фильтры)
Элементы.Список.ПоддержкаМасштаба = Ложь; // пример скрытия
Элементы.Список.ОтображениеУправленияПоиском = ОтображениеУправленияПоиском.НеИспользовать;
Элементы.Список.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
КонецЕсли;
КонецПроцедурыПлан действий для сдачи экзамена:
Создайте пустую информационную базу.
Создайте справочники и документы, как описано в шаге 1.
Создайте Параметр сеанса ТекущаяРоль.
Сделайте общую форму для авторизации и установите ее стартовой.
Настройте динамические списки в справочниках и документах для ограничения интерфейса.
Выгрузите полученную конфигурацию через Администрирование -> Выгрузить информационную базу... (сохранится тот самый файл .dt).