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

Не могу заполнить таблицу циклом

Автор nanbugokwa, 31 янв 2025, 04:54

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

nanbugokwa

Создаю внешнюю обработку в 1С, имеется следующий код в модуле формы обработки:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Материал.Наименование КАК Наименование,
| Стоимость,
| ВидДвижения
|ИЗ
| РегистрНакопления.СтоимостьМатериалов
|ГДЕ
| ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)";

Выборка = Запрос.Выполнить().Выгрузить();

Для Каждого Материалы из Выборка Цикл

ТабCтрока = ТЗнСтоимостьМатериаловПоРасходу.Добавить();

ТабСтрока.ТЗнСтоимостьМатериаловПоРасходуНаименование = Материалы.Наименование;
ТабСтрока.ТЗнСтоимостьМатериаловПоРасходуСтоимость = Материалы.Стоимость;
ТабСтрока.ТЗнСтоимостьМатериаловПоРасходуВидДвижения = Материалы.ВидДвижения;
КонецЦикла;
КонецПроцедуры

Выбивает ошибку, что ТабСтрока -- необъявленная переменная. Хотя, когда я смотрел видео другого человека с подобным кодом, он "ТабСтрока" до вызова цикла тоже не объявлял, но у него всё работает исправно.



Ежели я объявлю переменную ТабСтрока до вызова цикла, то при вызове внешней обработки получаю следующее сообщение:


В общем, не знаю как тут быть. Чувствую, что ошибка в коде (или же чём-то другом) невероятно тупая и простая. Но я пока просто учусь. Буду рад, если вы поможете.

ПРИМЕЧАНИЕ: ТЗнСтоимостьМатериаловПоРасходу -- это название табличной части в форме внешней обработки (т.е. это и есть та таблица, которую я пытаюсь заполнить)

alexandr_ll

nanbugokwa, Исправьте так
 ТабCтрока = Объект.ТЗнСтоимостьМатериаловПоРасходу.Добавить();

LexaK

nanbugokwa, вообще в ТЗ все грузится одной командой
    ВашаТЗ.Загрузить(Запрос.выполнить().Выгрузить());
чувствуете разницу?
если помогло нажмите: Спасибо!

Максим75

LexaK, да там и в запросе прямо БЯДА.
такой запрос вообще не должен ничего вернуть.

LexaK

Цитата: Максим75 от 31 янв 2025, 09:39LexaK, да там и в запросе прямо БЯДА.
такой запрос вообще не должен ничего вернуть.
так надо же у  человека развивать уверенность - Что в 1С все просто и элементарно
и все понято (и даже книжек читать не надо! так пару видосиков посмотрел
и дело (в смысле 1С) в шляпе)

Все это шутка конечно-же.  :D
если помогло нажмите: Спасибо!

nanbugokwa

alexandr_ll, к сожалению не помогло :(

nanbugokwa

LexaK, ваша штука действительно помогла. Но к сожалению задача предусматривает решение именно с помощью цикла. Но я всё равно вам благодарен за нужные знания

Максим75

nanbugokwa, еще раз: у Вас беда с запросом. Он ничего не вернет. Потому и не заполнит, хоть в цикле, хоть не в цикле.

nanbugokwa

Максим75, нет, запрос в конфигурации вполне рабочий. Я уже исправил по методу LexaK и всё работает как надо :)

LexaK

nanbugokwa, и еще один совет (кроме чтения книг)
скачайте пару каких нибуть тестовых или учебных баз,
в них полно примеров работы с данными!
заодно и научитесь код читать (очень ценится умение разбираться в чужом коде)
если помогло нажмите: Спасибо!

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

Рейтинг@Mail.ru

Поиск