7.7 Нужно переделать отчет

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем M a x i m, 16 окт 2008.

  1. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Добрый день
    Есть диспетчер (отгружает экспедиторам продукцию), а есть эти экспедиторы
    Диспетчеры работает через день

    Нужен отчет, который бы показал в выбранном периоде кому, когда, сколько и насколько руб. отгружал конкретный выбранный в диалоге диспетчер. Подобный есть:
    Код:
    Процедура Сформировать()
    
    Если Дата1 > Дата2 Тогда
    Сообщить("Неверно задан период!");
    Возврат;
    КонецЕсли;
    
    
    Таб = СоздатьОбъект("Таблица");
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    | Период С Дата1 По Дата2;
    | Обрабатывать НеПомеченныеНаУдаление;
    | ОбрабатыватьДокументы Проведенные;
    | ТипДока = Документ.РеализацияПродукции.ТипХозОперации;
    | Склад = Документ.РеализацияПродукции.МестоХранения;
    | Товар = Документ.РеализацияПродукции.Товар;
    | Единица = Документ.РеализацияПродукции.ЕдиницаИзмерения;
    | Кол = Документ.РеализацияПродукции.Количество;
    | Сумма = Документ.РеализацияПродукции.Всего;
    | Функция Нал_Кол = Сумма(Кол) Когда (ТипДока = 0);
    | Функция Нал_Сумма = Сумма(Сумма) Когда (ТипДока = 0);
    | Функция Безнал_Кол = Сумма(Кол) Когда (ТипДока = 2);
    | Функция Безнал_Сумма = Сумма(Сумма) Когда (ТипДока = 2);
    | Функция Итог = Сумма(Сумма) Когда ((ТипДока = 0) ИЛИ (ТипДока = 2));
    | Функция ИтогКол = Сумма(Кол) Когда ((ТипДока = 0) ИЛИ (ТипДока = 2));
    | Группировка Склад без Групп;
    | Группировка День;";
    
    Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
    Таб.ВывестиСекцию("Шапка");
    Ном = 0;
    Пока Запрос.Группировка(1) = 1 Цикл
    Таб.ВывестиСекцию("Всего");
    Пока Запрос.Группировка(2) = 1 Цикл
    Таб.ВывестиСекцию("Период");
    КонецЦикла;
    КонецЦикла;
    Таб.ВывестиСекцию("Итог");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Отчет по реализации за период");
    КонецЕсли;
    
    КонецПроцедуры
    
    
    ...но этот отчет верен выдает действия всех диспетчеров, а нужно только по выбраннному
    подскажите, что подправить в запросе (или вообще в коде), пожалуйста
  2. Akulina
    Offline

    Akulina Опытный в 1С

    Регистрация:
    30 авг 2007
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Надо где-то как-то указать, по каким дням работает выбранный диспетчер - по четным или нечетным. И отбирать соответствующие дни.
  3. Vlad
    Offline

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

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Думаю, что надо в форме добавить поле с выбором конкретного диспетчера, а в запросе прописать условие.
  4. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    в форме это поле есть (называется "выбСклад"), его, похоже, нет в запросе, и я не знаю как его правильно внести в запрос :unsure:

    p.s. и диспетчеры и экспедиторы занесены в Справочник => Предприятие => Места хранения

    спасибо за идею, но как быть, если диспетчера в теч-е месяца поменяются местами. ИМХО метод не подходит.
  5. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    в регистре у тебя всеровно останется тот диспечер, который был на момент проведения документа
  6. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    они все логинятся одним аккаунтом (понимаю, что не гуд, но только пришел сюда, не все успел по-уму сделать)
  7. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Oo а какая разница как они логинятся?? если у тебя диспечер это склад :)) и он выбирает себя в документах, то при условии что каждый будет выбирать себя все будет хорошо...
  8. TopicStarter Overlay
    M a x i m
    Offline

    M a x i m Опытный в 1С

    Регистрация:
    6 окт 2008
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    я просто думал, что ты советуешь отбирать документы по автору, тогда не могу понять как это сделать

    у нас так: диспетчер делает перемещение МПЗ (тип перемещение - отгрузка водителю), водитель развозит прод-ю, возвращает накладные на реализованную прод-ю диспетчеру, диспетчер по накладным оформляет реализацию (без указания основания, но складом уже выступает водитель-экспедитор).

    мне нужно примерно следующее
    в диалоге выбрать нужные ДатаНач, ДатаКон, Склад(который диспетчер)

    открыть общий журнал
    если
    (перемещение.документ.дата>=ДатаНач)
    и (перемещение.документ.дата<=ДатаКон)
    то
    если
    перемещение.документ.склад=Склад
    то
    отобрать все записи реализации где
    реализация.документ.дата=перемещение.документ.дата
    распечатать (реализация.документ.склад, реализация.документ.дата, реализация.документ.итого)
    конец если
    конец если

    раньше писал на Дельфи, там бы это выглядело примерно так;
    с 1С не так, наверное

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