Перестал коректно работать стандартный метод, выдает цифры большие чем должен был бы выдавать при свертке.
кусок кода в котором все происходит:
Запрос.выгрузить(ТабЗнач,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 тогда
табЗнач.выгрузить(ТабИтогов);
// ТабИтогов.Загрузить(табЗнач);
ТабИтогов.Свернуть("Склад","ДоходВсего,СуммаКоличество,ДоходВсегоС,ДоходБезНалС,ДоходБезНал,ДоходНалС,ДоходНал,ДоходВсегоБез,ДоходБезНалБез,ДоходБезНал,ДоходНалБез,ДоходНал");
конецесли;
Не отрабатывает предпоследняя строка, выдает странные цифры, пример файликов с этой строкой и без нее в прикрепленном архиве...
раскажите если кто сталкивался, спасибо
кусок кода в котором все происходит:
Запрос.выгрузить(ТабЗнач,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
По теме из базы знаний
- Банковская выписка и дубли строк 1С 7.7. Бух УкР
- Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
имхо, по коду все логично, вроде.
ТабЗнач.НоваяКолонка("ДоходНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалС","число",15,2);
- проверь, мож такие колонки уже были загружены из запроса?
Ну, можно после создания наверняка их проинициализировать изначально....
ТабЗнач.Заполнить(0,,,"ДоходНал"); // и т.д.
В цикле сделать код прозрачнее, типа,
ТабЗнач.ДоходВсегоС = ТабЗнач.ДоходВсего; // и т.д.
В отладчике посмотреть, на каком этапе начинает врать таблица...
ТабЗнач.НоваяКолонка("ДоходНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНал","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалБез","число",15,2);
ТабЗнач.НоваяКолонка("ДоходВсегоС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходНалС","число",15,2);
ТабЗнач.НоваяКолонка("ДоходБезНалС","число",15,2);
- проверь, мож такие колонки уже были загружены из запроса?
Ну, можно после создания наверняка их проинициализировать изначально....
ТабЗнач.Заполнить(0,,,"ДоходНал"); // и т.д.
В цикле сделать код прозрачнее, типа,
ТабЗнач.ДоходВсегоС = ТабЗнач.ДоходВсего; // и т.д.
В отладчике посмотреть, на каком этапе начинает врать таблица...
речь идет о том, что при свертке таблицы ТабИтогов получается, что строки не равны итогу... это видно из прикрелпенного примера...
Запрос:
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ФормДатаНач по ФормДатаКон;
|Склад = Документ.ОтчетККМ.Склад;
|Валюта = Документ.ОтчетККМ.Валюта;
|Скидка = Документ.ОтчетККМ.Скидка;
|Номенклатура = Документ.ОтчетККМ.Номенклатура;
|Количество = Документ.ОтчетККМ.Количество;
|Цена = Документ.ОтчетККМ.Цена;
|ДатаПродажи = Документ.ОтчетККМ.ДатаДок;
// |СтавкаНДС = Документ.ОтчетККМ.Сумма;
|ФормаОплаты = Документ.ОтчетККМ.ФормаОплаты;
|ПоБелому = Документ.ОтчетККМ.ПоБелому;
|Сумма = Документ.ОтчетККМ.Сумма;
|Функция ДоходВсего = Сумма(Сумма);
|Функция СуммаКоличество = Сумма(Количество);
|Группировка Склад;
|Группировка Номенклатура;
// |Условие(Склад = ВыбСклад);
|"//}}ЗАПРОС
;
Если ВыбСклад.выбран()=1 тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(Склад = ВыбСклад);";
конецесли;
Если ПоБелое=1 тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(ПоБелому = ПоБелое);";
конецесли;
Запрос:
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ФормДатаНач по ФормДатаКон;
|Склад = Документ.ОтчетККМ.Склад;
|Валюта = Документ.ОтчетККМ.Валюта;
|Скидка = Документ.ОтчетККМ.Скидка;
|Номенклатура = Документ.ОтчетККМ.Номенклатура;
|Количество = Документ.ОтчетККМ.Количество;
|Цена = Документ.ОтчетККМ.Цена;
|ДатаПродажи = Документ.ОтчетККМ.ДатаДок;
// |СтавкаНДС = Документ.ОтчетККМ.Сумма;
|ФормаОплаты = Документ.ОтчетККМ.ФормаОплаты;
|ПоБелому = Документ.ОтчетККМ.ПоБелому;
|Сумма = Документ.ОтчетККМ.Сумма;
|Функция ДоходВсего = Сумма(Сумма);
|Функция СуммаКоличество = Сумма(Количество);
|Группировка Склад;
|Группировка Номенклатура;
// |Условие(Склад = ВыбСклад);
|"//}}ЗАПРОС
;
Если ВыбСклад.выбран()=1 тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(Склад = ВыбСклад);";
конецесли;
Если ПоБелое=1 тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(ПоБелому = ПоБелое);";
конецесли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот