Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0
1С:Предприятие 7.7 для SQL (7.70.027) Конфигурация: "Бухгалтерский учет" для Украины (7.70.252)
Добрый день! Давненько было задание сделать отчет по кассам расходные и приходные документы с сортировкой по кассе за период (сделано) Поля в отчете: №п/п Дата Документ Касса Сумма Примечание
Теперь хотят, что бы добавил еще 4 поля Остаток на начало периода, дебит, кредит, остаток на конец периода по каждой кассе.
Подскажите пожалуйста, где и как найти информацию, откуда ее выкатить??
ИмяВыбрФайла = "Журнал_"+ТекущаяДата()+".xls"; Если ФС.ВыбратьФайл(1, ИмяВыбрФайла, ПутьExcel, "Сохранить Excel документ", "Microsoft Excel (*.xls)|*.xls", , ) = 1 Тогда Таб.Записать(ПутьExcel+ИмяВыбрФайла,1);
КонецЕсли; КонецПроцедуры
Функция ПроверкаДаты(); Флаг = 0; Если (Число(Дата1) = 0) или (Число(Дата2) = 0) или (Дата1 > Дата2) Тогда Сообщить("Не правильно заполнен период","!"); Возврат Флаг; Иначе Флаг = 1; Возврат Флаг КонецЕсли; КонецФункции
//*******************************************
Процедура Сформировать() Если (ПроверкаДаты() = 1) Тогда //Начало проверки даты [001]
у вас обычный журнал же с хронологией? т.е показаны пко и рко по введенным датам?
информацию которую у вас запрашивают, это сведенная уже информация.... Аааа... это они хотят видеть на сколько уменьшает увеличивает кассу каждый документ.
из того что уже есть, можно вычислить эти колонки прямо в тз. К сумме предыдущей строки добавлять/убавлять знач текущей, вычислять тек кон и нач остатки.
в тек строке присваиваете переменным ТекНачОст, ТекДеб, ТекКред, ТекКонОста значения тек строки после ВывестиСтроку() в месте до ВывестиСтроку() - прибавляете к значениям нужных колонок значения ТекНачОст, ТекДеб, ТекКред, ТекКонОста.
это логическим путем из того , что уже в коде есть.
Но есть запросы по Бухглатерским итогам, есть обращения к Бухгалтерским итогам. Смотрите стандартные отчеты. Там в основном на итогах все построено. т. к документы могут быть не проведены - это раз, значения реквизитов документов, и значения проводок этих документов могут быть различны - в теории.
Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0
т.е. мои действия:
1. Определяемся с периодом (НачДата, КонДата), задаем через форму 2. Определяемся с кассой по которой хотим посмотреть остаток на начало дня, конец дня, дебет и кредит
//задаем кассу //но так как это пока для тестов, то укажу кассу в ручную Касса = СоздатьОбъект("Справочник.НашиДенежныеСчета"); Касса.ИспользоватьВладельца(Фирма); Касса.НайтиПоНаименованию("Касса Д2",0);
//забираем периоды с формы НачДата = Дата1; КонДата = Дата2;
//создаем объект бухгалтерские итоги <tt>БухИт = СоздатьОбъект("БухгалтескиеИтоги"); БухИт.ИспользоватьазделительУчета(Фима); БухИт.ВклчатьСубсчета(-1);
Сообщить(БухИт.СНД("С"));</tt>
Правильно? У меня всегда в сообщении вывода 0(ноль)
где СсылкаНаПервуюКассу находите по значению переменной ПерваяКасса в справочнике НашиДенежныеСчета.
чтобы рассчитать итоги на произвольный период. (у вас произвольный, задается вручную). нужно еще использовать метод Рассчитать(<НачалоПериода>,<КонецПериода>,<ФильтрПоСчетам>,<ТолькоСинтетика>,<ПланСчетов>,<РазделительУчета>)
перед обращением к итогам, т. е. перед строкой СНД().
Сообщение отредактировал Домовик - 12.09.14, 11:45
Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0
Добрый день! Спасибо всем кто помогал, советовал... (я попутал Таблицу значений и просто таблицу) Я конечно тормозил, тупил, но желаемый результат достигнут, может конечно эксперты скажут что достигнут топорным способом..
1. что нужно было получить? Журнал ПКО, РКО за период по кассам с остатками на начала и конец периода, а также дебит и кредит по этим кассам (рисунок)
2. Ну собственно что получилось:
Процедура Сформировать() Если (ПроверкаДаты() = 1) Тогда //Начало проверки даты [001]
row=1; //первая строка ////После создания таблицы значений заполняем ее значениями из приходных документов (ПКО) ДокПК = СоздатьОбъект("Документ.ПриходныйКассовый"); ДокПК.ВыбратьДокументы(Дата1,Дата2); ДокПК.УстановитьФильтр(1,0); Пока ДокПК.ПолучитьДокумент() = 1 Цикл
Если ДокПК.ПометкаУдаления() <> 0 Тогда Продолжить КонецЕсли;
row=row+1;//переходим на следующую строку КонецЦикла;
//Сортируем по трем столбцам ТаблЗнач.Сортировать("ТабК+, ТабД+, ТабДок+");
//Теперь заполняем последние столбцы, Дт, Кт, ОстатокНаНачало ОстатокНаКонец периода Для i=1 по ТаблЗнач.КоличествоСтрок() Цикл ТаблЗнач.ПолучитьСтрокуПоНомеру(i); //проверяем Дебит И Кредит по файлам //ПКО11 и РКО10 Если Лев(ТаблЗнач.ПолучитьЗначение(i,3),3) = "ПКО" Тогда ТаблЗнач.УстановитьЗначение(i,11,ТаблЗнач.ТабСумма); КонецЕсли;
Если Лев(ТаблЗнач.ПолучитьЗначение(i,3),3) = "РКО" Тогда ТаблЗнач.УстановитьЗначение(i,10,ТаблЗнач.ТабСумма); КонецЕсли;
Если i = 1 Тогда ТаблЗнач.УстановитьЗначение(i,9,ВозвНачОстатка(ТаблЗнач.ТабК)); КонецЕсли;
Если i > 1 Тогда Если ТаблЗнач.ТабК <> ТаблЗнач.ПолучитьЗначение(i-1,4) Тогда ТаблЗнач.УстановитьЗначение(i,9,ВозвНачОстатка(ТаблЗнач.ТабК)); //прКО = прКО - ТаблЗнач.ПолучитьЗначение(i,10) + ТаблЗнач.ПолучитьЗначение(i,11); КонецЕсли; КонецЕсли;
КонецЦикла;
Для i=1 по ТаблЗнач.КоличествоСтрок() Цикл ТаблЗнач.ПолучитьСтрокуПоНомеру(i);
Если i = ТаблЗнач.КоличествоСтрок() Тогда //Если ТаблЗнач.ТабК <> ТаблЗнач.ПолучитьЗначение(i-1,4) Тогда ТаблЗнач.УстановитьЗначение(i,12,ВозвКонОстатка(ТаблЗнач.ТабК)); //КонецЕсли; КонецЕсли;
Если i < ТаблЗнач.КоличествоСтрок() Тогда Если ТаблЗнач.ТабК <> ТаблЗнач.ПолучитьЗначение(i+1,4) Тогда ТаблЗнач.УстановитьЗначение(i,12,ВозвКонОстатка(ТаблЗнач.ТабК)); //прКО = прКО - ТаблЗнач.ПолучитьЗначение(i,10) + ТаблЗнач.ПолучитьЗначение(i,11); КонецЕсли; КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!