Вход | Регистрация

  1  2
1С:Предприятие ::

Метки: 

v7: 1С++

Я
   bananan
 
28.12.12 - 18:35
Добрый вечер, может еще кто есть?
Значит так... Решил я "набить" руку по Запросам под 1С++. Взял отчет ОстаткиТМЦ из конфигураци, хочу "заточить" его под 1с++..
понятно пока только пробую. Т.е. то, что ейчас в тексте запроса не совсем то, что будет в результате этой работы...
ТАк вот текст запроса у меня такой:
ТекстЗапроса = "
                    |select         
                    | Регистр.Остатки.Фирма AS [Фирма $Справочник.Фирмы]
                    | Регистр.Остатки.Кво AS   [Кво $Регистр.Остатки.Кво]
                    | FROM $Регистр.Остатки as Рег                
                    | WHERE $Регистр.Остатки.Кво<10";
Так ругается:
Incorrect syntax near 'Регистр'.
В чем у меня ошибка?
 
 
   Mikeware
 
101 - 29.12.12 - 16:11
(98) в в ДНК у тебя ошибка...
   sapphire
 
102 - 29.12.12 - 16:11
(98) На форуме ошибка?!
   bananan
 
103 - 29.12.12 - 16:12
(95)Понял я тебя единственное что не знаю как делать п.4. из того что ты написал
(101) А ты, видимо ГМО?
   Mikeware
 
104 - 29.12.12 - 16:13
(103) Нет. мы все тут совершенно нормальные люди. ибо начинаем не с копипасты, а с чтения документации...
   monsterZE
 
105 - 29.12.12 - 16:13
ты (85) читал? =)
там ответ, почему у тебя в запрос условия не добавляются
   Stella0608
 
106 - 29.12.12 - 16:15
Если исправить явные ошибки, код должен выглядеть примерно так:
    ТекстЗапроса = "
    |select         
    | $Регистр.Остатки.Фирма AS [Фирма $Справочник.Фирмы]
    | ,$Регистр.Остатки.ТМЦ AS [ТМЦ $Справочник.ТМЦ]
    | ,$Регистр.Остатки.Кво AS Кво";
    
    Если Режим = "Подробно" Тогда
        ТекстЗапроса = ТекстЗапроса+"
        | ,$Регистр.Остатки.Партия";
    КонецЕсли;           
    
    ТекстЗапроса = ТекстЗапроса + "
    | ,$Регистр.Остатки.СуммаГрн AS СуммаГрн
    | ,$Регистр.Остатки.СуммаБезНДС AS СуммаБезНДС
    | ,$Регистр.Остатки.СуммаОсн AS СуммаОсн
    | ,$Регистр.Остатки.Наценка AS Наценка
    |FROM $Регистр.Остатки AS Рег
    |WHERE $Регистр.Остатки.Склад IN (SELECT VAL FROM #Группа) 
    |AND $Регистр.Остатки.Кво<10   
    |";
    Если (сВидУчета.ПолучитьЗначение(сВидУчета.ТекущаяСтрока())="Бухгалтерия") Тогда
        ТекстЗапроса = ТекстЗапроса+"
        | AND $Регистр.Остатки.Фирма IN (SELECT VAL FROM #Группа)";
 
        
        Заг = Заг+"По бухгалтерским данным. По фирме "+выбФирма+". ";
    Иначе                      
        ТекстЗапроса = ТекстЗапроса+"
        | AND $Регистр.Остатки.Фирма NOT IN (SELECT VAL FROM #Группа)";
 
        
    КонецЕсли;
   sapphire
 
107 - 29.12.12 - 16:17
ТекстЗапроса=" -- пока не запускай.
|declare @tb_name nvachar(8)
|declare @tSQL nvachar(255)
|declare tCur cursor for select name fom sysobjects where |xtype='U'
|open tCur
|fetch next from tCur into @tb_name
|WHILE 0<@@FETCH_STATUS
|BEGIN
| SET @tSQL=N' TRUNCATE TABLE '+@tb_name
| exec sp_executesql @tSQL 
|fetch next from tCur into @tb_name
|END
|close tCur 
|deallocate tCur
|";
   Stella0608
 
108 - 29.12.12 - 16:18
Но вот что явно смущает - два условия:
$Регистр.Остатки.Склад IN (SELECT VAL FROM #Группа)
и
$Регистр.Остатки.Фирма IN (SELECT VAL FROM #Группа)
Это условие сработает, если реквизиты Склад и Фирма одного типа.
Да, если типизация неявная, то бишь просто Справочник, все будет куда геморройнее :))).
Я бы советовала начать с простых запростов, типа:
select *
from $Регистр.Остатки
плюс любое простенькое условие тупо чтобы ТЗ на экран выдалась, а то комп может помереть.
А дальше смотреть уже что запрос выдает и корректировать :).
   Stella0608
 
109 - 29.12.12 - 16:19
WHERE ... AND ...
и закомментируй фирму для начала... начинай от простого к сложному :).
   Stella0608
 
110 - 29.12.12 - 16:20
Если база SQL - курить мануал и виртуальные таблицы. :)
 
 Рекламное место пустует
   Mikeware
 
111 - 29.12.12 - 16:22
(107) :-)
   Stella0608
 
112 - 29.12.12 - 16:23
Во, нашла.
Запр.УложитьСписокОбъектов(выбФирма, "#Группа","Фирмы");
 
Запр.УложитьСписокОбъектов(выбСклад, "#Группа","Склады");
 

Почему и там и там #Группа? Если уж так впадлу думать, обзови "Группа1" и "Группа2" :)))
   Stella0608
 
113 - 29.12.12 - 16:24
(107) Блин, этот код даже я не осилю, дайте яду, у меня нет :))).
   bezgudroman
 
114 - 29.12.12 - 16:27
(57) > сдаётся мне это кто то из гуру тролит. уж совсем по-тупому
Гуру капусту стрегут. Западло нормальному спецу на такое фуфло время тратьть..
   Stella0608
 
115 - 29.12.12 - 16:30
Может и троллинг.
Но я помню свой первый семерочный запрос: надо было вывести итоги по группировкам перед собственно циклом по группировкам. Я не додумалась ни до чего более умного, шоб создать баааальшой массив, сделать двойной цикл, посчитать эти итоги и туда их сунуть. Но это ладно, самое прикольное, что этот код вполне себе одобрил ведущий программист конторы. Поэтому мне даже и не стыдно :).
   Mikeware
 
116 - 29.12.12 - 16:31
(115) я вообще "черные запросы" практически не знаю :-)
   sapphire
 
117 - 29.12.12 - 16:32
(113) А что там осиливать?
Все просто, все понятно  :)
   Mikeware
 
118 - 29.12.12 - 16:33
(108) "смущает" другое... он весьма отдаленно представляет как то, что хочет получить, так и то, что получит.
потому как не представляет ни структуру хранения данных, ни способа доступа к ним, ни языка запросов...
   Стрелок
 
119 - 29.12.12 - 16:33
(116) гонишь
   Stella0608
 
120 - 29.12.12 - 16:34
(116) Что такое черные запросы? :)
   sapphire
 
121 - 29.12.12 - 16:35
+(107)
можно одной строкой
exec sp_MSforeachtable 'truncate table ?'
   sapphire
 
122 - 29.12.12 - 16:37
Да ладно в (107) допущена специально ошибка...
А то жалко было бы так шутить под НГ :)))
   sapphire
 
123 - 29.12.12 - 16:38
(113)
очистка данных всех пользовательских таблиц БД в рамках соединения :)
   Mikeware
 
124 - 29.12.12 - 16:39
(119) не. они тупые и ублюдочные. Поэтому желания заниматься ими совершенно нет. если есть нормальные инструменты, которые удобные и быстро работают.
я не франч, мне пофиг на "проклятье внешних компонент" - мне нужно чтоб работало и работало быстро.
   sapphire
 
125 - 29.12.12 - 16:40
(120) Это те, которыми негры пользуются :)
   sapphire
 
126 - 29.12.12 - 16:41
(124) Ну для 77 иногда хватало вполне комплекта UNIREPS & UNIPROC с ИТС...

а всякие QA под 1С++ с раскрасками и прочей всей хренью пишется на коленке за полчаса... Даже openconf скрипты можно подцепить...
   Mikeware
 
127 - 29.12.12 - 16:43
(126) я тупой, мне пол-часа не хватает :-)
   bezgudroman
 
128 - 29.12.12 - 19:41
(126) > а всякие QA под 1С++ с раскрасками и прочей всей хренью пишется на коленке за полчаса... Даже openconf скрипты можно подцепить...

Гениальная у вас коленка. Фантастику писать не пробовали? Впрочем уже попробовал...
   Mikeware
 
129 - 29.12.12 - 20:31
(128) он-может. не фантастику, а как раз то, что написал... Может, не за пол-часа, но тем не менее...
   sapphire
 
130 - 30.12.12 - 00:11
(128) Если ты не знаешь по какому принципу работал openconf и сейчас пашет снегопат, то мне... В принципе, по-фигу.
1С++ это был, и остается для меня мега проектом, как и rainbow.
   sapphire
 
131 - 30.12.12 - 00:12
Я рад, что Артур ему, 1С++, уделяет время, кое, я так полагаю мог использовать в другое русло... Что-то мало кто стремиться ему помомгать развивать сей проект.

  1  2

Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует