# Соглашение по разработке расширения ЛКС

### Соглашение по разработке расширения ЛКС

Фиксируем здесь наши договоренности по именованию объектов и пр.

1. Префикс для всех объектов **лкс**
2. В синоним объекта добавляем **" (ЛКС)"**
3. Выполняем сортировку объектов в дереве метаданных: сначала заимствованные объекты по алфавиту, далее собственные объекты по алфавиту.
4. К имени объектов не добавляем окончание ЛК и прочее постфиксы указывающее на то, что это объект подсистемы ЛКС (т.к. "лкс" уже на это указывает)
5. Для объектов заполняем Представление объекта и Представление списка без (ЛКС). Пример:

![](/files/mNb0ywKIap1kbgcfNYxx)

При такой настройке в интерфейсе будет отображаться без (ЛКС), но в списке объектов в Все функции (ЛКС) будет.

6\. Для обработок, чтобы в интерфейсе команда открытия отображалась без (ЛКС), отключаем использование стандартных команд, И вручную создаем команду уже без префиксов и постфиксов. Пример:

![](/files/eko9pwYagm02Q9p1dtUT)

7\. Версионируем следующим образом:

Первая цифра - номер редакции. Вторая - номер подредакции. Третья - номер версии. Четвертая - номер сборки.

По заветам: <https://its.1c.ru/db/v8std#content:483:hdoc> ; <https://its.1c.ru/db/v8std#content:484:hdoc>

* Если добавляем/удаляем функциональность - увеличиваем номер версии, при этом номер сборки сбрасывается в 1;
* Если исправляем назначительные ошибки (не меняют поведение системы) - увеличиваем номер сборки;
* Если одновременно меняем функциональность и исправляем ошибки - увеличиваем номер версии, при этом номер сборки сбрасывается в 1.

Перешли на номер версии из четырех чисел, чтобы отрабатывали механизмы БСП которые мы задействовали для обновления данных при переходе на новую версию.

8\. Для выполнения доп обработчиков (например, заполнение справочников по умолчанию) при изменении версии добавляем их описание в процедуру лксОбновлениеИнформационнойБазы.ПриДобавленииОбработчиковОбновления (описано тут: <https://its.1c.ru/db/bsp23doc#content:1629:hdoc>):

![](/files/awgyBF9MYVSIWN8VgaQ7)

\+ меняем версию в лксОбновлениеИнформационнойБазы.ПриДобавленииПодсистемы:

![](/files/N77CJhIMPBNGbX5mKrRA)

Для того, чтобы обработчики выполнились, нужно после этого запустить базу с ключом ЗапуститьОбновлениеИнформационнойБазы.

9\. cfe расширения берем из базы **Srvr="msk-s3-vs-sql01";Ref="empl\_zup\_ru\_model";** По сути, для нас это база является origin/master

10\. При помещении в хранилище обязателен комментарий с кратким описанием (шаблон такой, если в рамках задачи: <НомерЗадачи> <Описание>, без задачи: <Описание>)

11\. Настройки приложения добавляем в ресурсы регистра лксНастройкиПриложения.

![](/files/kNlj9TYjaJOY9iq1iJHX)

Для получения значения настройки в модуле менеджера есть функция РегистрыСведений.лксНастройкиПриложения.ЗначениеНастройки(<ИмяНастройки>).

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

12\. При записи ошибок в журнал регистрации имя события формируем следующим образом: **Личный кабинет сотрудника.<Имя подсистемы>.<Имя события (с пробелами, до 5-6 слов)>.** Для формирования имени события используем функцию ***лксОбщегоНазначенияКлиентСервер.ИмяСобытияЖурналаРегистрации***.

13\. Для HTTP-запросов использовать лксКоннектор. Примеры запросов можно посмотреть здесь: <https://github.com/vbondarevsky/Connector>

14\. Если нужно добавить в расширение документ, который будет использоваться при ЭКДО нужно:

* добавить в расширение справочник присоединенных файлов этого документа
* в справочнике **вэПечатныеФормыЛК** для реквизита **Основание** в состав типов включить добавляемый документ
* в справочнике **вэПечатныеФормыЛК** для реквизита **ПрисоединенныйФайл** в состав типов включить справочник присоединенных файлов добавляемого документа
* в регистре **лксПодписанныеОбъекты** для реквизита **Объект** в состав типов включить справочник присоединенных файлов добавляемого документа
* в регистре **лксПодписанныеОбъекты** для реквизита **ПодписьПрисоединенныйФайл** в состав типов включить справочник присоединенных файлов добавляемого документа
* добавить в расширению форму документа
* в модуль формы документа добавить обработчик события **ПриСозданииНаСервереПосле**, в нем сделать вызов процедуры: *лксБлокировкаИзмененийОбъекта.ПриСозданииНаСервере(ЭтотОбъект);*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://padocs.empldocs.app/dlya-razrabotchikov/tekhnicheskoe-opisanie-proekta/backend/soglashenie-po-razrabotke-rasshireniya-lks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
