#0
by teroinc
Уважаемые господа специалисты, прошу Вас уделить внимание на такой вопрос. В данный момент я пытаюсь оптимизировать скорость работы некоторых блоков не типовой конфигурации 1С: версии 7.7 "Торговля и склад". Версия программы: редакция - 9.2, релиз - 7.70.934. Для этого я оптимизирую 1с запросы, посредством перевода их в прямые запросы языка sql, имеющего интеграцию с 1с кодом. В качестве базовой опоры выступает материал: сайта - по названием: Эффективное использование MSSQL в 1С при помощи ВК 1С++. Хотел бы проконсультироваться у Вас вот в чем: в данной статье приводиться несколько примеров использования в sql запросах такого ключего поля, как - период выборки данных, т.е. выборка в диапозоне дат... Вот пример запроса на sql с исходника: я пытаюсь интепритировать его и применить уже к реальному, мне нужному запросу, который без конструкции - в части - "периода", работает нормально, возвращая некий результат. Но когда появляется данная конструкция, начинают возникать ошибки... Мой вариант реального адаптированного под sql запроса: Ошибка: Meta name parser error: поле таблицы не найдено "$Рег.Period", ну или еще какие-либо ошибки... Задача максимум - сделать выборку за период, минимум - выбрать данные с полем период... Кто с этим сталкивался и что-то может сказать по этому вопросу или подсказать как корректно это сделать - помогите пожалуйста, очень Вас прошу!!! Спасибо большое за внимание и заранее за помощь...
#0
by teroinc
Уважаемые господа специалисты, прошу Вас уделить внимание на такой вопрос. В данный момент я пытаюсь оптимизировать скорость работы некоторых блоков не типовой конфигурации 1С: версии 7.7 "Торговля и склад". Версия программы: редакция - 9.2, релиз - 7.70.934. Для этого я оптимизирую 1с запросы, посредством перевода их в прямые запросы языка sql, имеющего интеграцию с 1с кодом. В качестве базовой опоры выступает материал: сайта - по названием: Эффективное использование MSSQL в 1С при помощи ВК 1С++. Хотел бы проконсультироваться у Вас вот в чем: в данной статье приводиться несколько примеров использования в sql запросах такого ключего поля, как - период выборки данных, т.е. выборка в диапозоне дат... Вот пример запроса на sql с исходника: я пытаюсь интепритировать его и применить уже к реальному, мне нужному запросу, который без конструкции - в части - "периода", работает нормально, возвращая некий результат. Но когда появляется данная конструкция, начинают возникать ошибки... Мой вариант реального адаптированного под sql запроса: Ошибка: Meta name parser error: поле таблицы не найдено "$Рег.Period", ну или еще какие-либо ошибки... Задача максимум - сделать выборку за период, минимум - выбрать данные с полем период... Кто с этим сталкивался и что-то может сказать по этому вопросу или подсказать как корректно это сделать - помогите пожалуйста, очень Вас прошу!!! Спасибо большое за внимание и заранее за помощь...
#0
by teroinc
Уважаемые господа специалисты, прошу Вас уделить внимание на такой вопрос. В данный момент я пытаюсь оптимизировать скорость работы некоторых блоков не типовой конфигурации 1С: версии 7.7 "Торговля и склад". Версия программы: редакция - 9.2, релиз - 7.70.934. Для этого я оптимизирую 1с запросы, посредством перевода их в прямые запросы языка sql, имеющего интеграцию с 1с кодом. В качестве базовой опоры выступает материал: сайта - по названием: Эффективное использование MSSQL в 1С при помощи ВК 1С++. Хотел бы проконсультироваться у Вас вот в чем: в данной статье приводиться несколько примеров использования в sql запросах такого ключего поля, как - период выборки данных, т.е. выборка в диапозоне дат... Вот пример запроса на sql с исходника: я пытаюсь интепритировать его и применить уже к реальному, мне нужному запросу, который без конструкции - в части - "периода", работает нормально, возвращая некий результат. Но когда появляется данная конструкция, начинают возникать ошибки... Мой вариант реального адаптированного под sql запроса: Ошибка: Meta name parser error: поле таблицы не найдено "$Рег.Period", ну или еще какие-либо ошибки... Задача максимум - сделать выборку за период, минимум - выбрать данные с полем период... Кто с этим сталкивался и что-то может сказать по этому вопросу или подсказать как корректно это сделать - помогите пожалуйста, очень Вас прошу!!! Спасибо большое за внимание и заранее за помощь...
#2
by Aleksey_3
Если нужно за период, то бери из журнала документы, за период и присоединяй уже остатки. Или галку включить надо быстрая обработка движений, как то так
#3
by teroinc
Хорошо, галка в структуре этого регистра: "ОстаткиТМЦ" - включена - (быстрая обработка движений), подскажите пожалуйста, как будет выглядить конечный код данного запроса без использования журнала, а исключительно используя данный регистр, т.е вот этот запрос, с тем условием, что выборка данных из него должна быть в рамках произвольного, но заданного периода... Запрос: ТекстЗапроса = " |$Рег.Номенклатура IN (SELECT Val FROM #СЗНоменклатуры)"; И если кто знает, подскажите пожалуйста, где можно скачать некую программу-консоль, отображающую структуру метаданных конфигурации с возможной интепритацией sql? Спасибо огромное заблоговременно за Вашу помощь и отклики и внимание....
#4
by ДенисЧ
я шо-то не понял, а чего автор хочет от остатков и периода? А чтобы читать "структуру метаданных конфигурации с возможной интепритацией sql" никаких гитик не надо... Достаточно нотепада, входящего в состав ОС MS Windows... (подсказываю [заметьте, бесплатно!!!] - есть такой файл 1cv7.dds, там много интересного понаписано). Зы. Если меня спросят, где этот файл взять, я повешу (сь)...
#9
by teroinc
1 - Да, все правильно, я выбираю движения за период, 2 - про файл с расширением DDS, я все знаю и им пользуюсь, но этот файл некорректен во многом..., запрос после него с ошибками.., поэтому хочется заглянуть в живую структуру конфигурации... Да, есть минимальное желание использовать журналы и делать соединения... если можно обойтись без этого, а напрямую указать отбор по периоду, подскажите пожалуйста как...? За все Ваши будущее рецензии большое спасибо за ранее:)
#10
by teroinc
работая исключительно со структурой и таблицей конкретного регистра - остатков... Спасибо еще раз!:)
#13
by ДенисЧ
"файл некорректен во многом" - а мужики-то и не знают... И пользуются им по жизни... Может проблемы с чтнеием?
#15
by teroinc
да, но здесь программа ругается, что Meta name parser error: не указан параметр НачДата и КонДата хотя, я объявляю его далее: и что я делаю не корректно, объясните пожалуйста? ...
#19
by teroinc
сообщение об ошибке: программа ругается, что Meta name parser error: не указан параметр ":ДатаЗапроса"
#23
by teroinc
вот так, а далее, сразу после окончания запроса - идет объявление переменной - ДатаЗапроса, именно вот так:
#25
by teroinc
почему возникает ошибка программы: Meta name parser error: не указан параметр ":ДатаЗапроса", я разве его некорректно указываю ?...
#27
by ДенисЧ
Да кто тебя знает, что ты там указывешь... Нам отсюда не видно... А копипаст у тебя, видать, запрещён...
#35
by SnarkHunter
Два WHERE подряд - это, конечно, новое слово в запросах, но работать это не будет... И что такое $Рег.ОстаткиТМЦ - тоже напонятно...
#37
by orefkov
Поле period не в $Регистр.ОстаткиТМЦ, а в $РегистрИтоги.ОстаткиТМЦ. Ну и для получения итогов проще использовать виртуальную таблицу остатков, чем выписывать запрос ручками. Почитай кроме статей еще и доку, просветляет...
#38
by teroinc
Доброе утро уважаемые специалисты,а подскажите пожалуйста, как задать функцию в этом же запросе, чтобы было как блоке запроса из первоисточника? Запрос: мой запрос: " Заранее большая Вам благодарность и спасибо большое!!! ...
#39
by AeDen
Посоветую использовать виртуальную таблицу итогов. Кроме того, есть книжка хорошая, Алекс Кригель и Борис Трухнов, "SQL Библия пользователя". Есть смысл сначала ее прочитать. а потом писать запросы.
#41
by teroinc
поэтому я и прошу помочь мне, подсказать - какая конструкция функции уместна и применима к данному случаю ?...
#46
by teroinc
(Количество) - это разве тоже самое что:|Функция ОстКоличество = КонОст(Количество); ??? Спасибо большое!!! ...
#48
by teroinc
это ресурс, не спорю, но тут же явно не задается вот это выражение: КонОст(Количество) ??? ...
#49
by AeDen
Чтобы получить остаток на некоторую дату, допустим на середину месяца, нужно объединить два запроса: Итоги на конец предыдущего месяца и Обороты с начала месяца по выбранную дату. Чтобы облегчить нам работу были придуманы, так называемые, виртуальные таблицы (не путать с представлениями VIEW), которые являются простыми макроподстановками (хотя на самом деле не такими уж и простыми. С большой вероятностью, если вы сами будете их разворачивать, то у вас получится хуже, т.к. лучше уже просто уже некуда). Существует несколько видов виртуальных таблиц Остатки, ОстаткиОбороты, Обороты. Первые 2 только для регистров остатков, 2 – для оборотного регистра. Пример: Получим остатки по складу в разрезе товаров на дату ТекстЗапроса = " |SELECT В этом примере мы получим остатки на начало ВыбДата. Если мы хотим на конец, то нужно указывать модификатор :ВыбДата~. Если вообще опустить параметр ВыбДата, то получатся остатки на ТА. Это из документации... Автор, ты хоть доку почитай того, за что взялся... больше я тебе ничего не скажу...
#50
by teroinc
Друзья, уважаемые специалисты, то что я спрашиваю и рассказываю - относится к конфигурации - "ТиС" версии 7.7, прошу не путать с 1С: 8, или я что-то в своей жизни уже успел пропустить?...
#51
by AeDen
Ты в своей жизни пропустил документацию по 1С++, вероятно. Тут тебе по восьмерке никто ни слова не сказал.
#52
by teroinc
такое выражение к сожалению у меня не работает... господи, а как хочется написать такой вариант запроса, который бы работал и не вызывал бы программных ошибок...
#56
by teroinc
Вот 1 из вариантов запроса: А вот возникающая при исполнении ошибка: ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); {Документ.ОприходованиеТМЦ.Форма.Модуль}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Количество'.
#58
by AeDen
на склад. на фирму условия нету, какие измерения и какие ресурсы выдавать - тоже не понятно... Если с измерениями все просто - они все будут доступны, то с ресурсами такой фокус не прокатит...
#59
by teroinc
мой запрос: ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); {Документ.ОприходованиеТМЦ.Форма.Модуль}: Meta name parser error: слишком много параметров передано в "$РегистрОстатки.ОстаткиТМЦ"
#64
by teroinc
А скажи пожалуйста, если нам в запросе не нужно использовать и упоминать - ресурс:ЦенаПрод, но обязательно нужно задействовать вот такое, интепритированное выражение на языке 1с 7.7 - Функция ОстКоличество = КонОст(Количество) как в соответствии с переведенным на sql запросом, вписать это выражение в начальный мой запрос... ? т.е. сюда: |SELECT
#68
by AeDen
" |SELECT модификатор - на конец дня тебе выдаст остаток. Ну либо на конец того, что содержится в параметре "ДатаЗапроса"
#70
by Любитель XML
впринципе ты прав... я порходу прочсто не понял что имелось ввиду в . :ДатаЗапроса - вернет на начало дня,:ДатаЗапроса~ на конец дня. Автору это нужно было?
#71
by AeDen
нет, автору надо маны покурить по большому счету, а не тупить на форуме. Но в данном конкретном случае ему надо именно это:)
#72
by AeDen
кстати, 30 минут вдумчивого чтения манов гораздо эффективнее обычно, чем сутки торчания на форуме для решения задач.
#73
by Любитель XML
а вообще все эти вещи с примерами хорошо расписаны на форумах itland.ru, 1cpp.ru +100
#74
by teroinc
скопировал в точности в код, вот этот запрос: " |SELECT а при его исполнении получил вот такую программную ошибку: ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); {Документ.ОприходованиеТМЦ.Форма.Модуль}: Meta name parser error: недопустимое значение параметра "$РегистрОстатки.ОстаткиТМЦ"
#78
by teroinc
база на sql, я попробывал уже все, что только можно и Вас очень прошу помочь, написать корректный запрос в моем случае, который нормально отработает без ошибок, пожалуйста...
#83
by teroinc
смотрите, вот этот запрос, написан корректно: " |SELECT осталось только разобраться, почему не воспринимается вот эта часть: $РегистрОстатки.ОстаткиТМЦ и почему вследствии возникает ошибка: ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); {Документ.ОприходованиеТМЦ.Форма.Модуль}: Meta name parser error: недопустимое значение параметра "$РегистрОстатки.ОстаткиТМЦ" ???
#85
by teroinc
помогите пожалуйста разобраться, я очень Вам благодарен за помощь, но очень хочется довести все до логического корректного конца ! ...
#86
by SnarkHunter
>> почему не воспринимается вот эта часть: $РегистрОстатки.ОстаткиТМЦ Не воспринимается не эта часть, а пятый по счету параметр...
#92
by teroinc
ЦенаПрод - да, это измерение, но в запросе оно мне не нужно..., поэтому я его в нем просто - опускаю...
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Перенос справочников без использования стандартного обмена данными
- Программно изменить положение окна
- Бух 8: закрытие месяца делает проводки с минусом по счету 68.04.1
- Перечень льготных профессий
- вытащить данные из *.dt без cf
- Как вывести документ эксель в табличный документ?
- v8: СКД сгруппировать по месяцу, недели и т д
- Склонение чисел
- v8: Раздельный учет НДС в 1С УПП 1.2.29.1
- Поиск ссылки на элемент справочника во всех объектах...
- Запрос. Расчет данных за каждый день.
- Как лучше организовать перепроведение документа после обмена РИБ?
- Порядок измерений регистра - оптимизация расчетов
- Запрос SQL , ошибка , как обойти ?
- MS SQL: Как узнать spid текущего сеанса 1С?
- 1с Предприятие, Бухгалтерия, Переход на редакцию 2.0,
- v7: ошибка открытия словаря баз данных
- ЗиК, Отпуск по беременности и родам должен попадать в Т2?
- Добавление субконто на счет 62.р
- УПП: изменение валюты управленческого учета