Всем привет, УПП.
Суть такая: на основании документа А делаю другой Б. И мне надо при проведении Б сравнить ТЧ А и Б,и перезаписать А если там есть какие-то изменения.
Подскажите, что не так делаю? не записывает элементы в документ. Нет ошибок, но ничего и не меняется.
Это в процедуре ПередЗаписью() документа Б
---
Если документ новый, то в ПередЗаписью ссылки еще нет, поэтому запрос вернет не корректный результат.
---
```1c
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    ОбновитьДокументОснование();

    КонецПроцедуры

    Процедура ОбновитьДокументОснование()

    Текст =
    "ВЫБРАТЬ
    | ПТУТовары.Номенклатура КАК Номенклатура,
    | ПТУТовары.Количество КАК Количество,
    | ПТУТовары.Коэффициент КАК Коэффициент,
    | ПТУТовары.фто_МаркаТехники КАК фто_МаркаТехники,
    | ПТУТовары.фто_Ячейка КАК фто_Ячейка
    |ПОМЕСТИТЬ втПТУТовары
    |ИЗ
    | &ПТУТовары КАК ПТУТовары
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Товары.НомерСтроки КАК НомерСтроки,
    | Товары.Номенклатура КАК Номенклатура,
    | Товары.Количество КАК Количество,
    | Товары.Коэффициент КАК Коэффициент,
    | Товары.МаркаТехники КАК МаркаТехники,
    | Товары.Ячейка КАК Ячейка
    |ПОМЕСТИТЬ втПоступлениеТовары
    |ИЗ
    | Документ.ПоступлениеЗапчастей.Товары КАК Товары
    |ГДЕ
    | Товары.Ссылка = &СсылкаПоступлениеЗапчастей
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | втПоступлениеТовары.НомерСтроки КАК НомерСтроки,
    | втПоступлениеТовары.Номенклатура КАК Номенклатура,
    | ЕСТЬNULL(втПТУТовары.Количество, втПоступлениеТовары.Количество) КАК Количество,
    | ЕСТЬNULL(втПТУТовары.Коэффициент, втПоступлениеТовары.Коэффициент) КАК Коэффициент,
    | ЕСТЬNULL(втПТУТовары.фто_МаркаТехники, втПоступлениеТовары.МаркаТехники) КАК МаркаТехники,
    | ЕСТЬNULL(втПТУТовары.фто_Ячейка, втПоступлениеТовары.Ячейка) КАК Ячейка
    |ИЗ
    | втПоступлениеТовары КАК втПоступлениеТовары
    | ЛЕВОЕ СОЕДИНЕНИЕ втПТУТовары КАК втПТУТовары
    | ПО втПоступлениеТовары.Номенклатура = втПТУТовары.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    | НомерСтроки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | втПоступлениеТовары.НомерСтроки КАК НомерСтроки,
    | втПоступлениеТовары.Номенклатура КАК Номенклатура
    |ИЗ
    | втПоступлениеТовары КАК втПоступлениеТовары
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ втПТУТовары КАК втПТУТовары
    | ПО втПоступлениеТовары.Номенклатура = втПТУТовары.Номенклатура
    |ГДЕ
    | (втПоступлениеТовары.Количество <> втПТУТовары.Количество
    | ИЛИ втПоступлениеТовары.Коэффициент <> втПТУТовары.Коэффициент
    | ИЛИ втПоступлениеТовары.МаркаТехники <> втПТУТовары.фто_МаркаТехники
    | ИЛИ втПоступлениеТовары.Ячейка <> втПТУТовары.фто_Ячейка)
    |
    |УПОРЯДОЧИТЬ ПО
    | НомерСтроки";

    Запрос = новый Запрос(Текст);
    Запрос.УстановитьПараметр("СсылкаПоступлениеЗапчастей", бит_ДокументОснование);
    Запрос.УстановитьПараметр("ПТУТовары", ЭтотОбъект.Товары.Выгрузить());
    Пакет = Запрос.ВыполнитьПакет();
    ТЧПоступления = Пакет[2].Выгрузить();
    ИзмененныеСтроки = Пакет[3].Выгрузить();

    Если ИзмененныеСтроки.Количество() > 0 Тогда
    ПоступлениеЗапчастейОбъект = бит_ДокументОснование.ПолучитьОбъект();
    ПоступлениеЗапчастейОбъект.Товары.Загрузить(ТЧПоступления);
    ПоступлениеЗапчастейОбъект.Записать();
    КонецЕсли;

    КонецПроцедуры
```

наверно. хз.
вопросы на засыпку:
- че делать при отмене проведения документа Б?
- че будет, если создать два документа Б на одну и туже номенклатуру с разными данными в строке, а затем второй отменить? либо провести еще раз первый?
---
Сообщение было скрыто модератором.
---
Если документ новый, то в ПередЗаписью ссылки еще нет, поэтому запрос вернет не корректный результат.
---
Суть такая: на основании документа А делаю другой Б. И мне надо при проведении Б сравнить ТЧ А и Б,и перезаписать А если там есть какие-то изменения.

Если я верно понял, то вы хотите иметь одинаковую таб. часть в обоих документах.
Тогда не нужна таб. часть ни в одном из этих документов, а надо общие данные хранить где-то еще, например в регистре сведений. На форму же обоих документов выводится табл. значений, которая при создании формы заполняется данными РС, а изменения переносятся обратно в РС, согласно вашим бизнес-правилам.
На всякий случай - если вам нужно нечто экзотическое - типа "до проведения таб. части могут различаться", то это решается также.

А то, что вы пытаетесь сделать, по-моему, - серьезная архитектурная ошибка.
---
```1c
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    ОбновитьДокументОснование();

    КонецПроцедуры

    Процедура ОбновитьДокументОснование()

    Текст =
    "ВЫБРАТЬ
    | ПТУТовары.Номенклатура КАК Номенклатура,
    | ПТУТовары.Количество КАК Количество,
    | ПТУТовары.Коэффициент КАК Коэффициент,
    | ПТУТовары.фто_МаркаТехники КАК фто_МаркаТехники,
    | ПТУТовары.фто_Ячейка КАК фто_Ячейка
    |ПОМЕСТИТЬ втПТУТовары
    |ИЗ
    | &ПТУТовары КАК ПТУТовары
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Товары.НомерСтроки КАК НомерСтроки,
    | Товары.Номенклатура КАК Номенклатура,
    | Товары.Количество КАК Количество,
    | Товары.Коэффициент КАК Коэффициент,
    | Товары.МаркаТехники КАК МаркаТехники,
    | Товары.Ячейка КАК Ячейка
    |ПОМЕСТИТЬ втПоступлениеТовары
    |ИЗ
    | Документ.ПоступлениеЗапчастей.Товары КАК Товары
    |ГДЕ
    | Товары.Ссылка = &СсылкаПоступлениеЗапчастей
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | втПоступлениеТовары.НомерСтроки КАК НомерСтроки,
    | втПоступлениеТовары.Номенклатура КАК Номенклатура,
    | ЕСТЬNULL(втПТУТовары.Количество, втПоступлениеТовары.Количество) КАК Количество,
    | ЕСТЬNULL(втПТУТовары.Коэффициент, втПоступлениеТовары.Коэффициент) КАК Коэффициент,
    | ЕСТЬNULL(втПТУТовары.фто_МаркаТехники, втПоступлениеТовары.МаркаТехники) КАК МаркаТехники,
    | ЕСТЬNULL(втПТУТовары.фто_Ячейка, втПоступлениеТовары.Ячейка) КАК Ячейка
    |ИЗ
    | втПоступлениеТовары КАК втПоступлениеТовары
    | ЛЕВОЕ СОЕДИНЕНИЕ втПТУТовары КАК втПТУТовары
    | ПО втПоступлениеТовары.Номенклатура = втПТУТовары.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    | НомерСтроки
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | втПоступлениеТовары.НомерСтроки КАК НомерСтроки,
    | втПоступлениеТовары.Номенклатура КАК Номенклатура
    |ИЗ
    | втПоступлениеТовары КАК втПоступлениеТовары
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ втПТУТовары КАК втПТУТовары
    | ПО втПоступлениеТовары.Номенклатура = втПТУТовары.Номенклатура
    |ГДЕ
    | (втПоступлениеТовары.Количество <> втПТУТовары.Количество
    | ИЛИ втПоступлениеТовары.Коэффициент <> втПТУТовары.Коэффициент
    | ИЛИ втПоступлениеТовары.МаркаТехники <> втПТУТовары.фто_МаркаТехники
    | ИЛИ втПоступлениеТовары.Ячейка <> втПТУТовары.фто_Ячейка)
    |
    |УПОРЯДОЧИТЬ ПО
    | НомерСтроки";

    Запрос = новый Запрос(Текст);
    Запрос.УстановитьПараметр("СсылкаПоступлениеЗапчастей", бит_ДокументОснование);
    Запрос.УстановитьПараметр("ПТУТовары", ЭтотОбъект.Товары.Выгрузить());
    Пакет = Запрос.ВыполнитьПакет();
    ТЧПоступления = Пакет[2].Выгрузить();
    ИзмененныеСтроки = Пакет[3].Выгрузить();

    Если ИзмененныеСтроки.Количество() > 0 Тогда
    ПоступлениеЗапчастейОбъект = бит_ДокументОснование.ПолучитьОбъект();
    ПоступлениеЗапчастейОбъект.Товары.Загрузить(ТЧПоступления);
    ПоступлениеЗапчастейОбъект.Записать();
    КонецЕсли;

    КонецПроцедуры
```

наверно. хз.
вопросы на засыпку:
- че делать при отмене проведения документа Б?
- че будет, если создать два документа Б на одну и туже номенклатуру с разными данными в строке, а затем второй отменить? либо провести еще раз первый?