Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 фев 2024, 09:58

Изменить регистр накопления

Автор vladimir15921, 28 апр 2023, 11:12

0 Пользователей и 1 гость просматривают эту тему.

vladimir15921

Добрый день, не могу разобраться, есть таблица значений ЗарезервированныеТовары , в которую загружаются данные из регистра накоплений, задача изменить количество, отбор устанавливаю по Реализации но почему то отбор не устанавливается и количество не меняется. В чем моя ошибка?

Для Каждого СтрокаТЧ Из Объект.ЗарезервированныеТовары Цикл
Набор = РегистрыНакопления.РТ_ЗарезервированныеТовары.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СтрокаТЧ.Реализация);
Набор.Прочитать();
// Изменение существующих записей
Для Каждого Движение Из Набор Цикл
Движение.Количество = Строка(СтрокаТЧ.Количество);
КонецЦикла;
Набор.Записать(Истина);
КонецЦикла;

LexaK

vladimir15921, в вашем случае, скорее всего, не находит записи по Регистратору СтрокаТЧ.Реализация
проверьте в отладчике
после
Набор.Прочиать();
сколько в нем строчек
Набор.Количество(); ???

и да, реквизиту Количество НЕ НАДО присваивать Строку!!!
так неправильно/НеЛогично
            Движение.Количество = Строка(СтрокаТЧ.Количество);
нужно так
            Движение.Количество = СтрокаТЧ.Количество;
 
если помогло нажмите: Спасибо!

vladimir15921

LexaK, тут получается, что отбор не срабатывает и выводит все строки из регистра, если например при отборе по регистру 1 строка то все ок заполняет и сохраняется, мне нужно в данном случае как то сделать отбор по регистру и номенклатуре.

Набор = РегистрыНакопления.РТ_ЗарезервированныеТовары.СоздатьНаборЗаписей();
        Набор.Отбор.Регистратор.Установить(СтрокаТЧ.Реализация.Ссылка);
        Набор.Отбор.Номенклатура.Установить(СтрокаТЧ.Номенклатура);
        Набор.Прочитать();
        // Изменение существующих записей
        Для Каждого Движение Из Набор Цикл
            Движение.Количество = Строка(СтрокаТЧ.Количество);
            КонецЦикла;
        Набор.Записать(Истина); 
 

Если так делаю выдает ошибку - Поле Номенклатура не обнаружено.

vladimir15921

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

Движение.Количество = Строка(СтрокаТЧ.Количество);
КонецЕсли;
КонецЦикла;
Набор.Записать(Истина);
КонецЦикла;

LexaK

vladimir15921, ни чего не поделаешь,
РН отбираются только по Регистратору!
(надо с этим смириться, такой функционал платформы)
если помогло нажмите: Спасибо!

Теги:  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск