Имя: Пароль:
1C
1C 7.7
v7: с формировать отчет 1с 7.7 нужна помощь
0 sanekdark
 
30.11.17
07:07
нужно отчет сделать  чтоб выводил список клиент . дату ,услугу, цену,  т потом уже общую сумму на каждый чек . я вот сделал получилось но не могу понять как сделать чтоб перечислял услуги списком  а то берет одну услугу  и цену а сумму общую чека.
вот код
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |КассовыйЧек = Документ.КассовыйЧек.ТекущийДокумент;
    |Товар = Документ.КассовыйЧек.Товар;  
    |Количество = Документ.КассовыйЧек.Количество;
    |Цена = Документ.КассовыйЧек.Цена;  
    |Сумма = Документ.КассовыйЧек.Сумма;
    |Функция КоличествоСумма = Сумма(Количество);
    |Функция СуммаСумма = Сумма(Сумма);
    |Группировка КассовыйЧек упорядочить по КассовыйЧек.ДатаДок, КассовыйЧек.ВремяДок, КассовыйЧек.НомерДок, КассовыйЧек.Клиент, КассовыйЧек.Товар, КассовыйЧек.Количество, КассовыйЧек.Цена, КассовыйЧек.Основание;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей КассовыйЧек
        Таб.ВывестиСекцию("КассовыйЧек");
КонецЦикла;
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры
1 sanekdark
 
30.11.17
07:18
2 sanekdark
 
30.11.17
07:19
<a href='https://hostingkartinok.com/show-image.php?id=d77ce676359b8cdc2e97795aef9a6eb0' title='хостинг фотографий'><img style="width:100%" src='https://s8.hostingkartinok.com/uploads/images/2017/11/d77ce676359b8cdc2e97795aef9a6eb0.jpg' alt='мойцка.jpg'  /></a>
3 sanekdark
 
30.11.17
07:19
4 VladZ
 
30.11.17
07:24
(0) "Группировка КассовыйЧек." В переводе на человеческий язык означает "Выведи мне, шайта-машина, детализацию по документам. Другая детализация мне не нужна".
5 VladZ
 
30.11.17
07:25
"КассовыйЧек.ДатаДок, КассовыйЧек.ВремяДок, КассовыйЧек.НомерДок, КассовыйЧек.Клиент, КассовыйЧек.Товар, КассовыйЧек.Количество, КассовыйЧек.Цена, КассовыйЧек.Основание" - шаманство на уровне "Напишу побольше всякой фигни. Авось что-нибудь поможет".
6 kubik_live
 
30.11.17
07:27
(0) Я б вытащил рез-т запроса в ТЗ, а потом фильтруй, что хочешь...
7 sanekdark
 
30.11.17
07:27
Тоесть что нужно сделать то не понял убрать касовый чек в переди? можно пример кода ?
8 VladZ
 
30.11.17
07:28
Читай букварь. Даже ссылку тебе дам: http://www.mista.ru/articles1c/query.htm
9 sanekdark
 
30.11.17
07:28
Я ток учусь просто)))
10 kubik_live
 
30.11.17
07:28
(5) +1
11 sanekdark
 
30.11.17
07:28
в данном случае можете помочь? пример каконить как сделать ?
12 VladZ
 
30.11.17
07:29
(7) Пример кода не дам. Читай букварь и думай сам.
13 sanekdark
 
30.11.17
07:29
спасибо на этом хоть))
14 VladZ
 
30.11.17
07:31
(13) Еще можно посмотреть, как  сделано в типовых. См. как сделаны отчеты в ТИС 9.2.
15 sanekdark
 
30.11.17
07:32
ок щас гляну
16 Duke1C
 
30.11.17
10:23
(14) Боюсь, об типовые у ТС может случиться перелом мозга. Там запросы развесистые, да еще собираются из разных кусков (МФ и прочая клюква)
17 Масянька
 
30.11.17
10:27
(16) Да, ладно...
Типовые семерочные - реанимация поможет (100%). А вот типовые ЗУП - только в морг.
18 Ёпрст
 
30.11.17
10:28
(0)

|Группировка КассовыйЧек;
|Группировка Товар;
.........
Пока Группировка(1)=1 Цикл
    ..........
   Таб.ВывестиСекцию("Чек");
   Пока Группировка(2)=1 Цикл
       ...........
       Таб.ВывестиСекцию("СтрокаЧека");
   КонецЦикла;
   Таб.ВывестиСекцию("ИтогоЧек");

КонецЦикла;
.........
Таб.ВывестиСекцию("Подвал");
19 VladZ
 
30.11.17
11:34
(16) Отчеты в ТИС - стандарт де-факто. Так что лучше сразу делать "с МФ и клюквой"
20 torgm
 
30.11.17
11:44
(16)  да там просто, берешь обвязку от отчета по продажам , пишешь свой отчет, добавляешь в обвязку и все.
21 sanekdark
 
30.11.17
13:34
сделал так сейчас но все равно нет наименование товара подскажите что не так
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |КассовыйЧек = Документ.КассовыйЧек.ТекущийДокумент;
    |Основание = Документ.КассовыйЧек.Основание;
    |Товар = Документ.КассовыйЧек.Товар;
    |Количество =Документ.КассовыйЧек.Количество;
    |НомерДок =Документ.КассовыйЧек.НомерДок;
    |ДатаДок =Документ.КассовыйЧек.ДатаДок;
    |ВремяДок = Документ.КассовыйЧек.ВремяДок;
    |Цена = Документ.КассовыйЧек.Цена;  
    |Сумма = Документ.КассовыйЧек.Сумма;
    |Функция КоличествоСумма = Сумма(Количество);
    |Функция СуммаСумма = Сумма(Сумма);
    |Группировка КассовыйЧек;
    |Группировка Товар;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл  
        Таб.ВывестиСекцию("Чек");
    //    Пока Запрос.Группировка(2)=1 Цикл
    //        Таб.ВывестиСекцию("СтрокаЧека");
    //    КонецЦикла;
        Таб.ВывестиСекцию("Итого");
    КонецЦикла;

    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры
22 sanekdark
 
30.11.17
13:40
все разобрался сделал спасибо всем
вот как
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |КассовыйЧек = Документ.КассовыйЧек.ТекущийДокумент;
    |Основание = Документ.КассовыйЧек.Основание;
    |Товар = Документ.КассовыйЧек.Товар;
    |Количество =Документ.КассовыйЧек.Количество;
    |НомерДок =Документ.КассовыйЧек.НомерДок;
    |ДатаДок =Документ.КассовыйЧек.ДатаДок;
    |ВремяДок = Документ.КассовыйЧек.ВремяДок;
    |Цена = Документ.КассовыйЧек.Цена;  
    |Сумма = Документ.КассовыйЧек.Сумма;
    |Функция КоличествоСумма = Сумма(Количество);
    |Функция СуммаСумма = Сумма(Сумма);
    |Группировка КассовыйЧек;
    |Группировка Товар без групп;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл  
        Таб.ВывестиСекцию("Чек");
        Пока Запрос.Группировка(2)=1 Цикл
            Таб.ВывестиСекцию("СтрокаЧека");
        КонецЦикла;
        Таб.ВывестиСекцию("Итого");
    КонецЦикла;

    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры
23 sanekdark
 
30.11.17
13:40
Ёпрст спасибо помог ты!
24 Slypower
 
30.11.17
14:04
но вот Итого из цикла выкинь
25 sanekdark
 
30.11.17
20:29
не не мне в цикле над было))) и еще отдельно создал  без цикла) мне над чтоб сумму показывал каждого чека а потом уже общую сумму)) щас норм сделал все) спасибо за подсказку
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший