Модуль 1С

Будь-яка програма складається з програмного коду, тобто власне з написаних якоюсь мовою послідовності дій, які мають бути виконані.

Однак ця програма має бути десь написана, тобто десь перебувати. У більшості випадків код програми пишеться у звичайних текстових файлах. Різниця лише в тому, що розширення в них не .txt, а .cpp чи .php.

Де пишеться програма 1С?

Що таке модуль 1С?

Звичайно код 1С можна було б також написати в якомусь текстовому файлі. Однак є поняття Конфігурація 1С - яке включає не тільки список налаштувань, шаблонів форм та іншого, але і програмний код 1С. Тому код 1С зберігається у конфігурації.

Конфігурація складається з об'єктів 1С, як ми вже розглядали на попередніх уроках. Кожен об'єкт 1С містить у собі вкладені об'єкти, наприклад довідник має кілька форм.

Кожен об'єкт 1С, включаючи деякі вкладені, має свій Модуль - текстовий файл, який містить програмний код.

Також є незалежні від об'єктів модулі, де може бути написаний програмний код, незалежний від конкретного об'єкта.

Таким чином, у 1С немає «єдиної» програми. Є набір модулів для написання програмного коду кожного об'єкта конфігурації 1С.

Як використовуються Модулі 1С?

Всю програму можна грубо поділити на два види:

  • Метод об'єкту
  • Реакція на події

Методи. Як ми вже говорили раніше – об'єкт 1С є цільною структурою, яка включає як дані, так і способи їх обробки. Ці методи – це набір процесів (методів), які можна викликати обробки даних. Приклад такої дії Довідник Об'єкт. Записати () – записує елемент довідника до базиданих.

Методи багатьох об'єктів 1С можуть бути стандартними (тобто запрограмованими у платформі 1С) та написаними програмістом мовою 1С. За допомогою других можна розширювати функціонал об'єктів 1С за своїм бажанням.

Події. Події є у ​​багатьох інших засобів розробки. Мета програми не тільки щось обчислити під час запуску, а й підтримувати роботу користувача.

Події користувача – користувач натиснув кнопку. У відповідь, якась частина коду виконається, здійснивши реакцію на дії користувача.

Системні події – ми записали об'єкт 1С до бази даних. Виникла системна подія «Запис об'єкта». Можливо, налаштувати реакцію, яка виникне на події, викликані не користувачем (які натиснув на кнопку або щось ще зробив), а самою системою. Яскравий приклад такої події – під час запуску програми.

Порядок виконання модулів 1С

Багато мовами є таке поняття як «точка входу». Це той самий перший рядок або функція, яка буде виконана при запуску програми.

У 1С таких точок входу кілька - на кожен вид клієнта. Тобто під час запуску товстого клієнта точка входу одна, при запуску тонкого клієнта – інша. Це дозволяє запрограмувати особливості, різні у різних видах клієнтів.

можна

Точкою входу у відповідному модулі є обробники системної події ПередПочаткомРоботиСистеми() та ПриПочаткуРоботиСистеми() відповідно (тобто по порядку). Ці функції виконуються першими, вони можуть запустити щось автоматично.

модуль

Якщо нічого запущено автоматично не було, перед користувачем відкривається інтерфейс 1С і далі все залежить від нього. Він натискає на кнопку – відбувається виконання обробника натискання цієї кнопки (який теж тежможе щось запустити автоматично).

Робота з модулями 1С

Виготовляється у конфігураторі. Відкрити модуль можна за допомогою вікна Конфігурація.

    Модулі точки входу (в розрізі різних клієнтів) можна відкрити правою кнопкою на верхньому елементі вікна конфігурації. Називатися він може по-різному, але знаходиться завжди в самому верху.

можна
Загальні, незалежні від об'єктів 1С модулі, знаходяться у гілці Загальні / Загальні модулі. Просто натисніть на нього двічі мишкою і він відкриється.

можна
У 1С версії 8.2 виникло поняття Команда 1С. Це самостійна дія, яку можна витягнути на форму у вигляді кнопки чи меню. У гілці Загальні/Загальні команди знаходяться команди, які можна використовувати у будь-якому іншому місці конфігурації. Кожна з команд має власний модуль.

модуля
Модулі об'єктів. Кожен об'єкт 1С (довідник, документ та інше) має свій модуль. Там можуть бути прописані реакції на такі системні події як Запис() або Видалення(), а також створено нові методи об'єкта. Натисніть правою кнопкою миші на конкретний об'єкт, наприклад, довідник Номенклатура. Модуль об'єкта – модуль конкретного елемента цього довідника. Модуль менеджера – це модуль керування елементами довідника (документа).

модуля

Склад модуля 1С

Модуль складається з набору функцій та процедур – тобто. обробників подій та методів.

На самому початку модуля можна розмістити змінні, які будуть використовувати обробники та події в цьому модулі.

У самому низу модуля можна розмістити програмний код без оформлення процедури чи функції. Це можна назвати автостартом конкретного модуля. При спробі першого звернення до будь-якої процедури або функції цього модуля буде виконано автостарт (кодвнизу модуля).

Зазвичай його використовують для початкового заповнення змінних, розташованих на початку модуля.

Клієнт та сервер 1С

У серверному варіанті 1С різні частини програми виконуються на клієнтській машині чи сервері. Навіщо це потрібно ми обговоримо потім, спочатку можна взяти хоча б продуктивність клієнтського комп'ютера і сервера.

Загальні модулі (Загальні / Загальні модулі) мають властивості. Натисніть правою кнопкою миші і далі властивості. Галочками можна відзначити, де буде доступний цей модуль.

Також один модуль може виглядати по-різному, якщо запущений на сервері або клієнті. Для цього є спеціальні директиви, що вказуються прямо в коді програми: # Якщо Клієнт і # Якщо Сервер.

Клієнт та Сервер бачать лише ті частини модуля, які знаходяться між цими директивами. Якщо директив немає – модуль видно весь.

У версії 1С 8.2 для тонкого клієнта можна вказувати для кожного методу та обробника, де він буде виконуватися. Для цього безпосередньо перед функцією або процедурою вказується &НаСервері та &НаКлієнті. При цьому клієнтські функції можуть викликати серверні, але не навпаки.

Повідомлення між модулями 1С

Кожен модуль існує сам собою і в нього немає точок входу ззовні - з інших модулів.

Якщо хочемо створити метод чи змінну, видиму з іншого модуля, вона позначається словом ЕКСПОРТ.

Однак велика кількість модулів та правил клієнт-сервера вражає деяку кількість проблем у програміста з використанням модуля ззовні. Десь просто, а десь можна тупити пів години – чому написано ЕКСПОРТ, але виклик закінчується помилкою «метод не знайдений..».

Контекст – це дуже складне, бо дуже розпливчасте поняття.

Під контекстом мається на увазі весь той набірфункцій, процедур та змінних, доступних на певному рядку виконання програми, з тими значеннями змінних, які вони вже мають на даному етапі виконання.