Мова 1С
Мова 1С — це вбудована мова програмування платформи 1С / 1С:Підприємство, яка використовується для опису бізнес-логіки, проведення документів, роботи з довідниками, регістрами, звітами, обробками, формами, інтеграціями, запитами, правами доступу та іншими об’єктами конфігурації. У продуктах BAS також використовується споріднена технологічна база, тому багато підходів до програмування, модулів, запитів і подій є подібними.
Мова 1С не є універсальною мовою на кшталт Java, Python або C#. Вона створена насамперед для прикладної автоматизації обліку: бухгалтерії, складу, продажів, закупівель, зарплати, виробництва, ПДВ, взаєморозрахунків і регламентованої звітності.
Головне. Мова 1С — це інструмент, яким описують поведінку облікової системи: що робить документ при проведенні, як заповнюється форма, як формується звіт, як працює обмін і які рухи потрапляють у регістри.
Проста аналогія. Конфігурація 1С — це “скелет” системи: довідники, документи, регістри, звіти. Мова 1С — це “нервова система”, яка описує, як ці об’єкти поводяться.
Важливо про 1С та BAS. В Україні продукти екосистеми 1С і частина продуктів 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
Під час переходу з 1С або 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 може допомогти при переході з 1С або 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С і розробки для 1С / BAS в українському контексті потрібно згадувати санкційні та безпекові ризики.
1С історично є російською програмною екосистемою. Після початку російської агресії проти України використання такого програмного забезпечення стало питанням не тільки бухгалтерії, а й кібербезпеки, комплаєнсу, репутації та цифрової незалежності.
Указ Президента України №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С — це місце, де технічний код перетворюється на облікову поведінку бізнесу.
При переході з 1С або BAS у K2 ERP важливо не намагатися механічно переписати весь старий код. Потрібно провести аудит: які алгоритми реально потрібні, які застаріли, які є дублями, які можна замінити стандартними механізмами K2 ERP, які варто винести в API, а які краще перенести в Power BI або окремі сервіси.
Правильна міграція мови 1С — це не перенесення синтаксису, а перенесення корисної бізнес-логіки в сучасну, безпечну і контрольовану ERP-архітектуру.
Див. також
- 1С
- BAS
- BAS ERP
- K2 ERP
- ERP
- Проведення документа 1С
- Рухи документа 1С
- Регістри 1С
- Регістр накопичення 1С
- Регістр відомостей 1С
- Регістр бухгалтерії 1С
- Регістр розрахунків 1С
- СКД 1С
- Запити 1С
- Зовнішня обробка 1С
- Зовнішній звіт 1С
- Регламентні завдання 1С
- Інтеграція через JSON
- Інтеграція з банками
- Типи цін 1С
- Партії 1С
- Виробництво 1С
- Специфікація 1С
- Закриття місяця 1С
- ПДВ 1С
- Зарплата 1С
- Кадровий облік 1С
- Power BI
- BI система
- Вивантаження даних 1С
- Міграція даних з 1С
- Міграція з 1С
- Міграція з BAS
- Заміна BAS
- Реплікатор K2
- Права доступу в ERP
- Аудит дій
- Українське програмне забезпечення
- Цифрова незалежність
Зовнішні посилання
- Мова 1С
- Програмування 1С
- Розробка 1С
- Код 1С
- Запити 1С
- Модулі 1С
- Зовнішні обробки
- Зовнішні звіти
- СКД 1С
- Інтеграція
- JSON
- API
- Регламентні завдання
- Регістри 1С
- Проведення документа
- Рухи документа
- 1С
- BAS
- BAS ERP
- K2 ERP
- ERP
- Міграція даних
- Міграція з 1С
- Міграція з BAS
- Заміна BAS
- Реплікатор K2
- Power BI
- Права доступу
- Аудит дій
- Автоматизація бізнесу
- Українське програмне забезпечення
- Цифрова незалежність України