Процедура Выгрузить()
ОчиститьОкноСообщений();
тзДанные = СоздатьОбъект("ТаблицаЗначений");
тзДанные.Очистить();
тзДанные.НоваяКолонка("Склад");
тзДанные.НоваяКолонка("Товары");
Если Дата2 >= ПолучитьДатуТА() Тогда
ТекстЗапроса = "
|Период с Дата1;";
Иначе
ТекстЗапроса = "
|Период с Дата1 по Дата2;";
КонецЕсли;
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
|ТоварыНаСкладахОстатки.Номенклатура,
|ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
|ТоварыНаСкладахОстатки.СерияНоменклатуры,
|ТоварыНаСкладахОстатки.Качество,
|ТоварыНаСкладахОстатки.КоличествоОстаток,
|NULL как ЦенаВРознице
|ИЗ
|РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, Склад = &Склад)КАК ТоварыНаСкладахОстатки
|ГДЕ
|ТоварыНаСкладахОстатки.КоличествоОстаток > 0
|ОБЪЕДЕНИТЬ ВСЕ
|ВЫБРАТЬ
|ТоварыВНТТОстатки.Номенлатура,
|ТоварыВНТТОстатки.ХарактеристикаНоменклатуры,
|ТоварыВНТТОстатки.СерияНоменклатуры,
|NULL,
|ТоварыНаСкладахОстатки.КоличествоОстаток,
|ТоварыВНТТОстатки.ЦенаВРознице
|ИЗ
|РегистрНакопления.ТоварыВНТТ.Остатки(&КонДата, Склад = &Склад) КАК ТоварыВНТТОстатки
|ОБЪЕДЕНИТЬ ВСЕ
|ВЫБРАТЬ
|
|Функция НачПродСтоимость = НачОст(ПродСтоимость);
|Функция КонПродСтоимость = КонОст(ПродСтоимость);
|Функция ПрихПродСтоимость = Приход(ПродСтоимость);
|Функция РасхПродСтоимость = Расход(ПродСтоимость);
|Условие (МестоХранения в Склад);
|Условие (Номенклатура в Товар);
|Группировка МестоХранения без групп;
|Группировка Номенклатура без групп;";
Запрос = СоздатьОбъект("Запрос");
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
Предупреждение("Запрос по партиям не выполнился!!!");
Возврат;
КонецЕсли;
КвоПозиций = 0;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
Пока Запрос.Группировка(1) = 1 Цикл
МестоХранения = Запрос.МестоХранения;
тзДанные.НоваяСтрока();
тзДанные.Склад = МестоХранения;
тзДанные.Товары = СоздатьОбъект("ТаблицаЗначений");
тзТовары = тзДанные.Товары;
тзТовары.Очистить();
Для Инд = 1 По спРекв.РазмерСписка() Цикл
Колонка = спРекв.ПолучитьЗначение(Инд);
тзТовары.НоваяКолонка(Колонка);
КонецЦикла;
Таб.ВывестиСекцию("Склад");
Пока Запрос.Группировка(2) = 1 Цикл
ТМЦ = Запрос.Номенклатура;
КонОстаток = Запрос.КонОстаток;
КонСтоимость = Запрос.КонСтоимость;
ПрихДок = Запрос.ПрихДокумент;
Счет = Запрос.Счет;
Если (рБезНулевых = 1) и (КонОстаток = 0) Тогда
Продолжить;
КонецЕсли;
тзТовары.НоваяСтрока();
тзТовары.ТМЦ = ТМЦ;
тзТовары.Счет = Счет;
тзТовары.Кво = КонОстаток;
тзТовары.СуммаБезНДС = КонСтоимость;
Таб.ВывестиСекцию("ТМЦ");
КвоПозиций = КвоПозиций + 1;
Состояние("Вывод: ["+СокрЛП(КвоПозиций)+"]");
Индикатор = "Вывод: "+Строка(КвоПозиций);
Форма.Обновить();
КонецЦикла;
// свернем таблицу
тзТовары.Свернуть("ТМЦ,Счет","Кво,СуммаБезНДС");
КонецЦикла;
Если Excel 0 Тогда
ВыгрузитьВЭксель(тзДанные);
Excel.Visible = 1;
Сообщить("Выгруженно: "+СокрЛП(КвоПозиций),"i");
Индикатор = "Выгруженно: ["+СокрЛП(КвоПозиций)+"]";
Форма.Обновить();
КонецЕсли;
Если (рПечать = 1) или (Excel = 0) Тогда
Таб.ВывестиСекцию("Дно");
Таб.ТолькоПросмотр(1);
Таб.Показать("Остатки за период: "+ПериодСтр(Дата1,Дата2));
КонецЕсли;
КонецПроцедуры
Вот что тут неправильно, помогите исправить...