#0
by LisaAlisa
В базе формирую список значений, состоящий из артикулов, СписокМПЗ. Подключаюсь к другой базе и создаю таблицу рс.УложитьСписокОбъектов(СписокМПЗ, "СписокМПЗ"); (решетки пока не указываю). Далее проверяю значения созданной таблицы select * from списокМПЗ но в результате всего одна строка с пуcтым значением val и isfolder=2. Как правильно передать список артикулов во временную таблицу? В дальнейшем надо получить значение себестоимости по указанному списку
#5
by Ёпрст
на форме выбираешь, или что ? Делай в одном запросе, обращение к этой базе и к сторонней + синхронизация по твоему артикулу
#6
by LisaAlisa
из текущей базы запросом получаю список нужных артикулов, вторым запросом планировалось из второй базы получить сведения по ним, базы разные. Попробую сделать в одном запросе обращение к разным базам
#7
by LisaAlisa
а можно набросать простой приер, как присоеинять вторую базу sql и писать единый запрос. Например, вывести наименования МПЗ из обеих баз, соединив таблицы по артикулу
#13
by LisaAlisa
Выполняю Запрос в базах, расположенных на одном сервере |SELECT | СпрНаш.DESCR as КлиентосВЭтойбазе -- наименование клиентоса в этой базе, можно и не присоединять справочник, а просто типизировать |"; выдает ошибку : State 42S02, native 208, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'dataBase2.dbo.sc46'.
#14
by Ёпрст
:) подставь имя своей базы данных, заместо dataBase2 ЗЫ: если сервер прилинкован, то указывается сначала имя сервера точка имя схемы точка имя базы точка имя таблицы ..
#15
by LisaAlisa
Почему запрос работает в виде |SELECT | Спр.Descr as Наименование, Но если хочу еще получить поля Спр.КодСистемы и Спр2.КодСистемы, то выдает ошибку Invalid column name "КодСистемы".
#17
by LisaAlisa
теперь проблема с параметрами. В запросе, выполняемом в текущей базе, МПЗ фильтруются, параметры указываются на форме. При присоединении второй базы выдает ошибку Meta name parser error: не указан параметр ":ВыбТипНакладной" Ошибка пропадает, если передать конкретное значение, а не параметр
#20
by LisaAlisa
Если запрос выполнить без присоединения запроса из второй базы, то на параметры ругани нет
#25
by Franchiser
УложитьСписокОбъектов работает только со ссылками. Можно было попробовать сделать ВыполнитьSQLИзТЗ.
#28
by Franchiser
ВыбТипНакладной, ВыбЮЛ, ВыбКонтрагент, ВыбКомитент - это ссылки из текущей базы, нет смысла фильтровать в удаленной базы по ним, т.к. тебе не известно как там выглядят эти ссылки. Можно фильтровать только по примитивным типам или же сначала найти ссылки по примитивными типам, затем установить фильтр на ссылки.
#31
by Ёпрст
Хотя не, как в уже не покатит. лень смотреть, что там возвращается после обрметаsql, подсовывает ли он сразу ссылку на справочник, али нет
#32
by Ёпрст
короче. посмотри, какой запрос идёт опосля обрметаскл, и если там твои условия не "превращаются" в ид, то тупо получи ид элементов через метадатаворк и подставь ручонками в текст запроса.
#35
by LisaAlisa
IDВыбТипНакладной = "E1 TC TD " ошибка та же Meta name parser error: не указан параметр ":НачДата"
#38
by LisaAlisa
Еще вопрос остался, надеюсь, последний) из сторонней базы мне нужно получить периодический реквизит. Запрос выглядит так ТекстЗапроса = "-- qryMaker:Отчет1.2017.11.08.14.44.30 как мне полученное поле "УправленческаяСебестоимость" указать в группировке? В текущем виде запрос не работает
#39
by Franchiser
Самый простой вариант: Оберни во вложенный запрос, или помести во временную таблицу через Into, потом выбери из нее данные с группировкой
#43
by LisaAlisa
Запрос возвращает корректно данные, полученные из текущей базы, а вот а вот из сторонней возвращает значение NULL Т.е. , @ПоследнееЗначение.МПЗ.УправленческаяСебестоимость(МПЗ.ID, '"+IDНачДата+"') УправленческаяСебестоимость в sql это выглядит так SELECT select top 1 cast(c1281_vv.value as numeric(18, 4)) from _1sconst as c1281_vv (nolock) where (c1281_vv.date <= '20171001') order by c1281_vv.date desc, c1281_vv.time desc, c1281_vv.docid desc, c1281_vv.row_id desc ) УправленческаяСебестоимость FROM dh130 AS РасходнаяНакладная With (NOLOCK) INNER JOIN dt130 AS РасходнаяНакладнаяСтроки With (NOLOCK) ON РасходнаяНакладная.IDDOC = РасходнаяНакладнаяСтроки.IDDOC INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON РасходнаяНакладная.IDDOC = Журнал.IDDOC INNER JOIN sc155 AS МПЗ1 With (NOLOCK) ON РасходнаяНакладнаяСтроки.sp119 = МПЗ1.ID INNER JOIN GM_teach.dbo.sc72 as МПЗ ON ltrim(rtrim(МПЗ.sp66))=ltrim(rtrim(МПЗ1.sp178))
#44
by LisaAlisa
при этом если получать из сторонней базы не периодические реквизиты, они возвращаются. Проблема именно с периодическим
#45
by Franchiser
логично, не используй ПоследнееЗначение, он тебе выдаст неверный результат, т.к. парсер ничего не знает о том что нужно сгенерировать запрос к таблицам другой базы. Например _1sconst по твоему запросу будет взята из текущей базы. Нужно написать gm_teach.dbo._1sconst остальные поля пиши с @, чтобы указать парсеру, что они из другой базы
#46
by Franchiser
Кстати я не уверен что в ПоследнееЗначение нужно передать идентификатор даты, там д.б. тип дата
#47
by LisaAlisa
с датой прокатывает. Проверяла подобный запрос, используя стороннюю базу как текущую для проверки
#48
by LisaAlisa
@ можно вставлять непосредственно в sql? такой вариант не прокатывает , ( select top 1 cast(@c1281_vv.value as numeric(18, 4)) from gm_teach.dbo._1sconst as c1281_vv (nolock) where and (@c1281_vv.date <= '20171001') order by @c1281_vv.date desc, @c1281_vv.time desc, @c1281_vv.docid desc, @c1281_vv.row_id desc ) УправленческаяСебестоимость Must declare the variable '@c1281_vv'.
#49
by LisaAlisa
почти получилось. В sql пишу не _1sconst , а gm_teach.dbo._1sconst но ведь это уже отпарсенный запрос. Но как это описать в виде @ПоследнееЗначение.МПЗ.УправленческаяСебестоимость(МПЗ.ID, '"+IDНачДата+"') УправленческаяСебестоимость или вообще никак?
#50
by Ёпрст
Покажи текст запрса, который сейчас не работает. ЗЫ: используй не ЗначениеВСамуюДлиннуюСтрокуБД,а просто ЗначениеВСтрокуБД - не надо будет всякие сред делать.
#53
by LisaAlisa
Запрос возвращает NULL в поле, получаемом из сторонней базы УправленческаяСебестоимость В sql он выглядит так: SELECT select top 1 cast(c1281_vv.value as numeric(18, 4)) from _1sconst as c1281_vv (nolock) where (c1281_vv.date <= '20171001') order by c1281_vv.date desc, c1281_vv.time desc, c1281_vv.docid desc, c1281_vv.row_id desc ) УправленческаяСебестоимость FROM dh130 AS РасходнаяНакладная With (NOLOCK) INNER JOIN dt130 AS РасходнаяНакладнаяСтроки With (NOLOCK) ON РасходнаяНакладная.IDDOC = РасходнаяНакладнаяСтроки.IDDOC INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON РасходнаяНакладная.IDDOC = Журнал.IDDOC INNER JOIN sc155 AS МПЗ1 With (NOLOCK) ON РасходнаяНакладнаяСтроки.sp119 = МПЗ1.ID INNER JOIN GM_teach.dbo.sc72 as МПЗ ON ltrim(rtrim(МПЗ.sp66))=ltrim(rtrim(МПЗ1.sp178))
#54
by LisaAlisa
Если вручную подшаманить sql запрос, то результат возвращается верный Для этого в подзапросе ставим @ перед _1sconst ( select top 1 cast(c1281_vv.value as numeric(18, 4)) from @_1sconst as c1281_vv (nolock) where (c1281_vv.date <= '20171001') order by c1281_vv.date desc, c1281_vv.time desc, c1281_vv.docid desc, c1281_vv.row_id desc ) УправленческаяСебестоимость вопрос в том, как указать эту манипуляцию в выражении @ПоследнееЗначение.МПЗ.УправленческаяСебестоимость(МПЗ.ID, '"+IDНачДата+"') УправленческаяСебестоимость
#55
by Ёпрст
элементарно. | --УправленческаяСебестоимость и после первого ОбрМетаскуэль подменяй на @ПоследнееЗначение.МПЗ.УправленческаяСебестоимость(МПЗ.ID, '"+IDНачДата+"')
#56
by Ёпрст
ну или, не используй последнееЗначение, а пиши запрос на периодику руками, пример у тебя есть в развёрнутом виде. Там, заместо _1sconst пиши @_1sconst и всё.
#58
by LisaAlisa
спасибо вам!!! теперь всё работает и, что еще круче, я стала понимать, что происходит))
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: 1С V7.7 в сети
- v7: Корректировочные счета-фактуры для 1С v7.7 комплексной.
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Помогите с компонентой V7 plus работа с XML
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
- v7: v7 Подключение к базе по OLE/COM из регл. задания Windows (планировщик задач)
В этой группе 1С
- Подскажите по интеркомпани (только по складам)
- Вопрос по созданию вида номенклатуры в 1C ERP 2.4.1.211
- УТ 11.3 проблема с поступлением товаров
- Период динамического списка СО ВРЕМЕНЕМ - можно?
- БП 3. Продажи между своими организациями
- Отбор в настройках СКД
- ЗУП 3.1 - расчет сотрудника на неполном графике
- 8.3 Расширения конфигурации и Безопасный режим в файловой ИБ
- (зуп 3.1) отсутствие с сохранением оплаты - не рассчитывается
- СКД: Сортировка по дате
- КА 2.2 -> КА 2.4 изменение механизмов внешних обработок
- 8.3 УФ сохранить данные в форме документа до записи объекта
- Проблема создание COM объекта с указанием имени сервера....
- Документооборот 2.1: Повторное согласование без уже согласовавших
- На командной панели табличной части в отборе не хватает полей для выбора сравнений
- 1c:enterprise development tools не читает список информационных баз.
- Два узла на одном плане обмена, как задать разные правила регистрации
- Комплексная автоматизация 2. Требование-накладная
- ПоказатьОповещениеПользователя толстый клиент
- УПП 1.3, почему нет дебетового оборота по налоговому счету 70 ?