- •Постановка задачи сквозного примера
- •1.1. Создание новой информационной базы
- •1.3. Окно "Конфигурация"
- •1.4. Свойства объекта Конфигурации
- •1.4.1. Основные свойства
- •1.4.2. Группа свойств "Представление"
- •1.4.3. Группа свойств "Разработка"
- •1.5. Пункт меню "Конфигурация"
- •1.5.1. Сохранение Конфигурации
- •1.5.2. Обновление Конфигурации
- •1.5.3. Сохранение Конфигурации в файл
- •1.6. Администрирование
- •1.7. Запуск в режиме "1с: Предприятие"
- •1.8. Что мы узнали
- •Глава 2. Работа с константами
- •2.1. Создание константы
- •2.2. Свойства константы
- •2.3. Создание основной формы констант
- •2.4. Обращение к значениям констант из встроенного языка
- •2.4.1. Менеджер константы
- •2.4.2. Набор констант
- •2.5. Самостоятельная работа
- •2.6. Что мы узнали
- •Глава 3. Регистр сведений "Курсы"
- •3.1. Окно редактирования регистра сведений
- •3.1.1. Закладка "Основные"
- •3.1.2. Закладка "Данные"
- •3.1.3. Закладка "Формы"
- •3.2. Ввод данных в регистр сведений
- •3.3. Работа с регистром сведений из встроенного языка системы
- •3.3.1. Получение отдельных значений
- •3.3.2. Менеджер записи
- •3.3.3. Использование выборки
- •3.4. Самостоятельная работа
- •3.5. Использование набора записей
- •3.5.1. Обработка событий
- •3.6. Что мы узнали
- •Глава 4. Объект "Запрос"
- •4.1. Создание запроса "вручную"
- •Написание текста запроса и его выполнение
- •4.1.2. Выборка данных из результата запроса
- •4.2. Что мы узнали
- •Глава 5. Разработка интерфейса пользователя
- •5.1. Создание нового интерфейса
- •5.2. Свойства интерфейса
- •5.3. Редактирование интерфейса
- •5.3.1. Редактирование свойств пункта меню
- •5.3.2. Свойство "Действие"
- •5.3.3. Создание новых пунктов меню
- •5.3.4. Добавление новой панели
- •5.4. Самостоятельная работа
- •Сохраните и обновите конфигурацию.
- •5.5. Тестирование интерфейса
- •5.6. Переключение интерфейсов
- •5.6.1. Добавление команды переключения интерфейса
- •5.6.2. Перенос подменю из одного интерфейса в другой
- •5.6.3. Переключение интерфейсов в режиме "1с: Предприятие"
- •5.7. Что мы узнали
- •Глава 6. Табличный документ
- •6.1. Команда "Вывести список" режима "1с: Предприятие"
- •6.2. Объект "ТабличныйДокумент"
- •6.3. Формирование отчета с использованием макета
- •6.3.1. Создание общего макета
- •6.3.2. Конструктор макета для создания табличного документа
- •6.3.3. Свойства ячейки табличного документа
- •6.3.4. Именованные области
- •6.4. Улучшение вида результирующего табличного документа
- •6.4.1. Объединение ячеек
- •6.4.2. Изменение ширины столбцов
- •6.4.3. Форматирование содержимого ячейки
- •6.4.4. Установка свойств табличного документа
- •6.5. Самостоятельная работа
- •6.6. Формирование отчета без использования макета
- •6.7. Что мы узнали
3.3.2. Менеджер записи
Для того чтобы поместить в регистр сведений новую запись или заместить существующую, необходимо сначала создать объект типа "РегистрСведенийМенеджерЗаписи".
Делается это путем вызова соответствующего метода СоздатьМенеджерЗаписи(): для объекта типа РегистрСведенийМенеджер:
Объект=РегистрыСведений.ИмяРегистра.СоздатьМенеджерЗаписи();
После того как объект такого типа создан, Вы сможете применять его методы:
-
Прочитать();
-
Записать();
-
Удалить();
которые выполняют одноименные действия.
Перед вызовом этих методов необходимо предварительно заполнить свойства этого объекта, которыми будут измерения, ресурсы и реквизиты конкретного регистра сведений, менеджер записи которого Вы создали. Для периодических реквизитов у этого менеджера есть свойство "Период", которое позволяет определить конкретную запись, содержащую это значение.
Предположим, что мы хотим записать в регистр сведений "Курсы" значение 23.7244 на 9 января 2009 г., причем, если запись на такое число уже есть, то мы должны оставить ее без изменений.
С точки зрения здравой логики алгоритм решения этой задачи прост:
-
Попытаться прочитать запись из регистра на 09.01.2009 г.
-
Убедиться, что такой записи нет.
-
Записать новую запись на указанную дату.
В решении второго пункта нам поможет метод .Выбран(), который поможет определить считана ли запись:
// Сначала создадим менеджер записи: РегСведКурсы=РегистрыСведений.Курсы.СоздатьМенеджерЗаписи(); // Затем определим период в который будем писать данные: РегСведКурсы.Период='20090109'; //9 января 2009 г. // 1. Пытаемся прочитать запись РегСведКурсы.Прочитать(); // 2. Если записи нет Если Не РегСведКурсы.Выбран() Тогда // 3. Запишем новую РегСведКурсы.Период='20090109'; //9 января 2009 г. РегСведКурсы.Курс=23.7244; РегСведКурсы.Записать(); КонецЕсли;
3.3.3. Использование выборки
В предыдущих разделах мы обращались к конкретным записям (по одной), а что делать, если нужно обработать все или какую-то часть записей, удовлетворяющих каким-либо условиям?
Данная постановка реализуется с помощью открытия так называемой “выборки”.
Для регистра сведений это делаемся следующим образом:
ВыборкаСведений=РегистрыСведений.<ИмяРегистраСведений>.Выбрать(…); Пока ВыборкаСведений.Следующий() Цикл КонецЦикла;
По методу .Выбрать() мы получаем объект типа РегистрСведенийВыборка, для которого в цикле применяем его метод .Следующий(), чтобы извлечь из выборки очередную запись.
Внутри цикла Вы можете обращаться к значениям измерений и ресурсов просто как к свойству этого объекта.
Например: ВыборкаСведений.Период.
3.4. Самостоятельная работа
Для закрепления только что рассмотренного материала выполните следующие упражнения самостоятельно.
Упражнение №3.7. |
||||||||||||||||
|
||||||||||||||||
Добавьте в процедуру Модуля Приложения ПримерыОбращенияКРегиструСведений() фрагмент, позволяющий записать в регистр сведений "Курсы" значение 23.7244 на 9 января 2009г.. Причем, если запись на такое число уже есть, ее необходимо оставить без изменений. Используя дерево окна "Конфигурация", откройте форму "ОсновнаяФормаСписка" в редакторе форм. Выделите мышью кнопку на нижней панели инструментов (см. рис. 3.7) и заполните ее свойства следующими значениями:
|
Для надежности приводим текст данного фрагмента программы (Сравните со своим вариантом):
// записать в регистр сведений "Курсы" значение 23.7244 на 9 января 2009г..
// Сначала создадим менеджер записи:
РегСведКурсы=РегистрыСведений.Курсы.СоздатьМенеджерЗаписи();
// Затем определим период в который будем писать данные:
РегСведКурсы.Период='20090109'; // 9 января 2009 г.
// 1. Пытаемся прочитать запись
РегСведКурсы.Прочитать();
// 2. Если записи нет
Если Не РегСведКурсы.Выбран() Тогда
// 3. Запишем новую
РегСведКурсы.Период='20090109'; // 9 января 2009 г.
РегСведКурсы.Курс=23.7244;
РегСведКурсы.Записать();
КонецЕсли;
Рис. 3.7. Форма списка регистра сведений перед началом редактирования.
Совет: для выбора картинки необходимо в диалоге "Выбор картинки" сначала выбрать закладку "Из библиотеки", а затем на закладке "Стандартные" картинку "Печать" .
Упражнение №3.8. |
|
Переключитесь на закладку "Модуль" и напишите процедуру ПечатьКурсаУЕ(), которая распечатывала бы в окне "Служебные сообщения" курс УЕ на каждую дату, что введена в регистре сведений "Курсы". Проверьте работу кнопки в режиме "1С:Предприятие". По окончании отладки замените номер версии в свойствах конфигурации на значение "2008.3". Каким типом объекта Вы воспользуетесь для решения поставленной задачи? |
Для надежности приводим текст данной процедуры (Сравните со своим вариантом):
Процедура ПечатьКурсаУЕ(Кнопка)
ВыборкаСведений=РегистрыСведений.Курсы.Выбрать();
Пока ВыборкаСведений.Следующий() Цикл
Сообщить(""+ВыборкаСведений.Период+Символы.Таб+ВыборкаСведений.Курс);
КонецЦикла;
КонецПроцедуры