09.11.2023 Андрей Дорошенко 6576
Что внутри расширения конфигурации системы 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С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

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

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

Бухгалтерский учет
- Банк и касса
- Расчеты с контрагентами
Налоговый ...

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

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

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

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

Компания IBS
Компания IBS

Отрасль:
Системный интегратор

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

- Интеграция систем – АСУП и «1С:Управление производственным предприятием»...

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

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

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

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

ООО «ЛИГА-ТРАНС»
ООО «ЛИГА-ТРАНС»

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

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

- Сделано ТЗ по автоматизации учета МСФО: - Разработана карта бюджета доходо...

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

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

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

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:ТОИР Управление ремонтами и обслуживанием оборудования

Мониторинг и анализ ключевых показателей деятельности предприятия Управле...

ООО "Эскорт-Центр"
ООО "Эскорт-Центр"

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

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

- Сквозной учет затрат по объектам
- Бухгалтерский учет
- Расчет зарплаты...

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

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

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

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

Внедрение ПП «1С:Предприятие 8. Аренда и управление недвижимостью на базе "1С:Бухгалтерия 8"» в компании «Бутово Молл»
ООО «Бутово Молл»

Отрасль:
Недвижимость

Внедренное типовое решение:
1С:Аренда и управление недвижимостью на базе «1С:Бухгалтерия 8»

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Оформление зак...

МГК "Световые Технологии"
МГК "Световые Технологии"

Отрасль:

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

Специалисты "Кодерлайн" произвели доработки в системе 1С:ЕРП 2.4 с учетом треб...

Доработка конфигурации Заказчика «1С:Управление строительной организацией»
ЗАО «Стройтрансгаз»

Отрасль:
Проектирование

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

Взаиморасчеты с поставщиками;
- Оформление заказов поставщикам;
- Склад ...

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

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

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

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