Всем привет! работаю на 1с 8.3.13.1690 конфигурация Экономист и столкнулся с такой проблемой. При переносе данных из бухии нужно найти контрагента - делаю так
//табЗнач - таблица с загруженными УНН из бухии
НашСписок = табЗнач.ВыгрузитьКолонку("УНН");
Запрос =новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка,
| Контрагенты.ИНН КАК УНН,
| Контрагенты.Код КАК Код,
| Контрагенты.ОсновнойРасчетныйСчет КАК ОсновнойРасчетныйСчет
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ИНН В(&СпискеУНН)";
запрос.УстановитьПараметр("СпискеУНН",НашСписок);
рез = Запрос.Выполнить().Выбрать();
Пока рез.Следующий() Цикл
НашиСтроки = табЗнач.НайтиСтроки(Новый Структура("УНН",рез.УНН));
Для каждого строка из НашиСтроки Цикл
строка.Контра=рез.ссылка;
КонецЦикла;
КонецЦикла;
В результате я нахожу только часть контрагентов, и если сделать после выполнения запроса так
Для каждого Кл из табЗнач Цикл
Если кл.контра.Пустая() ТОгда
кл.контра=Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",Кл.УНН);
КонецЕсли;
//
нахожу еще значительное количество контрагентов. Не могу понять в чем может быть дело?
можно конечно весь справочник контрагентов в табличку загнать и тогда ИНН можно хоть в число преобразовать, а там уж и сравнивать, но справочник не маленький.
(10) ок.
Пихай свою тз в запрос и имей всё в одном запросе.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший