ВидИзмененияСтрокиДанных.Добавление

Свойства · Add

Новая строка данных.

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

ВидИзмененияСтрокиДанных.Добавление (DataLineChangeType.Add)

ВидИзмененияСтрокиДанных (DataLineChangeType)

Добавление (Add)

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

Описание:
Новая строка данных.
Использование в версии:

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

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

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

Найти реальные изменения строк своей книги: Добавление

Сравниваются два состояния одной настоящей учебной карточки, включая её собственную табличную часть.

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

Сервер своей учебной обработки; чтение только истории УчебныеКарточкиИстории.

Подготовка

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

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

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

  4. В своём справочнике УчебныеКарточкиИстории добавьте табличную часть СтрокиКниг: КодКниги Строка 20 и Количество Число 10.0. Включите участие табличной части и полей в истории до создания учебных версий.

  5. Для первой версии одной новой своей карточки вручную заполните A=1, B=2, C=3, D=4. Во второй версии измените количество A, уберите B, перенесите D вверх и добавьте E. Дождитесь штатной записи истории именно этих двух версий.

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

  7. Пример только читает уже существующую историю. Удаление строки табличной части не означает удаления самой карточки. Ничего не записывайте программно ради демонстрации.

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

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

  1. Подготовьте две реальные версии своей карточки с указанными строками.

  2. Получите различия выбранной пары версий.

  3. Отберите записи массива по настоящему виду изменения строки.

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

  1. ВидИзмененияСтрокиДанных берётся из фиксированных структур, возвращённых ПолучитьРазличияВерсий, а не из искусственно созданного массива.

  2. Номера до / после относятся к разным состояниям. Для Добавление и Удаление позиция служит ориентиром; перестановки могут менять номера соседних строк. Номера не являются постоянными идентификаторами книги.

  3. Нулевая выборка честно означает отсутствие данного вида в этой паре. Записи различий могут описывать несколько строк через КоличествоИзмененныхСтрок; счётчик примера считает записи массива, а не физические строки.

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

Есть собственная схема, реальные версии и типизированный результат сравнения без записи истории.

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

  1. Не заменяйте отсутствующую историю самодельными фиксированными структурами.

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

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

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

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

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