Получить строку ТЗ и записать в нее

1. request4t 15.10.19 15:40 Сейчас в теме
Привет!

Задача: найти строку в ТЗ по двум параметрам (Номенклатура и Характеристика) и записать в нее Остаток. Написал код, но видимо, не то... Прошу подсказок.

	резост = Запрос.Выполнить().Выбрать();
	Пока резост.Следующий() Цикл
		ПараметрыОтбора = Новый Структура;
		ПараметрыОтбора.Вставить("Номенклатура", резост.Номенклатура);
		ПараметрыОтбора.Вставить("Характеристика", резост.Характеристика);
		НайденныеСтроки = рез2.НайтиСтроки(ПараметрыОтбора);

//и что дальше?

	КонецЦикла;
Показать
По теме из базы знаний
Найденные решения
8. aezdakov 5 15.10.19 16:54 Сейчас в теме
(6)НайтиСтроки возвращает массив ссылок на строки из таблицы рез2, изменение данных в этом массиве приведёт к изменению данных в вашей таблице рез2.
Таким образом осуществляют удаление строк из таблицы значений (ТЗ):
Для каждого Строка Из НайденныеСтроки Цикл
Если Строка.анигилятронаяпушка Тогда
рез2.удалить(Строка);
КонецЕсли;
КонецЦикла;

Так как если делать перебор самой ТЗ и там вызывать удалить, то в цикле произойдёт смещение и вы можете пропустить строки, которые надо было удалить, а в случае перебора по индексу получите ошибку индекс выходит за пределы массива или как она там.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. aka Любитель XML 15.10.19 15:43 Сейчас в теме
(1) вы после НайтиСтроки - получаете коллекцию, которую нужно обойти циклом, либо обратиться к нужной записи, пример:
Если НайденныйСтроки.Количество() > 0 Тогда
НайденныйСтроки[0].Количество = 1;
КонецЕсли;
4. request4t 15.10.19 16:16 Сейчас в теме
(2)
да, там массив. это понятно. не понимаю как в рез2.остаток записать резост.остаток.
5. aezdakov 5 15.10.19 16:23 Сейчас в теме
(4)
 резост = Запрос.Выполнить().Выбрать();
    Пока резост.Следующий() Цикл
        ПараметрыОтбора = Новый Структура;
        ПараметрыОтбора.Вставить("Номенклатура", резост.Номенклатура);
        ПараметрыОтбора.Вставить("Характеристика", резост.Характеристика);
        НайденныеСтроки = рез2.НайтиСтроки(ПараметрыОтбора);

Для каждого Строка Из НайденныеСтроки Цикл
Строка.остаток =  резост.остаток;
КонецЦикла;

    КонецЦикла;
Показать
6. request4t 15.10.19 16:35 Сейчас в теме
(5)
Для каждого Строка Из НайденныеСтроки Цикл
Строка.остаток = резост.остаток;
КонецЦикла;

т.е. строка из массива это и есть найденная строка ТЗ и в нее сразу можно писать?
8. aezdakov 5 15.10.19 16:54 Сейчас в теме
(6)НайтиСтроки возвращает массив ссылок на строки из таблицы рез2, изменение данных в этом массиве приведёт к изменению данных в вашей таблице рез2.
Таким образом осуществляют удаление строк из таблицы значений (ТЗ):
Для каждого Строка Из НайденныеСтроки Цикл
Если Строка.анигилятронаяпушка Тогда
рез2.удалить(Строка);
КонецЕсли;
КонецЦикла;

Так как если делать перебор самой ТЗ и там вызывать удалить, то в цикле произойдёт смещение и вы можете пропустить строки, которые надо было удалить, а в случае перебора по индексу получите ошибку индекс выходит за пределы массива или как она там.
3. platonov.e 158 15.10.19 15:43 Сейчас в теме
Для каждого стр из НайденныеСтроки  цикл
стр.остаток = 1;

конеццикла;
7. aka Любитель XML 15.10.19 16:37 Сейчас в теме
резост = Запрос.Выполнить().Выбрать();
    Пока резост.Следующий() Цикл
        ПараметрыОтбора = Новый Структура;
        ПараметрыОтбора.Вставить("Номенклатура", резост.Номенклатура);
        ПараметрыОтбора.Вставить("Характеристика", резост.Характеристика);
        НайденныеСтроки = рез2.НайтиСтроки(ПараметрыОтбора);
        Для каждого стр из НайденныеСтроки Цикл
              стр.Остаток = резост.Остаток;
        КонецЦикла;
    КонецЦикла;
Показать
9. YannikAlx 43 15.10.19 17:06 Сейчас в теме
Вы тут все обсуждаете а я смотрю и не пойму - ЧТО такое рез2 и почему в нем надо что-то искать?
Из всех написанных букоф ни где ни разу нипонятно )))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот