1с 7.7 Бухгалтерия Подскажите как заполнить значениями таблицу Печатной формы?
20.04.2010
23:56
#41
"Сумма - колонка из табличной части документа расходная накладная. Цель вывести количество и сумму отгрузок номенклатуры по контрагентам за определенный период. В принципе похожая задача с той что рассматривалась выше и по аналогии получил вот такой вот код:
Процедура Отбор()
Перем Запрос, ТекстЗапроса, Таб;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с дата1 по дата2;
|ОбрабатыватьДокументы все;
|Контрагент = Документ.РасходнаяНакладная.Контрагент;
|Товар = Документ.РасходнаяНакладная.Товар;
|Количество = Документ.РасходнаяНакладная.Количество;
|Сумма = Документ.РасходнаяНакладная.Сумма;
|Функция Количество = Сумма(Количество);
|Функция Сумма = Сумма(Сумма);
|Группировка Контрагент без групп;
|Группировка Товар без Групп все ВошедшиеВЗапрос;
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Заголовок|КонтДок");
Таб.Опции(1, 0, Таб.ВысотаТаблицы(), 0);
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ФлагПервогоПрохода = 1;
Пока Запрос.Группировка(1) = 1 Цикл
Контрагент = Запрос.Контрагент;
Если ФлагПервогоПрохода = 0 Тогда
Таб.ВывестиСекцию("Сформировать|КонтДок");
КонецЕсли;
ТЗ.НоваяСтрока();
Пока Запрос.Группировка(2) = 1 Цикл
Количество = Запрос.Количество;
КолТовара = КолТовара + 1;
Сумма = Запрос.Сумма;
СумТовара = СумТовара+1;
Если ФлагПервогоПрохода = 1 Тогда
Товар = Запрос.Товар;
Таб.ПрисоединитьСекцию("Заголовок|Номенклатура");
ТЗ.НоваяКолонка("К"+КолТовара, "Число");
Иначе
Таб.ПрисоединитьСекцию("Сформировать|Номенклатура");
КонецЕсли;
ТЗ.УстановитьЗначение(""""+ТЗ.КоличествоСтрок(),"К"+КолТовара, Количество);
КонецЦикла;
Если ФлагПервогоПрохода = 1 Тогда
ФлагПервогоПрохода = 0;
Таб.ВывестиСекцию("Сформировать|КонтДок");
КонецЕсли;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");
КонецПроцедуры
Но есть проблема. Первая строка для контрагента не заполняется. Не могу понять в чем косяк, может Вы поможите?
"
Процедура Отбор()
Перем Запрос, ТекстЗапроса, Таб;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с дата1 по дата2;
|ОбрабатыватьДокументы все;
|Контрагент = Документ.РасходнаяНакладная.Контрагент;
|Товар = Документ.РасходнаяНакладная.Товар;
|Количество = Документ.РасходнаяНакладная.Количество;
|Сумма = Документ.РасходнаяНакладная.Сумма;
|Функция Количество = Сумма(Количество);
|Функция Сумма = Сумма(Сумма);
|Группировка Контрагент без групп;
|Группировка Товар без Групп все ВошедшиеВЗапрос;
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Заголовок|КонтДок");
Таб.Опции(1, 0, Таб.ВысотаТаблицы(), 0);
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ФлагПервогоПрохода = 1;
Пока Запрос.Группировка(1) = 1 Цикл
Контрагент = Запрос.Контрагент;
Если ФлагПервогоПрохода = 0 Тогда
Таб.ВывестиСекцию("Сформировать|КонтДок");
КонецЕсли;
ТЗ.НоваяСтрока();
Пока Запрос.Группировка(2) = 1 Цикл
Количество = Запрос.Количество;
КолТовара = КолТовара + 1;
Сумма = Запрос.Сумма;
СумТовара = СумТовара+1;
Если ФлагПервогоПрохода = 1 Тогда
Товар = Запрос.Товар;
Таб.ПрисоединитьСекцию("Заголовок|Номенклатура");
ТЗ.НоваяКолонка("К"+КолТовара, "Число");
Иначе
Таб.ПрисоединитьСекцию("Сформировать|Номенклатура");
КонецЕсли;
ТЗ.УстановитьЗначение(""""+ТЗ.КоличествоСтрок(),"К"+КолТовара, Количество);
КонецЦикла;
Если ФлагПервогоПрохода = 1 Тогда
ФлагПервогоПрохода = 0;
Таб.ВывестиСекцию("Сформировать|КонтДок");
КонецЕсли;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");
КонецПроцедуры
Но есть проблема. Первая строка для контрагента не заполняется. Не могу понять в чем косяк, может Вы поможите?
"
1C8.2 УПП 1.3: Ошибка СУБД: Не удалось привязать составной идентификатор - что делать?Установка локальной 1С 7.7 на Windows 7 64bit Home Edition
Читают тему
(гостей: 1)