Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 Выпуск 6


Информационный Канал Subscribe.Ru Новый модный поиск - www.lycos.ru

Волшебство программирования на 1С:Предприятие 7.7

Вступительное слово Волшебника

Поступило много писем от подписчиков. Начинающие программисты и те, кто таковым себя считают, жалуются, что им кое-что непонятно. Многие ждут чистого программирования. Попробуем угодить всем и чередовать выпуски рассылки. В начале недели - комплексные примеры, в конце недели - основы программирования. Сегодня мы рассмотрим основы программирования справочников.

Внимание, начинающие программисты! На сайте www.mista.ru есть Учебник по 1С, который в доступной форме объясняет базовые приемы программирования со справочниками, документами, отчетами и другими объектами 1С:Предприятие. Все главы проиллюстрированы простыми и наглядными примерами, что позволит вам быстро и хорошо освоить среду 1С. Прочитайте этот учебник как можно скорее!


СПРАВОЧНИКИ

Психушка. Один придурок другому:
-Тебе понравился мой рассказ, который я тебе вчера дал почитать?
-Да, но как-то всё размыто и много действующих лиц.
Входит врач:
-Так, придурки, кто спёр мою телефонную книгу?...

ЗАЧЕМ НУЖНЫ СПРАВОЧНИКИ?

Справочник -- это просто таблица. В таблицах хранится какая-то списковая информация. Например, вы можете создать справочник Сотрудники, в котором будете хранить список всех сотрудников предприятия, или справочник Должности, где будет храниться список должностей.

АТРИБУТЫ СПРАВОЧНИКОВ

Для каждого справочника требуется определить, какие он будет иметь атрибуты (столбцы). Например, справочник Сотрудники почти наверняка будет иметь атрибуты Должность, Оклад и другие. Фирма 1С предвосхитила программистов и ввела во все справочники два уже заданных атрибута: Код и Наименование. Действительно, практически любой объект из реальной жизни содержит эти атрибуты. Например, для сотрудников кодом выступает табельный номер, а наименованием -- фамилия, имя, отчество (ФИО).

ТИПЫ ДАННЫХ

Для каждого атрибута справочника нужно указать его тип данных, например, "число", "строка", "дата". Это базовые типы, но можно указать и сложные типы данных. Например атрибут Должность имеет тип данных Должности. В этом случае, значения этого атрибута будут выбираться из справочника Должности. Так реализуется простейшая связь между справочниками, когда значения атрибутов одного справочника выбираются из другого справочника.

Справочник Сотрудники
Справочник Должности
Код
Наименование
Должность
Оклад
1
Иванов Иван Иванович Бухгалтер
7000
2
Петров Петр Петрович Кадровик
5000
Код
Наименование
1
Бухгалтер
2
Кадровик

ИЕРАРХИЧЕСКИЕ СПРАВОЧНИКИ

Фирма 1С пошла еще дальше. Справочники могут быть многоуровневыми, построенными по принципу иерархического дерева. Например, вы можете поделить справочник Сотрудники на две группы: "Работающие" и "Уволенные". Работать с таким справочником будет значительно удобнее. Можно создать справочник Фирмы и поделить его на нужные пользователю группы, например, "Партнеры", "Поставщики"...

Справочник Сотрудники

Справочник Фирмы

  • Работающие
    • Иванов Иванов Иванов
    • Петров Петр Петрович
  • Уволенные
    • Светлов Михаил Петрович
    • Цветков Антон Васильевич
  • Партнеры
    • Партнер 1
    • Партнер 2
  • Поставщики
    • Поставщик 1
    • Поставщик 2

ПОДЧИНЕННЫЕ СПРАВОЧНИКИ

Между справочниками может быть еще одна связь. Элементы одного справочника могут принадлежать элементам другого. Например, в системе может быть справочник НалоговыеЛьготы. Тогда его можно сделать подчиненным справочнику Сотрудники. Это означает, что Сотрудник владеет Налоговыми льготами. В терминах реляционных баз данных, между таблицами устанавливается связь "один-ко-многим".

Справочник Сотрудники

Справочник НалоговыеЛьготы

  • Иванов Иванов Иванов
  • Петров Петр Петрович
  • Светлов Михаил Петрович
  • Цветков Антон Васильевич
(владелец Петров Петр Петрович)
  • Льгота ветеранам
  • Льгота на детей
  • Иванов Иванов Иванов
  • Петров Петр Петрович
  • Светлов Михаил Петрович
  • Цветков Антон Васильевич
(владелец Светлов Михаил Петрович)
  • Льгота афганцам

Основы программирования

Ссылка на справочник
Для работы со справочником из какого-нибудь модуля требуется сначала создать ссылку на этот справочник.

СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрДолж = СоздатьОбъект("Справочник.Должности");


Создание и запись нового элемента
Добавление в справочник новых элементов (записей).

СпрСотр.Новый();
СпрСотр.Наименование = "Иванов Иван Иванович";
СпрСотр.Оклад = 5000;
СпрСотр.Записать();


Поиск элемента справочника
Поиск элемента, поиск по коду, по наименованию, по реквизиту.

//например, в приказе об увольнении
СпрСотр.НайтиЭлемент(Сотрудник);

СпрСотр.НайтиПоКоду(123);
СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович");
СпрСотр.НайтиПоРеквизиту("Оклад", 5000);


Удаление элемента справочника
Удаление и пометка на удаление элемента справочника.

СпрСотр.Удалить(0); //пометка на удаление
СпрСотр.Удалить(1); //непосредственное удаление

//можно проверить, помечен ли элемент на удаление
//функция возвращает 1 - если помечен, 0 - если нет

Пометка = СпрСотр.ПометкаУдаления();


Перебор элементов справочника
Перебор элементов справочника в цикле.

СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл
... //действия с очередным элементом
Сообщить("Сотрудник " + СпрСотр.Наименование); ...
КонецЦикла;


Родитель
Перебор элементов внутри группы. Группа в терминах 1С -- это "родитель".

СпрСотр.НайтиПоНаименованию("Работающие"); Работающие = СпрСотр.ТекущийЭлемент();
СпрСотр.ИспользоватьРодителя(Работающие);
//дальше, например, цикл по сотрудникам (см. выше)
...


Владелец
Перебор элементов справочника принадлежащих элементу другого справочника.
Один справочник подчинен другому справочнику.

СпрНЛ = СоздатьОбъект("Справочник.НалоговыеЛьготы");
СпрНЛ.ИспользоватьВладельца(Сотрудник);

//дальше, например, цикл по льготам этого сотрудника
(см. выше)
...


Периодические реквизиты
Чтение и запись периодических реквизитов.
Установка даты выборки периодических реквизитов для всего справочника.

//так мы узнаем, какая была у сотрудника
//категория на определенную дату

Катег = СпрСотр.Категория.Получить(НекаяДата);

//так мы установим сотруднику категорию
//на определенную дату

СпрСотр.Категория.Установить(НекаяДата, НоваяКатегория);

//можно установить дату выборки периодических
//реквизитов для всего справочника

СпрСотр.ИспользоватьДату(НекаяДата);

//тогда ниже уже нельзя использовать Установить и Получить
//доступ к периодическим реквизитам становится
//такой же, как к обычным реквизитам

Катег = СпрСотр.Категория;
СпрСотр.Оклад = 6000;


Заключительное слово Волшебника

Официальный сайт рассылки: Информационные системы www.mista.ru
Архив рассылки находится по адресу: http://subscribe.ru/archive/comp.soft.prog.magic1c

В прошлых выпусках мы рассмотрели:

  1. Конфигурация "Мини-склад" (простейший складской учет)
  2. Конфигурация "Денежки" (учет семейных доходов и расходов)
  3. Конфигурация "Работенка" (поиск вакансий работодателей и резюме соискателей)
  4. Игра "Реверси" (классическая игра с элементами искусственного интеллекта)
  5. Конфигурация "Мини-библиотека" (учет книг и читателей)

С уважением,
Волшебник Станислав

stasmit@mail.ru



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное