Есть две таблицы значений, нужно из одной таблицы исключить все записи, которые имеются в другой таблице. Думал сделать запросом через левое соединение, но не работает, говорит что при выборе не могут быть соединения. Народ, очень срочно нужно, помогите как-нибудь, как подобное решить можно.
Таблица из которой надо удалять:
ТаблицаУБ = Новый ТаблицаЗначений;
ТаблицаУБ.Колонки.Добавить("Дата");
ТаблицаУБ.Колонки.Добавить("Счет");
ТаблицаУБ.Колонки.Добавить("Сумма");
ТаблицаУБ.Колонки.Добавить("Валюта");
ТаблицаУБ.Колонки.Добавить("ИНН");
ТаблицаСписок = Новый ТаблицаЗначений;
ТаблицаСписок.Колонки.Добавить("ИНН");
ТаблицаСписок.Колонки.Добавить("ФизЛицо")
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТЗУБ", ТаблицаУБ);
Запрос.УстановитьПараметр("ТЗС", ТаблицаСписок);
Запрос.Текст = "ВЫБРАТЬ
| ТЗУБ.Дата,
| ТЗУБ.Счет,
| ТЗУБ.Сумма,
| ТЗУБ.Валюта,
| ТЗУБ.ИНН
| ПОМЕСТИТЬ ТЗУБ
|ИЗ
| &ТЗУБ КАК ТЗУБ
| ЛЕВОЕ СОЕДИНЕНИЕ ТЗС КАК ТЗС
| ПО ТЗУБ.ИНН = ТЗС.ИНН
|ГДЕ
| ТЗС.ИНН ЕСТЬ NULL ";
Результат = Запрос.Выполнить();
Во первых, поля тз надо типизировать. Во-вторых, прежде чем делать манипуляции, все отправленные тз необходимо поместить в вт. В-третьих, если какая ошибка возникает, будьте добры публиковать ее текст.
{Форма.Форма.Форма(161)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
При выборе данных из объекта в запросе не могут присутствовать соединения и объединения
Это то, о чем я говорил в "во-вторых".
Дополню немного то, о чем Petre сказал, как во-вторых. В запросе единственное что можно сделать с ТЗ - это выбрать из нее данные и поместить во временную таблицу. Если нужны последующие манипуляции с этими данными, то работать нужно с этой временной таблицей.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua