Через додавання в платформу функціоналу по роздільникам розробниками було суттєво переглянуто роботу з визначеними значеннями об'єктів. Опишу моменти, з якими нам довелося зіткнутися.
Основна зміна полягає в тому, що створенням наперед визначених елементів тепер можна керувати самостійно.
Крім того, з'явилася можливість додавати та видаляти певні елементи з режиму Підприємства. Але – не можна створити довільний зумовлений елемент. Ви можете лише призначити будь-якому існуючому елементу одне з визначених у конфігураторі імен.
Для управління створенням визначених елементів існують такі механізми:
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С" пропонують наступне:
Існує припущення, що в ІБ встановлено невдале значення режиму оновлення визначених даних – має бути встановлене Авто. Перевірити це значення можна методом глобального контексту ОтриматиОновленняПредвизначенихДанихІнформаційноїБази()встановити правильне значення – методом ВстановитиОновленняПредвизначенихДанихІнформаційноїБази().
Спробуйте скористатися цією рекомендацією. Тобто можна створити зовнішню обробку, в якій при натисканні на кнопку Виконати наступний код:
Область застосування: керований додаток, мобільний додаток, звичайний додаток.
Діє для версії платформи 1С:Підприємство 8.3.3 та вище без режиму сумісності з версією 8.2
1.1. У довідниках, планах рахунків, планах видів характеристик та планах видів розрахунку є можливість створювати наперед визначені елементи автоматично або програмно.
1.2. У більшості випадків, зумовлені елементи рекомендується створювати автоматично, оскільки вони постійно потрібні і потрібно спростити звернення до цих елементів з коду.
Наприклад, зумовлена країна Росія в довіднику Країни світу, зумовлені профіль груп доступу Адміністратор і т.п.
- у властивості ОновленняПрізначенихДаних довідника, плану рахунків, плану видів характеристик або плану видів розрахунку має бути встановлено значення Авто (за замовчуванням), а також не слід допускати програмних викликів методу ВстановитиОновленняПредвизначенихДаних цих об'єктів для перемикання цього режиму.
- заборонити видалення визначених елементів користувачами, вимкнувши у всіх ролях такі права (за замовчуванням вимкнено):
- ІнтерактивнеВидаленняПредвизначенихДаних
- ІнтерактивнаПоміткаВидаленняПредвизначенихДаних
- ІнтерактивнеЗняттяПоміткиВидаленняПризначенихДаних
- ІнтерактивнеВидаленняПозначенихЗумовленихДаних
Область застосування (уточнення): керований додаток, звичайний додаток.
1.3. Виняток становлять дочірні вузли РИБ, в якому визначені елементи автоматично не створюються (і не оновлюються при зміні метаданих), а повинні бути передані з головного вузла разом зі змінами конфігурації.
а) конфігурація повинна забезпечувати завантаження повідомлення обміну у підлеглий вузол РИБ до виконання іншого прикладного коду, який звертається до одержуваних з головного вузла визначених елементів;
б) у прикладній логіці завантаження даних з головного вузла (обробник події при отриманні даних від головного, правила реєстрації об'єктів) слід уникати звернень до визначених елементів, оскільки немає гарантії, що вони вже були завантажені з повідомлення обміну;
в) код обробників оновлення ІБ, який обробляє визначені елементи, не повинен виконуватись у підпорядкованих вузлах РИБ:
Якщо ПланиОбміну.ГоловнийВузол() = Невизначено Тоді
// Заповнюємо зумовлені елементи
// .
КінецьЯкщо;При використанні конфігурації підсистеми "Обмін даними" Бібліотеки стандартних підсистем (БСП) версії 2.1.4 і вище вимоги (а) і (б) знімаються.
1.4. Для таблиць з визначеними елементами, які не входять до складу плану обміну РІБ (і на які не посилаються інші таблиці, що входять до складу плану обміну РІБ) властивість ОновленняПрізначенихДаних необхідно встановлювати в значення Оновлювати Автоматично.
Значення Авто в цьому випадку не підходить, тому що для підлеглого вузла Авто означає Неоновлювати Автоматично, тобто визначені елементи таблиці автоматично створені не будуть.
При включеному режимі сумісності з версією 8.3.3 також необхідно при першому запуску підпорядкованого вузла РІБ (відразу після того, як було оновлено його конфігурацію) встановлювати автоматичне оновлення даних за допомогою виклику:
2. У деяких випадках, визначені елементи не потрібно створювати автоматично, якщо їх наявність залежить від будь-якої умови: включеної функціональної опції, режиму роботи програми тощо.
Наприклад, ті чи інші зумовлені види розрахунків у плані видів розрахунку Нарахування залежать від значень функціональних опцій Використовувати Облік Часів Співробітників У Часах, Використовувати Відрядний Заробіток та ін.
- у властивості ОновленняПредвизначенихДаних довідника, плану рахунків, плану видів характеристик або плану видів розрахунку потрібно встановити значення "Не оновлювати автоматично"
- передбачити код створення (і позначки недійсним) зумовленого елемента залежно від бізнес-логіки, наприклад:
Якщо Отримати Функціональну Опцію ( "Використовувати Облік Часів Співробітників У Часах") Тоді
НарахуванняОб'єкт = ПланиВидівРасчета.Начисления.СтворитиВидРасчета();
НарахуванняОб'єкт.Ім'яПредвизначенихДаних = "ОкладПо Годинникам";
// .
Нарахування Об'єкт. Записати ();
КінецьЯкщо;- враховувати в прикладному коді відсутність зумовлених елементів ІБ. В іншому випадку, при зверненні до неіснуючого зумовленого елементу з коду або тексту запиту буде викликано виключення:
При використанні в конфігурації Бібліотеки стандартних підсистем (БСП) версії 2.1.4 і вище рекомендується використовувати функцію Зумовлений Елемент загального модуля Загального Призначення або Загального Призначення Клієнт, яка повертає Невизначено для невизначених елементів, що не існують в ІБ.