Привет.Пытаюсь сделать отчет, но что-то не получается. Скрин: Код:
ТекстЗапроса = "//{{ЗАПРОС(Сформ) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |Товар = Документ.РасходнаяНакладная.Товар; |Контрагент = Документ.РасходнаяНакладная.Контрагент; |Количество = Документ.РасходнаяНакладная.Количество; |Функция КоличествоСумма = Сумма(Количество); |Группировка Товар без групп; |Группировка Контрагент без групп; |Условие(Товар в ВыбТовар); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Если Флаг = 1 Тогда Запрос.Выгрузить(ТЗ,,0); ТЗ.Свернуть("Контрагент, Товар", "Количество"); Возврат; КонецЕсли;
ВыбТовар - это список необходимых товаров? тогда В Заголовке вместо Запрос.Товар - переменную например загТовар В ТекстЗапроса поменять порядок группировок: сначала Контрагент, потом - товар и
Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица1"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок|ШАпка"); Для Сч=1 По ВыбТовар.РазмерСписка() Цикл загТовар = ВыбТовар.ПолучитьЗначение(Сч) Таб.ПрисоединитьСекцию("Заголовок|Товар"); КонецЦикла; Пока Запрос.Группировка(1) = 1 Цикл //Контрагент Таб.ВывестиСекцию("Контрагент|ШАпка");
Пока Запрос.Группировка(2) = 1 Цикл //Товар Таб.ПрисоединитьСекцию("Контрагент|Товар");
КонецЦикла; КонецЦикла;
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
ВыбТовар - это список необходимых товаров? тогда В Заголовке вместо Запрос.Товар - переменную например загТовар В ТекстЗапроса поменять порядок группировок: сначала Контрагент, потом - товар
Товар это поле ввода с типом Справочник.Номенклатура.В Моем случае он содержит группу товара "Алкоголь". Группировки менять местами я пробовал.Но тогда у меня товар выводился столько раз, скольким контрам он был продан. Бухии нет под рукой что бы глянуть как там формируется шахматка. Может есть еще варианты какие?
|Группировка Контрагент без групп; |Группировка Товар без групп;
после запроса если можно, использовать вашу ТЗ если нет -создать др.таблицу знач.
Если Флаг = 1 Тогда Запрос.Выгрузить(ТЗ,,0); ТЗ.Свернуть("Контрагент, Товар", "Количество"); Возврат; Иначе Запрос.Выгрузить(ТЗ,,0); ТЗ.Свернуть("Товар", "Количество"); ТЗ.Сортировать("Товар"); КонецЕсли;
потом как-то так
Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица1"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок|ШАпка"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл загТовар = ТЗ.Товар; Таб.ПрисоединитьСекцию("Заголовок|Товар"); КонецЦикла; Пока Запрос.Группировка(1) = 1 Цикл //Контрагент текКонтр = Запрос.Контрагент; Таб.ВывестиСекцию("Контрагент|ШАпка");
КвоТовара=0; //то что вывести в Таб ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл загТовар = ТЗ.Товар; Если Запрос.Получить(текКонтр,загТовар)=1 Тогда КвоТовара=Запрос.КоличествоСумма; КонецЕсли; Таб.ПрисоединитьСекцию("Контрагент|Товар");
КонецЦикла; КонецЦикла;
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП) 1С Предприятие 8.3: Бух.предприятия 3.0 + самописка ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Кроме высшего образования, нужно иметь хотя бы среднее соображение
Пробовал.Таким образом выводит только одного самого первого контрагента. А товара выводит по всем контрам.Короче много. Мне же надо, что бы если в папке Алкоголь 4 позиции, то должно выводить их 4. А контрагентов с количеством разворачивало в разрезе этого товара.
мне тогда задача не понятна. А разве количество колонок-товаров не по всем контрагентам? просто ячейки будут заполняться только по нужному контрагенту. а разве нет так шахматка устроена?
Сообщение отредактировал Домовик - 22.05.12, 16:38
мне тогда задача не понятна. А разве количество колонок-товаров не по всем контрагентам? просто ячейки будут заполняться только по нужному контрагенту. а разве нет так шахматка устроена?
Да.Что-то типа того.Т.е. товар должен быть в таблице фиксированный (естественно тот по которому были движения), а контрагенты и количество товара должно меняться.
sava1,прервать при втором обходе нужно убрать. ВсеВошедшие в запрос нужно. Иначе будет выдавать в строках разное количество колонок.только те ячейки, по которым есть количество.
Ребят, Спасибо.Получилось. Утром смотрел как в Бухии формирует шапку.Имхо ваш вариант для меня проще оказался. Есть правда небольшой нюанс.Перестало Итоги выводить...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!