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


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

Метки:

Подсчет строк в док

Я
   eltovich
 
24.08.04 - 08:33
Как через запрос подсчитать количество строк в документах
 
  Рекламное место пустует
   SnarkHunter
 
1 - 24.08.04 - 08:42
Зарплату операторов к количеству строк привязываете?
   eltovich
 
2 - 24.08.04 - 08:45
Нет, хочется видеть количество поз-й в документах
   ЧеТоКакТо
 
3 - 24.08.04 - 08:49
Попробуй в запросе указать функцию: ЧислоСтрокВДоке()
Функция ЧислоСтрокВДоке(Док)
    Возврат Док.КоличествоСтрок()

Или напрямую в запрос кинь выражение: Функция ЧСД=ТекущийДокумент.КоличествоСтрок()

Синтаксис примерный. Чесно, не пробовал, но тоже вариант
   SnarkHunter
 
4 - 24.08.04 - 08:50
Если в запросе есть группировка по документам, то количество строк можно получить при обходе группировок...
   eltovich
 
5 - 24.08.04 - 08:51
(3)
Функция ЧСД=ТекущийДокумент.КоличествоСтрок() -не работает
Функция ЧСД= Сумма(ЧислоСтрокВДоке() )- тоже не работает :((((
   Юрий_В
6 - 24.08.04 - 08:52
Зайти в генератор запросов и задать там функцию типа счётчик
по какому-нибудь реквизиту.
   eltovich
 
7 - 24.08.04 - 08:53
(4)Группировка есть, но не подокументам
А как на счет итогов по группировкам?
   eltovich
 
8 - 24.08.04 - 08:55
6 Будте любезны это как?
   eltovich
 
9 - 24.08.04 - 08:58
Извините , переход в ОФФ
   eltovich
 
10 - 24.08.04 - 09:24
Есть вариант:
Завести реквизит в документе чКолСтрок и при Записи() обновлять его
а потом  в запросе ЧСД=ТекущийДокумент."ВидДок()".чКолСтрок и тд и тп
...но не хочеться вносить изменения в док, тк придется перепроводить все доки,
А ЕСЛИ БАЗА ЗА 2ГОДА АКТИВНОЙ РАБОТЫ+ насколько я знаю в Опер учете не рекомендуется перепроводить документы задним числом самой фирмой 1С
 
  Рекламное место пустует
   Guk
 
11 - 24.08.04 - 09:26
(10) Не стоит ерундой заниматься...
   Юрий_В
12 - 24.08.04 - 09:30
Открываем форму документа, где будет текст запроса
Конструктор-Запрос- и далее по ходу.
Получим что-то похожее на это,
которое не проверялось и требует отладки:

 Процедура ЧислоСтрок()
    Перем Запрос, ТекстЗапроса;
   //Создание объекта типа Запрос

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(ЧислоСтрок)

    |Период с ВыбНачПериода по ВыбКонПериода;
    |Покупатель = Документ.УчетРозницы.Покупатель;
    |Количество = Документ.УчетРозницы.Количество;
    |Функция Счётчик = Счётчик();
    |//}}ЗАПРОС

    ;
   // Если ошибка в запросе, то выход из процедуры

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса


   // Заполнение полей "Заголовок"


   // Заполнение полей "Итого"


   // Вывод заполненной формы


  КонецПроцедуры
   Guk
 
13 - 24.08.04 - 09:33
(12) И что он посчитает?...
   eltovich
 
14 - 24.08.04 - 09:34
12 - это не работает см 5 и выше
   eltovich
 
15 - 24.08.04 - 09:35
11 в каком смысле ? Твои предложения?
   eltovich
 
16 - 24.08.04 - 09:38
Да.... видно вопрос не излегких
   ЧеТоКакТо
 
17 - 24.08.04 - 09:56
Попробуй в запросе:
|ТекущийДокумент = Документ.ТвойДок.ТекущийДокумент;
Потом при обработке запроса
ЧСД=Запрос.ТекущийДокумент.КоличествоСтрок()
   ЧеТоКакТо
 
18 - 24.08.04 - 09:58
ИМХО тебе всетаки понадобится группировка по докам, а иначе как ты указываешь у какого именно дока тебе нужно узнать количество строк
   eltovich
 
19 - 24.08.04 - 14:58
Прошу прощения , возможно не корректно сформирован (0) вопрос.
Попробую объяснить еще раз. Например в запросе есть группировка по менеджерам, которые выписали документ + группировка по документу движения. Количество строк в документе - это количесво позиций номенклатуры. Необходимо получить количество строк ,т. е. позиций номенклатуры как по менеджеру, так и по док движения.
(17) ЧСД=Запрос.ТекущийДокумент.КоличествоСтрок() - это не работает, т.к.
в запросе нельзя обращяться к методом и функциям встроенного языка. если я не ошибаюсь.
   SnarkHunter
 
20 - 24.08.04 - 15:18
Ты ошибаешься... ЧСД=Запрос.ТекущийДокумент.КоличествоСтрок() - это не в запросе, а после того, как...
   eltovich
 
21 - 24.08.04 - 15:22
(20) Возможно. Но мне нужно количество строк не одного документа, а нескольких
   eltovich
 
22 - 24.08.04 - 15:24
поэтому ЧДС мне нужно обрабатывать в запросе
   eltovich
 
23 - 24.08.04 - 15:52
Видимо глухо
Всем спасибо
   Фокусник
 
24 - 24.08.04 - 16:41
(19)
Ну почему-же глухо...
Делал конструктором на примере контрагентов в накладных (бух.), поэтому мусор сам вычищай.

   //Создание объекта типа Запрос

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Период с ВыбНачПериода по ВыбКонПериода;
    |РасходнаяНакладная = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Контрагент = Документ.РасходнаяНакладная.Контрагент.ТекущийЭлемент;
    |Товар = Документ.РасходнаяНакладная.Товар;
    |Функция Счётчик = Счётчик();
    |Группировка Контрагент без групп;
    |Группировка Документ;
    |Группировка СтрокаДокумента;
    |//}}ЗАПРОС

    ;
   // Если ошибка в запросе, то выход из процедуры

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса

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

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

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

            Таб.ВывестиСекцию("Документ");
            Пока Запрос.Группировка(3) = 1 Цикл
               // Заполнение полей СтрокаДокумента

                Таб.ВывестиСекцию("СтрокаДокумента");
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
   // Заполнение полей "Итого"

    Таб.ВывестиСекцию("Итого");
   // Вывод заполненной формы

    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
   eltovich
 
25 - 24.08.04 - 21:33
(19) Уважаемый, по моему чего-то не хватает... Интересной функции счетчик() или это процедура???
   eltovich
 
26 - 24.08.04 - 21:39
Обратился сам к себе
Уважаемый Фокусник  , а про что мы?
   KruZO
27 - 24.08.04 - 22:15
Запрос = "
|Период с ВыбНачПериода по ВыбКонПериода;
|РасходнаяНакладная = Документ.РасходнаяНакладная.ТекущийДокумент;
|Товар = Документ.РасходнаяНакладная.Товар;
|Группировка РасходнаяНакладная;
|Функция КоличествоСтрок=Счётчик();";
   eltovich
 
28 - 24.08.04 - 22:18
(27)Еще раз (без обид) смотри выше или вопрос "А сам пробовал?"
   KruZO
29 - 24.08.04 - 22:19
Только-что
   eltovich
 
30 - 24.08.04 - 22:20
А если мне нужно знать колстрок- кол номенклатурных позиций не по расходным накладным, а по авторам документов? она стоит-то выше?
   eltovich
 
31 - 24.08.04 - 22:22
Хорошо Что такое Счетчик()?и Где он описан?
   eltovich
 
32 - 24.08.04 - 22:26
(29) Был не прав. Но что он считает-то?
   KruZO
33 - 24.08.04 - 22:28
Посмотри функции в языке запросов.
 
  Рекламное место пустует
   GrayT
 
34 - 24.08.04 - 22:28
Е-е-е-е! Правильный ответ был дан еще в 5, а они до сих пор это же мурыжат!
Счётчик - онже Count -  Подсчитывает количество записей, вошедших в выборку.
   eltovich
 
35 - 24.08.04 - 22:29
А если у меня нет группировки по док
   GrayT
 
36 - 24.08.04 - 22:29
Сорри - переклинил - в 12
   eltovich
 
37 - 24.08.04 - 22:33
Когда есть груп Док что -то считается, а не нужна она мне....., не нужен разворот подокументу движения, вот не хотят они его и все... хотят что-бы по авторам выводлось колстрок
   KruZO
38 - 24.08.04 - 22:38
Какие проблемы? Смени в (27) документ на автора.
   eltovich
 
39 - 24.08.04 - 22:39
А если еще и фирма?
   ЧеТоКакТо
 
40 - 24.08.04 - 23:44
Млина, не парься, возьми да сделай банальную выборку документов ч/з цикл и проверяй там свои условия мененджеров, подсчитывай строки и т.д. и т.п
   NS
 
41 - 25.08.04 - 00:05
(40) Ему это нужно сделать в "ОтчетПоПродажамТМЦ" в типовой торговле...
Делается легко... Есно с группировкой по номенклатуре, и т.д. - отчет не имеет смысла.
   Фокусник
 
42 - 25.08.04 - 08:30
(36) Нифига там не правильно. Там группировок нет, значит СЧИТАТЬ нечего.
Счетчик() подсчитывает количество строк по самой последней группировке. Т.е. если нужно получить количество строк документов по автору (менеджеру в нашем случае) и документу, значит нужно ТРИ группировки (как в 24):
1. По автору
2. По документу
3. По строке документа (!)

(26)
Поиграй с конструктором.
   GrayT
 
43 - 25.08.04 - 08:45
Чем поиграть? Я из детского возраста давно вышел :)
Повторяю - Счётчик - онже Count -  Подсчитывает количество записей, вошедших в выборку.
А то что нет группировок - зато есть функция. Прокатит вот так:
Период с ВыбНачПериода по ВыбКонПериода;
Материал = Документ.ПоступлениеМатериалов.Материал;
Функция Счётчик = Счётчик();
Как резудьтат вернет количество строк во всех документах. А теперь читаем 0.
   Фокусник
 
44 - 25.08.04 - 08:54
43. Поиграть я предлагал eltovich...
Человек хотел увидеть количество СТРОК, а не материалов. Думаешь не может быть дублирующихся материалов в документе ?
   eltovich
 
45 - 25.08.04 - 08:56
Думаю, что в типовой Торговле нет
   eltovich
 
46 - 25.08.04 - 08:57
В частности в ДОк Реализация
   Фокусник
 
47 - 25.08.04 - 09:11
Ну тогда вопросы корректнее задавай.
   eltovich
 
48 - 25.08.04 - 09:17
Как подсчитать количество строк в документах, через запрос.
В запросе есть 3 групп, Фирма, Автор,ДокументДвижения. Необходимо сделать так чтобы можно было получать итоги по группировкам. Что еще объяснить?
   Фокусник
 
49 - 25.08.04 - 09:23
48. Нужно сделать ЧЕТЫРЕ группировки:
Фирма
Автор
Документ
СТРОКА ДОКУМЕНТА
и включить Счетчик() к в 24
 
  Рекламное место пустует



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