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

26.02.14

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

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

Скачать файлы

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

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

Ошибка

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

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

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

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

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

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

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

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

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

 Пример

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

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

См. также

SALE! 20%

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

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

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

10000 8000 руб.

02.09.2020    122363    673    389    

716

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7337    22    6    

39

SALE! 20%

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

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

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

10000 8000 руб.

10.11.2023    3626    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177821    1074    0    

851

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

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

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

5000 руб.

07.02.2018    99375    239    97    

296

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

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

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

3000 руб.

27.08.2019    18136    6    8    

40

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

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

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

2040 руб.

27.12.2017    28119    3    10    

15

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

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

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

2400 руб.

24.09.2019    23607    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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),
кто за то, чтобы новый механизм остался так, как есть.
Оставьте свое сообщение