Имя: Пароль:
1C
1С v8
Изменит значение в найденном строке документа
0 Эльчин
 
04.01.14
14:08
ТЗТовары  - Таблица значений:
ТЗТовары = Новый ТаблицаЗначений;
ТЗТовары.Колонки.Добавить("Номенклатура",,"Номенклатура");
ТЗТовары.Колонки.Добавить("КоличествоУпаковокФакт",,"КоличествоУпаковокФакт");
***********************************заполнил его. а потом сделаю поист в нем:
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номенклатура", Строка(ВыборкаДетальныеЗаписи.Номенклатура));
НайденныйТовар = ТЗТовары.НайтиСтроки(ПараметрыОтбора);
нашел ету строку и хочу изменить значение "КоличествоУпаковокФакт ":
Для Каждого СтрТЧ Из НайденныйТовар Цикл
СтрТЧ.КоличествоУпаковокФакт = СтрТЧ.КоличествоУпаковокФакт+10;
КонецЦикла;
но значение не изменяется. почему?
буду очен благодарен если поможете(извините из за ошибок в тексте)
1 Эльчин
 
04.01.14
14:09
(0) тип НайденныйТовар массив
2 Wobland
 
04.01.14
14:10
изменяется. только в твоей ТЗ, а не там, где ты ждёшь
3 Эльчин
 
04.01.14
14:15
(2) я записываю этот документ. а потом открываю его. там видно что не изменилась
4 Эльчин
 
04.01.14
14:18
вот это вес процедура:
Процедура ВыборкаДокументов()
    ТЗТовары = Новый ТаблицаЗначений;
    ТЗТовары.Колонки.Добавить("Номенклатура",,"Номенклатура");
    ТЗТовары.Колонки.Добавить("КоличествоУпаковокФакт",,"КоличествоУпаковокФакт");
    
    Док = Документы.ПересчетТоваров.СоздатьДокумент();
    Док.Дата = ТекущаяДата();
    Док.Статус = Перечисления.СтатусыПересчетовТоваров.ВРаботе;
    Док.ИсточникИнформацииОЦенахДляПечати = Перечисления.ИсточникиИнформацииОЦенахДляПечати.ПоВидуЦен;
    Док.ВидЦены = ВидЦенНовогоДокумента.Ссылка;
    Док.Склад = Склад.Ссылка;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПересчетТоваровТовары.Номенклатура,
        |    ПересчетТоваровТовары.КоличествоУпаковокФакт,
        |    ПересчетТоваровТовары.Ссылка
        |ИЗ
        |    Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
        |ГДЕ
        |    ПересчетТоваровТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";

    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        ПараметрыОтбора = Новый Структура;
        ПараметрыОтбора.Вставить("Номенклатура", Строка(ВыборкаДетальныеЗаписи.Номенклатура));
    
        НайденныйТовар = ТЗТовары.НайтиСтроки(ПараметрыОтбора);
        Если НайденныйТовар.Количество() = 0 Тогда
            НЭлемент = Док.Товары.Добавить();
            НЭлемент.Номенклатура =ВыборкаДетальныеЗаписи.Номенклатура;
            НЭлемент.КоличествоУпаковокФакт = ВыборкаДетальныеЗаписи.КоличествоУпаковокФакт;
            НЭлемТЗ = ТЗТовары.Добавить();
            НЭлемТЗ.Номенклатура = Строка(ВыборкаДетальныеЗаписи.Номенклатура);
            НЭлемТЗ.КоличествоУпаковокФакт = ВыборкаДетальныеЗаписи.КоличествоУпаковокФакт;
        Иначе
            Для Каждого СтрТЧ Из НайденныйТовар Цикл
                СтрТЧ.КоличествоУпаковокФакт = СтрТЧ.КоличествоУпаковокФакт+ВыборкаДетальныеЗаписи.КоличествоУпаковокФакт;
            КонецЦикла;
        КонецЕсли;
        
    КонецЦикла;
    Док.Записать();

КонецПроцедуры
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.