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

Модуль 1С

Матеріал з K2 ERP Wiki

Код у модулях пишеться вбудованою мовою платформи . Аналіз модулів — це частина підготовки до виходу зі старої ризикової системи. |- | Що перевірити перед міграцією? КонецФункции </syntaxhighlight> Вони використовуються для: Функция РассчитатьПДВ(СуммаБезПДВ, СтавкаПДВ) Экспорт

Если Результат.Следующий() Тогда

Друковані форми часто формуються через модулі. Поганий компонент:

  • код без коментарів;
  • застарілі доробки;
  • дублювання функцій;
  • одна й та сама логіка в кількох модулях;
  • тимчасові виправлення стали постійними;
  • немає документації;
  • програміст, який писав код, уже не функціонує;
  • компонент містить приховані бізнес-правила;
  • запити працюють повільно;
  • інтеграції залежать від старих файлів;
  • код змінює проведені документи;
  • код обходить стандартні перевірки;
  • код має жорстко прописані шляхи до файлів;
  • код має логіни, паролі або токени;
  • код функціонує тільки на одному комп’ютері. критично про 1С і BAS. та частина продуктів BAS мають санкційні, юридичні й кібербезпекові ризики в Україні.</syntaxhighlight>
  • пароль FTP;
  • токен API;
  • логін банку;
  • ключ сервісу;
  • email-пароль;
  • шлях до мережевої папки;
  • секретний ключ інтеграції. Під час міграції такі інформаційні дані потрібно не без зусиль переносити, а переоформлювати безпечно.== компонент команди ==

Типові помилки при аналізі модулів

Отказ = Истина;
// Далі формуються рухи

|- | Модулі документів | Знайти правила проведення |- | Модулі форм | Знайти логіку інтерфейсу і кнопок |- | Загальні модулі | Знайти спільні бізнес-правила |- | Модулі менеджерів | Знайти службові функції |- | Зовнішні обробки | Знайти імпорт, експорт, масові зміни |- | Регламентні задача | Знайти автоматичні процеси |- | Інтеграційний код | Знайти зовнішні системи |- | Жорсткі значення | Знайти приховані залежності |- | Паролі й токени | Усунути ризики безпеки |}

Возврат Количество * Цена;

"ВЫБРАТЬ

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

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

Вбудована мова 1С

</syntaxhighlight>

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

</syntaxhighlight>

Модулі і зовнішні обробки

Модулі часто містять обробники подій. Позначки:

Приклад логіки:

  • спільні функції;
  • розрахунки;
  • перевірки;
  • обмін даними;
  • роботу з файлами;
  • роботу з API;
  • сервісні процедури;
  • правила заповнення;
  • функції для звітів;
  • функції для друкованих форм. Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

У модулях часто зустрічаються жорстко прописані значення. Модулі можуть опрацьовувати персональні інформаційні дані: Движение.Период = Дата;

Типові проблеми модулів 1С

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

ЗапросHTTP = Новый HTTPЗапрос("/products"); !

Загальний компонент

Модулі потрібні для реалізації логіки системи. | Так. Це накопичена логіка бізнесу.== Приклад: перенесення розрахунку знижок ==

  • ПередЗаписью;
  • ПриЗаписи;
  • ОбработкаПроведения;
  • ПередУдалением;
  • ПриОткрытии;
  • ПриИзменении;
  • ПриСозданииНаСервере;
  • ПередЗакрытием;
  • ОбработкаЗаполнения. Запрос.УстановитьПараметр("складський облік", складський облік);

Приклад таблиці опису: Тоді BI-звіти залежать від цієї логіки. Один із найважливіших модулів — компонент проведення документа.== компонент форми ==

Процедура ПриИзмененииКоличество(Элемент) Результат = Запрос.Выполнить(); Приклади інтеграцій:

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

|- | VIP-клієнт | 10% | Високий | Не потрібно |- | Замовлення понад 100 000 грн | 5% | Середній | Не потрібно |- | Нижче мінімальної ціни | Заборонено | Критичний | Потрібне погодження |}

<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">

як приклад:

* проведення документів;
* контроль залишків;
* розрахунок цін;
* розрахунок знижок;
* друковані форми;
* обміни;
* права доступу;
* повідомлення про помилки;
* інтеграції;
* регламентні дії;
* API;
* BI-звіти;
* бухгалтерські проводки;
* складські рухи. Тип модуля

* рахунок;
* видаткова накладна;
* акт;
* ТТН;
* податкова накладна;
* касовий ордер;
* авансовий звіт;
* внутрішній бланк;
* етикетка;
* штрихкод.<syntaxhighlight lang="bsl">

Доробки можуть бути:

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

* `&НаКлиенте`;
* `&НаСервере`;
* `&НаСервереБезКонтекста`;
* `&НаКлиентеНаСервереБезКонтекста`. | Модулі документів, загальні модулі, форми, зовнішні обробки, розширення, інтеграції, регламентні задача, права доступу й секрети.== Нестандартні доробки в модулях ==

* отримує інформаційні дані документа;
* заповнює макет;
* розраховує підсумки;
* формує табличний документ;
* виводить форму на друк.== Вступ ==

У K2 ERP краще не копіювати старий XML-код без аналізу, а описати обмін заново: ! Відповідь

== Міграція логіки з модулів у K2 ERP ==

Коротко

Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

Приклад: перенесення обміну з сайтом

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

  • CSV;
  • XML;
  • JSON;
  • TXT;
  • Excel;
  • DBF;
  • ZIP;
  • зображеннями;
  • PDF;
  • файлами банку;
  • файлами обміну. {| class="wikitable" style="width:100%;"

Модулі і цифрова незалежність

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

Головне. компонент — це місце, де написана логіка системи. # Визначити, що реалізувати в K2 ERP. КонецЦикла;

* перевіряє залишки;
* підставляє ціни;
* перевіряє ліміт боргу;
* формує проводки;
* створює рухи по складах;
* перевіряє ПДВ;
* формує друковану накладну;
* вивантажує інформаційні дані на сайт;
* відправляє повідомлення менеджеру;
* блокує проведення при помилках. Перед міграцією потрібно зрозуміти:
'''компонент об’єкта''' містить код, який належить конкретному об’єкту: документу, довіднику, обробці або іншому елементу конфігурації.[[Категорія:Автоматизація бізнесу]]

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

Правильний порядок:

<syntaxhighlight lang="bsl">

* довгі процедури на сотні або тисячі рядків;
* повторення одного коду;
* незрозумілі назви змінних;
* відсутність коментарів;
* закоментовані старі блоки;
* тимчасові умови;
* жорстко прописані коди;
* залежність від старих довідників;
* код для вже неактуальних процесів;
* обробки, які ніхто не розуміє.== Експортні процедури і функції ==

У [[K2 ERP]] це потрібно описати як бізнес-правило:

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

 Отказ = Истина;

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

* формувати рухи по регістрах;
* формувати бухгалтерські проводки;
* списувати товари;
* оприбутковувати товари;
* змінювати взаєморозрахунки;
* змінювати залишки грошей;
* розраховувати ПДВ;
* контролювати залишки;
* створювати пов’язані документи. Коментар
 Сообщить("Не заповнено контрагента.");
як приклад, у документа “Реалізація товарів” компонент об’єкта здатна містити:
КонецФункции
 
Це спрощений приклад логіки проведення документа. Движение.Контрагент = Контрагент;
Під час аналізу модулів потрібно перевірити:
== Модулі і інтеграції ==

== Модулі і персональні інформаційні дані ==

 // Для кожного рядка виконується окремий запит
== Див. так само ==
Приклад:
|-
| Що таке компонент [[1С]]? # Зібрати всі зовнішні обробки.[[Категорія:Українське програмне забезпечення]]

Перед перенесенням потрібно зробити таблицю правил:

Процедура ЗаписатьСообщение(Текст)

== компонент об’єкта ==

* змінені типові модулі;
* загальні модулі з бізнес-логікою;
* модулі документів;
* модулі форм;
* модулі менеджерів;
* зовнішні обробки;
* інтеграційний код;
* запити до регістрів;
* ручні перевірки;
* правила проведення;
* обробники подій;
* регламентні задача;
* код із коментарями “тимчасово”;
* застарілий код, який уже не застосовується для. У цьому прикладі компонент перевіряє, чи заповнений контрагент перед записом документа. # Описати бізнес-правила людською мовою. Умова
 Движение.Период = Дата;
Приклад:
 
Движение = Движения.Взаиморасчеты.Добавить();
'''Правильний підхід.''' Модулі [[1С]] потрібно розглядати не як код для копіювання, а як джерело бізнес-знань, які потрібно зрозуміти, очистити, описати і перенести в сучасну архітектуру [[K2 ERP]]. КонецФункции

! Під час міграції потрібно вирішити, що робити з логікою модулів. ! як приклад:

* [[K2]]
* [[K2 ERP]]
* [[ERP]]
* [[1С]]
* [[BAS]]
* [[Конфігурація 1С]]
* [[Обробки 1С]]
* [[Запити 1С]]
* [[Документи 1С]]
* [[Довідники 1С]]
* [[Реквізити 1С]]
* [[Проводки 1С]]
* [[Журнал документів 1С]]
* [[Проведений документ 1С]]
* [[Непроведений документ 1С]]
* [[Номенклатура 1С]]
* [[Ціни номенклатури 1С]]
* [[Серії номенклатури 1С]]
* [[Курси валют 1С]]
* [[Каса 1С]]
* [[Податкова накладна 1С]]
* [[Фізичні особи 1С]]
* [[Табель обліку робочого часу 1С]]
* [[Собівартість 1С]]
* [[Інтеграція через файли]]
* [[Інтеграція через XML]]
* [[Імпорт даних]]
* [[Експорт даних]]
* [[API]]
* [[BI]]
* [[SQL]]
* [[JSON]]
* [[XML]]
* [[CSV]]
* [[Міграція з 1С]]
* [[Міграція з BAS]]
* [[Інтеграція з 1С]]
* [[Інтеграція з BAS]]
* [[Заміна 1С]]
* [[Заміна BAS]]
* [[Українське програмне забезпечення]]
* [[Автоматизація бізнесу]]
* [[Цифрова незалежність]]
* [[Деколонізація обліку]]

== Модулі і запити ==

* [https://erp.kyiv.ua Сайт K2 ERP]
* [https://wiki.erp.kyiv.ua Wiki K2 ERP]
* [https://cloud.corp2.eu хмарна інфраструктура K2 ERP]
* [https://cip.gov.ua/ua/statics/perelik-zaboronenogo-do-vikoristannya-programnogo-zabezpechennya-ta-komunikaciinogo-merezhevogo-obladnannya Перелік забороненого до використання програмного забезпечення на сайті Держспецзв’язку]
* [https://www.president.gov.ua/documents/6012024-52009 Указ Президента України №601/2024]
* [https://t.me/+uIdWI1W6vndkMTAy Telegram-канал K2 ERP]
* [https://t.me/+6jFwAZM6TQliNTdi Група обговорення функціоналу та пропозицій]
* [https://www.linkedin.com/company/k2erp/ LinkedIn K2]

<syntaxhighlight lang="bsl">
як приклад, у модулі менеджера довідника “Номенклатура” здатна бути функція пошуку товару за артикулом:
</div>
КонецПроцедуры
! // Логіка отримання ціни

[[Категорія:API]]
== Що таке компонент у 1С ==
Після перенесення логіки в [[K2 ERP]] потрібно тестувати не тільки інформаційні дані, а й поведінку системи. # Протестувати нові сценарії.[[Категорія:Експорт даних]]
 
Під час міграції недостатньо перенести тільки інформаційні дані. Приклад поганого підходу:

! Модулі можуть як захищати від помилок, так і створювати нові.<syntaxhighlight lang="bsl">

КонецЕсли;

* перевіряє обов’язкові поля;
* показує зрозуміле повідомлення;
* не дає можливість провести неправильний документ;
* логіює помилки;
* не змінює інформаційні дані мовчки.
КонецЕсли;
Сообщить("Недостатньо прав.");

Карта модулів

Позначка `Экспорт` означає, що функцію можна викликати з інших модулів. Що робить

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

Возврат Неопределено;
Запрос.УстановитьПараметр("Артикул", Артикул);
Під час проведення документ здатна:

Приклад сценаріїв:

Перед міграцією потрібно зібрати всі зовнішні обробки, які реально використовуються. # Зафіксувати результат у протоколі міграції. | Це частина конфігурації, де зберігається програмний код вбудованою мовою 1С. як приклад, користувач системи бачить документ “Реалізація товарів”. |-

Документ.Реализация.МодульОбъекта Перевірка залишків, проведення продажу Висока Перенести правила проведення
ОбщийМодуль.ОбменССайтом Вивантаження товарів і цін Висока Замінити API-інтеграцією K2 ERP
ОбщийМодуль.РасчетСкидок Розрахунок знижок Середня Описати бізнес-правила
Обработка.ЗагрузкаПрайса Імпорт цін із Excel Середня Реалізувати імпорт у K2 ERP
ПечатнаяФорма.Счет Друк рахунку Низька Переробити шаблон

Усе це здатна бути реалізовано в модулях. КонецПроцедуры

Або:

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

Перед переходом у K2 ERP потрібно проаналізувати модулі. * без зусиль скопіювати старі модулі в нову систему;

  • переписати весь код без аналізу користі;
  • не питати бізнес-середовище, чи правила ще актуальні;
  • не шукати приховані інтеграції;
  • ігнорувати модулі зовнішніх обробок;
  • не аналізувати права доступу;
  • не перевіряти безпеку секретів;
  • не документувати знайдену логіку;
  • залишити активною як “тимчасове джерело логіки” після запуску K2 ERP.

Розширення можуть містити:

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

Если Не РольДоступна("ПолныеПрава") Тогда

Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Артикул = &Артикул";

Краще отримувати інформаційні дані одним запитом і опрацьовувати результат. {| class="wikitable" style="width:100%;"

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

Документування модулів

компонент менеджера

компонент — це ключовий елемент конфігурації, у якому зберігається код і бізнес-логіка системи. Її часто називають:
- Ні. Если СуммаДокумента <= 0 Тогда
Сообщить("Сума документа має бути більшою за нуль.");
Отказ = Истина;
КонецЕсли;

КонецПроцедуры </syntaxhighlight>

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

Объект.Сумма = Объект.Количество * Объект.Цена;

Ответ = HTTPСоединение.Получить(ЗапросHTTP); Під час переходу в K2 ERP не потрібно переносити технічний борг механічно. Ця функція приймає кількість і ціну, а повертає суму. рішення для бізнесу Цей код здатна виконуватися при натисканні кнопки на формі. Запрос.УстановитьПараметр("Дата", Дата);

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

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

У багатьох компаніях роками доробляли. Якщо компонент неправильно формує рухи, обліковий облік буде неправильним. Модулі можуть працювати з файлами:

У старих базах часто зустрічаються проблеми: У старому модулі здатна бути логіка:
SEO-опис

Для чого потрібні модулі

  • вбудована мова 1С;
  • мова 1С;
  • BSL;
  • 1C:Enterprise script;
  • мова конфігурації. Процедура РассчитатьСуммуНаСервере()

Якщо цю логіку не знайти й не перенести в K2 ERP, бізнес-процеси можуть змінитися несподівано. Після запуску виявляється, що в старій системі були приховані правила знижок, контролю боргу, обміну з сайтом, проведення документів і формування звітів, без яких новий бізнес-процес функціонує інакше.== Модулі і продуктивність ==

як приклад:

Модулі і друковані форми

КонецЕсли;

У виступає як кілька типів модулів. Ознаки:

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

Возврат Результат.Ссылка;

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

Перед міграцією потрібно описати важливу логіку. ! Знижка

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

 
Функция РассчитатьСумму(Количество, Цена)
 
[[Категорія:Конфігурація 1С]]
&НаСервере

</div>

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

Потрібно перевірити:

* додаткові реквізити;
* змінені форми;
* нові команди;
* обробники подій;
* загальні модулі;
* інтеграційний код;
* перевизначену логіку. * щогодинний обмін із сайтом;
* нічне оновлення версій цін;
* завантаження курсів валют;
* формування резервних файлів;
* відправка повідомлень;
* синхронізація складів;
* створення звітів;
* очищення тимчасових даних. Якщо [[1С]] інтегрувалася із зовнішніми системами, у модулях здатна бути код роботи з HTTP. ! Движение.Сумма = СуммаДокумента;

ПутьКФайлу = "C:\Exchange\prices.csv";

# Зібрати список змінених модулів. # Знайти паролі, токени й небезпечні секрети. Що перевірити
== Модулі і права доступу ==
 Движение.складський облік = складський облік;
Приклад:

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

Цифрова незалежність. Модулі — це не без зусиль код. # Знайти розрахунки цін, знижок, собівартості. Функция ПолучитьСумму(Количество, Цена)

Модулі і K2 ERP

КонецПроцедуры Розуміння клієнтського і серверного коду важливе для продуктивності, інтеграцій і міграції логіки. * запити в циклі;

  • зайві звернення до бази;
  • обробка великих таблиць на клієнті;
  • відсутність фільтрів по даті;
  • надмірні з’єднання;
  • довгі обміни в робочий час;
  • блокування документів;
  • перепроведення великої кількості документів;
  • формування важких звітів без обмежень.
Під час переходу на [[K2 ERP]] модулі потрібно аналізувати так само уважно, як довідники, документи, регістри й залишки. Потрібно переносити бізнес-сенс. Для чого застосовується для

* сайт;
* інтернет-магазин;
* маркетплейс;
* банк;
* CRM;
* WMS;
* касова платформа;
* M.E.Doc або інший сервіс звітності;
* API постачальника;
* Excel-файли;
* XML-обмін;
* JSON-обмін;
* FTP;
* email;
* вебсервіси. # Розділити актуальну й застарілу логіку. Тому аналіз модулів [[1С]] часто виступає як підготовчим етапом до переходу на українську [[ERP]]-платформу, а не розвитком старої системи. Модулі часто виконують [[Запити 1С|запити]].[[Категорія:Заміна BAS]]

* завантаження прайсу постачальника;
* вивантаження товарів на сайт;
* імпорт курсів валют;
* експорт податкових накладних;
* завантаження банківської виписки;
* вивантаження залишків.<syntaxhighlight lang="bsl">
компонент сеансу здатна виконуватися при старті сеансу користувача. Приклади ризикових даних:

'''Простими словами.''' компонент [[1С]] — це місце, де програміст описує поведінку системи: що робити, коли користувач системи відкриває форму, записує документ, натискає кнопку або запускає обмін. це частина конфігурації [[1С]].</div>
У модулі форми можуть бути:
<syntaxhighlight lang="bsl">

<syntaxhighlight lang="bsl">

У [[1С]] у модулі документа здатна бути правило:

Частина коду здатна бути не в конфігурації, а в зовнішніх обробках. Отказ = Истина;

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

 Запрос.Текст =

* конфігурація процесів;
* правила проведення;
* перевірки;
* API;
* інтеграційні сценарії;
* права доступу;
* логіювання;
* шаблони документів;
* імпорт і експорт;
* [[BI]]-аналітику;
* регламентні задачі;
* окремі модулі K2 ERP;
* стандартні механізми системи. як приклад, у [[1С]] здатна бути доробка:

== Модулі і регістри ==

Если Контрагент.Код = "000123" Тогда

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

'''Процедура''' виконує дію, але не повертає значення. |}

Потрібно:

== Висновок ==

{| class="wikitable" style="width:100%;"

Если Остаток < Количество Тогда
 Сообщить("Недостатньо товару на складі.");
 Отказ = Истина;
КонецЕсли;
  • знайти важливу логіку;
  • описати бізнес-правила;
  • відокремити актуальні доробки від застарілих;
  • перевірити інтеграції;
  • знайти зовнішні обробки;
  • перевірити регламентні задача;
  • прибрати небезпечні паролі й токени;
  • не переносити технічний борг;
  • реалізувати потрібні правила в K2 ERP;
  • протестувати сценарії після запуску. # Знайти контроль залишків і боргів. Функция ПолучитьОсновнуюЦену(Номенклатура) Экспорт

SEO title: Модуль 1С — код, об’єкти, форми, загальні модулі, доробки та міграція в K2 ERP

SEO keywords: модуль 1С, модулі 1С, код 1С, BSL 1С, вбудована мова 1С, загальний модуль 1С, модуль форми 1С, модуль об'єкта 1С, модуль менеджера 1С, процедура 1С, функція 1С, доробки 1С, конфігурація 1С, міграція з 1С, інтеграція з 1С, заміна 1С, K2 ERP, українська ERP, санкції 1С, санкції BAS, цифрова незалежність

</noinclude>
 {{SEO
Шаблон для службового SEO-опису сторінки. 

}}


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

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

Запрос.Текст =

Модулі і API

Але за цим документом здатна бути код, який:

компонент менеджера належить типу об’єкта загалом, а не конкретному екземпляру. Приклад логіки:

Запрос = Новый Запрос;

компонент проведення документа

У старих базах інтеграції часто реалізовані саме в модулях або зовнішніх обробках. У загальних модулях часто зберігають:

</syntaxhighlight>

- компонент об’єкта, компонент форми, компонент менеджера, загальний компонент, компонент команди, компонент сеансу та інші. Що робить

Клієнтський і серверний код

як приклад:

Перенести як бізнес-правило Логіка актуальна і потрібна Реалізується засобами K2 ERP
Замінити стандартним механізмом K2 ERP У K2 ERP вже виступає як така функція Не потрібно копіювати старий код
Переробити Старий код поганий, але ідея потрібна Описується новий бізнес-процес
Не переносити Логіка застаріла Фіксується в протоколі
Залишити в архіві Потрібна тільки історія продукту Стара база застосовується для для перегляду

&НаКлиенте

Функція повертає значення. Если Товары.Количество() = 0 Тогда

  • товари;
  • ціни;
  • залишки;
  • характеристики;
  • зображення;
  • категорії;
  • статуси.
  • які інформаційні дані потрібні сайту;
  • хто виступає як джерелом істини;
  • як часто оновлювати;
  • який формат використовувати;
  • які помилки логіювати;
  • як перевіряти результат;
  • чи потрібен API замість файлового обміну. Якщо процедура або функція має слово `Экспорт`, її можна викликати з інших модулів. Возврат;
Приклад:

Можливі варіанти:

РассчитатьСуммуНаСервере();

Простий приклад процедури:

Під час переходу критично забрати з них цінні правила, але не переносити стару залежність, хаос і технічний борг. ! Добрий компонент:

Модулі і регламентні задача

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

як приклад:

Объект.Сумма = Объект.Количество * Объект.Цена;

Модулі і тестування після міграції

Остатки.Номенклатура, Остатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК Остатки ГДЕ Остатки.складський облік = &складський облік";

Приклад: компонент здатна містити:

Потрібно знайти:

"ВЫБРАТЬ

Жорстко прописані значення

</syntaxhighlight>

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

компанія-користувач повинна:

Чому модулі важливі для міграції

Перед міграцією потрібно зрозуміти, які модулі впливають на аналітику.</syntaxhighlight>

як приклад, якщо компонент:

Модулі і технічний борг

  • обробники кнопок;
  • реакція на зміну поля;
  • відкриття допоміжних форм;
  • підказки;
  • перевірки перед записом;
  • оновлення версій табличних частин;
  • розрахунок підсумків на екрані;
  • виклик серверних процедур. Приклад:
КонецЕсли;

Функция НайтиПоАртикулу(Артикул) Экспорт

компонент команди містить код, який виконується при запуску певної команди. Пріоритет

* у модулі документа;
* у модулі форми;
* у загальному модулі;
* у зовнішній обробці;
* у підписках на події;
* у регламентних завданнях;
* у розширеннях;
* у друкованих формах;
* у звітах. Потрібно замінити їх на безпечне зберігання секретів і оновити доступи. КонецПроцедуры

* заборона продажу нижче мінімальної ціни;
* автоматична знижка для VIP-клієнта;
* спеціальний розрахунок собівартості;
* унікальний алгоритм бонусів;
* автоматичне створення замовлення постачальнику;
* обмін із сайтом у нестандартному форматі;
* контроль боргу контрагента;
* особливий друк документів;
* правила заповнення податкових реквізитів. рішення для бізнесу для K2 ERP

Модулі можуть впливати на [[BI]] непрямо. |-
| Для чого потрібні модулі? Окремі продукти [[1С]] і [[BAS]] внесені до переліків забороненого програмного забезпечення для окремих категорій організацій в Україні. Правило

== Обробники подій ==

</div>

 КонецЕсли;
== Паролі і токени в модулях ==
! |-
| Контроль боргу клієнта
| компонент документа Реалізація
| Забороняє проведення при боргу понад ліміт
| Реалізувати в K2 ERP
|-
| Розрахунок знижки
| Загальний компонент Знижки
| Дає знижку за сегментом клієнта
| Описати як правило цін
|-
| Обмін із сайтом
| Загальний компонент ОбмінССайтом
| Вивантажує товари, ціни, залишки
| Замінити API
|}

У практиці переходу з [[1С]] на [[K2 ERP]] модулі мають особливе значення, тому що саме в них часто містяться нестандартні доробки: правила проведення документів, обмін із сайтом, інтеграційні функції ERP з банком, розрахунок цін, собівартості, знижок, зарплати, перевірки залишків, формування XML, API-обміни, зовнішні обробки та прихована бізнес-логіка, яку потрібно знайти, описати й перенести в нову систему. За цими об’єктами часто стоїть програмний код. Навіщо
== Модулі і файли ==
Такі речі потрібно знайти перед міграцією, бо вони можуть бути критичними для роботи бізнесу. |-
| Чи виступає як санкційні ризики у [[1С]] і [[BAS]]? &НаКлиенте

<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">

У новій системі це здатна бути реалізовано через:

* якщо клієнт ERP має борг понад 50 000 грн, документ продажу не проводиться;
* якщо товар має серію з простроченим терміном, продаж заборонений;
* якщо ціна нижча мінімальної, потрібне погодження;
* якщо покупець не платник ПДВ, формується інший тип документа;
* якщо складський облік — “Резерв”, товар не вивантажується на сайт.<syntaxhighlight lang="bsl">

 Сообщить("Документ не містить товарів.");

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

<syntaxhighlight lang="bsl">

* процедури;
* функції;
* обробники подій;
* виклики запитів;
* перевірки;
* розрахунки;
* роботу з документами;
* роботу з довідниками;
* роботу з регістрами;
* інтеграційний код;
* серверну логіку;
* клієнтську логіку;
* коментарі програмістів;
* тимчасові доробки;
* застарілий код. * початкової ініціалізації;
* конфігурація параметрів;
* перевірки користувача;
* підготовки середовища;
* обмежень доступу;
* службових дій. | Перенести інформаційні дані без аналізу модулів і потім втратити важливу логіку роботи бізнесу. Движение.Договор = Договор;

Такий код потрібно аналізувати обережно, бо він здатна впливати на всіх користувачів. # Знайти роботу з файлами, XML, JSON, API. Движение = Движения.ТоварыНаСкладах.Добавить();

* автоматизовано виправляє інформаційні дані без пояснення;
* блокує роботу незрозумілим повідомленням;
* змінює документи заднім числом;
* не показує причину помилки;
* приховує винятки;
* створює дублікати. | Для перевірок, проведення документів, форм, обробок, запитів, інтеграцій, друку, розрахунків і автоматичних дій.[[Категорія:Обмін даними]]
|-
| компонент об’єкта
| Логіка конкретного об’єкта
| Проведення документа
|-
| компонент форми
| Логіка форми користувача
| Натискання кнопки
|-
| компонент менеджера
| Загальна логіка роботи з типом об’єкта
| Створення документа або пошук елемента
|-
| Загальний компонент
| Повторно використовувані функції
| Розрахунок ціни, перевірка прав
|-
| компонент команди
| Логіка окремої команди
| Запуск обробки
|-
| компонент сеансу
| Дії при старті сеансу
| Початкова ініціалізація
|-
| компонент керованого додатка
| Глобальна логіка клієнтського застосунку
| Початкові конфігурація інтерфейсу
|}

== Модулі і BI-аналітика ==

Приклад читання JSON або XML здатна бути прихований у загальному модулі, зовнішній обробці або регламентному завданні. | У них часто зберігається нестандартна бізнес-логіка, яку потрібно знайти й перенести в [[K2 ERP]].<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">

* перевірки реквізитів;
* проведення документів;
* формування рухів по регістрах;
* підстановки значень;
* розрахунку сум;
* розрахунку цін;
* розрахунку знижок;
* розрахунку собівартості;
* формування друкованих форм;
* виконання запитів;
* роботи з файлами;
* інтеграції з сайтами;
* інтеграції з банками;
* інтеграції з API;
* роботи з XML, JSON, CSV;
* обробки подій форми;
* створення звітів;
* автоматичних регламентних дій. Погодження

[[Категорія:Довідники 1С]]

{| class="wikitable" style="width:100%;"

* сформувати звіт;
* вивантажити файл;
* запустити обробку;
* оновити ціни;
* створити документи;
* відправити інформаційні дані;
* виконати перевірку. Если Не ЗначениеЗаполнено(Контрагент) Тогда
! ! Якщо не проаналізувати розширення, можна пропустити важливі доробки. Приклади нестандартної логіки:

Для міграції корисно створити карту модулів.

Аналіз модулів перед міграцією

Як правильно працювати з модулями перед міграцією

Як не треба робити

Експортні функції часто виступає як важливою частиною архітектури конфігурації. * перевірку заповнення;

  • обробку запису;
  • проведення документа;
  • формування рухів;
  • контроль залишків;
  • контроль взаєморозрахунків;
  • розрахунок ПДВ;
  • роботу з табличною частиною. Погані підходи:
Движение.Количество = СтрокаТовары.Количество;
  • фізичних осіб;
  • працівників;
  • табелів;
  • зарплати;
  • паспортних даних;
  • ІПН;
  • банківських реквізитів;
  • контактної інформації. Запрос = Новый Запрос;

Найгірший сценарій. компанія-користувач переносить інформаційні дані з у K2 ERP, але не аналізує модулі. Перед переходом у K2 ERP потрібно знайти такі автоматичні сценарії. # Перевірити регламентні задача. |-

Яка головна помилка? Потрібно зрозуміти, яка логіка працювала в старій системі. Старі модулі часто накопичують технічний борг. Цей код зберігається в модулях.== Модулі і помилки користувачів ==

&НаКлиенте Зовнішні обробки можуть:

</syntaxhighlight>

Модулі часто записують інформаційні дані в регістри. Поганий код у модулях здатна сповільнювати систему.</syntaxhighlight>

Сообщить(Текст);

</syntaxhighlight>

У деяких базах логіка винесена в розширення.

У K2 ERP стару логіку модулів потрібно переносити не як копію коду, а як зрозумілі бізнес-правила. Скидка = 15; Найчастіші помилки: Приклад: компонент форми відповідає за поведінку форми, яку бачить користувач системи.

* пошуку елементів довідника;
* створення документів;
* загальних методів об’єкта;
* службової логіки;
* запитів по цьому типу об’єкта;
* інтеграційних дій. Сообщить("Команду виконано.");
У модулі здатна бути код, який:
Приклад функції:
|-
| Контроль залишків
| Заборонити продаж, якщо доступний залишок менший за кількість у документі
|-
| Винятки
| Дозволити тільки користувачам із роллю керівника складу або адміністратора
|-
| Повідомлення
| Показати товар, складський облік, доступний залишок і потрібну кількість
|}

== компонент сеансу ==

'''[[K2 ERP]]''' у цьому процесі здатна стати новою платформою для контрольованих бізнес-правил, зрозумілих процесів, безпечних інтеграцій, [[API]], [[BI]]-аналітики, логіювання, прав доступу і подальшого розвитку автоматизації бізнесу без залежності від старої екосистеми [[1С]]. Движение.Номенклатура = СтрокаТовары.Номенклатура;
Такий код здатна перевіряти залишки перед продажем. КонецЦикла;

 Возврат СуммаБезПДВ * СтавкаПДВ / 100;

* знайти приховану бізнес-логіку;
* описати правила;
* відмовитися від застарілого коду;
* прибрати небезпечні секрети;
* замінити старі інтеграції;
* перенести потрібні процеси в українську [[ERP]];
* не переносити технічний борг;
* зменшити залежність від [[1С]] і [[BAS]].== Модулі і розширення ==

* якщо клієнт ERP VIP — 10%;
* якщо сума замовлення понад 100 000 грн — 5%;
* якщо товар акційний — окрема ціна;
* якщо менеджер має право — ручна знижка. Окремі продукти [[1С]] і [[BAS]] внесені до відкритих переліків програмного забезпечення, забороненого до використання для окремих категорій організацій. |-
| Які бувають модулі? У [[1С]] здатна бути загальний компонент, який формує XML для сайту.[[Категорія:BI]]
<syntaxhighlight lang="bsl">

'''Загальний компонент''' — це компонент, який здатна використовуватися з різних місць конфігурації. Обробники подій особливо важливі, бо саме вони автоматизовано виконуються в потрібний момент. Результат = Запрос.Выполнить().Выбрать();
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
<syntaxhighlight lang="bsl">
[[Категорія:Цифрова незалежність України]]
КонецПроцедуры

== Основні типи модулів 1С ==

* які перевірки прав були в коді;
* які ролі використовувались;
* які обмеження були не в ролях, а саме в модулях;
* чи потрібно перенести ці правила в [[K2 ERP]]. Модулі використовуються; так само реалізовано обробки подій, проведення документів, перевірки даних, розрахунків, інтеграцій, друкованих форм, обмінів, запитів, автоматичних дій, роботи з формами, правами доступу і іншими механізмами системи. Потрібно переносити бізнес-правила, а не технічний борг старої системи. # Знайти інтеграційний код. Процедура РассчитатьСуммуКоманда(Команда)

* чи не вивантажуються персональні інформаційні дані у відкриті файли;
* чи не передаються вони в сторонні сервіси;
* чи не зберігаються в логах;
* чи не доступні зайвим користувачам.
Возврат Количество * Цена;

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