Загрузить данные с одной таблицы в другую с отбором

1. user1809279 23.10.24 08:45 Сейчас в теме
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДоговорыКонтрагентовУслуги.Номенклатура КАК Номенклатура,
		|	ДоговорыКонтрагентовУслуги.Цена КАК Цена,
		|	ДоговорыКонтрагентовУслуги.Сумма КАК Сумма,
		|	ДоговорыКонтрагентовУслуги.Количество КАК Количество,
		|	ДоговорыКонтрагентовУслуги.Ссылка.Владелец КАК Контрагент,
		|	ДоговорыКонтрагентовУслуги.Ссылка.Ссылка КАК Договор
		|ИЗ
		|	Справочник.ДоговорыКонтрагентов.Услуги КАК ДоговорыКонтрагентовУслуги
		|ГДЕ
		|	ДоговорыКонтрагентовУслуги.Ссылка.Владелец В (&МассивКонтрагентов)";
	
	
	Если МассивКонтрагентов <> Неопределено Тогда
		Запрос.УстановитьПараметр("МассивКонтрагентов", МассивКонтрагентов);	
	КонецЕсли; 
	
	
	
	
	ППТабЗнач = Запрос.Выполнить().Выгрузить();	
Показать


Здравствуйте, такой вопрос. Выгружаю с запроса табличную часть, чтобы загрузить во вторую таблицу. Хочу сделать отбор по контрагенту, но при попытке откомпилировать ругается что не установлен параметр, что можно сделать и как его добавить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 23.10.24 08:49 Сейчас в теме
(1)
ругается что не установлен параметр

первое, что приходит в голову - установить параметр. Как-то простовато, я понимаю, но, с другой стороны, надо ли усложнять?
3. Pavel Rodinchenko 23.10.24 08:55 Сейчас в теме
(1)
|ГДЕ
| ДоговорыКонтрагентовУслуги.Ссылка.Владелец В (&МассивКонтрагентов)";

выбор когда &ОтбиратьПоКонтрагентам тогда ДоговорыКонтрагентовУслуги.Ссылка.Владелец В (&МассивКонтрагентов) иначе Истина (ну или Ложь если надо пустой результат получить) Конец.
Запрос.установитьПараметр("ОтбиратьПоКонтрагентам", НЕ МассивКонтрагентов = Неопределено);
Запрос.УстановитьПараметр("МассивКонтрагентов", МассивКонтрагентов);
5. user1809279 23.10.24 09:10 Сейчас в теме
(3) Ошибки нет, спасибо, но проблема одна осталась. Сделала условие по отбору, чтоб с табличной части переносились значения только по заданному контрагенту, с этим исправление табличная часть пустая. Без условия переносит все значения табличной всех контрагентов
4. Alex_E 2374 23.10.24 09:06 Сейчас в теме
(1)
Если МассивКонтрагентов <> Неопределено Тогда
Запрос.УстановитьПараметр("МассивКонтрагентов", МассивКонтрагентов);
КонецЕсли;
заменить на
Если МассивКонтрагентов <> Неопределено Тогда
    Запрос.УстановитьПараметр("МассивКонтрагентов", МассивКонтрагентов);
Иначе
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДоговорыКонтрагентовУслуги.Ссылка.Владелец В (&МассивКонтрагентов)", ИСТИНА);
КонецЕсли;
6. user1809279 23.10.24 09:11 Сейчас в теме
(4) Ошибка при вызове метода контекста (Выполнить)
{(11, 2)}: Поле не найдено "Да"

Выдает такую ошибку
7. Alex_E 2374 23.10.24 09:13 Сейчас в теме
(6) Виноват "ИСТИНА" в кавычках надо написать, поторопился
8. user1809279 23.10.24 09:22 Сейчас в теме
(7) Поняла) Спасибо, к сожалению такая же проблема и осталась:( Переносятся все значения со всех контрагентов все равно
9. Alex_E 2374 23.10.24 09:24 Сейчас в теме
(8) Ну так ведь предложенный мной код отрабатывает тогда, когда МассивКонтрагентов = Неопределено, т.е. отбора нет, смотрите, как Вы создаёте массив...
10. user1809279 23.10.24 09:34 Сейчас в теме
(9) А что смотреть? Он же создается по запросу
11. Alex_E 2374 23.10.24 09:39 Сейчас в теме
(10)
А что смотреть? Он же создается по запросу
- где это можно посотреть? Вы же выложили только запрос и установку параметров этого запроса - т.е. подразумевается, что в переменной МассивКонтрагентов что то должэно было быть записано в коде выше (его мы не видим). А сюдя по тому, что там Неопределено, переменная "МассивКонтрагентов" не заполнена никакмими значениями.
12. user1809279 23.10.24 10:11 Сейчас в теме
(11) Да стоит неопределенно, потому что значение МассивКонтрагентов я пишу в саму процедуру и неопределенно чтоб на клиенте считывал. И правда вот проблема с установкой значения, не знаю как правильно сделать
13. Alex_E 2374 23.10.24 10:41 Сейчас в теме
(12)
Да стоит неопределенно, потому что значение МассивКонтрагентов я пишу в саму процедуру и неопределенно чтоб на клиенте считывал.
- буквы все понимаю, слова нет(((
Принцип простой - параметр должен быть заполнен ДО его установки в запросе...
14. LeeAreHim 23.10.24 10:57 Сейчас в теме
Судя по словам Топикстартера запрос отрабатывает правильно. только Вы проверяете МассивКонтрагентов на неопределено, а скорее всего нужно проверять на МассивКонтрагенов.Количество() <> 0. т.е. сам массив то есть и он не равен неопределено. а вот само содержание массива пустое
15. Bukaska 140 23.10.24 13:53 Сейчас в теме
(12)
МассивКонтрагентов = Новый Массив;
МассивКонтрагентов.Добавить(Справочники.Контрагенты.НайтиПоНаименованию("Кого-то тут ищите"));

Но это я чисто как пример.. вы можете искать по наименованию, по группе или хз по каким критериям
Оставьте свое сообщение

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