Інтернет Windows Android

Програмування 1с з нуля російською. Файлова і серверна бази даних

Перед вами постало питання Як стати програмістом 1С, Але однозначної відповіді на нього ви не знайшли?

Давайте розбиратися разом.

Насамперед вважаю за необхідне описати плюси і мінуси професії, для того, щоб ви знали що вас чекає.

плюси:

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

Тепер давайте поговоримо про мінуси(Вони теж є):

  • сидяча робота,
  • необхідність освоєння суміжних областей знань, щоб бути успішним (бухгалтерський і податковий облік, розрахунок зарплати і т.п.),
  • постійна зміна засобів розробки (платформа 1С: Підприємство) і типових конфігурацій (з огляду на зміни законодавства) іноді роблять непрацездатними / неактуальними доопрацювання, які успішно використовувалися раніше.

Є ще один нюанс - Робота з людьми. Я не став записувати його ні в один список, так як всі люди різні, і хтось його розцінить як плюс, а хтось навпаки. Вирішуйте самі.

Виходячи з особистого досвіду, Це основні позитивні і негативні сторонипрофесії, можливо у інших фахівців знайдуться доповнення.

Якщо після цього аналізу бажання стати програмістом у вас не пропало, йдемо далі.

Про базову підготовку

Для початку вам знадобиться стартове навчання, яке дасть вам поштовх до вивчення 1С і навчить самим основам, і зможе донести до вас інформацію в доступному вигляді, "людською мовою".

В якості такого навчання підійдуть очні курси з програмування в вашому місті в одній з фірм-франчайзі 1С - фірм, що надають послуги з обслуговування програм 1С. Тільки переконайтеся, що у цієї фірми є статус 1С: ЦСО, тобто Центр сертифікованого навчання. Даний статус передбачає, що у фірми є досить компетентні фахівці для проведення навчання, а також те, що після закінчення навчання ви отримаєте відповідний сертифікат (про користь сертифікатів розповім пізніше). Плюс такого старту - це живий викладач, якому ви можете задавати питання відразу, якщо вам щось незрозуміло. Навчання як правило групове, в групі 10-20 чоловік. Тривалість навчання - 2-4 тижні.

Якщо ваше місто не такий великий і в ньому немає такої компанії (або ви хочете зекономити на навчанні), то рекомендую вам навчальні курси від Євгенія Гильова. Це висококласний фахівець, крутіше нього я не бачив. На сайті Курси-по-1с.рфви можете як придбати його платні курси, так і завантажити безкоштовні. В даному випадку я говорю про його безкоштовний відеокурс "Програмування в 1С - за 21 день". Отримати його ви можете на цьому сайті. Простою і доступною мовою Євген в цьому курсі дасть вам необхідну "базу".

Далі, для того щоб стати якісним фахівцем 1С, я рекомендую вам в якості настільного посібники інший відеокурс Євгена Гильова Курс 1С: Спеціаліст(Його без проблем можна знайти в інтернеті). Курс важить близько 22 Гб і складається з базового і просунутого блоку. Перший дає основи, другий - поглиблені знання платформи. Освоївши цей відеокурс, ви станете дійсно хорошим фахівцем 1С.

про сертифікати

Компанія 1С розробила стандарт сертифікації фахівців, що займаються обслуговуванням програм 1С: Підприємство. даний стандартвключає в себе кілька видів сертифікатів, в цій статті я зупинюся на двох основних.

  • 1С: Професіонал - підтвердження того, що його власник може ефективно використовувати у своїй роботі можливості платформи (якщо сертифікат по платформі) або типових конфігурацій 1С (якщо сертифікат виданий за однією з типових конфігурацій. Для здачі такого сертифіката необхідно пройти тест в одній з фірм франчайзі (14 питань, максимум може бути 2 помилки). По суті, цей сертифікат говорить про те, що у вас є початкові знання.
  • 1С: Спеціаліст - також може бути або по платформі 1С, або по одній з типових конфігурацій. Цей сертифікат вже говорить про те, що у вас є розуміння принципів побудови платформи, а також навички реалізації користувальницьких завдань. Іншими словами, наявність даного сертифіката говорить про те, що "ви в темі". Для отримання такого сертифіката потрібно успішно скласти іспит (4 завдання 5 годин на виконання), комплексно оцінює ваші навички роботи з платформою 1С.

Сертифікат 1С: Професіонал виглядає так:

А 1С: Спеціаліст вигляди так:

Необхідно сказати про те, що немає ніякої "зобов'язалівки" в частині отримання сертифікатів - це ваш свідомий вибір, отримувати їх чи ні. Ніяких матеріальних благ вони, як правило не приносять. Однак у них є кілька очевидних переваг:

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

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

Так що вирішуйте самі, чи потрібні вам сертифікати чи ні.

Про потрібні компетенції

Наведу список навичок і умінь, які на мою думку обов'язково повинні бути в арсеналі хорошого програміста 1С:

  • знання мови запитів 1С,
  • вміння працювати з звичайними і керованими формами,
  • вміння створювати звіти на системі компонування даних СКД,
  • знання особливостей внутрішніх об'єктів конфігурації (документи, довідники, регістри, плани видів характеристик і т.п.),
  • вміння налаштовувати обмін даними між різними конфігураціями 1С,
  • вміння ефективно приймати і вивантажувати дані у файли формату XML, MS Excel, MS Word,
  • навички роботи з Бібліотекою стандартних підсистемБСП, створення зовнішніх звітів, Обробок і друкованих форм.

Окремо хочу виділити наступне: Вважаю, що хороший програміст 1С зобов'язаний знати функціонал типових конфігурацій 1С:

  • Зарплата і Управління Персоналом 3.1,

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

Ще добре було б навчитися допрацьовувати програму за допомогою розширень (без внесення змін в саму конфігурацію) - це істотно полегшить її подальше обслуговування і продемонструє замовнику вашу кваліфікацію.

На закінчення відповім на кілька найбільш частих питаньпо даній темі.

Як довго потрібно вчитися?

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

Які перспективи у професії?

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

Скільки заробляють програмісти 1С

Тут теж немає єдиних стандартів - все залежить від кваліфікації програміста і міста проживання. Наприклад, в Москві пристойним може вважатися рівень доходу програміста в межах 150-170 т.р., в той час як, наприклад, в містах Сибіру і Далекого Сходу вам навряд чи вдасться знайти такого роботодавця і зарплата в 70 т.р. вважається тут вельми непоганий. Залежно від рівня підготовки програміста стелю доходу в одному і тому ж місті у програміста з мінімальними знаннями і професіонала своєї справи може відрізнятися в 2-4 рази. Виходячи зі сказаного вище можна з упевненістю стверджувати наступне:

Хочете вищий дохід - постійно вдосконалюйте свої навички і / або переїжджайте в Москву.

1. Що з себе являє мову 1с.
2. Методи, змінні, інші конструкції мови.

Що з себе являє мову 1с.

Будь-яка мова програмування призначений для вказівки програмі виконання необхідних для нас дій. Написання коду схоже на складання інструкції, в ній ми вказуємо, що зробити і в якому порядку. Весь виконуваний код конфігурації може перебувати тільки в модулях, розглянемо основні 4 види:

1. модуль додатки

2. загальні модулі

3. модуль об'єкта

4. модуль форми.

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

Методи, змінні, конструкції мови

зміннівикористовуються для зберігання даних під час сеансу роботи користувача. Мінлива це таке слово яке починається з букви (російської або англійської) або зі знака підкреслення «_» і складається з букв цифр і знаків підкреслення.
наприклад:

  • ЕтоПеременная
  • _ЕтоПеременная
  • _Ето1_Переменная

Те, що букви можуть бути російськими та англійськими може зіграти злий жарт при вживанні схожих по зображенню букв з різних мов.

Регістр букв в коді не враховується, тобто змінні «Переменная1» і «пЕрЕмЕннАя1» при виконання коду для програми є однаковими. Бажано щоб назви змінних були осмислені. Це покращує читабельність коду.

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

Наприклад: Об'єкт «Товарний чек № 00018 від 01.01.2005».
Ми можемо відрізнити цей товарний чек від інших товарних чеків за даними реквізитів, які він містить. Це реквізит «Номер» зі значенням «00018» ( тип рядок ) І реквізит «Дата» ( тип дата ) Зі значенням «01.01.2005». Єдине що, ми могли визначити по об'єкту, не знаючи значень його реквізитів - це його тип «Товарний чек».
методиє маленькими і як правило закінченими інструкціями.

Наприклад, системний метод «ТекущаяДата ()» з назви зрозуміло, що він буде повертати поточну дату комп'ютера. Або припустимо можна створити метод « СтрокаСодержітЦіфру(ПроверяемаяСтрока) »Який поверне відповідь істинаабо брехня, Тут ми в дужках передаємо параметри тобто дані оперуючи якими метод повинен зробити якісь дії. Обидва розглянутих методи є функціями, також в мові є методи-процедури. Відмінність між ними одне Функція обов'язково повинна повертати значення.

Інші конструкції мови (Оператори, колекції значень і т.д.) - це зарезервовані системою 1с слова які допомагають проводити маніпуляції над даними.

наприклад:

Для кожного ЕлементКоллекціі З ІмяКоллекціі Цикл КонецЦікла;

У прикладі приведена конструкція перебору елементів колекції. Ця конструкція називається цикл . Більшість типів об'єктів, а також їх реквізитів є колекціями, які можна перебирати вищевказаним способом і звертатися до елементу колекції вказуючи його індекс (ІмяКоллекціі [0]). Всі колекції починаються з елемента, у якого індекс = 0.

Директор з розвитку Android Стефані Катберсон оголошує Kotlin одним з офіційних мов для ОС 2017 рік Джерело Google зробив Kotlin ...

  • Мови програмування, розроблені російськими і радянськими програмістами

    Kotlin Kotlin (Котлін) - це статично типізований мова програмування, що працює поверх JVM і розробляється компанією JetBrains. ...


  • Youtube-канали з уроками програмування

    ITVDN Технострим Mail.Ru Group Гоша Дудар loftblog Хауди Хо ™ - Просто про світ IT! Кирило Антонов Byte ++ Ivan Booravoi splincode wd Web ...


  • Рейтинг RedMonk: TypeScript і Kotlin - найдинамічніші мови програмування

    Згідно з новим звітом RedMonk, TypeScript і Kotlin мають кращі показники росту з урахуванням таких параметрів, як використовуванність і інтерес з боку ...

  • Google назвав Kotlin основною мовою програмування для розробки додатків на Android

    Компанія Google на конференції для розробників I / O 2019 оголосила, що тепер мова програмування Kotlin буде пріоритетним для розробки ...

  • Stack Overflow назвала найпопулярніші і високооплачувані мови програмування в 2019 році

    Компанія Stack Overflow назвала найпопулярніші і високооплачувані мови програмування в 2019 році. Дослідження опубліковане на сайті ...


  • Як заробити мільйони на відкритому коді: від Red Hat до Nginx

    джерело відкритий кодпройшов шлях від захоплення романтиків-нонконформістів до звичайного інструмента для заробляння грошей. Нові підходи ...

    У цьому відеоуроці розповідається про виникнення і розвитку програмування і ЕОМ, згадуються ключові моменти в історії, пов'язані з розвитком ...

  • Увійдіть на сайт як учень

    Увійдіть як учень, щоб отримати доступ до матеріалів школи

    Внутрішній мову програмування 1С 8.3 для початківців програмістів: установка 1С і ваша перша програма на мові 1С

    Якщо ви не читали введення до уроків - будь ласка, прочитайте його:.

    Установка навчальної версії 1С

    Для навчання програмуванню нам знадобиться 1С 8.3 (не нижче 8.3.4.482).

    Якщо у вас є встановлена ​​1С версії 8.3 - використовуйте її. Якщо немає - скачайте і встановіть навчальну версію, яку фірма 1С випускає спеціально для освітніх цілей.

    завдання №1: Завантажити і встановити навчальну версію 1С 8.3.

    Інструкція для виконання:

    • Розпакуйте архів, скачаний з посиланням в окрему папку на робочому столі:
      • посилання на скачування з Dropbox (варіант №1)
      • посилання на скачування з Mail.ru (варіант №2)
    • Запустіть файл "setup.exe".
    • Натисніть "Далі", "Далі", "Встановити".
    • Після завершення встановлення.

    Після виконання Завдання №1 на вашому робочому столі повинен з'явитися ось такий ярлик:

    Вітаю! Платформа 1С встановлена ​​і дуже скоро ви зможете написати першу програму.

    перша програма

    Це вже стало традицією для програмістів - вивчаючи нову мову, перше, що на ньому пишуть це програму, що друкує на екрані фразу "Hello, World!".

    Чи не станемо винятком і ми. Але, будучи російськими програмістами, змусимо комп'ютер вивести на екран фразу "Привіт, світ!".

    Завдання №2:написати програму на мові 1С 8.3, яка при запуску виводить на екран фразу "Привіт, світ!".

    Інструкція для виконання:

    1. Запустите ярлик "1С: Підприємство" на вашому робочому столі.

    2. Перед вами відкрився список баз 1С. Як бачите, він порожній. Давайте створимо навчальну базу, В якій і будемо програмувати. Натисніть кнопку " Додати".

    3. Виберіть пункт " створення нової інформаційної бази "І натисніть кнопку" далі".

    4. Виберіть пункт " Створення інформаційної бази без конфігурації ..."І натисніть кнопку" далі".

    5. В якості імені бази вкажіть " Навчальна"І натисніть кнопку" далі".

    6. Як каталогу бази вкажіть будь-яку порожню папку (в даному випадку це папка "Навчальна" в моїх документах). Натисніть кнопку "Далі".

    7. Вкажіть варіант аутентифікації " Автоматичний вибір", Режим запуску" товстий клієнт". Як версію 1С: Підприємства нічого не вказуйте, натисніть кнопку" Готово ".

    8. Як бачите, в списку, нарешті, з'явилася перша база, яку ми тільки що створили самі! Почнемо писати код. Натисніть кнопку " Конфігуратор".

    9. У вікні, виберіть через меню " конфігурація"->"відкрити конфігурацію".

    10. У відкрилася зліва панелі натисніть правою кнопкою миші на слові " конфігурація"І виберіть зі списку" Відкрити модуль керованого застосування".

    11. Відкрилося вікно з редактором. Сюди можна писати текст! З ним ми і будемо працювати надалі.

    12. Тепер, не замислюючись, просто перепишіть у це вікно наступний текст:

    Повідомити ( "Привіт, світ!");

    13. Дуже добре! Код нашої першої програми готовий. Запустимо його на виконання. Через меню " налагодження"->"почати налагодження"(Або клавіша F5).

    14. На питання відповімо ствердно.

    15. Через секунду або дві запуститься 1С і в вікні знизу з'явиться напис "Привіт, світ!". Ми домоглися від комп'ютера того, чого хотіли. Вітаю вас з першою програмою!

    Якщо пишеш ти на СІ
    Будь хоч тричі ламер
    Про такого говорять:
    «Він - крутий програмер!»
    (Федишин пісні - «Що Таке Suxxx і Що Таке Rulezzz»)

    Передмова

    Приводом до написання даної статті стало негативне ставлення професійного співтовариства до зазначеної платформі і програмістам.

    Як програміст, який вибрав 1С, вважаю цю думку необгрунтованим. Платформа 1С - далеко не ідеал, але, на мій погляд, - це кращий, а головне - вітчизняний продукт!

    І вже тим більше - неадекватно судити про здібності програміста з тієї мови, на якому він пише.

    У даній статті я опишу ті переваги, які знайшов для себе в програмі. Стаття вийде практично рекламою, тому відразу дисклеймер:

    • Прямого відношення до фірми 1С я не маю;
    • Дана стаття не є замовною, і написана виключно на добровільних засадах;
    • У деяких випадках висловлено особисту думку, яка може не збігатися ...;
    • Вся стаття, за винятком прологу - авторська, будь-які збіги - випадковість;
    • Йтиметься про платформі 1С Підприємство 8.2 (в даний час - актуальна версія 8.3, але я її ще не вивчав - дуже багато роботи на 1С 8.2). Однак, велика частина сказаного може бути застосована як до платформи 8.3, так і до більш ранніх версій, а частина - і до версії 7.7.
    Отже, приступимо.

    Про що мова?

    Платформа 1С Підприємство 8 - це:
    • Працює в двох варіантах - файловий і серверний (трёхзвенка) - у кожного свої переваги і недоліки;
    • Незалежна система обліку, яка легко встановлюється і налаштовується;
    • Потужна екосистема для програмістів з усіма необхідними об'єктами та інструментами;
    • Приємний ергономічний інтерфейс;
    • Порівняно недороге рішення для бізнесу;
    • Мережа франчайзі, початкове навчання;
    • Потужна база напрацювань і знань, накопичена роками;
    • Часом проблемна платформа для системних адміністраторів;
    • Чи не найшвидше виконання алгоритмів (хоча і не найповільніший) - це данина інформативності (при помилках вказано номер рядка і її вміст);
    • У мові програмування немає класів (успадкування, інкапсуляції, поліморфізму), немає анонімних функцій і інших сучасних фич. Але для вирішення більшості завдань - це і не потрібно!
    Для організації обліку - однієї платформи недостатньо. Платформа - це свого роду «движок», проміжна ланка між програмою і базою даних. Програми для цього «движка» називаються конфігурації. У конфігурації описана структура бази даних у вигляді об'єктів, тексти процедур, що зберігаються в окремих модулях (модулів багато, вони є як у кожного об'єкта, так і у системи в цілому, а також є загальні модулі). Платформа являє такий рівень абстракції, при якому прямого звернення до бази даних не потрібно, а також дозволяє абстрагуватися від операційної системиі типу бази даних.

    Файлова і серверна бази даних

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

    У файловому варіанті вся база даних міститься в одному файлі (з розширенням «1cd») - платформа встановлюється на кожному комп'ютері і безпосередньо читає / пише в базу даних.

    Плюси файлового варіанту - низька цінаі простота розгортання.

    Мінуси - структура файлу «1cd» закрита, немає єдиної системи, Яка взаємодіє з БД. В результаті - складно використовувати при великому числікористувачів (пробували на 20+ користувачів - працювати можна). Крім того, при розмірі бази даних приблизно 15 ГБ (і більше) виникають збої при проведенні динамічного оновлення. Вирішувати такі збої - завдання складне, а утиліта для лагодження бази - не завжди ефективно лагодить, а іноді і калічить базу.

    Рішення є - це, перш за все, настройка щоденного резервного копіюваннябази даних. Крім того, народні умільці не тільки публікують формат файлу 1cd, а й розробили утиліти для роботи з такими файлами і ряд методів щодо вирішення подібних проблем.

    У серверному варіанті, платформа для зберігання бази даних використовує SQL-сервер (зазвичай, це MS SQL, але починаючи з 8.2.14 - можна використовувати і деякі інші наприклад, Firebird PostgreSQL, IBM DB2, Oracle Database), а сама платформа працює використовує триланкову архітектуру:

    Частина коду виконується на клієнті, частина на сервері. При цьому з базою даних взаємодіє тільки сервер. При цьому, починаючи з версії 8.2, крім стандартного режиму роботи, який обізвали режимом « товстий клієнт», З'явилося два нових режиму роботи -« тонкий клієнт »і« web-клієнт »; також з'явилися « керовані форми», зовнішній виглядяких будується в вигляді абстрактного дерева елементів. Програмувати під керовані форми і триланкову архітектуру складніше, але це дозволяє перенести майже все навантаження на сервер (тобто можна купити один потужний сервер і сотню найдешевших офісних комп'ютерів).

    Плюси платформи: «трёхзвенка» - розподіл навантаження, відкритість бази даних (офіційно фірма 1С відмовляється від відповідальності за будь-яке псування даних, якщо в базу SQLвносилися зміни крім як засобами їхньої платформи або сервера, але це мало кого зупиняє), відсутність обмежень.

    Мінуси - ціна: купувати доведеться окремо клієнтські ліцензіїна кожне клієнтське комп'ютер, окремо - одну ліцензію на сервер 1С, окремо ліцензію на сервер SQL, якщо не використовувати безкоштовний. Також іноді виникають складності в роботі бази даних. Вони вирішуються набагато швидше за рахунок доступності даних і наявності зовнішніх інструментів роботи з БД. Крім того, і в цьому випадку слід робити бекап бази даних.

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

    Ще один плюс: платформа встановлюється дуже просто, приблизно так: «Далі-Далі-Далі-Ок», не потрібно тонка настройка і установка будь-яких компонент.

    Для серверного варіанту трохи більше налаштувань, але все робиться в діалозі установки і не вимагає прописувати що-небудь в окремих файлах. Деяку складність може представляти установка SQL-сервера, тому що в цьому випадку налаштувань набагато більше (і щоб тонко налаштувати - потрібно вивчення додаткових інструкцій). Але це не відноситься до проблем платформи 1С. Більш того, якщо встановити, наприклад сервер MS SQL з усіма параметрами за замовчуванням, то 1С цілком зможе з ним працювати.

    Це більше, ніж бухгалтерія

    Коли мова заходить про платформі 1С, то вона видається, перш за все, як програма для бухгалтерського обліку. Дійсно, це - найпопулярніша область використання платформи 1С. Але не бухгалтерією єдиної живе 1С!
    Ті, хто знайомий з платформою, кажуть, що це система обліку (автоматизації обліку). Це ближче до істини - існує безліч конфігурацій, як від фірми 1С, так і від сторонніх розробників. Деякі лише побічно пов'язані з бухобліком, деякі взагалі ніяк не пов'язані.

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

    Екосистема для програмістів

    Розглянемо тепер мова 1С і платформу з точки зору розробника:
    Об'єктна модель бази даних.По-перше, безпосередньо з базами даних ми не працюємо. Це не потрібно. Для нашої зручності - все дані представлені в вигляді взаємопов'язаних об'єктів (довідники, документи, регістри відомостей, регістри накопичення, ...), а «витягування» цих даних з бази виконує платформа автоматично.
    Наприклад, за умови, що в змінної «ЕлементНоменклатури» міститься посилання на елемент довідника «Номенклатура», у довідника «Номенклатура» є реквізит «ОсновнойПоставщік», типу «Справочнік.Контрагенти», а у довідника «Контрагенти» є реквізит «ПолноеНаіменованіе», тоді код:

    ЕлементНоменклатури.ОсновнойПоставщік.ПолноеНаіменованіе
    ... призведе до того, що платформа 1С, використовуючи внутрішні механізми, знайде запис в таблиці, відповідної довіднику «Контрагенти» за ідентифікатором з поля «ОсновнойПоставщік» елемента номенклатури і поверне значення поля, відповідного полю «ПолноеНаіменованіе» в об'єктної моделідовідника «Контрагенти».

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

    Крім об'єктів, що описують дані, існує величезна кількість системних об'єктів - для самих різних функцій. Виділю деякі з них:

    сховища значень
    масив- об'єкт, який зберігає набір даних, на відміну від класичного уявлення про масивах. Це можуть бути дані різного типу(Число, рядок, посилання, інший об'єкт). Має мінімальний функціонал і використовується, в основному, як тимчасовий контейнер для передачі значень між іншими сховищами.

    СпісокЗначеній- об'єкт, переважно, для роботи з інтерфейсом користувача. Крім даних також для кожного елемента може містити уявлення, ознака прапорця і картинку (піктограму). Також має методи «ВибратьЕлемент ()» і «ОтметітьЕлементи ()» - при виклику яких користувачеві показується інтерфейсний діалог (що зручно - не потрібно даний діалог створювати в конфігурації).

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

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

    ДеревоЗначеній- об'єкт, який представляє ієрархічні дані. Містить колонки, набір колонок однаковий для всіх записів на всіх рівнях. Видалення / Додавання колонок в дереві значень точно так же легко, як і в таблиці значень. Також, має метод «ВибратьСтроку ()».

    Інтерфейсні об'єкти та об'єкти для роботи з різними данимиТекстовийДокумент, ТаблічнийДокумент, Web-браузер, ЧтеніеФайла, ЗапісьФайла, ЧтеніеZIPФайла, ЗапісьZIPФайла, ЧтеніеXML, ЗапісьXML, HTTPЗапрос і ще багато об'єктів, і по всі в конфігураторі є вбудована довідка. Призначення перерахованих об'єктів видно з їхніх назв і все це відразу є в платформі.

    Окремо слід відзначити, що є об'єкт «Метадані» - за допомогою якого на мові програмування можна вивчити структуру даних, а також у кожного посилання або об'єкта для довідника, документа, плану рахунків, і т.п. є метод «Метадані ()» - надає опис даного довідника / документа / плану рахунків / і т.п. в базі даних (які реквізити, табличні частини є, довжина коду / номеру і т.п.). Часто буває дуже зручно.

    І ще окремо слід згадати про об'єкти: «Запит», «КонструкторЗапроса», «ПостроітельЗапроса», «ПостроітельОтчета», «СхемаКомпоновкіДанних». Це сімейство реалізує набір об'єктів для роботи з потужним мовою запитів 1С.

    Мова запитів.Запити в 1С використовуються тільки для отримання вибірки даних із зручним відбором, сортуванням, угрупованнями. У першому наближенні це перекладений на російську мову оператор «SELECT» з SQL, однак, в мові запитів 1С є і функціонал, який відсутній в SQL, а саме:

    • Робота з об'єктами конфігурації 1С, замість таблиць SQL;
    • Робота з посиланнями, замість полів-ідентифікаторів SQL;
    • Підтримка разименовиванія, аналогічно тому, як це робиться в коді;
    • Вибірка по входженню в групу (для довідників);
    • Ієрархічні підсумки;
    • Тимчасові таблиці і вкладені запити (SELECT * FROM (SELECT ...)));
    • Конструктор запитів - зручний, об'єктний, автоматично оптимізує текст запиту для швидкого читання, який вміє розбирати текст запиту (парсити текст запиту і будувати з нього об'єктну модель);
    • Будівник звіту - надбудова над механізмом запитів, в якій доданий функціонал автоматичного оформлення результатів, а також гнучкого налаштуваннясамого запиту в режимі «Підприємство» (тобто користувачем). В результаті в стандартних платформах 1С з'явився універсальний звіт, в якому користувач може налаштувати які дані і в якому порядку він хоче бачити, що в рядках, що в колонках, і звіт сам генерує вихідну таблицю;
    • СКД (Система компоновки даних) - наступна модель, що увібрала в себе функціонал універсального звіту і дополнившая його деякими функціями обробки результатів.

    Мова програмування
    За синтаксису мову 1С схожий на «російський Паскаль», проте від «Pascal» відрізняється меншою строгістю і відсутністю деяких конструкцій:

    • Немає необхідності оголошувати змінні - можна форматувати прямо в тексті модуля;
    • Немає жорсткої типізації змінних. В системі є типи значень, але для змінних немає строгих правил по типізації. Змінна, що зберігала посилання, може через пару рядків коду вже зберігати число або рядок;
    • Можна складати змінні зі значеннями різних типів, при цьому, тип результату буде таким, яким був тип у першій змінної, наприклад:
      к = "25" +1; // к = "251", не 26
    • Змінні зі значеннями різних типів можна порівняти на рівність чи нерівність (але не на більше-менше, це викличе виключення) - природно, такі змінні не рівні;
    • Є функції і процедури, допустимо використовувати рекурсію (з обмеженням по глибині рекурсії);
    • При вказівці функції або процедури без параметрів - все-одно, обов'язково вказувати порожні дужки в кінці: вот_так ();
    • Є модулі: у кожного довідника і документа їх кілька, крім того, модулі є у регістрів, звітів та обробок і у кожної форми, а також у складі конфігурації є можливість створювати спільні модулі;
    • Ні класів, успадкування, інкапсуляції, поліморфізму;
    • Функцію можна передати як посилання, немає анонімних функцій;
    • Немає зворотного циклу (for i: = 5 downto 1 do), а він реально потрібен при видаленні записів. Обходимося трохи довшою записом через цикл «Поки».

    інструментарій

    • У платформі 1С є можливість вивантажувати-завантажувати конфігурацію, порівнювати конфігурацію з іншою конфігурацією і частково завантажувати зміни;
    • Є можливість вивантажувати тексти модулів для їх пакетної обробкиі завантажувати назад в конфігурацію;
    • Якщо конфігурація знаходиться на підтримці (всі конфігурації від 1С спочатку на підтримку), то завжди можна виконати порівняння і подивитися, що змінювалося сторонніми розробниками або місцевими фахівцями;
    • Також є можливість вивантажувати / завантажувати базу даних цілком (разом з даними);
    • Для колективної роботи над однією конфігурацією використовується сховище конфігурації;
    • Також існує ряд правил внесення змін до стандартні конфігурації, є навіть документ від 1С, що описує методики і стандарти зміни типових конфігурацій (та й будь-яких інших).

    Загальне враження
    Мова 1С поєднує в собі ясність текстів мови «Pascal» з фривольністю роботи зі змінними мови «BASIC». У ньому відсутня ряд можливостей, притаманних сучасних мов програмування, але без них цілком можна обійтися. Крім того, в платформі 1С є потужний збирач сміття, тобто не потрібно, наприклад, очищати таблиці після використання або видаляти їх.

    Інтерфейс 1С Підприємство 8.2

    Фірма 1С приділила особливу увагу інтерфейсу своєї програми. Перш за все - це кольорова палітра. Вона шикарна! Вікна програми впізнати навіть здалеку, при цьому за багато років роботи - не викликають неприязних відчуттів, навпаки - хочеться, щоб всі програми були були такими-ж класними.
    При цьому стиль платформи вельми суворий, без витребеньок і інших надмірностей. При цьому є досить корисні функції, Наприклад, запам'ятовування розмірів вікон (розміри запам'ятовуються тільки при їх зміні користувачем, і, при цьому, завжди можна скинути настройки користувача - до розмірів і позиції за замовчуванням, натиснувши Alt + Shift + R).
    Інтерфейс Web-клієнта 8.2 викликає ряд нарікань, але, начебто, платформа 8.3 несе з собою новий перероблений інтерфейс - «Таксі».

    Ціни, попит і пропозиція, франчайзинг

    Самим «смачним» плюсом платформи 1С є її ціна. Особливо, це актуально зараз, під час кризи. Адже 1С - це повністю наш, вітчизняний продукт. І продається вона за наші дерев'яні. Подібні рішення від іноземного виробника будуть коштувати величезних грошей. А ліцензії на 1С стоять цілком прийнятно.

    Крім того, у 1С цікава політика ліцензування. Самі ліцензії та конфігурації купуються один раз. При цьому, ліцензії купуються на робоче місцеі на сервер, але не на бази даних, і навіть не на підключення, тобто по одній ліцензії один і той же користувач може запускати необмежену кількість сеансів 1С, працюючи з будь-яким числом баз даних. Те ж саме стосується конфігурацій: придбавши одну ліцензію на конфігурацію організація може використовувати її для створення будь-якої кількості баз даних, більш того офіційно дозволяється використовувати частини коду і об'єкти даної конфігурації при розробці власних конфігурацій (при цьому власні конфігурації можна продавати / передавати - обумовлюючи, що для їх використання потрібно купити конфігурацію від 1С).

    Після цієї одноразової покупки потрібно тільки підписатися на оновлення та раз на рік оплачувати продовження підписки, т.зв. ІТС. До слова, підписка коштує досить недорого, приблизно як дві клієнтські ліцензії.

    В цілому, все це виглядає дуже вигідно.

    Другим «смачним», але вже з ложкою дьогтю, плюсом, є наявність досить універсальних конфігурацій від самої 1С і від партнерів.

    про універсальність

    Поняття «універсальність» визначив один шкільний учитель по НВП на прикладі протигазів: існують універсальні, що захищають від багатьох вражаючих факторів, Але ступінь захисту середня або нижче середнього, і також існують спеціалізовані протигази, які захищають від одного впливу, але з високим ступенем захисту. До сих пір я не зустрічав більш точного визначення.
    І конфігурації від 1С - саме універсальні. Практично, немає завдань, де б їх можна було повноцінно використовувати без доробок. Проте, фірмі 1С вдалося створити універсальний набір інструментів, що покриває запити більшості галузей сучасного бізнесу.


    Третім плюсом (і теж з ложкою «дьогтю») є мережа франчайзі і центрів навчання, як для користувачів, так і для початківців програмістів і адміністраторів. Хороша ідея, Але вельми посередню якість її реалізації. Проте, поширеність і агресивний маркетинг - одна з причин повсюдної популярності 1С в нашій країні (і це-ж причина негативу, заздрості і ненависті).

    Ложка дьогтю

    Розписавши в усіх фарбах 1С було б несправедливо не сказати і про її недоліки, а вже вони-то є:

    нестабільні релізи- як в платформі, так і в конфігураціях, присутня величезна кількість помилок і глюків. І це в офіційних релізах. Перед тим, як випустити офіційну версію, Випускається «Версія для ознайомлення». Є також Зворотній зв'язокдля відправки описів помилок, щоб їх прийняли до виправлення. Однак, то-ли версії для ознайомлення не особливо популярні, то-ли сама фірма 1С не встигає до терміну релізу обробити всі листи, але факт. Кожен раз оновлюючи платформу або конфігурацію можна наштовхнутися на найнесподіваніші «сюрпризи». До фірми 1С вже неодноразово зверталися із закликом ретельніше тестувати свої розробки.

    Франчайзі (далі - Франчі). В ідеалі, за задумом, це повинні були бути фірми з кваліфікованими фахівцями, що знають основні принципи роботи конфігурацій і платформи. Ці самі фірми повинні були б продавати платформу, конфігурацію і підтримку, злегка «допілівать» універсальні конфігурації під вимоги клієнта (а часом - коригувати ці вимоги), намагаючись мінімально модифікувати стандартну конфігурацію. Так, щоб не сильно ускладнювати майбутні оновлення. А в реальності все навпаки.

    При продажу нових ліцензій клієнту Франчі отримують 50% від їх вартості (за мінусом прибуткового податку 13% від цих 50%). При цьому самим виробляти нічого не треба, треба тільки передати ключі від 1С покупцеві.

    При наданні послуг Франчі не платять фірмі 1С нічого (за винятком членських внесків), але зате їм потрібно платити зарплату співробітникові. Також доводиться витрачатися на податки державі - ПФР і прибутковий податок.

    Виходить, що і 1С, і Франчі вигідно продавати ліцензії та невигідно здійснювати подальшу підтримку. При цьому, щоб клієнт купив програму, потрібно її спочатку підігнати під його вимоги. А роботу оплачувати треба. І тут з метою економії залучаються студенти, учні, неспеціалісти, яким можна заплатити трохи, а іноді - і не платити зовсім, їх можна навіть в штат не оформляти (попрацюють неофіційно, благо є з чого оплатити). Результат - величезна кількість продажів при дуже низьку якість. Доробки, як правило, зачіпають важливі механізми і ускладнюють майбутнє оновлення. Але на етапі продажу це ні 1С, ні франчайзі не цікавить.

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

    Техпідтримка.У розумінні фірми 1С, техпідтримка - це надання доступу до розділу «оновлення» для платформи і конфігурацій, а також до інформаційних розділах, що містить опис деяких механізмів і особливостей роботи 1С. Крім того, при підписці надається диск із зазначеними матеріалами. Також є форум (досить невеликий в порівнянні з народними). Ще є можливість відправити електронного листав фірму 1С - але навіть не сподіваючись, що на нього дадуть відповідь (або відповість робот «Лист передано до відділу розробки». У плані розробки набагато більшу підтримку надає Яндекс.Пошук і вбудована в конфігуратор довідка.

    Епілог

    Я перейшов на 1С в 2008 році, а до цього працював у фірмі, яка розробляє свою програму бухобліку (Delphi 5, потім Delphi 7). Спочатку я познайомився з платформою 1С Підприємство 7.7 та мене вразила в ній простота розробки звітів. При цьому було видно, що звіти формуються набагато довше, ніж в схожих механізмах на Delphi, але бухгалтерів це особливо не хвилювало. Почекати кілька хвилин замість кількох секунд - не проблема. Навпаки, можна нігті там нафарбувати, чайку попити або обговорити останні новинине відриваючись від роботи. Адже переважна більшість бухгалтерів в наш час - жінки.
    Проте, інтерфейс 7.7 був дуже обмежений, а набір об'єктів - дуже мізерний. Я шукав альтернативи. Познайомився з зовнішніми компонентами, але до практичного застосуванняїх не дійшла, тому що начальник вирішив, що пора б нам переходити на 8.1 (так, 8.2 тоді ще не було), а в цій платформі, як програміст, я знайшов все, чого мені не вистачало раніше.
    В даний час маю авторитет серед колег, а також клієнтів, які перейшли до мене від Франчі. З Франчі вони вже, напевно, ніколи більше не зв'яжуться.


    В цілому, роботою в платформі 1С Підприємство 8 я цілком задоволений. Вона підходить для вирішення більшості облікових завдань і завдань з використанням бази даних.

    Теги:

    • мови програмування російською
    • 1С програмування
    Додати мітки