Расширение формы клиентского приложения для констант.НомерВерсииПереходаНаВерсиюИсторииДанных

Темы платформы · VersionNumberSwitchToDataHistoryVersion

Тип: Число. Номер версии в истории данных, на которую выполняется переход.

Полное описание, параметры и ограничения

Расширение формы клиентского приложения для констант.НомерВерсииПереходаНаВерсиюИсторииДанных (Client application form extension for constants.VersionNumberSwitchToDataHistoryVersion)

Расширение формы клиентского приложения для констант (Client application form extension for constants)

НомерВерсииПереходаНаВерсиюИсторииДанных (VersionNumberSwitchToDataHistoryVersion)

Доступен, начиная с версии 8.3.13.

Использование:
Ключевой.
Описание:
Тип: Число.
Номер версии в истории данных, на которую выполняется переход.
Использование в версии:

Доступен, начиная с версии 8.3.13.

Методическая информация

Практические примеры

Открыть форму единственной своей константы с настоящим номером истории

Форму констант определяет основной НаборКонстант, а номер выбирается из реально существующих версий этой константы.

Где и как запускать

Своя вызывающая управляемая форма и отдельная общая форма с основным НаборКонстант.

Подготовка

  1. Только собственная отдельная учебная база. Создайте Константы → УчебнаяПамяткаИстории. Своя константа Строка 100: вручную установите Книга, затем Книга: 3 шт. Не используйте константы рабочей конфигурации.

  2. У этого своего объекта включите ИсторияДанных; у дополнительного поля КомментарийИстории, если оно используется, также включите участие в истории. Подготовьте две версии только собственных данных; включение флага само не создаёт задним числом версии.

  3. Дождитесь штатного обновления своей истории. Для ручного обновления выбирайте конкретные свои данные / свои метаданные и не вызывайте бесконтрольное ОбновитьИсторию() без отбора в рабочей базе.

  4. Для однозначного опыта используйте собственную учебную конфигурацию с ЕДИНСТВЕННОЙ константой УчебнаяПамяткаИстории Строка 100. Две вручную записанные версии — Книга и Книга: 3 шт. Не переносите этот пример на форму многих рабочих констант: у каждой могут быть свои номера истории.

  5. Создайте общую управляемую форму УчебныеКонстантыИстории. Основной реквизит НаборКонстант типа НаборКонстант; в его состав включите только УчебнаяПамяткаИстории и выведите соответствующее поле. Именно основной набор включает стандартное расширение формы констант. Обычный реквизит Строка с таким именем его не заменяет.

  6. Отдельная собственная вызывающая управляемая форма содержит основной клиентский обработчик и дополнительную серверную функцию. В принимающей форме не вызывайте повторное Прочитать текущего состояния после штатной обработки параметра истории: это подменило бы выбранную версию текущими данными.

  7. Параметр НомерВерсииПереходаНаВерсиюИсторииДанных — ключевой стандартный параметр формы, не реквизит пользователя и не версия платформы. У набора констант нет ссылочного Ключ, поэтому ключ справочника сюда не передаётся.

&НаКлиенте
Процедура ОткрытьСвоюВерсиюКонстанты(Команда)
    Версии = ПолучитьПаруУчебныхВерсий();
    Параметры = Новый Структура("НомерВерсииПереходаНаВерсиюИсторииДанных", Версии.ДоИзменения);
    Форма = ПолучитьФорму("ОбщаяФорма.УчебныеКонстантыИстории", Параметры, ЭтаФорма, Истина);
    Форма.ТолькоПросмотр = Истина;
    Форма.Открыть();
КонецПроцедуры
Вызывающая форма: выбрать две существующие версии своей константы
&НаСервереБезКонтекста
Функция ПолучитьПаруУчебныхВерсий()
    Отбор = Новый Структура("Метаданные", Метаданные.Константы.УчебнаяПамяткаИстории);
    ПерваяВыборка = ИсторияДанных.ВыбратьВерсии(Отбор, "Данные,НомерВерсии", "НомерВерсии Возр", 1);
    Если ПерваяВыборка.Количество() = 0 Тогда
        ВызватьИсключение "Подготовьте историю собственных данных по инструкции";
    КонецЕсли;
    Данные = ПерваяВыборка[0].Данные;
    ОтборДанных = Новый Структура("Данные", Данные);
    Версии = ИсторияДанных.ВыбратьВерсии(ОтборДанных, "НомерВерсии", "НомерВерсии Возр", 2);
    Если Версии.Количество() < 2 Тогда
        ВызватьИсключение "Для одного своего объекта нужны две реальные версии";
    КонецЕсли;
    Возврат Новый Структура("Данные,ДоИзменения,ПослеИзменения", Данные, Версии[0].НомерВерсии, Версии[1].НомерВерсии);
КонецФункции

Разбор по шагам

  1. Подготовьте только свою константу и две её реальные версии.

  2. Выберите номер первой версии по собственным метаданным и данным истории.

  3. Откройте настоящую форму набора констант только для просмотра и закройте без сохранения.

Как проверить результат

  1. Номер берётся не из чисел 1 / 2, а из ИсторияДанных.ВыбратьВерсии для одной собственной константы. Если версии ещё не сформированы, функция завершает опыт понятным исключением.

  2. Открытие с номером не объявляется доказанным восстановлением базы. ТолькоПросмотр запрещает редактирование в этой форме; Записать, переход с сохранением и обновление истории код не вызывают.

  3. BSL, чтение истории в базе и открытие форм при сборке HTML не выполнялись.

Ожидаемый результат

Есть реальный источник номера и форма правильного основного типа с одной собственной константой.

На что обратить внимание

  1. Не передавайте номер версии чужого объекта и не считайте общую форму с обычным полем формой констант.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.