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