|
Сторнирование всех остатков по регистру Бухгалтерии | ☑ | ||
---|---|---|---|---|
0
denis200
17.10.11
✎
13:41
|
Стоит учебная задача: Для типовой БП написать обработку, которая сторнирует остатки по регистру бухгалтерии Хозрасчетный.
Может кто-нибудь даст ссылку на такую обработку? |
|||
1
butterbean
17.10.11
✎
13:42
|
задача же учебная - учись давай
|
|||
2
Maxus43
17.10.11
✎
13:43
|
5 минут писать простенькую... запрос по остаткам и в запросе самом сумму отрицательную, потом бух справку создаём да и туда прям всю таблицу записываем
|
|||
3
denis200
17.10.11
✎
13:51
|
Вот как например с подразделениями быть когда их в дебет записывать а когда в кредит.
|
|||
4
Maxus43
17.10.11
✎
13:52
|
(3) понятие сторно понятно вам? Дт и Кт местами менять не надо при сторно
|
|||
5
denis200
17.10.11
✎
13:54
|
предположим
орг а подр б сумма деб = 4 кол-во кред =3 -------------------- куда пихать подразделение? |
|||
6
denis200
17.10.11
✎
13:55
|
я думаю всё через документ операциябухпровести
|
|||
7
denis200
17.10.11
✎
13:55
|
подразделение не балансовое измерение регистра бухгалтерии
|
|||
8
catena
17.10.11
✎
13:56
|
"Сторнирует остатки" - сторнировать можно проводки...
|
|||
9
denis200
17.10.11
✎
13:57
|
Ну условно сторнирование, понятно что имеется в виду обнуление.
|
|||
10
catena
17.10.11
✎
14:00
|
(9)Собираешь остатки по счетам в разрезе всей аналитики. Берешь получившуюся таблицу, сажаешь в проводки, все суммы с "-".
|
|||
11
catena
17.10.11
✎
14:00
|
эм, чере 000 счет :)
|
|||
12
catena
17.10.11
✎
14:00
|
*череЗ
|
|||
13
denis200
17.10.11
✎
14:02
|
(12) посмотри на (5) напиши проводки для этих остатков
|
|||
14
butterbean
17.10.11
✎
14:03
|
(13) делай проводки отдельно для суммы Дт и количества Кт
|
|||
15
catena
17.10.11
✎
14:04
|
(13)Да там чушь какая-то.
Откуда взял, туда и пихать. Если это разрез учета - то он не относится к дт-кт, он на всю проводку разом. Если это аналитика, то она и в остатках принадлежит дт или кт. |
|||
16
butterbean
17.10.11
✎
14:04
|
(14) хотя как может получится ситуация из (5) я даже не представляю
|
|||
17
Aleksey
17.10.11
✎
14:06
|
(5) У вас косяк в учете
|
|||
18
Starhan
17.10.11
✎
14:07
|
(5) ищешь в бп пример опредления использования учета по подразделением на счете. И бессовестно копируешь. Если не задано отдельно подразделение для Кт и ДТ то используешь подразделение в обоих счетах если на них задан учет по подразделеню.
|
|||
19
НЕА123
17.10.11
✎
14:07
|
вар.1
взять всю таблицу оборотов(от РХ), добавить такую-же, с обратными знаками ресурсов. вроде все должно сторнироваться. или я что-то не понял? |
|||
20
Starhan
17.10.11
✎
14:08
|
(18) + если по условию задачи тебе обязательно надо учесть подразделение
|
|||
21
НЕА123
17.10.11
✎
14:10
|
>кол-во кред =3
из (5) дык то ж забаланс. оно и не надо. |
|||
22
catena
17.10.11
✎
14:11
|
(19)Ой, а если их много?
|
|||
23
НЕА123
17.10.11
✎
14:11
|
+(21)
хотя... хм... |
|||
24
Starhan
17.10.11
✎
14:13
|
(21) счет кредит с колиественным учетом поэтому по нему есть количество 3. Сумма по дебету = 4 и по кредету = 4.
|
|||
25
НЕА123
17.10.11
✎
14:15
|
не. все нормально в (19).
|
|||
26
Starhan
17.10.11
✎
14:18
|
(25) мои скудные телепатическии способности, и весь опыт дедуктивного метода основанный на рассказах Конан-Дойля, подсказываетчто ТС надо не все остаткти сторнировать :). а опредленные.
|
|||
27
denis200
17.10.11
✎
14:32
|
стр = НЗ.Добавить();
там 3 субконто как к ним обращаться? |
|||
28
Aloex
17.10.11
✎
14:34
|
(27) Новый Запрос.
|
|||
29
unregistered
17.10.11
✎
14:34
|
(27) СубконтоДт И СубконтоКт - это соответствия. Ключ соответствия - вид субконто. Значение соответствия - значение субконто.
|
|||
30
denis200
17.10.11
✎
14:36
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2 КАК Субконто2, | ХозрасчетныйОстатки.Субконто3 КАК Субконто3, | ХозрасчетныйОстатки.Организация КАК Организация, | ХозрасчетныйОстатки.Валюта КАК Валюта, | ХозрасчетныйОстатки.Подразделение КАК Подразделение, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстаток, 0) КАК СуммаОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.ВалютнаяСуммаОстаток, 0) КАК ВалютнаяСуммаОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаНУОстаток, 0) КАК СуммаНУОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаПРОстаток, 0) КАК СуммаПРОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаВРОстаток, 0) КАК СуммаВРОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , , ) КАК ХозрасчетныйОстатки |ИТОГИ | СУММА(СуммаОстаток), | СУММА(ВалютнаяСуммаОстаток), | СУММА(КоличествоОстаток), | СУММА(СуммаНУОстаток), | СУММА(СуммаПРОстаток), | СУММА(СуммаВРОстаток) |ПО | Организация, | Подразделение, | Валюта, | Счет, | Субконто1, | Субконто2, | Субконто3"; Запрос.УстановитьПараметр("Дата", ТекущаяДата()); ВыборкаОрганизаций = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаОрганизаций.Следующий() Цикл НовДок = Документы.ОперацияБух.СоздатьДокумент(); НовДок.Дата = ТекущаяДата(); НовДок.Организация = ВыборкаОрганизаций.Организация; НовДок.Записать(); НЗ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НЗ.Отбор.Регистратор.Установить(НовДок); ВыборкаПодразделений = ВыборкаОрганизаций.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПодразделений.Следующий() Цикл ВыборкаВалюта = ВыборкаПодразделений.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаВалюта.Следующий() Цикл ВыборкаСчет = ВыборкаВалюта.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСчет.Следующий() Цикл ВыборкаСубконто1 = ВыборкаСчет.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСубконто1.Следующий() Цикл ВыборкаСубконто2 = ВыборкаСубконто1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСубконто2.Следующий() Цикл ВыборкаСубконто3 = ВыборкаСубконто2.Выбрать(); Пока ВыборкаСубконто3.Следующий() Цикл стр = НЗ.Добавить(); Если ВыборкаСубконто3.СуммаОстаток > 0 Или ВыборкаСубконто3.ВалютнаяСуммаОстаток > 0 Или ВыборкаСубконто3.СуммаНУОстаток > 0 Или ВыборкаСубконто3.СуммаПРОстаток > 0 Или ВыборкаСубконто3.СуммаВРОстаток > 0 Или ВыборкаСубконто3.КоличествоОстаток > 0 Тогда стр.ВалютаДт = ВыборкаСубконто3.Валюта; стр.ВалютнаяСуммаДт = - ВыборкаСубконто3.ВалютнаяСуммаОстаток; стр.КоличествоДт = - ВыборкаСубконто3.КоличествоОстаток; стр.Организация = ВыборкаСубконто3.Организация; стр.ПодразделениеДт = ВыборкаСубконто3.Подразделение; стр.Регистратор = НовДок; //стр.СубконтоДт КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; там 3 субконто надо придумать, как к ним обращаться. |
|||
31
unregistered
17.10.11
✎
14:36
|
А вообще в типовой БП есть процедура в общих модулях УстановитьСубконто(), которая позволяет устанавливать значение субконто по видам субконто или по номеру субконто на счете.
|
|||
32
butterbean
17.10.11
✎
14:44
|
(30) нафига тут ИТОГИ??
|
|||
33
denis200
17.10.11
✎
14:49
|
(32) Чтобы перебирать циклы в циклах я же всё через документ операция сторнирую
|
|||
34
butterbean
17.10.11
✎
14:58
|
(33) это из большой любви к циклам в циклах?? тут одного итога по организации достаточно
|
|||
35
denis200
17.10.11
✎
15:04
|
(34) Спасибо, ты прав, сразу не сообразил.
|
|||
36
Evpatiy
17.10.11
✎
15:11
|
(ОФФ) эмммм..... Только у меня мозг не смог сопоставить инфу из личной карточки ТС с вопросом?
|
|||
37
denis200
17.10.11
✎
15:14
|
(36) У тебя тупой мозг.
|
|||
38
Starhan
17.10.11
✎
15:22
|
еще имхо проверка на >0 после вирт. таблицы остатки лишняя, нулевые остатки там не хранятся.
Значит все таки все нужно сторнировать. |
|||
39
denis200
17.10.11
✎
15:30
|
(38) Ты значешь что такое Сумма?
Это сумма.дт - сумма.кт |
|||
40
denis200
17.10.11
✎
15:30
|
(39) если больше 0 всё по дт сторнирую если меньше то по кредиту
|
|||
41
hhhh
17.10.11
✎
15:34
|
(40) можно и минусовую по дебету - это там по барабану.
|
|||
42
Evpatiy
17.10.11
✎
15:40
|
модераторы (37) уже прочитали?
|
|||
43
denis200
17.10.11
✎
15:48
|
И (36) заодно пусть прочитают. (36) спровоцировало (37). Вместо того чтобы обсуждать вопрос стал обсуждать мой уровень. И сопоставлять с карточкой.
|
|||
44
Соло
17.10.11
✎
15:53
|
Для корректного продолжения работы после обнуления нужно учитывать активность/пассивность счета. Итоги нужно брать развернутые, а не дт-кт. Ну и записывать отдельную операцию по каждому счету (можно и суб). Для уверенности можно (по мне даже лучше) обнулять количество и сумму отдельно (нужно ещё не забыть про налоговый учет: ВР, ПР)
|
|||
45
denis200
17.10.11
✎
16:11
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2 КАК Субконто2, | ХозрасчетныйОстатки.Субконто3 КАК Субконто3, | ХозрасчетныйОстатки.Организация КАК Организация, | ХозрасчетныйОстатки.Валюта КАК Валюта, | ХозрасчетныйОстатки.Подразделение КАК Подразделение, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстаток, 0) КАК СуммаОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.ВалютнаяСуммаОстаток, 0) КАК ВалютнаяСуммаОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаНУОстаток, 0) КАК СуммаНУОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаПРОстаток, 0) КАК СуммаПРОстаток, | ЕСТЬNULL(ХозрасчетныйОстатки.СуммаВРОстаток, 0) КАК СуммаВРОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , , ) КАК ХозрасчетныйОстатки |ИТОГИ | СУММА(СуммаОстаток), | СУММА(ВалютнаяСуммаОстаток), | СУММА(КоличествоОстаток), | СУММА(СуммаНУОстаток), | СУММА(СуммаПРОстаток), | СУММА(СуммаВРОстаток) |ПО | Организация"; Запрос.УстановитьПараметр("Дата", ТекущаяДата()); ВыборкаОрганизаций = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаОрганизаций.Следующий() Цикл НовДок = Документы.ОперацияБух.СоздатьДокумент(); НовДок.Дата = ТекущаяДата(); НовДок.Организация = ВыборкаОрганизаций.Организация; НовДок.Записать(); НЗ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НЗ.Отбор.Регистратор.Установить(НовДок); Выборка = ВыборкаОрганизаций.Выбрать(); Пока Выборка.Следующий() Цикл стр = НЗ.Добавить(); Если Выборка.СуммаОстаток > 0 Или Выборка.ВалютнаяСуммаОстаток > 0 Или Выборка.СуммаНУОстаток > 0 Или Выборка.СуммаПРОстаток > 0 Или Выборка.СуммаВРОстаток > 0 Или Выборка.КоличествоОстаток > 0 Тогда стр.ВалютаДт = Выборка.Валюта; стр.ВалютнаяСуммаДт = - Выборка.ВалютнаяСуммаОстаток; стр.КоличествоДт = - Выборка.КоличествоОстаток; стр.Организация = Выборка.Организация; стр.ПодразделениеДт = Выборка.Подразделение; стр.Регистратор = НовДок; БухгалтерскийУчет.УстановитьСубконто(Выборка.Счет, стр.СубконтоДт, 1, Выборка.Субконто1, , , Выборка.Счет.ВидыСубконтоСчета); БухгалтерскийУчет.УстановитьСубконто(Выборка.Счет, стр.СубконтоДт, 2, Выборка.Субконто2, , , Выборка.Счет.ВидыСубконтоСчета); БухгалтерскийУчет.УстановитьСубконто(Выборка.Счет, стр.СубконтоДт, 3, Выборка.Субконто3, , , Выборка.Счет.ВидыСубконтоСчета); стр.Сумма = - Выборка.СуммаОстаток; стр.СуммаВРДт = - Выборка.СуммаВРОстаток; стр.СуммаНУДт = - Выборка.СуммаНУОстаток; стр.СуммаПРДт = - Выборка.СуммаПРОстаток; стр.СчетДт = Выборка.Счет; Иначе стр.ВалютаКт = Выборка.Валюта; стр.ВалютнаяСуммаКт = - Выборка.ВалютнаяСуммаОстаток; стр.КоличествоКт = - Выборка.КоличествоОстаток; стр.Организация = Выборка.Организация; стр.ПодразделениеКт = Выборка.Подразделение; стр.Регистратор = НовДок; БухгалтерскийУчет.УстановитьСубконто(Выборка.Счет, стр.СубконтоКт, 1, Выборка.Субконто1, , , Выборка.Счет.ВидыСубконтоСчета); БухгалтерскийУчет.УстановитьСубконто(Выборка.Счет, стр.СубконтоКт, 2, Выборка.Субконто2, , , Выборка.Счет.ВидыСубконтоСчета); БухгалтерскийУчет.УстановитьСубконто(Выборка.Счет, стр.СубконтоКт, 3, Выборка.Субконто3, , , Выборка.Счет.ВидыСубконтоСчета); стр.Сумма = - Выборка.СуммаОстаток; стр.СуммаВРКт = - Выборка.СуммаВРОстаток; стр.СуммаНУКт = - Выборка.СуммаНУОстаток; стр.СуммаПРКт = - Выборка.СуммаПРОстаток; стр.СчетКт = Выборка.Счет; КонецЕсли; КонецЦикла; КонецЦикла; Нормально? |
|||
46
denis200
17.10.11
✎
17:00
|
Мне пишет не установлен отбор по регистратору и субконто какое-то не то. Не могу понять почему.
|
|||
47
Alexandr Puzakov
17.10.11
✎
17:04
|
Я не понял, а документ "Корректировка записей регистров" отменили что ли?
|
|||
48
denis200
17.10.11
✎
17:12
|
(47) Что-то не могу найти его в типовой бухгалтерии.
|
|||
49
НЕА123
17.10.11
✎
17:13
|
(48)
поищи тогда сторно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |