7.7 Количество документов, попавших в запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем 1Счик, 18 дек 2008.

  1. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Всем привет

    Как говорится "Толи лыжи не едут..."

    Код:
    	Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |Период с НачДата по КонДата;
    |ОбрабатыватьДокументы Проведенные;
    |Склад = Документ.РасходнаяНакладная.Склад;
    |Товар = Документ.РасходнаяНакладная.Товар;
    |Сумм1 = Документ.РасходнаяНакладная.Сумма;
    |Функция СуммаРеализации = Сумма(Сумм1);
    </span>
    |КоличествоДокументов = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Функция КоличествоДок = Счётчик(КоличествоДокументов);
    
    |Группировка Товар Упорядочить по Товар.Наименование;
    |Группировка Склад Все ВошедшиеВЗапрос;";
    
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/если')">	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    Как узнать сколько документов вошло в запрос? Получаю количество строк из всех документов.
    Скажу сразу, что во многих документах нумерация строк нарушена (например, начинается нумерация не с 1-го номера)
  2. Flageolet
    Offline

    Flageolet

    Регистрация:
    11 дек 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Передать запрос в таблицу значений и циклом посчитать сколько строк передано в таблицу значений.
  3. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Код:
    "
    |Док = Документ.Реализация.ТекущийДокумент;
    |Функция КолДок = Счётчик(Док);
    |Группировка Док;";
    
    
    Ты главное в названии функции вместо "ё" не поставь "е".
  4. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Я не написал сразу, что мне нужно не только общее количество документов, вошедших в запрос. Забыл. надо ещё в разрезе складов и товаров.

    Ты ничего нового мне не открыл. В моем коде также присутствует счётчик количества документов. Нет только группировки по документам... Но от неё в моем случае ничего не зависит.
  5. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Получить запрос с верными данными по количеству документов в разрезе складов и товаров не получится, т.к. в этом случае данные по количеству документов в разрезе складов должны не совпадать с суммарным количеством документов в разрезе номенклатуры.
    Как вариант:
    Код:
    "
    |Док = Документ.Реализация.ТекущийДокумент;
    |Склад = Документ.Реализация.Склад;
    |Номенклатура = Документ.Реализация.Номенклатура;
    |Функция КолДок = Счётчик(Док);
    |
    |Группировка Склад;
    |Группировка Номенклатура Без Групп;
    |Группировка Документ;
    </span>
    
    
    </FONT></FONT></pre>
    Входишь в группировку Склад и создаешь там СписокДокументов. Затем входишь в группировку Номенклатура, здесь получаешь количество документов в разрезе номенклатуры и добавляешь в СписокДокументов документ, который в него еще не добавлен.
    В итоге: в группировке по Номенклатуре ты получишь количество документов в разрезе номенклатуры, а выйдя из цикла по группировке по Номенклатуре ты получишь количество документов в текущем складе.
  6. Black Cat
    Offline

    Black Cat Опытный в 1С

    Регистрация:
    18 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Добрый день !
    Передо мной стоит такая задача.
    Нужно Нужно в Отчет по продаже ТМЦ в последнюю колонку добавить количество вхождений последний группировки в предпоследнюю. Например настраиваем группировки Фирма - Свойство покупателя - Покупатель. Нужно посчитать сколько раз Покупатель входит в Свойство покупателя. Создал дополнительную колонку и сделал переменную накопления (Переменная = Переменная + 1). Теперь в строках последний группировки выводятся числа от 1 до количества вошедших в группировку, а вот как вставить количество вошедших группировок на строку группировки - не знаю. Кто что думает ?
    Отчет.jpg
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    Условие на проверку группы и соответственно инкремент в зависимости от выполнения этого условия.
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Есть же функция запроса "счетчик"
  9. Black Cat
    Offline

    Black Cat Опытный в 1С

    Регистрация:
    18 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Я так и не понял, как она работает. И документацию по ней не нашел. Не могли бы подсказать. Она у меня посчитала, но суммы другие получились.
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Счётчик возвращает количество записей, вошедших в выборку запроса.
    Вы же не напрямую выводите в Таблицу Значений... Смотрите что у вас по группировкам происходит
  11. Black Cat
    Offline

    Black Cat Опытный в 1С

    Регистрация:
    18 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Я выгрузил запрос в ТЗ. Не пойму, как может получится значение счетчика больше 1 по последней группировке запроса ?
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    покажите текст запроса
  13. Black Cat
    Offline

    Black Cat Опытный в 1С

    Регистрация:
    18 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Вот:
    //{{ЗАПРОС(Сформировать)
    Период с ДатаНачала по ДатаКонца;
    Фирма = Регистр.ПартииНаличие.Фирма,
    Регистр.ПартииОтданные.Фирма;
    УпрАналитика = Регистр.ПартииНаличие.Фирма.УпрАналитика,
    Регистр.ПартииОтданные.Фирма.УпрАналитика;
    ЮрЛицо = Регистр.ПартииНаличие.Фирма.ЮрЛицо,
    Регистр.ПартииОтданные.Фирма.ЮрЛицо;
    СтатусПартии = Регистр.ПартииНаличие.СтатусПартии,
    Регистр.ПартииОтданные.СтатусПартии;
    Номенклатура = Регистр.ПартииНаличие.Номенклатура,
    Регистр.ПартииОтданные.Номенклатура;
    СвойствоТМЦ = Регистр.ПартииНаличие.Номенклатура.ОсновноеСвойство.ЗначениеСвойства,
    Регистр.ПартииОтданные.Номенклатура.ОсновноеСвойство.ЗначениеСвойства;
    МОЛ_Комиссионер = Регистр.ПартииНаличие.МОЛ,
    Регистр.ПартииОтданные.Договор.Владелец;
    СвойствоПокупателя = Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
    Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
    Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
    Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
    Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент.ОсновноеСвойство.ЗначениеСвойства,
    Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент.ОсновноеСвойство.ЗначениеСвойства;
    Покупатель = Регистр.ПартииНаличие.ТекущийДокумент.Реализация.Контрагент,
    Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Контрагент,
    Регистр.ПартииНаличие.ТекущийДокумент.ОтчетККМ.Контрагент,
    Регистр.ПартииНаличие.ТекущийДокумент.РеализацияПрочее.Контрагент,
    Регистр.ПартииНаличие.ТекущийДокумент.ВозвратОтПокупателя.Контрагент,
    Регистр.ПартииОтданные.ТекущийДокумент.ОтчетКомиссионера.Контрагент;
    Проект = Регистр.ПартииНаличие.ТекущийДокумент.Проект,
    Регистр.ПартииОтданные.ТекущийДокумент.Проект;
    Автор = Регистр.ПартииНаличие.ТекущийДокумент.Автор,
    Регистр.ПартииОтданные.ТекущийДокумент.Автор;
    Поставка = Регистр.ПартииНаличие.Партия,
    Регистр.ПартииОтданные.Партия;
    СвойствоПартии = Регистр.ПартииНаличие.Партия.Свойство,
    Регистр.ПартииОтданные.Партия.Свойство;
    Поставщик = Регистр.ПартииНаличие.Партия.Поставщик,
    Регистр.ПартииОтданные.Партия.Поставщик;
    ДокПоставки = Регистр.ПартииНаличие.Партия.ПриходныйДокумент,
    Регистр.ПартииОтданные.Партия.ПриходныйДокумент;
    КодОперации = Регистр.ПартииНаличие.КодОперации,
    Регистр.ПартииОтданные.КодОперации;
    НомерСтроки = Регистр.ПартииНаличие.НомерСтроки,
    Регистр.ПартииОтданные.НомерСтроки;
    Договор = Регистр.ПартииОтданные.Договор;
    ВалВзаим = Регистр.ПартииОтданные.Договор.ВалютаВзаиморасчетов;
    Док = Регистр.ПартииНаличие.ТекущийДокумент,
    Регистр.ПартииОтданные.ТекущийДокумент;
    Сумма1 = Регистр.ПартииНаличие.СуммаРуб,
    Регистр.ПартииОтданные.СуммаРуб;
    Сумма2 = Регистр.ПартииНаличие.СуммаБезНДС,
    Регистр.ПартииОтданные.СуммаБезНДС;
    Сумма3 = Регистр.ПартииНаличие.СуммаУпр,
    Регистр.ПартииОтданные.СуммаУпр;
    Оборот = Регистр.ПартииНаличие.ПродСтоимость;
    ОборотКом = Регистр.ПартииОтданные.ПродСтоимость;
    Количество = Регистр.ПартииНаличие.Количество, Регистр.ПартииОтданные.Количество;
    Сумма = Регистр.ПартииНаличие.СуммаРуб, Регистр.ПартииОтданные.СуммаРуб;

    Функция Счтчк = Счётчик();
    Функция ПриходС = Приход(Сумма);
    Функция РасходС = Расход(Сумма);
    Функция ПриходК = Приход(Количество);
    Функция РасходК = Расход(Количество);
    Функция ВозвратК = Приход(Количество)Когда(КодОперации в КодыВозвратов);
    Функция ВозвратС = Приход(Сумма)Когда(КодОперации в КодыВозвратов);
    Функция РасходБезНДС = Расход(Сумма2);
    Функция РасходСНДС = Расход(Сумма1);
    Функция ВозвратБезНДС = Приход(Сумма2)Когда(КодОперации в КодыВозвратов);
    Функция ВозвратСНДС = Приход(Сумма1)Когда(КодОперации в КодыВозвратов);
    Функция ОборотСумма = Сумма(Оборот)Когда(КодОперации в КодыОборота);
    Функция ОборотУпр = Сумма(ПересчетВалюты(Оборот, Док))Когда(КодОперации в КодыОборота);
    Функция ОборотКомРасход = Сумма(ПересчетВалюты(ОборотКом, Док, ВалВзаим, глРубли))Когда(КодОперации = глКО.ОтчетРеализатора);
    Функция ОборотКомРасходУпр = Сумма(ПересчетВалюты(ОборотКом, Док, ВалВзаим, глДоллары))Когда(КодОперации = глКО.ОтчетРеализатора);
    Функция ОборотВ = Сумма(Оборот)Когда(КодОперации в КодыВозвратов);
    Функция ОборотУпрВ = Сумма(ПересчетВалюты(Оборот, Док))Когда(КодОперации в КодыВозвратов);

    Условие (НЕ(КодОперации в КодыПеремещений));
    Условие (Фирма в ВыбРазделитель1);
    Группировка Фирма;
    Группировка СвойствоПокупателя;
    Группировка Покупатель без групп;
  14. Black Cat
    Offline

    Black Cat Опытный в 1С

    Регистрация:
    18 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Добавил

Поделиться этой страницей