Программный механизм предопределенных элементов

26.02.14

Разработка - Инструментарий разработчика

В связи с существенным усложнением механизма предопределенных элементов в платформе 8.3 предлагается более удобный и надежный программный механизм.

Скачать исходный код

Наименование Файл Версия Размер
Конфигурация
.cf 16,56Kb
17
.cf 16,56Kb 17 Скачать

В платформе 8.3 механизм предопределенных элементов существенно переработан. По сути, предопределенные элементы стали обычными, их наличие никак не контролируется платформой. Уже возникают ситуации когда, например, предопределенный элемент не пришел в узел РБД или был удален интерактивно. При обращении к удаленному предопределенному элементу возникнет ошибка "Предопределенный элемент отсутствует в данных" и продолжить работу в базе невозможно.

Ошибка

Для обхода привнесенных сложностей предлагается пример программного механизма предопределенных.

Новые объекты:

1. Общий макет с колонками "Имя предопределенного", "Имя справочника", "Это группа", "GUID", "GUID родителя", "Код", "Наименование".

2. Регистр сведений с изменением "Имя" и ресурсом "СсылкаБД"

3. Функции общего модуля ПолучитьПредопределенныйЭлемент(Имя) и СоздатьПредопределенныйЭлемент(Имя).

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

Алгоритм создания новых предопределенных элементов:

1. Прописываем новый элемент в общем макете. Имя должно быть уникально.

2. Используем в коде с помощью функции общего модуля, например:

 Пример

В отличие от платформенного механизма, получаем полную гарантию существования предопределенного элемента в БД. При отсутствии/случайном удалении элемент восстанавливается автоматически.

Предопределенный предопределенные

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124964    683    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7773    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4285    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178651    1084    0    

862

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99633    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18389    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23857    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28323    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bayce 45 26.02.14 13:38 Сейчас в теме
а что в 8.3, пользователь может удалить предопределенные элементы?
+
2. vavic 10 26.02.14 14:06 Сейчас в теме
Да, теперь в роли есть отельные галки "Интерактивное удаление предопределенных", "Интерактивная пометка на удаление предопределенных", "Интерактивное снятие пометки удаления предопределенных", "Интерактивное удаление помеченных предопределенных". Зачем сделано абсолютно непонятно. Для корректного использования платформенного механизма теперь обязательно нужно при каждом изменении запускать регламентные процедуры в Предприятии. Проще оказалось сделать свой механизм.
Прикрепленные файлы:
AlexLM75; cleaner_it; +2
3. AlX0id 26.02.14 21:06 Сейчас в теме
В отличие от платформенного механизма, получаем полную гарантию существования предопределенного элемента в БД. При отсутствии/случайном удалении элемент восстанавливается автоматически.

Так же в нагрузку получаем вызов сервера при каждом клиентском обращении к элементу и обработку весомого объекта (макета) на сервере же.. Проще уж права закрыть, пожалуй )
+
4. vavic 10 27.02.14 06:58 Сейчас в теме
Так же в нагрузку получаем вызов сервера при каждом клиентском обращении к элементу и обработку весомого объекта (макета) на сервере же.. Проще уж права закрыть, пожалуй )


В целом замечание справедливое, но и оно было проанализировано и учтено. Видимо имеется в виду клиентский метод ПредопределенноеЗначение(). Ничего сверхъестественно в нем нет. Первый вызов также идет на сервер. Следующие берутся из кэша. Можно попробовать добиться похожего поведения, но особого смысла в этом нет. В большинстве случаев вызов метода ПредопределенноеЗначение() все равно потребует каких-либо дополнительных серверных вызовов. Если нет, тогда лучше сохранить сами требуемые значения при создании формы. Например, в типовой БП 3 вид контрагента сохраняется в строковую переменную формы. Такой подход будет более оптимальным и снизит общее количество серверных вызовов.
По поводу обращения к макету. Это происходит только тогда когда предопределенный элемент отсутствует в базе. В случае использования платформенного механизма для достижения аналогичного поведения придется каждого обращение к предопределенному элементу заключать в Попытка/Исключение. Что видится не очень простым и удобным.
К сожалению, установив только права решить проблему не удастся. Остаются еще вопросы миграции и привелигерованные модули. Основной смысл предложенного механизма в том, чтобы получить удобство работы с предопределенными элементами на уровне платформы 8.2. Добавил новый в конфигураторе и знаешь что он будет всегда и в центральной базе и в узлах РБД.
+
5. AlX0id 27.02.14 13:47 Сейчас в теме
(4) vavic,
Например, в типовой БП 3 вид контрагента сохраняется в строковую переменную формы.

Вот и да-то.. Был нормальный механизм предопределенных, а теперь хрен поймешь что..
+
6. FractonKireyev 19.03.14 12:12 Сейчас в теме
Согласен с тем, что испоганили хороший механизм предопределённых!

Предлагаю поставить на голосование (а вдруг поможет?) - пишите:
кто за то, чтобы вернуть прежний механизм (так, как это было в 8.0, 8.1, 8.2),
кто за то, чтобы новый механизм остался так, как есть.
+
Оставьте свое сообщение