Модуль 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С
У серверному варіанті 1С різні частини програми виконуються на клієнтській машині чи сервері. Навіщо це потрібно ми обговоримо потім, спочатку можна взяти хоча б продуктивність клієнтського комп'ютера і сервера.
Загальні модулі (Загальні / Загальні модулі) мають властивості. Натисніть правою кнопкою миші і далі властивості. Галочками можна відзначити, де буде доступний цей модуль.
Також один модуль може виглядати по-різному, якщо запущений на сервері або клієнті. Для цього є спеціальні директиви, що вказуються прямо в коді програми: # Якщо Клієнт і # Якщо Сервер.
Клієнт та Сервер бачать лише ті частини модуля, які знаходяться між цими директивами. Якщо директив немає – модуль видно весь.
У версії 1С 8.2 для тонкого клієнта можна вказувати для кожного методу та обробника, де він буде виконуватися. Для цього безпосередньо перед функцією або процедурою вказується &НаСервері та &НаКлієнті. При цьому клієнтські функції можуть викликати серверні, але не навпаки.
Повідомлення між модулями 1С
Кожен модуль існує сам собою і в нього немає точок входу ззовні - з інших модулів.
Якщо хочемо створити метод чи змінну, видиму з іншого модуля, вона позначається словом ЕКСПОРТ.
Однак велика кількість модулів та правил клієнт-сервера вражає деяку кількість проблем у програміста з використанням модуля ззовні. Десь просто, а десь можна тупити пів години – чому написано ЕКСПОРТ, але виклик закінчується помилкою «метод не знайдений..».
Контекст – це дуже складне, бо дуже розпливчасте поняття.
Під контекстом мається на увазі весь той набірфункцій, процедур та змінних, доступних на певному рядку виконання програми, з тими значеннями змінних, які вони вже мають на даному етапі виконання.