Что произойдет если удалить предопределенный элемент в режиме 1с предприятие
Из-за добавления в платформу функционала по разделителям разработчиками была существенно пересмотрена работа с предопределенными значениями объектов. Опишу те моменты, с которыми нам довелось столкнуться.
Основное изменение заключается в том, что созданием предопределенных элементов теперь можно управлять самостоятельно.
Кроме того, появилась возможность добавлять и удалять предопределенные элементы из режима Предприятия. Но - нельзя создать произвольный предопределенный элемент. Вы можете только назначить любому существующему элементу одно из предопределенных в Конфигураторе имен.
Для управления созданием предопределенных элементов существуют следующие механизмы:
1) В Конфигураторе для объекта метаданных можно определить способ обновления предопределенных данных - Авто, Обновлять автоматически, Не обновлять автоматически.
2) Для информационной в целом можно установить режим создания предопределенных через метод:
УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы(ОбновлениеПредопределенныхДанных), где
ОбновлениеПредопределенныхДанных - системное перечисление с вариантами Авто, Обновлять автоматически, Не обновлять автоматически
3) Для конкретной таблицы информационной базы можно установить режим создания предопределенных через менеджера через метод:
УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных), например
Справочники.Номенклатура.УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных.ОбновлятьАвтоматически);
4) На создание предопределенных элементов также влияет тип информационной базы - главный узел РИБ (не подчинен ни одному плану обмена, являющемуся РИБ) или периферийный узел РИБ.
- Если для объекта метаданных в данных установлен режим обновления, отличный от Авто, то используется это значение. (пункт 3 из списка выше)
- Иначе, если для объекта метаданных в конфигурации установлен режим обновления, отличный от Авто, то используется это значение. (пункт 1 из списка выше)
- Иначе, если для информационной базы установлен режим обновления, отличный от Авто, то используется это значение. (пункт 2 из списка выше)
- Иначе, если это периферийный узел РИБ, то предопределенные данные не будут обновлены. Если проверка выполняется для центрального узла РИБ, или для базы, не являющейся РИБ, обновление предопределенных данных будет выполнено.
Что можно сделать:
- выставлять способ обновления для объекта метаданных в конфигурации = "Обновлять автоматически" не совсем правильно, если в конфигурации есть несколько разных планов обмена РИБ с разным составом, а этот объект входит только в часть из них. Если это сделать, то в данной конкретной ситуации ошибка будет исправлена - в периферийном узле предопределенные элементы будут созданы. Но при создании РИБ по другим планам обмена (куда данный объект входит) элементы задублируются - в периферийный узел придут предопределенные из главного узла.
Если РольДоступна("ПолныеПрава") Тогда //методы ниже требуют прав на удаление объектов, поэтому правильнее выполнять их под полными правами
Справочники.ГруппыПользователей.УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных.ОбновлятьАвтоматически);
Справочники.ГруппыВнешнихПользователей.УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных.ОбновлятьАвтоматически);
КонецЕсли;
КонецЕсли;
Правильный ответ второй - раз из файла, то исходный объект будет полностью приведен к объекту из файла.
Вопрос 05.35 экзамена 1С:Профессионал по платформе. При объединении с приоритетом основной конфигурации значение таких свойств объектов как синоним, комментарий…
- останется неизменным
- значение будет взято из загружаемой, если оно задано в загружаемой
- значение будет взято из загружаемой, если оно не пустое в загружаемой, а в основной не задано
- нет правильного ответа
Правильный ответ третий - раз в приоритете основная, то из файла погрузятся только недостающие элементы.
Вопрос 05.36 экзамена 1С:Профессионал по платформе. При сравнении и объединении конфигурации, в которой используются несколько языков…
- можно указать выборочное сравнение по языкам
- можно указать сравнение только по одному языку
- режим сравнения по различным языкам отсутствует
Вопрос 05.37 экзамена 1С:Профессионал по платформе. В режиме объединения конфигурации элементы управления форм…
- не участвуют в сравнении, объединении
- не отображаются в окне сравнения, объединяются по стандартным правилам исходя из приоритета
- в любом случае замещаются из загружаемой
- нет правильного ответа
Вопрос 05.38 экзамена 1С:Профессионал по платформе. Что происходит с элементами управления форм в режиме объединения конфигурации?
- Новые добавляются, совпадающие по именам заменяются
- С приоритетом основной - не изменяются, с приоритетом загружаемой - замещаются
- Новые всегда добавляются; совпадающие по именам заменяются, если приоритет у загружаемой, иначе не изменяются
Вопрос 05.39 экзамена 1С:Профессионал по платформе. Что определяет в указанном окне реквизит "Порядок"?
- Приоритет при объединении модулей
- Порядок следования процедур и функций в модуле, исходя из основной конфигурации или загружаемого файла
- Определяет местоположение (слева, справа) в окне сравнения модуля основной или загружаемой конфигурации
- Нет правильного ответа
Вопрос 05.40 экзамена 1С:Профессионал по платформе. Что произойдет с предопределенными данными при объединении конфигурации с приоритетом основной конфигурации?
- Данные будут добавлены
- Данные не изменятся
- Данные будут замещены
- Нет правильного ответа
- для каждого объекта
- для всей конфигурации
- по подсистемам основной конфигурации
- по подсистемам загружаемого объекта
- верны все указанные ответы
- верны ответы 1 и 2
Вопрос 05.42 экзамена 1С:Профессионал по платформе. В режиме сравнения, объединения при необходимости изменить основную конфигурацию…
- необходимо закрыть окно сравнения
- можно внести изменения прямо в окне сравнения, по кнопке "Обновить" изменения отразятся в окне сравнения
- можно внести изменения в конфигурацию, но для отражения изменений в окне сравнения необходимо заново запустить сравнение, объединение
Вопрос 05.43 экзамена 1С:Профессионал по платформе. При использовании режима "Сравнение, объединение с конфигурацией из файла" флажок "Разрешать удаление объектов основной конфигурации"…
- при отмеченном флажке, объекты текущей конфигурации, которым не сопоставлены объекты загружаемой конфигурации будут удалены
- при сброшенном флажке, в не зависимости от приоритета объединения, объекты текущей конфигурации, которым не сопоставлены объекты загружаемой конфигурации, будут оставлены в результате объединения
- при выборе режима "Загрузить из файла" значение флага не влияет на результат выполнения
- верны ответы 1 и 2
- верны все ответы
Правильный ответ четвертый. Без флажка, платформа стремиться оставить максимально возможный набор объектов ("полное соединение"). С флажком, удалятся те, что не представлены в файле ("правое соединение").
Вопрос 05.44 экзамена 1С:Профессионал по платформе. Если при сравнении, объединении конфигурации в настройке сравнения указать наследственность конфигураций, то…
- это изменит порядок конфигураций, слева - первичная, справа - потомок
- это приведет к отображению специальной графы у потомка, в которой будет представлена в виде пиктограмм история изменения объектов
- это приведет к автоматической интерпретации приоритета основной или загружаемой конфигурации, исходя из их потомственности
- нет правильного ответа
11 комментариев:
Этот комментарий был удален автором.
Этот комментарий был удален автором.
5.40 верный ответ 2 данные не изменятся
Согласно тестированию правильный 4 (Нет правильного ответа)
Комментарий в тренажере теста: "При сравнении предопределенных данных сопоставление элементов производится только по внутреннему идентификатору. Поэтому если в двух конфигурациях создать элементы предопределенных данных с одинаковым именем, при сравнении они будут считаться разными элементами.Единственный способ получить одинаковые предопределенные данные в двух конфигурациях-воспользоваться объединением или копированием."
В мобильном приложении верный ответ 4 - Нет правильного ответа.
И комментарий, который привел Unknown 09/09/2018.
Вопрос 05.36 Это окно "Настройка сравнения конфигурации" открывается через Действия \ Параметры.
5.43 фактически система ведет себя не совсем как указано в п.1. При установке флага в окне объединения у объектов, присутствующих только в основной конфигурации, появляются флаги (поля для ввода) - в сброшенном состоянии. Т.е. при нажатии "выполнить" в окне сравнения - объекты удалены не будут. Для удаления надо принудительно выставить им всем флаг.
Так что "правильный" ответ теста как часто у 1С бывает не совсем корректен.
5.34. У объекта остаются добавленные ранее реквизиты. Полного замещения как при полной загрузке конфигурации из файла таким образом не происходит.
Ответ 1?
Если бы речь шла только о текстах модулей, тогда да, 2.
В общем случае, структура программного решения проектируется в Конфигураторе, а наполнение этого программного решения бизнес-данными происходит в режиме Предприятие. Однако возможна ситуация, когда нужно создать элемент данных, который нельзя изменить или удалить в режиме Предприятие. Для этого, можно создать конфигурально предопределенное его значение:
На случай создание предопределенных значений, у объектов конфигурации есть стандартный реквизит Имя предопределенных данных:
Вопрос 01.14 экзамена 1С:Профессионал по платформе. Для каких объектов конфигурации возможен ввод предопределенных значений?
- Справочники
- Документы
- Планы видов характеристик, планы счетов, планы видов расчета
- Все вышеперечисленные
- Справочники, планы видов характеристик, планы счетов, планы видов расчета
Вопрос 01.67 экзамена 1С:Профессионал по платформе. Что произойдет, если удалить предопределенный элемент в конфигураторе
- Будет выдано предупреждение об ошибке
- Элемент в режиме 1С:Предприятие будет удален
- Элемент в режиме 1С:Предприятие будет помечен на удаление
Если подтвердить и обновить конфигурацию, то в режиме Предприятие элемент будет помечен (потому что на него могут быть ссылки):
Вопрос 01.68 экзамена 1С:Профессионал по платформе. Что произойдет, если удалить предопределенный элемент в режиме 1С:Предприятие
- Будет выдано предупреждение об ошибке
- Элемент будет удален и в конфигураторе и в 1С:Предприятие
- Элемент будет удален только в 1С:Предприятие
Правильный ответ по идее первый, платформа выдает ошибку. Но по ответам верный третий, возможность быть должна.
7 комментариев:
насчет 1.68. разве ошибку выдавало не в старых версиях? в 8.3 вроде дали возможность удалять предопределенные
Вот не удаляется на практике.
Но официальным ответам, таки должен, 1.68 - третий вариант указан как верный.
Скорее всего имеется ввиду удаление программно, а не установка пометки на удаление.
Только что попробовал. Конфигурация самописная, в ней нет ролей. Предопределенный элемент сначала был помечен на удаление, потом с помощью "Удаление помеченных объектов" элемент был полностью удален из 1С:Предприятие. Зашел в конфигуратор, он присутствует в предопределенных. Сразу возник вопрос, как его восстановить в 1С:Предприятие? Запустил "Тестирования и исправление" с "Создавать объекты" и ничего не создалось. Как то так)
да, конечно, ошибку выдает, когда роли выставлены, тогда запрещается трогать предопределенные.
В 8.3 для этого сделали отдельную роль "Интерактивная пометка на удаление предопределенных".
Эта статья продолжает цикл статей «Первые шаги в разработке на 1С». В ней на практических примерах рассматривается механизм предопределенных данных, в т.ч. и в распределенной информационной базе.
Применимость
В статье рассматривается платформа 1С:Предприятие версии 8.3.4.465. Материал актуален и для текущих релизов платформы.
Предопределенные элементы в «1С:Предприятие 8.3»
При реализации алгоритмов разработчики часто опираются на определенные данные – элементы справочников, планов счетов, планов видов расчета и т.д.
Во встроенном языке существуют методы для поиска данных, например, НайтиПоКоду() или НайтиПоНаименованию().
Однако алгоритмы, опирающиеся на код или наименование, зачастую являются ненадежными.
Поскольку в пользовательском режиме код или наименование элемента справочника могут быть изменены, что может привести к неработоспособности алгоритмов.
Именно для решения этой проблемы и предназначены предопределенные данные – данные, созданные в конфигураторе, обратиться к которым возможно по имени, не прибегая к предварительному поиску элемента.
Таким образом, у предопределенных данных есть две “стороны”: во-первых, существует список предопределенных элементов, созданный в конфигураторе, а, во-вторых, для данных информационной базы указывается, является ли конкретный элемент предопределенным.
Предопределенные элементы могут быть созданы у:
- справочников;
- планов счетов;
- планов видов характеристик;
- планов видов расчета.
В статье рассмотрены новшества, касающиеся предопределенных данных на платформе 8.3, а также особенности работы с ними в распределенных базах (как центральных, так и периферийных) и в информационных базах в режиме разделения данных.
Для примера, создадим в справочнике Организации предопределенный элемент ОсновнаяОрганизация:
Для увеличения нажмите на изображение.
Обращение к этому элементу из программного кода будет следующим:
В платформе 8.3 реализована возможность связать предопределенные данные с элементами соответствующего типа.
Для этого у объектов, которые могут иметь предопределенные элементы (они указаны выше), добавлено новое свойство ИмяПредопределенныхДанных. Оно отображается в списке стандартных реквизитов:
Выберем при помощи запроса все поля из справочника Организации:
Для увеличения нажмите на изображение.
На рисунке видно, что в поле ИмяПредопределенныхДанных указан именно тот идентификатор, который мы ввели в режиме конфигуратора.
Предопределенный элемент в списке отображается специальной пиктограммой:
Чтобы “отсоединить” элемент данных от элемента предопределенных данных, нужно присвоить свойству ИмяПредопределенныхДанных пустую строку и записать элемент:
Пиктограмма в списке изменилась:
Теперь предопределенный элемент существует только в конфигурации и в данных нет элемента, привязанного к идентификатору ОсновнаяОрганизация:
Для увеличения нажмите на изображение.
Обращение из программного кода к предопределенному элементу вызовет исключение:
Чтобы связать предопределенный элемент с новой записью, нужно присвоить свойству ИмяПредопределенныхДанных имя предопределенного элемента:
Обновление конфигураций – тема всегда актуальная для любого специалиста 1С. Наверняка каждый из вас сталкивался с трудностями при обновлении как типовых, так и нетиповых конфигураций. Ошибки могут возникнуть в любом варианте.
Курс Разработка расширений и технологии доработки конфигураций 1С без снятия с поддержки включает в себя объемный модуль “Обновление конфигураций”, в котором рассматриваются вопросы обновлений как типовых, так и адаптированных конфигураций. В Мастер-группе курса можно задавать любые возникающие вопросы по теме. Многие слушатели используют такую возможность.
Вопрос
При попытке обновить типовую 1C:БП (конфигурация находится “на замке”) версии 3.0.75.37 до 3.0.75.70 возникает ошибка “Предопределенный элемент отсутствует в данных”. Обновляю, в автоматическом режиме через 1С:предприятие все откатывается. Хотелось бы получить комментарий, что я делаю не так?
(нажмите, чтобы увеличить картинку)
(нажмите, чтобы увеличить картинку)
Ответ
На партнерском форуме обнаружил описание такой же ошибки, но возникает она при обновлении конфигурации 1С:Зарплата и кадры государственного учреждения на релиз 3.1.12.110: “Справочник.ВидыВычетовНДФЛ.Код511. Предопределенный элемент отсутствует в данных”
Представители фирмы “1С” предлагают следующее:
Есть предположение, что в ИБ установлено неудачное значение режима обновления предопределенных данных – должно быть установлено Авто. Проверить это значение можно методом глобального контекста ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы(), установить правильное значение – методом УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы().
Попробуйте этой рекомендацией воспользоваться. То есть можно создать внешнюю обработку, в которой при нажатии на кнопку Выполнить следующий код:
Читайте также: