Перейти до вмісту

Мова 1С

Матеріал з K2 ERP Wiki
Версія від 15:45, 15 травня 2026, створена R (обговорення | внесок) (Створена сторінка: {{DISPLAYTITLE:Мова 1С}} {{SEO |title=Мова 1С — вбудована мова 1С:Підприємство, синтаксис, модулі, процедури, функції, запити, приклади і міграція в K2 ERP |description=Мова 1С: що таке вбудована мова 1С/BAS, як працюють модулі, процедури, функції, змінні, об’єкти, запити, події, к...)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)


SEO title: Мова 1С — вбудована мова 1С:Підприємство, синтаксис, модулі, процедури, функції, запити, приклади і міграція в K2 ERP SEO description: Мова 1С: що таке вбудована мова 1С/BAS, як працюють модулі, процедури, функції, змінні, об’єкти, запити, події, клієнт-сервер, типові приклади коду, помилки, безпека і міграція бізнес-логіки в K2 ERP. SEO keywords: мова 1С, встроенный язык 1С, 1С:Підприємство, програмування 1С, код 1С, модулі 1С, процедури 1С, функції 1С, запити 1С, BAS програмування, K2 ERP, міграція з 1С Alternative to:


Мова 1С — це вбудована мова програмування платформи / 1С:Підприємство, яка використовується для опису бізнес-логіки, проведення документів, роботи з довідниками, регістрами, звітами, обробками, формами, інтеграціями, запитами, правами доступу та іншими об’єктами конфігурації. У продуктах BAS також використовується споріднена технологічна база, тому багато підходів до програмування, модулів, запитів і подій є подібними.

Мова 1С не є універсальною мовою на кшталт Java, Python або C#. Вона створена насамперед для прикладної автоматизації обліку: бухгалтерії, складу, продажів, закупівель, зарплати, виробництва, ПДВ, взаєморозрахунків і регламентованої звітності.

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

Проста аналогія. Конфігурація 1С — це “скелет” системи: довідники, документи, регістри, звіти. Мова 1С — це “нервова система”, яка описує, як ці об’єкти поводяться.

Важливо про та BAS. В Україні продукти екосистеми і частина продуктів BAS пов’язані з санкційними, юридичними, кібербезпековими та репутаційними ризиками. Указ Президента України №184/2020 ввів у дію рішення РНБО щодо застосування, скасування і внесення змін до санкцій, а Держспецзв’язку веде перелік забороненого до використання програмного забезпечення, де згадуються продукти 1С/BAS, зокрема 1C:Підприємство 8 і BAS ERP. Перед підтримкою, використанням або міграцією таких систем потрібно перевіряти актуальні офіційні обмеження. :contentReference[oaicite:0]{index=0}

Що таке мова 1С

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

За допомогою мови 1С описують:

  • заповнення документів;
  • проведення документів;
  • рухи по регістрах;
  • перевірки перед записом;
  • алгоритми розрахунків;
  • форми користувача;
  • кнопки і команди;
  • зовнішні обробки;
  • зовнішні звіти;
  • друковані форми;
  • обміни даними;
  • HTTP-сервіси;
  • JSON/XML-інтеграції;
  • регламентні завдання;
  • правила доступу;
  • запити до бази даних;
  • обробку помилок.

Мова 1С тісно пов’язана з метаданими конфігурації: довідниками, документами, регістрами, планами рахунків, звітами, обробками й модулями.

Для чого потрібна мова 1С

Мова 1С потрібна для того, щоб система виконувала бізнес-правила компанії.

Наприклад:

  • при проведенні реалізації списати товар зі складу;
  • при оплаті покупця закрити борг;
  • при надходженні товару сформувати партію;
  • при зміні ціни перевірити права користувача;
  • при створенні замовлення перевірити залишок;
  • при випуску продукції списати матеріали за специфікацією;
  • при закритті місяця розрахувати собівартість;
  • при інтеграції сформувати JSON;
  • при формуванні звіту отримати дані з регістрів.

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

Особливості мови 1С

Мова 1С має кілька характерних особливостей:

  • орієнтована на бізнес-облік;
  • має російськомовний і англомовний синтаксис у різних варіантах платформи;
  • тісно інтегрована з метаданими;
  • підтримує роботу з довідниками, документами, регістрами;
  • має вбудовану мову запитів;
  • підтримує клієнт-серверну архітектуру;
  • має подієву модель;
  • дозволяє створювати зовнішні обробки і звіти;
  • активно використовує типи платформи: СправочникСсылка, ДокументОбъект, ТаблицаЗначений, Запрос тощо;
  • використовується і для інтерфейсу, і для серверної бізнес-логіки.

Приклад простого коду 1С

Приклад процедури, яка виводить повідомлення користувачу:

Процедура Привітатися()

    Повідомити("Привіт! Це приклад коду 1С.");

КонецПроцедуры

Англомовний стиль у платформі може виглядати так:

Procedure SayHello()

    Message("Hello! This is a 1C code example.");

EndProcedure

У реальних українських і російськомовних конфігураціях найчастіше зустрічається російськомовний синтаксис.

Процедури і функції

У мові 1С є два основні типи підпрограм:

  • процедура;
  • функція.

Процедура виконує дію, але не повертає результат.

Процедура ЗаписатиПовідомлення(ТекстПовідомлення)

    Повідомити(ТекстПовідомлення);

КонецПроцедуры

Функція повертає значення.

Функция РозрахуватиСуму(Кількість, Ціна)

    Возврат Кількість * Ціна;

КонецФункции

Приклад використання:

Сума = РозрахуватиСуму(10, 150);
Повідомити(Сума);

Змінні

Змінні в 1С можуть створюватися без явного оголошення типу.

Приклад:

Кількість = 10;
Ціна = 150;
Сума = Кількість * Ціна;

Повідомити(Сума);

Тип значення визначається за тим, що присвоєно змінній.

Приклади типів:

Значення Тип Приклад
100 Число Кількість = 100
"Товар А" Рядок Назва = "Товар А"
'2026-05-15' Дата ДатаДок = ТекущаяДата()
Истина / Ложь Булево Проведено = Истина
Ссылка Посилання на об’єкт Контрагент = Документ.Контрагент

Умови

Умови використовуються для перевірок.

Если Сума > 10000 Тогда
    Повідомити("Велика сума документа");
Иначе
    Повідомити("Звичайна сума документа");
КонецЕсли;

Приклад перевірки заповнення реквізиту:

Если Не ЗначениеЗаполнено(Контрагент) Тогда
    Сообщить("Не заповнений контрагент");
    Отказ = Истина;
КонецЕсли;

Цикли

У мові 1С є цикли.

Приклад циклу по рядках табличної частини документа:

Для Каждого РядокТовару Из Товары Цикл

    СумаРядка = РядокТовару.Кількість * РядокТовару.Ціна;
    РядокТовару.Сума = СумаРядка;

КонецЦикла;

Приклад циклу з лічильником:

Для Номер = 1 По 10 Цикл
    Повідомити("Рядок " + Строка(Номер));
КонецЦикла;

Масиви, структури і відповідності

У 1С часто використовуються службові типи даних.

Масив — список значень.

СписокКодів = Новый Массив;
СписокКодів.Добавить("SKU-001");
СписокКодів.Добавить("SKU-002");

Структура — набір ключів і значень.

Параметри = Новый Структура;
Параметри.Вставить("Організація", Організація);
Параметри.Вставить("Дата", ТекущаяДата());

Соответствие — словник ключ → значення.

Ціни = Новый Соответствие;
Ціни.Вставить("SKU-001", 1200);
Ціни.Вставить("SKU-002", 850);

Таблиця значень

ТаблицаЗначений — один із найпоширеніших типів у мові 1С.

Вона використовується для тимчасових таблиць у коді.

Таблиця = Новый ТаблицаЗначений;
Таблиця.Колонки.Добавить("Номенклатура");
Таблиця.Колонки.Добавить("Кількість");
Таблиця.Колонки.Добавить("Сума");

НовийРядок = Таблиця.Добавить();
НовийРядок.Номенклатура = "Товар А";
НовийРядок.Кількість = 10;
НовийРядок.Сума = 1500;

Таблиця значень часто використовується в обробках, звітах, інтеграціях і проміжних розрахунках.

Модулі 1С

Код у 1С розміщується в модулях.

Основні типи модулів:

Модуль Для чого використовується Приклад
Модуль об’єкта Логіка конкретного документа або довідника Проведення реалізації
Модуль форми Логіка форми користувача Натискання кнопки
Загальний модуль Спільні процедури і функції Розрахунок цін, інтеграції
Модуль менеджера Логіка менеджера об’єкта Створення, пошук, службові методи
Модуль команди Обробка команди Кнопка “Вивантажити JSON”
Модуль сеансу Логіка старту сеансу користувача Ініціалізація параметрів
Модуль керованого додатка Загальна логіка клієнтського додатка Стартові налаштування

Модуль об’єкта

Модуль об’єкта містить код, який стосується конкретного об’єкта.

Наприклад, у документі “Реалізація товарів” модуль об’єкта може містити:

  • перевірку перед записом;
  • перевірку перед проведенням;
  • формування рухів по регістрах;
  • заповнення реквізитів;
  • обробку проведення;
  • скасування проведення.

Приклад:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    Если Не ЗначениеЗаполнено(Контрагент) Тогда
        Сообщить("Не заповнений контрагент");
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

Модуль форми

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

Наприклад:

  • натискання кнопки;
  • зміна поля;
  • відкриття форми;
  • заповнення табличної частини;
  • показ повідомлення;
  • виклик серверної процедури.

Приклад кнопки:

&НаКлиенте
Процедура ЗаповнитиТовари(Команда)

    ЗаповнитиТовариНаСервері();

КонецПроцедуры

&НаСервере
Процедура ЗаповнитиТовариНаСервері()

    // Тут може бути серверна логіка заповнення

КонецПроцедуры

Загальні модулі

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

Приклади:

  • робота з цінами;
  • робота з залишками;
  • розрахунок собівартості;
  • формування JSON;
  • обмін із сайтом;
  • банківська інтеграція;
  • службові перевірки;
  • логування;
  • права доступу;
  • універсальні функції.

Приклад функції в загальному модулі:

Функция ОтриматиСумуДокумента(Товари) Экспорт

    Сума = 0;

    Для Каждого Рядок Из Товари Цикл
        Сума = Сума + Рядок.Сума;
    КонецЦикла;

    Возврат Сума;

КонецФункции

Ключове слово Экспорт дозволяє викликати функцію з інших модулів.

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

У керованих формах важливо розуміти, де виконується код:

  • на клієнті;
  • на сервері;
  • на сервері без контексту;
  • на клієнті на сервері через виклик.

Позначки:

&НаКлиенте
Процедура КлієнтськаПроцедура()
КонецПроцедуры

&НаСервере
Процедура СервернаПроцедура()
КонецПроцедуры

&НаСервереБезКонтекста
Функция СервернаФункціяБезКонтексту()
КонецФункции

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

Типова помилка клієнт-сервер

Помилка: розробник намагається виконати серверну операцію на клієнті.

Наприклад, складний запит або запис об’єкта не повинен виконуватися напряму в клієнтському коді.

Правильний підхід:

  • форма викликає клієнтську процедуру;
  • клієнтська процедура викликає серверну;
  • серверна процедура працює з даними;
  • результат повертається на клієнт.

Події в 1С

Мова 1С активно використовує подієву модель.

Приклади подій:

  • ПередЗаписью;
  • ПриЗаписи;
  • ПередПроведением;
  • ОбработкаПроведения;
  • ПриОткрытии;
  • ПриСозданииНаСервере;
  • ПриИзменении;
  • ПередУдалением;
  • ПриНажатии;
  • ПриВыборе;
  • ОбработкаЗаполнения.

Події дозволяють виконувати код у потрібний момент.

Проведення документа мовою 1С

Одна з найважливіших задач мови 1С — проведення документів.

При проведенні документ може формувати рухи по регістрах.

Приклад спрощеної логіки:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    Для Каждого РядокТовару Из Товары Цикл

        Рух = Движения.ТоварыНаСкладах.Добавить();
        Рух.ВидДвижения = ВидДвиженияНакопления.Расход;
        Рух.Период = Дата;
        Рух.Склад = Склад;
        Рух.Номенклатура = РядокТовару.Номенклатура;
        Рух.Количество = РядокТовару.Кількість;

    КонецЦикла;

КонецПроцедуры

Це спрощений приклад, але він показує суть: документ створює рухи, які потім впливають на залишки і звіти.

Робота з довідниками

Мова 1С дозволяє створювати, шукати і змінювати елементи довідників.

Приклад створення елемента довідника:

НовийКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовийКонтрагент.Наименование = "ТОВ Ромашка";
НовийКонтрагент.КодПоЕДРПОУ = "12345678";
НовийКонтрагент.Записать();

Приклад пошуку за кодом:

Контрагент = Справочники.Контрагенты.НайтиПоКоду("000000123");

Если ЗначениеЗаполнено(Контрагент) Тогда
    Повідомити("Контрагент знайдений");
КонецЕсли;

Робота з документами

Мова 1С дозволяє створювати документи.

Приклад:

Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Док.Дата = ТекущаяДата();
Док.Организация = Організація;
Док.Контрагент = Контрагент;
Док.Склад = Склад;

Рядок = Док.Товары.Добавить();
Рядок.Номенклатура = Номенклатура;
Рядок.Количество = 10;
Рядок.Цена = 150;
Рядок.Сумма = 1500;

Док.Записать(РежимЗаписиДокумента.Проведение);

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

Робота з регістрами

Код 1С часто працює з регістрами через рухи документів або запити.

Регістри можуть бути:

  • накопичення;
  • відомостей;
  • бухгалтерії;
  • розрахунків.

Наприклад, документ реалізації може створити рух:

  • мінус товар на складі;
  • плюс борг покупця;
  • дохід;
  • ПДВ;
  • собівартість.

Рухи документа — основа облікової логіки.

Запити 1С

Мова 1С має власну мову запитів. Вона схожа на SQL, але адаптована під об’єкти платформи.

Приклад:

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков) КАК ТоварыНаСкладахОстатки

Виконання запиту в коді:

Запит = Новый Запрос;
Запит.Текст = "
|ВЫБРАТЬ
|   ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
|   ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
|ИЗ
|   РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков) КАК ТоварыНаСкладахОстатки";

Запит.УстановитьПараметр("ДатаОстатков", ТекущаяДата());

Результат = Запит.Выполнить();
Вибірка = Результат.Выбрать();

Пока Вибірка.Следующий() Цикл
    Повідомити(Вибірка.Номенклатура);
КонецЦикла;

Запити і СКД

СКД 1С часто використовує запити як джерело даних.

Розробник пише запит, а СКД дозволяє користувачу:

  • вибирати поля;
  • групувати;
  • фільтрувати;
  • сортувати;
  • рахувати підсумки;
  • робити розшифровки.

Тому знання мови запитів — одна з ключових навичок розробника 1С.

Робота з JSON

У сучасних інтеграціях 1С часто працює з JSON.

Приклад формування структури для JSON:

Дані = Новый Структура;
Дані.Вставить("order_number", "WEB-10025");
Дані.Вставить("customer", "ТОВ Ромашка");
Дані.Вставить("total", 5300);

ЗаписJSON = Новый ЗаписьJSON;
ЗаписJSON.УстановитьСтроку();

ЗаписатьJSON(ЗаписJSON, Дані);

РядокJSON = ЗаписJSON.Закрыть();

Приклад результату:

{
  "order_number": "WEB-10025",
  "customer": "ТОВ Ромашка",
  "total": 5300
}

JSON використовується для інтеграцій із сайтами, банками, маркетплейсами, CRM, WMS, MES і K2 ERP.

HTTP-запити в 1С

Мова 1С дозволяє виконувати HTTP-запити до зовнішніх сервісів.

Сценарії:

  • передати замовлення на сайт;
  • отримати оплату з банку;
  • вивантажити залишки;
  • отримати курси валют;
  • передати дані в CRM;
  • обмінятися з K2 ERP;
  • викликати API.

Приклад спрощеної логіки:

HTTPСоединение = Новый HTTPСоединение("api.example.com", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL);

ЗапросHTTP = Новый HTTPЗапрос("/orders");
ЗапросHTTP.Заголовки.Вставить("Content-Type", "application/json");

Ответ = HTTPСоединение.Получить(ЗапросHTTP);

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

Обробка помилок

У 1С використовується конструкція Попытка / Исключение.

Попытка

    Док.Записать();

Исключение

    Сообщить("Помилка запису документа: " + ОписаниеОшибки());

КонецПопытки;

Обробка помилок важлива для:

  • інтеграцій;
  • запису документів;
  • проведення;
  • роботи з файлами;
  • HTTP-запитів;
  • регламентних завдань;
  • міграційних обробок.

Логування

Логування потрібне, щоб зрозуміти, що сталося в системі.

Логувати варто:

  • дату і час;
  • користувача;
  • дію;
  • документ;
  • параметри;
  • результат;
  • текст помилки;
  • ID зовнішньої системи;
  • JSON-запит або відповідь, якщо це безпечно;
  • статус інтеграції.

Не можна бездумно логувати паролі, токени, персональні дані, зарплату або банківські ключі.

Регламентні завдання мовою 1С

Регламентні завдання 1С можуть запускати код автоматично за розкладом.

Приклади:

  • завантажити банківську виписку;
  • оновити ціни;
  • вивантажити залишки на сайт;
  • перевірити статуси замовлень;
  • сформувати звіт;
  • виконати обмін;
  • очистити тимчасові дані;
  • перевірити помилки інтеграції.

Код регламентного завдання має бути стійким до помилок і мати логування.

Зовнішні обробки мовою 1С

Зовнішня обробка 1С — це файл з кодом, який можна запускати без зміни основної конфігурації.

Вона може:

  • імпортувати дані;
  • експортувати дані;
  • робити масові зміни;
  • формувати JSON;
  • виконувати міграцію;
  • виправляти дані;
  • перевіряти залишки;
  • формувати звіти;
  • працювати з API.

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

Зовнішні звіти мовою 1С

Зовнішній звіт 1С може містити запити, СКД і код для формування аналітики.

Зовнішні звіти використовуються для:

  • управлінської аналітики;
  • перевірки залишків;
  • міграційних вибірок;
  • контролю ПДВ;
  • аналізу взаєморозрахунків;
  • аналізу виробництва;
  • експорту в Excel;
  • підготовки даних для Power BI.

Типові приклади задач мовою 1С

Задача Що робить код Приклад
Перевірка документа Забороняє запис без обов’язкових полів Не проводити без контрагента
Проведення Формує рухи по регістрах Списати товар зі складу
Заповнення Автоматично заповнює табличну частину Заповнити ціни
Звіт Отримує дані запитом Продажі по товарах
Інтеграція Формує JSON і відправляє API Передати замовлення
Міграція Вивантажує довідники і залишки Перенести в K2 ERP

Приклад: перевірка залишку перед продажем

Спрощений приклад:

Для Каждого РядокТовару Из Товары Цикл

    Залишок = ОтриматиЗалишок(РядокТовару.Номенклатура, Склад, Дата);

    Если Залишок < РядокТовару.Кількість Тогда
        Сообщить("Недостатньо товару: " + Строка(РядокТовару.Номенклатура));
        Отказ = Истина;
    КонецЕсли;

КонецЦикла;

У реальному коді залишок краще отримувати одним запитом по всіх товарах, а не окремим запитом у циклі.

Типова помилка: запит у циклі

Погана практика:

Для Каждого Рядок Из Товары Цикл
    Залишок = ОтриматиЗалишокЗапитом(Рядок.Номенклатура);
КонецЦикла;

Якщо в документі 500 рядків, буде 500 запитів.

Краще:

  • зібрати всі номенклатури;
  • виконати один запит;
  • отримати таблицю залишків;
  • зіставити дані в коді.

Це значно швидше і менше навантажує базу.

Типові помилки мови 1С

Помилка Причина Наслідок
Запит у циклі Розробник робить окремий запит для кожного рядка Повільна робота системи
Немає перевірки заповнення Код не перевіряє обов’язкові поля Документи проводяться з помилками
Ручні рухи без логіки Рухи створені без контролю залишків Неправильні регістри
Код на клієнті замість сервера Неправильне розділення логіки Помилки і повільна робота
Немає обробки помилок Інтеграція падає без пояснення Важко підтримувати
Хардкод Значення зашиті в коді Важко змінювати систему
Немає логування Помилки не фіксуються Неможливо знайти причину

Хардкод у мові 1С

Хардкод — це коли значення жорстко записані в коді.

Погано:

Если Склад.Код = "000000001" Тогда
    // Особлива логіка
КонецЕсли;

Краще:

  • винести склад у налаштування;
  • використовувати константу;
  • використовувати регістр відомостей;
  • використовувати роль або параметр;
  • документувати правило.

Хардкод ускладнює міграцію, підтримку і тестування.

Безпека коду 1С

Код 1С може працювати з критичними даними.

Потрібно контролювати:

  • права доступу;
  • зовнішні обробки;
  • небезпечні масові зміни;
  • інтеграційні токени;
  • персональні дані;
  • зарплату;
  • банківські реквізити;
  • собівартість;
  • ПДВ;
  • логування;
  • аудит дій.

Важливо. Код 1С може змінити документи, регістри, залишки, зарплату, ПДВ і фінансовий результат. Тому доступ до розробки, зовнішніх обробок і виконання коду має бути обмежений.

Аудит змін коду

Для підтримки системи важливо знати:

  • хто змінив код;
  • коли змінив;
  • що саме змінив;
  • для якої задачі;
  • чи було тестування;
  • чи є резервна копія;
  • чи вплинула зміна на регістри;
  • чи змінилися звіти;
  • чи потрібно перепроведення;
  • чи потрібно перезакриття місяця.

Без аудиту зміни коду можуть створювати приховані помилки в обліку.

Мова 1С і продуктивність

Продуктивність коду 1С залежить від:

  • кількості запитів;
  • роботи з великими таблицями;
  • циклів;
  • звернень до бази;
  • клієнт-серверного розділення;
  • індексів у запитах;
  • використання регістрів;
  • розміру табличних частин;
  • блокувань;
  • регламентних завдань.

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

Як писати код 1С краще

Практичні принципи:

  • не робити запити в циклі без потреби;
  • використовувати регістри замість перебору документів;
  • перевіряти обов’язкові поля;
  • логувати інтеграції;
  • обробляти помилки;
  • не хардкодити ключові значення;
  • розділяти клієнтський і серверний код;
  • писати зрозумілі імена процедур;
  • коментувати складну логіку;
  • тестувати на копії бази;
  • перевіряти рухи документів;
  • перевіряти контрольні звіти після змін.

Мова 1С і міграція в K2 ERP

Під час переходу з або BAS у K2 ERP важливо аналізувати не тільки дані, а й код.

У коді 1С може бути захована критична бізнес-логіка:

  • правила проведення документів;
  • розрахунок знижок;
  • розрахунок цін;
  • розрахунок собівартості;
  • виробничі алгоритми;
  • інтеграції з банками;
  • обміни з сайтами;
  • правила ПДВ;
  • зарплатні доопрацювання;
  • зовнішні обробки;
  • друковані форми;
  • СКД-звіти;
  • обмеження прав;
  • специфічні перевірки.

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

Що перевірити перед міграцією коду 1С

Перед міграцією потрібно перевірити:

  • змінені модулі конфігурації;
  • зовнішні обробки;
  • зовнішні звіти;
  • регламентні завдання;
  • HTTP-сервіси;
  • інтеграції;
  • друковані форми;
  • код проведення документів;
  • загальні модулі;
  • ручні обробки для бухгалтерії;
  • обробки завантаження банку;
  • обробки прайсів;
  • обробки міграції;
  • СКД-звіти;
  • хардкод;
  • обхід прав доступу;
  • небезпечні масові зміни.

Варіанти перенесення логіки 1С у K2 ERP

Логіка в 1С Що робити в K2 ERP Приклад
Типова логіка Замінити стандартним механізмом K2 ERP Продаж, закупівля, склад
Корисне доопрацювання Реалізувати як бізнес-правило Контроль мінімальної ціни
Застарілий код Не переносити Старий обмін із неактивним сайтом
Інтеграція Перепроєктувати через API Банк, сайт, CRM
Звіт Перенести в Power BI або стандартний звіт Продажі з маржею
Міграційна обробка Використати для разового експорту Вивантаження залишків
Хардкод Замінити налаштуваннями Склад, організація, вид ціни

Карта міграції коду 1С

Об’єкт 1С Що означає Аналог у K2 ERP Контроль
Модуль документа Логіка документа Business logic / workflow Проведення, перевірки
Загальний модуль Спільні функції Service layer Чи потрібна логіка
Зовнішня обробка Окрема утиліта Tool / migration script / API job Безпека і актуальність
Зовнішній звіт Аналітика Report / Power BI Контрольні суми
Регламентне завдання Автозапуск Scheduler / background job Логи і статуси
HTTP-сервіс API REST API Авторизація, формат
Запит 1С Вибірка даних SQL/API/Dataset Звірка результатів

Реплікатор K2 і мова 1С

Реплікатор K2 може допомогти при переході з або BAS у K2 ERP.

Він може використовуватися для:

  • вивантаження довідників;
  • вивантаження документів;
  • вивантаження регістрів;
  • вивантаження залишків;
  • формування JSON;
  • підготовки контрольних сум;
  • перевірки міграції;
  • аналізу старої бізнес-логіки;
  • паралельного запуску 1С/BAS і K2 ERP;
  • підготовки даних для Power BI.

Мова 1С і Power BI

Мова 1С може використовуватися для підготовки даних для Power BI:

  • вивантаження продажів;
  • вивантаження залишків;
  • вивантаження взаєморозрахунків;
  • вивантаження собівартості;
  • вивантаження виробництва;
  • вивантаження зарплати;
  • формування проміжних таблиць;
  • формування JSON або CSV;
  • підготовка контрольних сум.

Але для регулярної BI-аналітики краще будувати стабільний шар даних, API або сховище, а не залежати від ручних обробок у старій базі.

Мова 1С у сучасній ERP-архітектурі

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

  • backend-сервісами;
  • API;
  • workflow;
  • бізнес-правилами;
  • SQL;
  • BI-моделлю;
  • інтеграційною шиною;
  • чергами повідомлень;
  • планувальником задач;
  • мікросервісами;
  • Power BI;
  • K2 ERP.

У K2 ERP частину старої логіки можна замінити стандартними механізмами, частину — налаштуваннями, частину — API, частину — окремими сервісами або BI-звітами.

Санкції та ризики використання 1С/BAS в Україні

При описі мови 1С і розробки для / BAS в українському контексті потрібно згадувати санкційні та безпекові ризики.

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

Указ Президента України №184/2020 ввів у дію рішення РНБО від 14 травня 2020 року щодо застосування, скасування і внесення змін до персональних спеціальних економічних та інших обмежувальних заходів. Держспецзв’язку веде офіційний перелік забороненого до використання програмного забезпечення та комунікаційного обладнання; у цьому переліку згадуються продукти 1С/BAS, зокрема 1C:Підприємство 8 і BAS ERP. :contentReference[oaicite:1]{index=1}

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

Типові питання

Що таке мова 1С?

Мова 1С — це вбудована мова платформи 1С:Підприємство, яка використовується для програмування бізнес-логіки, документів, форм, регістрів, звітів, обробок та інтеграцій.

Чи схожа мова 1С на SQL?

Ні. Мова 1С — це прикладна мова програмування, а мова запитів 1С — окрема SQL-подібна мова для вибірки даних із бази.

Де зберігається код 1С?

Код зберігається в модулях: модулях об’єктів, форм, загальних модулях, модулях менеджерів, командах, зовнішніх обробках і звітах.

Що таке модуль об’єкта?

Це модуль конкретного довідника, документа або іншого об’єкта, де описується його поведінка: запис, проведення, перевірки, рухи.

Чому код 1С може бути небезпечним?

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

Що важливо при міграції з 1С у K2 ERP?

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

Коротко

Питання Відповідь
Що таке мова 1С? Вбудована мова програмування платформи 1С:Підприємство.
Для чого потрібна? Для бізнес-логіки, документів, форм, звітів, регістрів, обробок та інтеграцій.
Де пишеться код? У модулях об’єктів, форм, загальних модулях, зовнішніх обробках і звітах.
Що таке процедура? Підпрограма, яка виконує дію і не повертає значення.
Що таке функція? Підпрограма, яка повертає значення.
Що найчастіше ламається? Проведення, запити, клієнт-сервер, інтеграції, права, хардкод, продуктивність.
Що важливо при міграції? Переносити не текст коду, а потрібну бізнес-логіку в K2 ERP, API або Power BI.

Висновок

Мова 1С — це основний інструмент розробки й доопрацювання систем 1С/BAS. Вона дозволяє описувати поведінку документів, форм, регістрів, звітів, обробок, інтеграцій і регламентних задач. Саме через код реалізуються правила бізнесу: як проводиться документ, як списуються товари, як розраховується ціна, як формується JSON, як працює звіт або як закривається місяць.

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

Мова 1С — це місце, де технічний код перетворюється на облікову поведінку бізнесу.

При переході з або BAS у K2 ERP важливо не намагатися механічно переписати весь старий код. Потрібно провести аудит: які алгоритми реально потрібні, які застаріли, які є дублями, які можна замінити стандартними механізмами K2 ERP, які варто винести в API, а які краще перенести в Power BI або окремі сервіси.

Правильна міграція мови 1С — це не перенесення синтаксису, а перенесення корисної бізнес-логіки в сучасну, безпечну і контрольовану ERP-архітектуру.

Див. також

Зовнішні посилання