Глава 2
Открываем в конфигурации созданный нами ранее справочник Сотрудники.
Открываем форму списка.
Сделаем так: на форму списка положим новый элемент - кнопка.
В ее свойствах объявим процедуру реагирования на нажатие - ЗаписатьД().
Попробуем в функции модуля написать ссылку на справочник и работать с ним.
Процедура ЗаписатьД()
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.Новый();
СпрСотр.Наименование = "Иванов";
СпрСотр.Записать();
КонецПроцедуры
Ура! Указанный код сработал!
Этот код создал в справочнике новый элемент и записал
в графу Наименование фамилию Иванов.
Отлично!
Теперь при каждом нажатии на кнопку появляется новая запись со своим новым
номером и записью "Иванов" в поле Наименование.
Попробуем внести изменения в поля АдресПрописка и Должность. Это все текстовые поля.
Процедура ЗаписатьД()
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.Новый();
СпрСотр.Наименование = "Иванов";
СпрСотр.АдресПрописка = "Саратов 5";
СпрСотр.Должность = "Бухгалтер";
СпрСотр.Записать();
КонецПроцедуры
Еще добавим несколько строк кода:
Процедура ЗаписатьД()
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.Новый();
СпрСотр.Наименование = "Иванов";
СпрСотр.АдресПрописка = "Саратов 5";
СпрСотр.Документ = "Паспорт ";
СпрСотр.Должность = "Бухгалтер";
СпрСотр.Оклад = "20 000";
//СпрСотр.Пол = "";
СпрСотр.Записать();
КонецПроцедуры
Этот код работает. При каждом нажатии кнопки создается новый
элемент со своим идентиф номером и во все поля этого элемента
записывается указанная информация.
Но что-то уж очень много записалось.Пора бы и убрать
некоторые записи.
Теперь удалим с формы колонку ФИО. Она не нужна.
Затем изменим вместо Наименование напишем ФИО.
Для удаления реквизита в Окне задания свойств справочника отметил
этот реквизит и нажал Удалить. ФИО удалилось и с формы и из списка.
Теперь как изменить наименование графы Наименование в форме списка?
Выделил колонку и правой кнопкой в выпадающем меню - Изменить заголовок.
Теперь графа, которая раньше называлась Наименование называтся ФИО.
Все же еще есть вопрос. Как реально удалить элемент из справочника.
При нажатии Делете он только помечает элемент на удаление, но не удаляет его.
Теперь положим на форму еще одну кнопку и впишем в ее процедуру код:
Процедура УдалитьД()
СпрСотр.НайтиПоКоду(5);
СпрСотр.Удалить(0); //пометка на удаление
СпрСотр.Удалить(1); //непосредственное удаление
Этот код сработал правильно!
Он удалил элемент номер 5 из справочника
Есть три функции для поиска элемента в справочнике:
СпрСотр.НайтиПоКоду(123);
СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович");
СпрСотр.НайтиПоРеквизиту("Оклад", 5000);
Попробуем найти элемент по наименованию и удалить его.
Процедура УдалитьД()
СпрСотр.НайтиПоНаименованию("Иванов");
СпрСотр.Удалить(0); //пометка на удаление
СпрСотр.Удалить(1); //непосредственное удаление
Код работает правильно!
Вот теперь интересно работает программа:
Процедура ЗаписатьД()
Процедура УдалитьД()
СпрСотр.Новый();
СпрСотр.Наименование = "Иванов";
СпрСотр.АдресПрописка = "Саратов 5";
СпрСотр.Документ = "Паспорт ";
СпрСотр.Должность = "Бухгалтер";
СпрСотр.Оклад = "20 000";
СпрСотр.Записать();
СпрСотр.НайтиПоНаименованию("Иванов");
СпрСотр.Удалить(0); //пометка на удаление
СпрСотр.Удалить(1); //непосредственное удаление
При каждом нажатии кнопки Записать в справочние создается новый элемент со своим
прядковым номером и все поля этого элемента автоматич заполняются. Так можно создать
любое количество элементов. Создадим например 10 элементов.
Если теперь нажимать кнопку Удалить, то элементы, у которых в графе Нименование
(напомню ее заголовок ФИО) написана строка Иванов будут удаляться.
Они будут удаляться последовательно. С каждым нажатием кнопки удаляется
следующий элемент с указанными данными начиная с первого встреченного по порядку.
Интересная программа!
Далее. Следующая программа.
Функция НайтиПоРеквизиту() работать не хочет!
СпрСотр.НайтиПоРеквизиту("Оклад", 5000);
Сообщает, что неверное имя реквизита.
//////////////////
Далее. Следующая программа.
Задача: удалить 7 элементов подряд начиная с первого.
Процедура ЗаписатьД()
Процедура УдалитьД()
СпрСотр.Новый();
СпрСотр.Наименование = "Иванов";
СпрСотр.АдресПрописка = "Саратов 5";
СпрСотр.Должность = "Бухгалтер";
СпрСотр.Записать();
n=1;
Пока(n<6) Цикл
СпрСотр.Удалить(0); //пометка на удаление
СпрСотр.Удалить(1); //непосредственное удаление
n=n+1;
Эту программу можно многократно выполнить так:
Нажимаем пять раз подряд кнопку Записать. У нас в программе в справочник
записывается пять новых элементов. Все поля этих элементов заполнены.
Затем один раз нажимаем кнопку Удалить и все элементы под номерами от 1 до 5
удаляются из справочника. Затем снова нажимаем пять раз кнопку Записать,
записываются пять новых элементов. И снова один раз нажимаем кнопку Удалить
и тд.
Назад |
Начало урока |
Вверх |
Вперед
Содержание