Запрос к внешней таблице. Использование результата запроса из другой базы. #568115


#0 by CAPITALIST
нужно сверить соответствие счетов-фактур в двух разных базах. Не получается использовать таблицу, в которую выгружен результат запроса из внешней базы
#1 by ZanderZ
т.е. у тебя "СчетФактураВыданный.Ссылка" нормально передается ????
#2 by CAPITALIST
Передается как СОМ объект. но я же все равно во втором запросе это поле не беру. у Номера простейший тип Строка по-идее. Поэтому проблем не должно возникать!
#3 by ZanderZ
ну так ты в запрос ВСЮ таблицу передаешь, а потом уже выбираешь номер строки
#4 by CAPITALIST
Только что убрал из первого запроса все поля кроме Номер. т.е. результат внешнего запроса теперь содержит поле базового типа. Та же ошибка. Может я вообще не тем путем пошел? а как по-другому взять доки из другой базы? да еще потом связать их по номеру и дате с доками текущей базы?
#5 by ZanderZ
что за ошибка то ??
#6 by CAPITALIST
Ошибка при вызове метода методе выполнить. Неверные параметры "Таблица" <<?>>&Таблица КАК Таб. Вот только если подставить табличку созданую в этой базе, с полем Номер, 10 строк. значения от 1 до 10, такой ошибки не возникает! но там я явно указываю тип поля у таблицы источника
#7 by zender
#8 by CAPITALIST
В принципе все я это делал. Мои действия не противоречат данной статье.
#9 by CAPITALIST
Как еще можно дернуть доки из другой базы? далее я буду их связывать с докам текущей базы по Номер = НомерВходДока И Дата = ДатаВходДока
#10 by zender
была похожая проблема, решал созданием отдельной ТЗ, с указанием типов колонок, в нее грузил данные из внешнего источника и засовывал в МВТ
#11 by CAPITALIST
сейчас также делаю. вот только у меня около 20000 строк в результате... хорошо, а возможно ли преобразовать целую колонку в заполненной таблице? там что-то есть такое, только не разобрался как использовать ТабУПП.Колонка.ИмяПоля.ТипЗначения
#12 by zender
Нет: КолонкаТаблицыЗначений.ТипЗначения (ValueTableColumn.ValueType) ТипЗначения (ValueType) Использование: Только чтение. Описание: Тип: ОписаниеТипов. Содержит объект, описывающий допустимые типы значений для колонки. Доступность: Сервер, толстый клиент, внешнее соединение.
#13 by CAPITALIST
Хорошо, а можно в запросе (не к внешней базе, а к текущей) преобразовать Строку к числу? убераю префикс, а дальше возможно в этом же запросе к числу преобразовать?
#14 by zender
можно, через конструкцию ВЫРАЗИТЬ
#15 by CAPITALIST
Эта функция работает только для полей, имеющих составной тип. Т.е. в данном случае Номер должен иметь тип и Строки и Числа, тогда бы работало
#16 by zender
покажи код
#17 by VVi3ard
прав нужно задать тип колонки. Альтернатива это делать запрос к SQL данным но в твоем случае (2000 строк) это из пушки по воробьям, 2000 строк добавятся в новую ТЗ секунд за 15 поэтому создавай Новую ТЗ с указанием типов колонок и с помощью ВыгрузитьКолонку/ЗагрузитьКолонку перекидывай данные из ТабУПП в новую ТЗ. Если бы у тебя было 1,5-2 миллиона строк нужно было бы использовать ЗапросУПП.Выполнить.Выбрать и по выборке формировать ТЗ. По сути Выгрузить тоже по выборке бегает и формирует ТЗ по крайней мере в тестовых примерах Выгрузить или Выбрать + Цикл по Выборке с добавлением строк занимает сравнимое время. А если больше то лучше написать SQL запрос.
#18 by Синий зуб
Вот проблема то. Добавь новую колонку с нужным типом в твою готовую ТЗ, заполни ее в цикле, грохни старую.
#19 by VVi3ard
я о том же, человек считает что 2000 записей это много :) У меня в принципе ТЗ меньше 20 000 редко встречаются :) 2000 строк в ТЧ это стандартный документ.
#20 by CAPITALIST
Нолик потеряли))) не 2000 а 20 тыщ. И таких запроса 3. И это не единственное поле которое нужно преобразовать! Видите как увеличиться время обработки! Ахигеть, zender!!! Вот это настоящий изврат))) Но работает!!! Спасибо!
#21 by zender
пож-та)
#22 by VVi3ard
Сколько у тебя выполняется код?
#23 by Serdolik55
У меня была похожая задача, делал так:
#24 by zender
- это пример того, что я описал в
#25 by Serdolik55
Собственно да, более развёрнутый
#26 by VVi3ard
Через выборку как я писал в более оптимально по памяти, но даже если через ТЗ то на таких смешных объёмах даже тупой код работает мгновенно. Вот можно потестить: У меня: Финиш: 06.09.2011 11:02:29 Старт выгрузка колонки: 06.09.2011 11:02:29 Финиш выгрузка колонки: 06.09.2011 11:02:30
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С