7.7 Объеденине колонок в печатной форме

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Danik95, 16 май 2010.

  1. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    Всем привет, подскажите пожалуйста, сделал два запроса к двум разным документам как вывести их в группировке по контрагенту в две колонки? подскажите пример кода, спасибо!
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Запрос1
    Запрос2
    Выгрузить в ТаблицуЗначений
    В цикле по ТЗ вывести
  3. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    А как сгруппировать по контрагенту?
  4. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    А можно ли оба запроса выгрузить в одну таблицу значении? не покажите пример, а то не получается никак
  5. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Поясните конкретнее про две колонки - как вы это видите.
    Можно это и одним запросом сделать и без ТЗ. Просто что должно быть на выходе..
  6. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    На выходе в группировке по контрагенту в должны показываться данные из документов, то есть первая колонка КОНТРАГЕТ, вторая например СУММА документа1, третья СУММА документа2, ниже скрин..

    Вложения:

    • 327464826.png
      327464826.png
      Размер файла:
      8,2 КБ
      Просмотров:
      14
  7. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Все просто
    Код:
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Без итогов;
    |Контрагент = Документ.ПКО.Контрагент, Документ.РКО.Контрагент;
    |ТекущийДокумент = Документ.ПКО.ТекущийДокумент;
    |ТекущийДокумент1 = Документ.РКО.ТекущийДокумент;
    |Группировка Контрагент;
    |Группировка ТекущийДокумент;
    |Группировка ТекущийДокумент1;
    |"//}}ЗАПРОС;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    Таб = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(Таб);
    
    
    1) разделяем по видам док на 2 таблицы (можно конечно было бы использовать 2 запроса по каждому виду, но тогда пришлось бы оьъеденять по контрагенту, т.к. в одном из видов он мог отсутствовать
    2) Используя метод запроса Группировка по контрагенту выводим таблицу. Доки получаем из таблиц, сформированных по видам.
  8. TopicStarter Overlay
    Danik95
    Offline

    Danik95 Опытный в 1С

    Регистрация:
    22 мар 2009
    Сообщения:
    127
    Симпатии:
    0
    Баллы:
    26
    Код:
    ТЗ = СоздатьОбъект("ТаблицаЗначений"); 
    
    Безнал = Перечисление.ТипыРасходов.ПоБезналу;
    
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать1)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Контрагент = Документ.РасходнаяНакладная.Покупатель, Документ.ДвижениеДенег.Контрагент, Документ.ВозвратДенег.ЮрФизЛицо;
    |ДатаП = Документ.РасходнаяНакладная.ДатаДок;
    |ДокП = Документ.РасходнаяНакладная.ТекущийДокумент;
    |СуммаП = Документ.РасходнаяНакладная.СуммаНакладной;
    |ТипРасхода = Документ.РасходнаяНакладная.ТипРасхода;
    |ДатаВ = Документ.ВозвратнаяНакладная.ДатаДок;
    |СуммаВ = Документ.ВозвратнаяНакладная.СуммаНакладной;
    |ДатаО = Документ.ДвижениеДенег.ДатаДок;
    |СуммаО = Документ.ДвижениеДенег.Сумма;
    |ДокО = Документ.ДвижениеДенег.ТекущийДокумент;
    |ДокВ = Документ.ВозвратнаяНакладная.ТекущийДокумент;
    |Функция СуммаОбщаяП = Сумма(СуммаП);
    |Функция СуммаОбщаяВ = Сумма(СуммаВ);
    |Функция СуммаОбщаяО = Сумма(СуммаО);
    |Группировка Контрагент;
    |Группировка ДокО;
    |Группировка ДокП;
    |Группировка ДокВ;
    |Условие(ТипРасхода = Безнал);
    |"//}}ЗАПРОС  
    ;
    Если СписокКонтрагентов.РазмерСписка() > 0 Тогда
    ТекстЗапроса = ТекстЗапроса + "Условие (Контрагент в СписокКонтрагентов);";
    КонецЕсли;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли; 
    Запрос.Выгрузить(ТЗ);
    Тз.ВыбратьСтроки();
    
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    ИмяЗаголовка = "Задолженность по Б/Н";
    Таб.ВывестиСекцию("Шапка");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    
    ТЗОплата = СоздатьОбъект("ТаблицаЗначений");
    ТЗОплата.НоваяКолонка("ДатаО",,,,,,,);
    ТЗОплата.НоваяКолонка("СуммаО",,,,,,,); 
    
    ТЗПродажа = СоздатьОбъект("ТаблицаЗначений");
    ТЗПродажа.НоваяКолонка("ДатаП",,,,,,,);
    ТЗПродажа.НоваяКолонка("СуммаП",,,,,,,);
    
    ТЗВозврат = СоздатьОбъект("ТаблицаЗначений");
    ТЗВозврат.НоваяКолонка("ДатаВ",,,,,,,);
    ТЗВозврат.НоваяКолонка("СуммаВ",,,,,,,);
    
    ТЗ.ВыбратьСтроки();
    Пока Тз.ПолучитьСтроку() = 1 Цикл
    ТЗОплата.НоваяСтрока();
    ТЗОплата.ДатаО = ТЗ.ДатаО;
    ТЗОплата.СуммаО = ТЗ.СуммаО;
    ТЗПродажа.НоваяСтрока();
    ТЗПродажа.ДатаП = ТЗ.ДатаП;
    ТЗПродажа.СуммаП = ТЗ.СуммаП;
    ТЗВозврат.НоваяСтрока();
    ТЗВозврат.ДатаВ = ТЗ.ДатаВ;
    ТЗВозврат.СуммаВ = ТЗ.СуммаВ;
    КонецЦикла;
    
    
    не подскажете почему выдает ошибку "ТЗОплата.ДатаО = ТЗ.ДатаО;
    {Отчет.ЗадолженностьПоБН.Форма.Модуль(125)}: Поле агрегатного объекта не обнаружено (ДатаО)"
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Потому что надо

    Код:
    Запрос.Выгрузить(ТЗ,1,0);
    
    
    
    По умолчнию переменные запроса не выгружаются из него....


    Выгрузить(<ТаблЗнач>,<Флаг>,<Итоги>)
    Назначение:
    Выгружает результаты запроса в таблицу значений. Возвращает число: 1 - если выгрузка произошла успешно, иначе - 0.
    Параметры:
    <ТаблЗнач> - Таблица значений, куда выгружаются результаты запроса.
    <Флаг> - необязательный параметр. Число или строка:
    0 - значения групп и функций (по умолчанию);
    1 - значения групп и функций, дополнительных переменных;
    2 - значения упорядочиваний групп и функций;
    3 - значения упорядочиваний групп и функций, дополнительных переменных;
    Строка - '' Товар(1), Товар(2), Товар, Склад, Приход, Расход'', где Товар(1) - значение первого упорядочивания группировки ''Товар''.
    <Итоги> - необязательный параметр. Число:
    0 - итоги по группировкам не выводить;
    1 - итоги по группировкам выводить сверху (по умолчанию);
    2 - итоги по группировкам выводить снизу;
    3 - итоги по группировкам выводить сверху и

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