|   |   | 
| 
 | Сторнирование всех остатков по регистру Бухгалтерии | ☑ | ||
|---|---|---|---|---|
| 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)
  поищи тогда сторно. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |