Имя: Пароль:
1C
1С v8
Как сохранить пометки в табличной части обработки
0 sergqwert
 
07.09.21
19:46
Есть 2 таблицы: таблица по документу-основанию и таблица по товарным позициям. Я выбираю документ и смотрю товарные позиции по нему. Отмечаю галочками некоторые  позиции по товарам и перехожу к другому документу. В первом документе почему-то остаются не отмеченными позиции по документу-основанию. Как их сохранить?
Привожу код:

        СписокТоваров.Очистить();
    Если (ТипЗнч(Элемент.ТекущиеДанные.Документ) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг")) Тогда
        
    ДокументТЗ = Элемент.ТекущиеДанные.Документ;        
        
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ДокументТЗ", ДокументТЗ);
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПоступлениеТоваровУслугТовары.НомерСтроки,
        |    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
        |    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
        |    ПоступлениеТоваровУслугТовары.Количество,
        |    ПоступлениеТоваровУслугТовары.Цена,
        |    ПоступлениеТоваровУслугТовары.Сумма,
        |    ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры,
        |    ЛОЖЬ КАК Отметка,
        |    ПоступлениеТоваровУслугТовары.СерияНоменклатуры,
        |    ПоступлениеТоваровУслугТовары.Номенклатура.Производитель,
        |    ПоступлениеТоваровУслуг.Ссылка
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |        ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслуг.Ссылка
        |ГДЕ
        |    ПоступлениеТоваровУслугТовары.Ссылка = &ДокументТЗ";      
    
    Тз = Новый ТаблицаЗначений;
            Тз = Запрос.Выполнить().Выгрузить();    
            Для Каждого ТекущаяСтрока Из Тз Цикл    
                
                НоваяСтрока = СписокТоваров.Добавить();        
                НоваяСтрока.НомерСтроки            = ТекущаяСтрока.НомерСтроки;
                НоваяСтрока.Отметка             = СокрЛП(Строка(ТекущаяСтрока.Отметка));
                НоваяСтрока.Номенклатура        = ТекущаяСтрока.Номенклатура;
                НоваяСтрока.Производитель       = ТекущаяСтрока.Номенклатура.Производитель;
                НоваяСтрока.ХарактеристикаНоменклатуры  = ТекущаяСтрока.ХарактеристикаНоменклатуры;
                НоваяСтрока.СерияНоменклатуры   = ТекущаяСтрока.СерияНоменклатуры;
                НоваяСтрока.ЕдиницаИзмерения    = ТекущаяСтрока.ЕдиницаИзмерения;
                НоваяСтрока.Количество          = Строка(Строка(ТекущаяСтрока.Количество));
                НоваяСтрока.Цена                 = Строка(Строка(ТекущаяСтрока.Цена));
                НоваяСтрока.Сумма                 = Строка(Строка(ТекущаяСтрока.Сумма));
                
                НоваяСтрока = СписокДокументов.Добавить();        
                НоваяСтрока.НомерСтроки            = ТекущаяСтрока.НомерСтроки;
                НоваяСтрока.Отметка             = СокрЛП(Строка(ТекущаяСтрока.Отметка));
                НоваяСтрока.Документ       = ТекущаяСтрока.Ссылка;
                
            КонецЦикла;
        КонецЕсли;
1 Курцвейл
 
07.09.21
20:51
(0) СписокТоваров надо не очищать, а заполнять полностью на основании всех документов оснований. При активации строки документом основанием устанавливать фильтр на СписокТоваров по документу основанию.
Т.е. в СписокТоваров добавить либо колонку ДокументОснование, который невидимый, либо КлючСвязи, который например отсылает к номеру строки или номеру документа Основания. Т.е. ключ по которому можно фильтровать СписокТоваров
2 Ёпрст
 
08.09.21
00:47
(0)
Это шедевр, конечно:


НоваяСтрока.Отметка             = СокрЛП(Строка(ТекущаяСтрока.Отметка));
НоваяСтрока.Количество          = Строка(Строка(ТекущаяСтрока.Количество));
НоваяСтрока.Цена                 = Строка(Строка(ТекущаяСтрока.Цена));
НоваяСтрока.Сумма                 = Строка(Строка(ТекущаяСтрока.Сумма));
3 JeHer
 
08.09.21
04:22
(0) Сделай одну таблицу. Добавь колонку СсылкаНаДокумент. При переходе на строку фильтруй по ссылке.
(2) потом будет:
Если ТекущаяСтрока.Отметка = "Истина" Тогда
НоваяСтрока.Отметка = Истина...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн