09.11.2023 Андрей Дорошенко 6061
Что внутри расширения конфигурации системы 1С...

Содержание:

1.      Создание нового расширения 1С: Предприятие 8.3

2.      Непредвиденные ситуации с расширением конфигурации 1С: 8.3 и их решение   

 

1.      Создание нового расширения 1С: Предприятие 8.3

 

Условия теста: 1С:Предприятие 8.3 (8.3.23.1782), версия совместимости «Версия 8.3.17», версия MS SQL 13.0.4259.0

 

Механизм расширений наверное самое востребованное новшество в 1С 8.3. Расширения постоянно развиваются и обрастают новыми возможностями. Вместе с тем, внутреннее устройство расширений закрыто и остается малоизученным, порождая слухи о крахах баз, потерях данных, разрушениях конфигураций. Данная статья является попыткой заглянуть «под капот» расширений, разобраться что там и как оно работает.

 

Все установленные в базе 1С расширения описываются в таблице _ExtensionsInfo. Ее содержимое, за вычетом служебных полей, можно увидеть в таблице, открываемой по команде главного меню конфигуратора «Конфигурация» - «Расширения конфигурации». Попробуем создать новое расширение. В таблице появляется новая запись:



Результаты


Теперь добавим в расширение документ. Создадим новый реквизит в табличной части документа.



Расш1_Реквизит1


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



dbo.Document390


Платформа создала дубликаты всех таблиц расширяемого объекта и перекачала в них данные из оригинальных таблиц. После этого оригинальные таблицы были очищены:





В таблице _Document390_VT11896X1 появился наш реквизит. Процесс организован максимально надежно: база переводится в режим SINGLE_USER, перенос данных 1С делается в транзакции, с использованием промежуточных таблиц.   

 

2.      Непредвиденные ситуации с расширением конфигурации 1С: 8.3 и их решение

 

Что сделает платформа если расширяемый объект будет изменен в нескольких расширениях одновременно? Создаст таблицы с окончанием «X2»? Не угадали. Новые реквизиты добавятся в те же самые таблицы «X1». «Знание» какому расширению что принадлежит надежно спрятано в записях таблицы CONFIG.

 

Что случится с нашими бесценными данными если по какой-то причине расширение будет отключено? Отключаем расширение, не забываем про профайлер. Изменяются таблицы конфигурации, схемы данных. С самими данными не происходит НИЧЕГО. 1С больше «не видит» реквизит из расширения, но это реализовано на уровне конфигурации, сами данные целы и невредимы.

 

Что произойдет при удалении 1С расширения? Данные из таблиц «X1» перекачиваются в оригинальные таблицы, за исключением добавленных реквизитов. Таблицы с окончанием «X1» удаляются.



Сообщения



Результаты


Удаление расширения уничтожило данные в реквизитах расширения, аналогично удалению реквизитов из основной конфигурации 1С. Здесь поможет только бэкап.

 

Выводы.

1. Использовать расширение данных надежно и безопасно. Страхи что расширение «глюкнет» и произойдет потеря данных необоснованны. Даже при физическом повреждении конфигурации данные могут легко восстановлены вручную. Шансы краха конфигурации расширения при реструктуризации аналогичны таковым при реструктуризации основной конфигурации. Не забываем про бэкап перед обновлением.


2. Скорость чтения/записи данных расширенных реквизитов аналогичны реквизитам основной конфигурации. Быстродействия не пострадает, впрочем, лучше тоже не станет.


3. Добавление в расширение реквизитов конфигурации, например для удобства отладки кода в расширении, не приводит к изменению структуры хранения данных 1С. Это всего лишь полезный «синтаксический сахар», используйте его не опасаясь проблем с производительностью.


4. Для любителей (а также профессионалов) прямых запросов к данным 1С у меня плохие новости. После установки расширения 1С ваши скрипты не упадут с ошибкой, но перестанут возвращать данные. К сожалению, легальный способ узнать актуальные наименования нужных таблиц с использованием функции ПолучитьСтруктуруХраненияБазыДанных пока что не работает. У меня функция возвращала оригинальные наименования таблиц, в которых уже ничего не было. Будем надеяться, что разработчики платформы исправят эту ошибку в будущих релизах. Можно конечно попробовать в своем коде обработать ситуацию, добавляя к наименованию таблиц «X1», но нет никаких гарантий что этот трюк будет работать достаточно долго. Вышеописанная логика работы расширений не документирована и в любой момент может поменяться.

    

  Специалист компании "Кодерлайн"

 Андрей Дорошенко


Наши проекты

ООО «Солви Пак»
ООО «Солви Пак»

Отрасль:
Торговля. Производство печати на рулонных материалах

Внедренное типовое решение:
1С:CRM+1С:Комплексная автоматизация

Управление отношениями с клиентами (CRM) ...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складами;
- Управление заказами поставщиков;
- Управление зак...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:
1С:Управление корпоративными финансами

- Финансово-бухгалтерский блок
- Казначейство ...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО "ДЕКОР"
ООО «ДЕКОР»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Управление персоналом и кадровый учет (HRM):
- Кадровый учет
- Расчет зарпл...

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Управление цепочками поставок Оптовая торговля ...

ЗАО «Ламбумиз»
ЗАО «Ламбумиз»

Отрасль:
Производство картонной упаковки

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Маркетинг;
- Продажи;
- Планирование закупок;
- Закупки;
- Регламенти...

ООО "СЖД"
ООО "СЖД"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Производственные операции
Автоматизация бизнес-процессов...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам
- Оформление заказов покупателей
- Упр...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
«1С: Управление торговлей»

- Создание прототипа SRM-системы на базе «1С: Управление торговлей»
- Автомат...

ООО «Фипар»
ООО «Фипар»

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автома...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение