Имя: Пароль:
1C
1С v8
Изменение ТЧ документа
0 Varyag712
 
14.02.20
10:20
По БП документы "закрыты" и нужно сделать отдельную форму для редактирования определенных показателей.
Создал табличный документ на форме и кнопку "Обновить", пробегаюсь циклом по ТЧ документа и обнвляю данные

ТабДок = ЭтаФорма.ТаблицаДанных;
СтрокаКонца = ТабДок.ВысотаТаблицы;    

Для Строка = 2 по СтрокаКонца Цикл

    КлючСтроки = ТабДок.Область("R"+Формат(Строка, "ЧГ=0")+"C1").Текст;
    СкидкаВнакладной = ТабДок.Область("R"+Формат(Строка, "ЧГ=0")+"C2").Текст;

            Запрос = Новый Запрос;
            Запрос.Текст = "ВЫБРАТЬ
                           |    ЗаявкаПоставщикаСодержание.Ссылка КАК Ссылка,
                           |    ЗаявкаПоставщикаСодержание.КлючСтроки КАК КлючСтроки,
                           |    ЗаявкаПоставщикаСодержание.НомерСтроки КАК НомерСтроки
                           |ИЗ
                           |    Документ.ЗаявкаПоставщика.Содержание КАК ЗаявкаПоставщикаСодержание
                           |ГДЕ
                           |    ЗаявкаПоставщикаСодержание.КлючСтроки = &КлючСтроки";
            Запрос.УстановитьПараметр("КлючСтроки",КлючСтроки);
                
            Выборка = Запрос.Выполнить().Выбрать();
            Выборка.Следующий();
            ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект();
                
Если СкидкаВнакладной <> "" Тогда ДокументОбъект.Содержание[Выборка.НомерСтроки - 1].СкидкаВСчетеВНакладной = СкидкаВнакладной КонецЕсли;

            ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); // вариант 1 - внутри цикла
            
        КонецЦикла;
        
        //ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение); // вариант 2 - после цикла

Понятно, что если несколько документов, сделаю обход по документам и т.д.
Вопрос в том, что при сохранении каждой записи - раздувается история документа и делать сравнение версий становится проблемой
При сохранении документа после цикла - записывается только последняя запись
Как мне и рыбку съесть и в Кремль сесть ? т.е. сохранять документ 1 раз после всех изменений в ТЧ по нужным строкам
1 bolobol
 
14.02.20
10:47
"Как ... сохранять документ 1 раз после всех изменений в ТЧ по нужным строкам" - ответ в самом вопросе, если убрать Кремль и рыбку
2 catena
 
14.02.20
10:51
Получать объект тоже надо вне цикла. Если это один и тот же документ, конечно.
3 Varyag712
 
14.02.20
12:07
(2) Спасибо