- •Постановка задачи сквозного примера.
- •Лабораторная работа №1. Создание информационной базы.
- •1.1. Режимы запуска системы «1с:Предприятие 8»
- •1.2. Создание новой информационной базы
- •Упражнение № 1.1.
- •Упражнение №1.1. (продолжение).
- •Упражнение №1.1 (продолжение).
- •1.3. Окно Конфигуратора.
- •1.4. Свойства объекта Конфигурация
- •1.4.1. Основные свойства
- •Упражнение №1.2.
- •1.4.2. Группа свойств «Представление»
- •Упражнение №1.3.
- •1.4.3. Группа свойств «Разработка»
- •Упражнение №1.4
- •1.5. Пункт меню «Конфигурация»
- •1.5.1. Сохранение Конфигурации
- •1.5.2. Обновление Конфигурации
- •1.5.3. Сохранение Конфигурации в файл
- •Упражнение №1.5.
- •1.6. Администрирование
- •Упражнение №1.6.
- •1.7. Запуск в режиме «1с:Предприятие»
- •Лабораторная работа №2. Работа с константами
- •2.1. Создание константы
- •2.2. Свойства константы
- •Упражнение №2.1.
- •Упражнение №2.2.
- •2.3. Создание основной формы констант
- •Упражнение №2.3.
- •Упражнение №2.4.
- •2.4. Обращение к значениям констант из встроенного языка
- •2.4.1. Менеджер константы
- •Упражнение №2.5.
- •Лабораторная работа №3 . Регистр сведений «Курсы»
- •3.1. Окно редактирования регистра сведений
- •3.1.1. Закладка «Основные»
- •Упражнение №3.1.
- •3.1.2. Закладка "Данные"
- •Упражнение №3.2.
- •3.1.3. Закладка «Формы»
- •Упражнение №3.4.
- •3.2. Ввод данных в регистр сведений Упражнение №3.5.
- •3.3. Работа с регистром сведений из встроенного языка системы
- •3.3.1. Получение отдельных значений
- •Упражнение №3.6.
- •3.3.2. Менеджер записи
- •3.3.3. Использование выборки
- •3.4. Самостоятельная работа
- •Упражнение №3.7.
- •Упражнение №3.8.
- •3.5. Использование набора записей
- •Упражнение №3.9.
- •3.5.1. Обработка событий
- •Упражнение №3.10.
- •Практическая работа №4. Объект "Запрос"
- •4.1. Создание запроса "вручную"
- •Упражнение № 4.1.
- •4.1.2. Выборка данных из результата запроса
- •Упражнение №4.2.
- •Практическая работа №5. Разработка интерфейса пользователя
- •5.1. Создание нового интерфейса
- •Упражнение №5.1.
- •5.2. Свойства интерфейса
- •Упражнение №5.2.
- •5.3. Редактирование интерфейса
- •5.3.1. Редактирование свойств пункта меню
- •Упражнение № 5.3.
- •5.3.2. Свойство "Действие".
- •5.3.3. Создание новых пунктов меню
- •Упражнение №5.4.
- •Упражнение №5.5.
- •Упражнение №5.6.
- •5.3.4. Добавление новой панели
- •Упражнение №5.7.
- •5.4. Самостоятельная работа
- •Упражнение №5.8.
- •5.5. Тестирование интерфейса
- •Упражнение №5.9.
- •5.6. Переключение интерфейсов
- •Упражнение №5.9.
- •5.6.1. Добавление команды переключения интерфейса
- •Упражнение №5.11.
- •5.6.2. Перенос подменю из одного интерфейса в другой
- •6.2. Объект "ТабличныйДокумент"
- •6.3. Формирование отчета с использованием макета
- •6.3.1. Создание общего макета
- •6.3.2. Конструктор макета для создания табличного документа
- •Упражнение №6.2.
- •6.3.3. Свойства ячейки табличного документа
- •Упражнение №6.3.
- •6.3.4. Именованные области
- •Упражнение №6.4.
- •Упражнение №6.5.
- •6.4. Улучшение вида результирующего табличного документа
- •6.4.1. Объединение ячеек
- •Упражнение №6.7.
- •6.4.2. Изменение ширины столбцов
- •Упражнение №6.8.
- •6.4.3. Форматирование содержимого ячейки
- •Упражнение№6.13.
- •Практическая работа №7. Справочники и Перечисления
- •7.1. Справочник "Фирмы"
- •Упражнение №7.1.
- •7.1.1. Закладка "Данные"
- •7.1.2. Закладка "Нумерация".
- •7.1.3. Закладка "Формы"
- •Упражнение №7.2.
- •7.1.4. Закладка "Макеты"
- •Упражнение №7.3.
- •7.1.5. Закладка "Интерфейсы"
- •Упражнение №7.4.
- •7.2. Справочник "Подразделения"
- •Упражнение №7.5.
- •7.2.1. Закладка "Иерархия"
- •Упражнение №7.6.
- •7.2.2. Закладка "Владельцы"
- •Упражнение №7.7.
- •7.2.3. Закладка "Нумерация"
- •Упражнение №7.8.
- •7.2.4. Закладка "Формы"
- •Упражнение №7.9.
- •Упражнение №7.10.
- •Упражнение №7.11.
- •Упражнение №7.14.
- •7.4. Справочник "ОсновныеСредства"
- •Упражнение №7.15.
- •Упражнение №7.16.
- •7.4.1. Реквизит "Фирма"
- •Упражнение №7.17.
- •Упражнение №7.18.
- •7.4.2. Перечисление "ГруппыОс" и реквизит "ГруппаОс"
- •Упражнение №7.19.
- •Упражнение №7.19 (продолжение).
- •7.4.3. Реквизит "ЕстьДетали"
- •Упражнение №7.20.
- •7.4.4. Табличная часть "СписокДеталей"
- •Упражнение №7.21.
- •Упражнение №7.22.
- •7.6. Работа со справочником из встроенного языка системы
- •7.6.1. Менеджер справочника
- •7.6.2. Организация выборки
- •Упражнение №7.27.
- •Упражнение №7.28.
- •Результат 7.28
- •7.6.3. Получение ссылки на элемент справочника
- •7.6.4. Работа с отдельными записями как с объектами
- •7.6.5. Закладка "Прочие" и Модуль объекта
- •Упражнение №7.29.
- •7.7. Предопределенные записи в справочнике
- •Упражнение №7.30.
- •7.8. Работа со справочниками в режиме "1с:Предприятие"
- •7.8.1. Ввод элементов в справочник "Фирмы"
- •Упражнение №7.31.
- •7.8.2. Ввод элементов в справочник "Подразделения"
- •Упражнение №7.32.
- •Упражнение №7.32 (продолжение.
- •7.8.3. Ввод записей в справочник "Сотрудники"
- •Упражнение №7.33.
- •Упражнение №7.35.
- •Упражнение №7.35 (продолжение).
- •Упражнение №7.36.
- •7.9.2. Конструктор выходных форм
- •Упражнение №7.37.
- •Упражнение №7.38.
Упражнение №3.8.
Переключитесь на закладку "Модуль" и напишите процедуру ПечатьКурсаУЕ(), которая распечатывала бы в окне "Служебные сообщения" курс УЕ на каждую дату, что введена в регистре сведений "Курсы", используя процедуру выборки.
Проверьте работу кнопки в режиме "1С:Предприятие".
Каким типом объекта Вы воспользуетесь для решения поставленной задачи?
3.5. Использование набора записей
Во всех предыдущих случаях мы считывали значения по одному. Что нельзя признать эффективным способом обработки при большом или очень большом количестве записей.
Использование выборки, которую Вы должны были освоить самостоятельно, позволяет несколько оптимизировать процесс чтения записей за счет того, что записи считываются отдельными порциями.
Но выборка, к сожалению, осуществляется только в прямом направлении. А в постановке задачи пример отчета содержит обратную сортировку.
Решить эту проблему можно путем использования набора записей регистра сведений.
Методика применения здесь следующая:
Метод .СоздатьНаборЗаписей() создает объект типа РегистрСведенийНаборЗаписей, который будет содержать коллекцию (массив) отдельных записей.
Объект этого типа имеет достаточное число методов:
Вставить(<Индекс>);
Добавить();
Записать(<Замещать>);
Индекс(<Запись>);
Количество();
Очистить();
Прочитать();
Сдвинуть(<Запись>, <Смещение>);
Удалить(<Запись>);
которые позволяют как работать со всем набором записей в целом, так и с каждой из них в отдельности.
В частности метод .Прочитать() позволяет считать всю таблицу из ИБ в оперативную память. Для последовательного перебора отдельных записей можно воспользоваться циклом "Для Каждого" (см. пример выше), который позволит последовательно обойти все записи из набора.
Однако это перебор записей в прямом направлении сортировки.
Для того чтобы распечатать курсы в обратном порядке нужно вспомнить, что набор записей – это коллекция. А, следовательно, для доступа к отдельным записям (в "прямую") можно воспользоваться операцией индексирования ([…]).
Индексы в коллекциях отсчитываются от нуля. Поэтому, чтобы получить самую первую и самую последнюю запись следует записать следующие выражения:
А цикл распечатывания курсов в обратном направлении будет выглядеть следующим образом:
Упражнение №3.9.
Измените текст процедуры ПечатьКурсаУЕ() в модуле формы списка регистра сведений, включив в него текст приведенный выше. Старый код закомментируйте.
Проверьте работу процедуры после внесенных изменений в режиме 1С:Предприятие.
3.5.1. Обработка событий
Объект типа РегистрСведенийНаборЗаписей предоставляет возможность обрабатывать два
события:
ПередЗаписью;
ПриЗаписи.
Оба события позволяют контролировать процесс записи в ИБ.
Для того чтобы обработать нужное событие, необходимо написать процедуру с идентификатором соответствующего события в модуле набора записей регистра сведений.
В п.1. постановки задачи сказано: "Ввод всех данных и документов должен выполняться не ранее даты регистрации объединения", для того чтобы решить поставленную задачу, выполните следующее упражнение:
Упражнение №3.10.
В окне редактирования регистра сведений "Курсы" переключитесь на закладку "Прочие" (см. рис. 3.8).
Рисунок 3.8. Закладка "Прочие" окна редактирования.
Нажмите на кнопку "Модуль набора записей" и наберите следующий текст:
Проверьте работу процедуры путем ввода новой или редактирования существующей записи в регистре сведений "Курсы".
Пояснения к нашим действиям:
Причина, по которой мы использовали именно такую процедуру - обработчик событий состоит в том, что запись новых данных и исправление существующих может выполняться как вследствие интерактивных действий пользователя, так и программным путем.
Если бы проверка значения периода выполнялась бы только в модуле формы, то тогда мы смогли бы контролировать только интерактивные действия пользователя связанные с непосредственным редактированием. При этом сохранялась бы возможность записи в регистр программным путем значений, которые не удовлетворяли бы условиям поставленной задачи.
Можно сказать, что модуль набора записей – это "последняя линия обороны" и его задача контролировать те данные, которые помещаются в регистр.
Формальный параметр Отказ анализируется системой после обработки события, поэтому:
Отказ = Истина; - приведет к отмене транзакции.
При этом нужно помнить, что если Вы отменяете транзакцию записи в процедуре ПередЗаписью(…) в или ПриЗаписи(…), то метод .Записать() следует вызвать внутри конструкции:
Попытка
…
Исключение
…
КонецПопытки;
В противном случае система будет генерировать ошибку времени выполнения.
