Лекція 3. Типи даних. Оголошення змінних.
Вбудована мова системи 1С: Підприємство не є жорстко типізована. Тип змінної визначається її значенням. У мові підтримуються наступні базові (стандартні) типи даних:
• Число;
• Рядок;
• Дата.
Значення типу Дата представляється у форматі "дд.мм.рр".
Особливе місце у мові займають агрегатні типи даних. Змінні цих типів даних - це об'єкти, що мають свої властивості й методи. Типова послідовність роботи з об'єктом агрегатного типу даних виглядає наступним чином:
• за допомогою функції СоздатьОб'ект () створюється об'єкт агрегатного типу даних, і якою-небудь змінною присвоюється посилання на нього;
• об'єкт позиціонується на потрібному елементі даних;
• виконуються різні маніпуляції з об'єктом агрегатного типу даних;
Розберемо цю послідовність на конкретному прикладі. Припустимо, що нам потрібно знайти інформацію про конкретного співробітника нашого підприємства. Для вирішення завдання створимо об'єкт типу Справочник.Сотрудники за допомогою функції СоздатьОбъект().
НашСотрудник = СоздатьОбъект("Справочник.Сотрудники");
Далі потрібно позиціонувати створений об'єкт на конкретному елементі даних.
НашСотрудник.НайтиПоНаименованию("Иванов");
Після цього можна виконувати будь-які дії із створеним об'єктом, який містить вже інформацію про співробітника на прізвище Іванов. Після виконання необхідної обробки потрібно від'єднати об'єкт. Для цього досить присвоїти об'єкту значення 0.
НашСотрудник=0;
Видалення створених об'єктів проводиться системою в момент, коли не залишається жодної змінної, яка містить посилання на цей об'єкт.
Перерахуємо агрегатні типи даних, що існують у вбудованій мові 1C: Підприємство.
• Константа - засіб роботи з постійними значеннями (назва організації, поштова адреса).
• Справочник - засіб для ведення списків однорідних елементів даних, що містять найменування елементів і різну додаткову інформацію, яка називається реквізитами (або атрибутами) довідника.
• Перечисление - засіб роботи з елементами даних, список можливих значень яких жорстко заданий (наприклад, для перерахування ФормаОплаты можна задати можливі значення: Нал, Безнал). На відміну від довідників, списки значень в перерахуванні задаються в процесі їх створення і далі не можуть бути змінені.
• Документ - засіб для введення первинної інформації по здійснюваних господарських операціях. Усі реквізити документів поділяються на реквізити шапки (загальні для всього документа реквізити - дата документа, номер документа) та реквізити табличної частини (повторювані реквізити, наприклад, найменування товару, що купується і його вартість - документ про купівлю може включати список товарів).
• Регистр - засіб обробки та накопичення зведеної інформації оперативного обліку.
• ПланСчетов - це службовий тип даних, що зберігає список об'єктів типу Счет.
• Счет - це агрегатний тип даних, призначений для відокремлення інформації про бухгалтерські рахунки в розрізі синтетичного обліку наявності і руху коштів.
• ВидСубконто - службовий тип даних, призначений для визначення видів об'єктів аналітичного обліку.
• Операция - засіб для маніпулювання даними бухгалтерських операцій і проводок, що формуються документами. Усі проводки в системі 1С: Підприємство належать операціями, тому управління проводками також проводиться об'єктом Операция.
• БухгалтерскиеИтоги - засіб, що дозволяє організувати зберігання, динамічний перерахунок бухгалтерських підсумків, їх вилучення за різні періоди, з різним ступенем деталізації, в розрізі синтетичного і аналітичного обліку. Можна задавати властивості зберігання підсумків: кількісний і валютний облік, види субконто в аналітичному обліку. Збереження бухгалтерських підсумків автоматично підтримується на основі існуючих у системі планів рахунків.
• Календарь - засіб обліку часу за календарними днями.
• Запрос - засіб для звернення до документів, регістрів, довідників для отримання деякої зведеної інформації.
• Текст - засіб роботи з текстовими файлами.
• Таблица - засіб для роботи з друкарськими формами документів, звітів.
• СписокЗначений - засіб для створення списку значень яких-небудь даних і можливості вибирати потрібні значення зі списку. Об'єкти цього типу зазвичай створюються при додаванні в діалогах комбінованих або звичайних списків вибору, а також для організації в програмному модулі аналогів динамічних масивів.
• ТаблицаЗначений - тип даних, аналогічний типу даних СписокЗначений, але містить кілька стовпців.
• Картинка- засіб для роботи з графічними файлами.
• Периодический - засіб для роботи з періодичними реквізитами довідників і періодичними константами.
• ФС - засіб для роботи з дисковими файлами. У глобальному контексті існує об'єкт цього типу з ім'ям ФС.
Агрегатні типи даних - це об'єкти, що мають свої властивості (атрибути) і методи. Деякі властивості об'єктів доступні тільки для читання.
Звернення до властивостей і методів відбувається згідно з правилами:
ИмяОбъекта.Свойство ИмяОбъекта.Метод()
Можливо також звернення до властивостей і методів без вказівки імені об'єкта втому випадку, якщо об'єкт агрегатного типу входить в набір безпосередньо доступних програмного модулю.
У мові змінні не обов'язково оголошувати в явному вигляді. Не явним визначенням змінної є перша її поява в лівій частині оператора присвоювання. Явне оголошення змінної проводиться за допомогою оператора Перем. Тип змінної визначається типом присвоєного їй значення. Змінні можуть об'єднуватися вмасиви. У даній реалізації програми (версія 7.7) передбачені тільки одномірнімасиви. Для явного оголошення змінних використовується наступний оператор:
Перем ИмяПерем РазмерМассива [Экспорт];
Ключове слово Экспорт використовується тільки в глобальному модулі для вказівки, що оголошується змінна, яка повинна бути доступна для інших модулів. У разі оголошення масиву потрібно у квадратних дужках вказати розмір масиву, який повинен бути цілим позитивним числом. Не допускається використання змінної як розмір масиву. Наприклад:
Перем МояПеременная; Перем МойМассив[10];
Область видимості змінних, як і в інших мовах, визначається місцем оголошення змінної. Можливі три випадки:
• У розділі визначення змінних глобального програмного модуля. Якщо змінна визначена з ключовим словом Експорт, вона є глобальною змінною і видно в будь-якій процедурі чи функції будь-якого програмного модуля конфігурації.
• У розділі визначення змінних програмного модуля. Такі змінні доступні тільки в межах того програмного модуля, в якому оголошені.
• У розділі визначення змінних процедури або функції. Це локальні змінні.