|
v7: Почему бух итоги разные? | ☑ | ||
---|---|---|---|---|
0
sysadminlk
14.02.14
✎
10:57
|
Функция ПолучитьОстакиПоЗП()
ДатаДок = ТекущаяДата(); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,,1); Ит.ИспользоватьСубконто(ВидыСубконто.Подразделение,,1); Ит.ВыполнитьЗапрос(ДатаДок, ДатаДок, СчетПоКоду("70"),,Константа.НацВалюта); Сообщить(Ит.СКД(2)); Сообщить(Ит.СКК(2)); Сообщить(Ит.СКД()); Сообщить(Ит.СКК()); ИтогСумма = 0; ИтогДО = 0; ИтогКО = 0; ИтогНач = 0; ИтогОстКон = 0; ИтогОстНач = 0; Ит.ВыбратьСубконто(2); Пока Ит.ПолучитьСубконто(2) = 1 Цикл Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл Сотрудник = Ит.Субконто(1); Если Ит.СНК(2) > 0 тогда ОстНач = Ит.СНК(2); Иначе ОстНач = (-1) * Ит.СНД(2); КонецЕсли; Если Ит.СКК(2) > 0 тогда ОстКон = Ит.СКК(2); Иначе ОстКон = (-1) * Ит.СКД(2); КонецЕсли; ИтогОстКон=ИтогОстКон+ОстКон; ИтогОстНач=ИтогОстНач+ОстНач; ИтогСумма = ИтогСумма + Ит.СКК(2); ИтогДО = ИтогДО + Ит.ДО(2); ИтогКО = ИтогКО + Ит.КО(2); ИтогНач = ИтогНач + Ит.СНК(2); КонецЦикла; КонецЦикла; Сообщить(""); Сообщить(ИтогОстНач); Сообщить(ИтогОстКон); Сообщить(""); Сообщить(ИтогСумма); Сообщить(ИтогДО); Сообщить(ИтогКО); Сообщить(ИтогНач); КонецФункции |
|||
1
sysadminlk
14.02.14
✎
10:58
|
результат:
0 300535.64 0 8236.34 300535.64 300535.64 315369.36 0 0 315369.36 |
|||
2
zak555
14.02.14
✎
11:00
|
зачем рассчитывать итоге в одном порядке, а обходить в другом ?
|
|||
3
sysadminlk
14.02.14
✎
11:01
|
почему ИтогОстКон не равно ИтогСумма
|
|||
4
sysadminlk
14.02.14
✎
11:01
|
(2) а как надо?
|
|||
5
zak555
14.02.14
✎
11:03
|
(4) обычно выбирается первая аналитика, потов вторая
|
|||
6
sysadminlk
14.02.14
✎
11:09
|
(5) так чтоли:
Функция ПолучитьОстакиПоЗП() ДатаДок = ТекущаяДата(); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Подразделение,,1); Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,,1); Ит.ВыполнитьЗапрос(ДатаДок, ДатаДок, СчетПоКоду("70"),,Константа.НацВалюта); Сообщить("Ит.СКД(2) "+Ит.СКД(2)); Сообщить("Ит.СКК(2) "+Ит.СКК(2)); Сообщить(""); Сообщить("Ит.СКД() "+Ит.СКД()); Сообщить("Ит.СКК() "+Ит.СКК()); ИтогСумма = 0; ИтогДО = 0; ИтогКО = 0; ИтогНач = 0; ИтогОстКон = 0; ИтогОстНач = 0; Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1) = 1 Цикл Ит.ВыбратьСубконто(2); Пока Ит.ПолучитьСубконто(2) = 1 Цикл Сотрудник = Ит.Субконто(2); Если Ит.СНК(2) > 0 тогда ОстНач = Ит.СНК(2); Иначе ОстНач = (-1) * Ит.СНД(2); КонецЕсли; Если Ит.СКК(2) > 0 тогда ОстКон = Ит.СКК(2); Иначе ОстКон = (-1) * Ит.СКД(2); КонецЕсли; ИтогОстКон=ИтогОстКон+ОстКон; ИтогОстНач=ИтогОстНач+ОстНач; ИтогСумма = ИтогСумма + Ит.СКК(2); ИтогДО = ИтогДО + Ит.ДО(2); ИтогКО = ИтогКО + Ит.КО(2); ИтогНач = ИтогНач + Ит.СНК(2); КонецЦикла; КонецЦикла; Сообщить(""); Сообщить("ИтогОстНач "+ИтогОстНач); Сообщить("ИтогОстКон "+ИтогОстКон); Сообщить(""); Сообщить("ИтогСумма "+ИтогСумма); Сообщить("ИтогДО "+ИтогДО); Сообщить("ИтогКО "+ИтогКО); Сообщить("ИтогНач "+ИтогНач); КонецФункции |
|||
7
sysadminlk
14.02.14
✎
11:09
|
рез:
Ит.СКД(2) 0 Ит.СКК(2) 300535.64 Ит.СКД() 0 Ит.СКК() 8236.34 ИтогОстНач 300535.64 ИтогОстКон 300535.64 ИтогСумма 315369.36 ИтогДО 0 ИтогКО 0 ИтогНач 315369.36 |
|||
8
zak555
14.02.14
✎
11:09
|
(6) да
|
|||
9
zak555
14.02.14
✎
11:10
|
(7) а теперь посмотри сальдо развернутое
|
|||
10
sysadminlk
14.02.14
✎
11:16
|
Ит.СКД(2) 0
Ит.СКК(2) 300535.64 Ит.СКД() 0 Ит.СКК() 8236.34 Ит.СКДРС(2) 14833.72 Ит.СККРС(2) 315369.36 Ит.СКДРС() 510.81 Ит.СККРС() 8747.15 ИтогОстНач 300535.64 ИтогОстКон 300535.64 ИтогНач 315369.36 ИтогДО 0 ИтогКО 0 ИтогСумма 315369.36 |
|||
11
sysadminlk
14.02.14
✎
11:17
|
спасибо
теперь бы где-то почитать что такое развернутое сальдо |
|||
12
zak555
14.02.14
✎
11:21
|
(11) тут всё просто
если ты укажешь только Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ВыполнитьЗапрос(ДатаДок, ДатаДок, СчетПоКоду("70"),,Константа.НацВалюта); то СККРС(2) вернёт тебе "свёрнутый" итог для того, чтобы его развернуть, нужно указать по какой аналитике разворачивать Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Подразделение,,1); Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,,1); Ит.ВыполнитьЗапрос(ДатаДок, ДатаДок, СчетПоКоду("70"),,Константа.НацВалюта); СККРС(2) -- вернёт развёрнутое |
|||
13
sysadminlk
14.02.14
✎
13:03
|
А как можно посмотреть остатки не на определенную дату, а на определенное время?
|
|||
14
sysadminlk
14.02.14
✎
13:04
|
к примеру остатки по кассы на 23.03.2007 на 14:05:03
|
|||
15
Avganec
14.02.14
✎
13:05
|
(0) в если поиграться датой итогов? я не помню как это точно называлось, но в операции->управления итогами там можно было указывать текущий квартал работы. бывает что слетают именно эти итоги. поэтому поигравщись сменой кварталов, можно добиться пересчета косячного периода и все будет пучком.
|
|||
16
NS
14.02.14
✎
13:07
|
(14) Сформировать позицию.
|
|||
17
NS
14.02.14
✎
13:08
|
СформироватьПозициюДокумента(<?>,,,,);
Синтаксис: СформироватьПозициюДокумента(<Дата>,<Час>,<Мин>,<Сек>,<ФлагКонцаСекунды>) Назначение: Формирует и возвращает позицию документа согласно переданным параметрам. Параметры: <Дата> - дата, на которую формируется позиция документа, <Час> - час, на который формируется позиция документа, <Мин> - минута, на которую формируется позиция документа, <Сек> - секунда, на которую формируется позиция документа. <ФлагКонцаСекунды> - необязательный параметр. Число: 1 - позиция будет браться от следующей секунды. 0 - позиция от указан-ной секунды. Значение по умолчанию - 0. |
|||
18
zak555
14.02.14
✎
13:08
|
(16) только у позиций есть косяк
|
|||
19
NS
14.02.14
✎
13:09
|
(18) Ты лучше скажи где нет косяка :)
|
|||
20
zak555
14.02.14
✎
13:10
|
(19) в 8ке ? =)
|
|||
21
sysadminlk
14.02.14
✎
13:15
|
Не понимаю как в запросе СформироватьПозициюДокумента
Ит.ВыполнитьЗапрос(ДатаДок, ДатаДок, СчетПоКоду("70"),,Константа.НацВалюта); мне же с бух итогов нужно вытащить |
|||
22
NS
14.02.14
✎
13:17
|
(21) Вопрос не понял.
Как вместо ДатаДок поставить в запрос сформированную позицию документа или сам документ? Ну напиши вместо "ДатаДок" - "текпозиция". |
|||
23
sysadminlk
14.02.14
✎
13:20
|
ВР = СформироватьПозициюДокумента(ТекущийДокумент());
Сообщить(ВР); Сообщить(ТипЗначенияСтр(ВР)); Ит.ВыполнитьЗапрос(ВР, ВР, СчетПоКоду("50"),,,,4); типо того? |
|||
24
NS
14.02.14
✎
13:22
|
(23) Для начала нажимаем мужика в кепке, и ищем выполнитьзапрос, либо правая клавиша на выполнитьзапрос в коде, и поиск в синтаксис-помощнике.
|
|||
25
NS
14.02.14
✎
13:23
|
На всякий случай, если у тебя СП украли -
"ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>) Назначение: Выполнить отбор и расчет итогов по параметрам. Возвращает число 1 - запрос выполнен; 0 - запрос не выполнен. Параметры: <НачалоПериода> - дата, документ или позиция начала периода запроса. <КонецПериода> - дата, документ или позиция конца периода запроса." |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |