Метод ТЗ.Свернуть() 7.7

1. Lesovik 29.04.08 11:22 Сейчас в теме
Перестал коректно работать стандартный метод, выдает цифры большие чем должен был бы выдавать при свертке.

кусок кода в котором все происходит:

Запрос.выгрузить(ТабЗнач,1,0);
Если РазПоСкладам=0 тогда
ТабЗнач.Свернуть("Номенклатура,ДатаПродажи","ДоходВсего,СуммаКоличество,ФормаОплаты,ПоБелому");
иначе
ТабЗнач.Свернуть("Склад,Номенклатура,ДатаПродажи","ДоходВсего,СуммаКоличество,ФормаОплаты,ПоБелому");
конецесли;
ТабЗнач.НоваяКолонка("ДоходНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалС","число",15,2);
ТабЗнач.выбратьСтроки();
нумератор=0;
Пока табЗнач.ПолучитьСтроку()=1 цикл
нумератор=нумератор+1;
Если табЗнач.Побелому=1 тогда
табЗнач.УстановитьЗначение(нумератор,"ДоходВсегоС",табЗнач.ДоходВсего);
Если табЗнач.ФормаОплаты=1 тогда
табЗнач.УстановитьЗначение(нумератор,"ДоходБезНалС",табЗнач.ДоходВсего);
табЗнач.УстановитьЗначение(нумератор,"ДоходБезНал",табЗнач.ДоходВсего);
иначе
табЗнач.УстановитьЗначение(нумератор,"ДоходНалС",табЗнач.ДоходВсего);
табЗнач.УстановитьЗначение(нумератор,"ДоходНал",табЗнач.ДоходВсего);
конецесли;
иначе
табЗнач.УстановитьЗначение(нумератор,"ДоходВсегоБез",табЗнач.ДоходВсего);
Если табЗнач.ФормаОплаты=1 тогда
табЗнач.УстановитьЗначение(нумератор,"ДоходБезНалБез",табЗнач.ДоходВсего);
табЗнач.УстановитьЗначение(нумератор,"ДоходБезНал",табЗнач.ДоходВсего);
иначе
табЗнач.УстановитьЗначение(нумератор,"ДоходНалБез",табЗнач.ДоходВсего);
табЗнач.УстановитьЗначение(нумератор,"ДоходНал",табЗнач.ДоходВсего);
конецесли;
конецесли;
конеццикла;
Если РазПоСкладам=1 тогда
табЗнач.выгрузить(ТабИтогов);
// ТабИтогов.Загрузить(табЗнач);
ТабИтогов.Свернуть("Склад","ДоходВсего,СуммаКоличество,ДоходВсегоС,ДоходБезНалС,ДоходБезНал,ДоходНалС,ДоходНал,ДоходВсегоБез,ДоходБезНалБез,ДоходБезНал,ДоходНалБез,ДоходНал");
конецесли;

Не отрабатывает предпоследняя строка, выдает странные цифры, пример файликов с этой строкой и без нее в прикрепленном архиве...

раскажите если кто сталкивался, спасибо
Прикрепленные файлы:
ексель.rar
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Shaman100M 1151 29.04.08 11:54 Сейчас в теме
имхо, по коду все логично, вроде.

ТабЗнач.НоваяКолонка("ДоходНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалС","число",15,2);

- проверь, мож такие колонки уже были загружены из запроса?

Ну, можно после создания наверняка их проинициализировать изначально....
ТабЗнач.Заполнить(0,,,"ДоходНал"); // и т.д.

В цикле сделать код прозрачнее, типа,
ТабЗнач.ДоходВсегоС = ТабЗнач.ДоходВсего; // и т.д.

В отладчике посмотреть, на каком этапе начинает врать таблица...
3. Tippa 41 29.04.08 12:37 Сейчас в теме
да цифры то вроде бы одинаковые? или речь идет о выводе лишних строк "итого" вверху отчета?
а запрос несложно показать?
4. Lesovik 29.04.08 13:19 Сейчас в теме
речь идет о том, что при свертке таблицы ТабИтогов получается, что строки не равны итогу... это видно из прикрелпенного примера...
Запрос:

ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ФормДатаНач по ФормДатаКон;
|Склад = Документ.ОтчетККМ.Склад;
|Валюта = Документ.ОтчетККМ.Валюта;
|Скидка = Документ.ОтчетККМ.Скидка;
|Номенклатура = Документ.ОтчетККМ.Номенклатура;
|Количество = Документ.ОтчетККМ.Количество;
|Цена = Документ.ОтчетККМ.Цена;
|ДатаПродажи = Документ.ОтчетККМ.ДатаДок;
// |СтавкаНДС = Документ.ОтчетККМ.Сумма;
|ФормаОплаты = Документ.ОтчетККМ.ФормаОплаты;
|ПоБелому = Документ.ОтчетККМ.ПоБелому;
|Сумма = Документ.ОтчетККМ.Сумма;
|Функция ДоходВсего = Сумма(Сумма);
|Функция СуммаКоличество = Сумма(Количество);
|Группировка Склад;
|Группировка Номенклатура;
// |Условие(Склад = ВыбСклад);
|"//}}ЗАПРОС
;
Если ВыбСклад.выбран()=1 тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(Склад = ВыбСклад);";

конецесли;
Если ПоБелое=1 тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(ПоБелому = ПоБелое);";
конецесли;
5. Lesovik 29.04.08 13:21 Сейчас в теме
вранье начинается после выполнение строчки кода:
ТабИтогов.Свернуть("Склад","ДоходВсего,СуммаКоличество,ДоходВсегоС,ДоходБезНалС,ДоходБезНал,ДоходНалС,ДоходНал,ДоходВсегоБез,ДоходБезНалБез,ДоходБезНал,ДоходНалБез,ДоходНал"
6. Lesovik 29.04.08 13:52 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот