Конф. Бух 7.7.
Отчет по командировкам собирает на какие расходы командировочных расходов были выделены деньги.
Док.КомуЗаЧто1 суточные, проживание, прочее.
Нужно разделить поступления по счетам: 26.1 23.1 10.10 25.3 чтобы итого по ним выводилось.
Док.КоррСчет = счет
Не могу написать цикл чтобы собирались счета и перечисления на них.
Пускай я сделаю 4 столбца в таблице и отдельно по каждому счету собиралось из ТЗ туда.
Отчет по командировкам собирает на какие расходы командировочных расходов были выделены деньги.
Док.КомуЗаЧто1 суточные, проживание, прочее.
Нужно разделить поступления по счетам: 26.1 23.1 10.10 25.3 чтобы итого по ним выводилось.
Док.КоррСчет = счет
Не могу написать цикл чтобы собирались счета и перечисления на них.
Пускай я сделаю 4 столбца в таблице и отдельно по каждому счету собиралось из ТЗ туда.
Перем ДатаДеноминации;
Процедура Сформировать()
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Дата");
ТЗ.НоваяКолонка("КомуЗаЧто");
ТЗ.НоваяКолонка("Сумма");
ТЗ.НоваяКолонка("Счет26_1");
Если ЦелевоеНазначение.Выбран()=0 Тогда
Предупреждение("ВЫбрать целевое назначение");
Возврат;
СтатусВозврата(0);
КонецЕсли;
//
Док = СоздатьОбъект("Документ.АвансовыйОтчет");
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
Пока Док.ПолучитьДокумент() = 1 Цикл
Если Док.Проведен() = 1 Тогда
Если (Док.Цель=ЦелевоеНазначение) Тогда
Если ((Счет=1)и(Док.ТипОтчета = 1))
или ((Счет=2)и(Док.ТипОтчета = 2)) Тогда
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() =1 Цикл
ТЗ.НоваяСтрока();
// ТЗ.Дата =СокрЛП(Формат(Док.ДатаДок ,"ДММММГГГГ"));
ТЗ.Дата =СокрЛП(Формат(Док.ДатаДок ,"ДММММГГГГ"));
ТЗ.КомуЗаЧто = Док.КомуЗаЧто1;
ДатаДеноминации = Дата("01.07.2016");
Если Док.ДатаДок < ДатаДеноминации Тогда
ТЗ.Сумма = Док.Сумма/10000
Иначе
ТЗ.Сумма = Док.Сумма;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Иначе
Продолжить;
Конецесли;
КонецЦикла;
Таб = СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Шапка");
//
ТЗ_ИтогПоДню = СоздатьОбъект("ТаблицаЗначений");
ТЗ_ИтогПоДню.Загрузить(ТЗ);
ТЗ_ИтогПоДню.Свернуть("Дата", "Сумма");
//
//
ТЗ_ИтогПоКОМУ = СоздатьОбъект("ТаблицаЗначений");
ТЗ_ИтогПоКому.Загрузить(ТЗ);
ТЗ_ИтогПоКому.Свернуть("Комузачто", "Сумма");
//
Таб.ПрисоединитьСекцию("Шапка_г|Шапка_в");
ТЗ_ИтогПоКому.ВыбратьСтроки();
Пока ТЗ_ИтогПоКому.ПолучитьСтроку() = 1 Цикл
Таб.ПрисоединитьСекцию("Шапка_г|КомуЗаЧто");
КонецЦикла;
Таб.ПрисоединитьСекцию("Шапка_г|ИтогПоДню");
ТЗ.Свернуть("Дата,Комузачто", "Сумма");
ТЗ_ИтогПоДню.ВыбратьСтроки();
Пока ТЗ_ИтогПоДню.ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Дата|Шапка_в");
ТЗ_ИтогПоКому.ВыбратьСтроки();
Пока ТЗ_ИтогПоКому.ПолучитьСтроку() = 1 Цикл
ПрТТ = 0;
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Если (ТЗ.КомуЗаЧто <> ТЗ_ИтогПоКому.КомуЗаЧто) или
(ТЗ.Дата <> ТЗ_ИтогПоДню.Дата) Тогда
Продолжить;
Иначе
Таб.ПрисоединитьСекцию("Дата|КомуЗаЧто");
ПрТТ = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Если ПрТТ = 0 Тогда
Таб.ПрисоединитьСекцию("Дата|Пусто");
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию("Дата|ИтогПоДню");
КонецЦикла;
Всего = 0;
Таб.ВывестиСекцию("Итог|Шапка_в");
ТЗ_ИтогПоКому.ВыбратьСтроки();
Пока ТЗ_ИтогПоКому.ПолучитьСтроку() = 1 Цикл
Таб.ПрисоединитьСекцию("Итог|КомуЗаЧто");
Всего = Всего + ТЗ_ИтогПоКому.Сумма;
КонецЦикла;
Таб.ПрисоединитьСекцию("Итог|ИтогПоДню");
Таб.Опции(0,0);
Таб.Показать("Отчет по кас. аппарату");
КонецПроцедуры
//_______________________
Процедура ПриОткрытии()
ДатаНач = НачМесяца(ТекущаяДата());
ДатаКон = КонМесяца(ТекущаяДата());
Счет=1;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
Найденные решения
Решил так:
ТЗ.НоваяКолонка("Счет_");
ТЗ.Счет_ = Док.КоррСчет;
Далее ТЗ
ТЗ_Счет = СоздатьОбъект("ТаблицаЗначений");
ТЗ_Счет.Загрузить(ТЗ);
ТЗ_Счет.Свернуть("Счет_", "Сумма");
Пока ТЗ_Счет.ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Счет_");
КонецЦикла;
Ну и в таблице:
На Счет: ТЗ_Счет.Счет_ ТЗ_Счет.Сумма
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Решил так:
ТЗ.НоваяКолонка("Счет_");
ТЗ.Счет_ = Док.КоррСчет;
Далее ТЗ
ТЗ_Счет = СоздатьОбъект("ТаблицаЗначений");
ТЗ_Счет.Загрузить(ТЗ);
ТЗ_Счет.Свернуть("Счет_", "Сумма");
Пока ТЗ_Счет.ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Счет_");
КонецЦикла;
Ну и в таблице:
На Счет: ТЗ_Счет.Счет_ ТЗ_Счет.Сумма
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот