Загрузка данных


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

&НаКлиенте
Процедура Войти(Команда)
    Если ПроверитьПользователя(Логин, Пароль) Тогда
        // Открываем основную панель или список товаров
        ОткрытьФорму("Справочник.Товары.ФормаСписка");
        Закрыть(); // Закрываем форму входа
    Иначе
        Сообщить("Неверный логин или пароль!");
    КонецЕсли;
КонецПроцедуры

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