Имя: Пароль:
1C
1C 7.7
v7: Запутался с Запросом
,
0 bananan
 
01.08.13
08:59
Запрос простейший, но что-то я намудрил (не вижу где)
код:
//*******************************************
Процедура Сформировать()
    // Сообщить("Дата начала:"+ДатаС+" Дата конца: "+ДатаПо);
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ДатаС по ДатаПо;
        |Контрагент = Документ.РасходнаяНакладнаяУпаковка.Контрагент;
        |ТМЦ = Документ.РасходнаяНакладнаяУпаковка.ТМЦ;
        |ЦенаПродажна =  Документ.РасходнаяНакладнаяУпаковка.ЦенаСНДС;
        |ОптоваяЦена = Документ.РасходнаяНакладнаяУпаковка.ТМЦ.Цена_Прод;
        |Количество = Документ.РасходнаяНакладнаяУпаковка.Кво;
        |Док = Документ.РасходнаяНакладнаяУпаковка.ТекущийДокумент;
        |Автор = Документ.РасходнаяНакладнаяУпаковка.Автор;
        |Агент = Документ.РасходнаяНакладнаяУпаковка.Менеджер;
        |Условие(ЦенаПродажна<ОптоваяЦена);              
        |"//}}ЗАПРОС
        ;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Сообщить("Что-то не то в ЗАПРОСЕ!");
        Возврат;
    КонецЕсли;
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("НашаТаблица");
    Таб.ВывестиСекцию("Шапка");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0,0,0,0);
    Счетчик = 0;
    Сообщить("перед циклом");
    Пока Запрос.Группировка() = 1 Цикл  
        Сообщить("В Цикле");
        Если СтрДлина(Запрос.ТМЦ)<3 тогда
            Продолжить;
        КонецЕсли;
        Счетчик = Счетчик+1;
        Если Запрос.ТМЦ.Этогруппа()=1 тогда
            Счетчик = Счетчик-1;
            Таб.ВывестиСекцию("ГруппаТМЦ");
        Иначе
            Таб.ВывестиСекцию("Наименование");
        КонецЕсли;        
    КонецЦикла;          
    Сообщить("После цикла");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("НашаТаблица", "");
КонецПроцедуры
Так вот в окне сообщений только:
перед циклом
После цикла
Почуму он Не входит в цикл???
1 1Сергей
 
01.08.13
09:00
потому что этот запрос для семёрки
2 shuhard_серый
 
01.08.13
09:00
(0) 1С 8.4 ?
3 Капитан О
 
01.08.13
09:01
потому что результат запроса пуст
4 1Сергей
 
01.08.13
09:01
и да, в запросе группировок нет
5 s03
 
01.08.13
09:03
а ДатаС и ДатаПо ты где устанавливаешь как параметры запроса?
6 Ёпрст
 
01.08.13
09:03
(0) воткни
|Без Итогов;

Наслаждайся
7 Ёпрст
 
01.08.13
09:04
и вот так
Если Запрос.ТМЦ.Этогруппа()=1 тогда

никогда не пиши, пиши так:

Если Запрос.Этогруппа()=1 тогда
8 1Сергей
 
01.08.13
09:05
(7) о_О
9 Ёпрст
 
01.08.13
09:06
Только у тебя нет группировке по ТМЦ, следовательно, в твоём запросе никогда не будет групп элементов.
10 Ёпрст
 
01.08.13
09:06
И твоя проверка - бесполезна.
11 bananan
 
01.08.13
09:09
(7) Написал как ты сказал - выдает ошибку:
Если Запрос.Этогруппа()=1 тогда
{I:\0.ERT(37)}: Недостаточное число параметров передано при вызове функции/процедуры объекта
А Без итогов - выдает только один товар (хотя товаров там ГОРАЗДО больше)
12 bananan
 
01.08.13
09:12
(5) Параметры даты - реквезиты диалога (я ошибся в выборе группы на форуме - это 1С 7.7 а не всьмерка)
13 1Сергей
 
01.08.13
09:12
(11) см (4) и (9)
14 bananan
 
01.08.13
09:17
(13) Исправил - заработало. Спасибо! И еще вопрос у меня в таблице для вывода выводится выражение: Запрос.Док с расшифровкой Запрос.Док, но в итоге оно почему-то не выбирается (т.е. нельзя на него кликнуть и поппасть на данный документ). Здесь что я нетак сделал?
15 Капитан О
 
01.08.13
09:20
(14) восьмёрку-то бросил?
16 bananan
 
01.08.13
09:22
(15) Да нет. Просто всплыла задача для семерки - восьмерку пока изучаю и параллельно пытаюсь реализовать ТЗ...
17 Капитан О
 
01.08.13
09:23
(14) только просмотр не разрешил?
18 bananan
 
01.08.13
09:29
(17) У меня было: Таб.ТолькоПросмотр(1);, когда напсал: Таб.ТолькоПросмотр(0); - 1С тупо зависаетпри "Заполнение выходной таблицы"
19 1Сергей
 
01.08.13
09:49
(14) в каком смысле нельзя? ошибка выходит или начальник линейкой по пальцам бьёт, когда пытаешься два раза кликнуть?
20 bananan
 
01.08.13
09:55
(14)  В прямом смысле - НЕ КЛИКАЕТСЯ он!
21 Ёпрст
 
01.08.13
09:58
(20) у таблицы должна стоять галка Защита, таблица должна быть в режиме просмотра:

Таб.толькоПросмотр(1)

в расшифровке ячейки таблицы должна быть ссылка на документ

наслаждайся
22 1Сергей
 
01.08.13
09:58
(20) мышку поменяй. Кликается, но ничего не происходит?

См Процедура ОбработкаЯчейкиТаблицы(...
23 bananan
 
01.08.13
09:59
+(20) Когда можно - при наведении курсор превращается в лупу, а в данном случае курсор в лупу не превращается ну и документ НЕ кликается
24 bananan
 
01.08.13
09:59
(22) Мозги поменяй...
25 Ёпрст
 
01.08.13
10:00
(23) значит, форма не в режиме просмотра или в расшифровке ячейки ничего нет вообще.
26 bananan
 
01.08.13
10:03
Смотри (14) в расшифровке у меня то что надо. А как форму установить в режим просмотра?
27 viktor_vv
 
01.08.13
10:05
(26) ну как бы название метода намекает

Таб.ТолькоПросмотр(1)
28 bananan
 
01.08.13
10:09
(27) "ну как бы" код у меня такой:
    Таб.ТолькоПросмотр(1);
    Таб.Показать("НашаТаблица", "");
это тебе на что намекает?
29 varelchik
 
01.08.13
10:11
(28) Все верно.
А вот еще есть такая весчь как обработкаячейкитаблицы()
посмотри у тебе случаем ее в глобальнике нема?
30 Ёпрст
 
01.08.13
10:11
(28) у ячейки снята галка защита, или в поле Расшифровка - пусто.
31 bananan
 
01.08.13
10:12
(30) Галка защита - стоит, в поле Расшифровка: Запрос.Док
32 bananan
 
01.08.13
10:13
(29) С другими запросами документ выбирается, а в даннорм случае Не хочит. при чем здесь глобальный модуль?
33 Salimbek
 
01.08.13
10:13
(31) А ты проверь, в готовой таблице выйди из режима только просмотра, встань на нужную ячейку и нажми на кнопку "=" чтобы увидеть - что там в Расшифровке
34 Ёпрст
 
01.08.13
10:16
(32) в сформированной таблице снимаешь её с просмотра, далее ПКМ на ячейке - свойства - смотришь, чего там у тебя есть.
Думаю, ничего
35 dedmoroz777
 
01.08.13
10:18
(31) Должно быть: Запрос.Док.ТекущийДокумент()
36 Ёпрст
 
01.08.13
10:20
(35) сума сошел ?
37 Ёпрст
 
01.08.13
10:21
Еще удивляются потом, чегой-то у них "отчет тормозит при выводе"
38 Ёпрст
 
01.08.13
10:22
А так, ставлю, что Запрос.Док всегда = ""
39 Ёпрст
 
01.08.13
10:22
5 копеек.
40 chelentano
 
01.08.13
10:22
ТС всё ещё не уволили что ли? Терпеливое начальство, однако
41 Salimbek
 
01.08.13
10:22
Может Запрос.Док.ТекущийДокумент().ТекущийДокумент().ТекущийДокумент().ТекущийДокумент() для надежности?
42 dedmoroz777
 
01.08.13
10:23
(41) В цикле)
43 Капитан О
 
01.08.13
10:36
(40) ТС работу ищет
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс