|
В проводках документа поменять местами дебет с кредитом | ☑ | ||
---|---|---|---|---|
0
neo1109
22.12.14
✎
08:52
|
Есть документ, формирующий бух проводки.
Надо обойти его движения и во всех проводках поменять местами счет Дт и Кт. Ну и соответственно аналитику. Со счетами понятно, а вот с субконтом - затык. Как меняется значения субконто? |
|||
1
Umga2002
22.12.14
✎
08:54
|
Самописной обработкой......Нужен программист...
|
|||
2
neo1109
22.12.14
✎
08:59
|
(1) так я и есть программист )) меня технология интересует...
|
|||
3
Vladal
22.12.14
✎
09:03
|
(2) Восьмерка или семерка? Не указан раздел. Ибо методы разные.
|
|||
4
El_Duke
гуру
22.12.14
✎
09:04
|
(0) Вспоминается епонское хокку:
Задумчиво с вилами Стою у воды Что написать ? Вот и я задумался: зачем это нужно ??? Конфу,документ, саму задачу озвучьте |
|||
5
neo1109
22.12.14
✎
09:04
|
(3) 8ка
|
|||
6
Славен
22.12.14
✎
09:05
|
поставь сумму с минусом :)
|
|||
7
neo1109
22.12.14
✎
09:05
|
(4) да задачу вроде обрисовал...
|
|||
8
Славен
22.12.14
✎
09:05
|
+(5) если БП, то БухгалтерскийУчет.УстановитьСубконто(.....) задается субконто
|
|||
9
Vladal
22.12.14
✎
09:07
|
Для восьмерки надо получить из регистра записи по регистратору. Потом эти записи очистить и записать новые:
Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ * |ИЗ | РегистрНакопления.ОстаткиТоваров КАК ОстаткиТоваров |ГДЕ | ОстаткиТоваров .Регистратор = &Регистратор"; Запрос.УстановитьПараметр("Регистратор", СсылкаНаДокумент); НаборЗаписейРегистра = Движения.ОстаткиТоваров ; НаборЗаписейРегистра.Прочитать(); Для Каждого Запись из НаборЗаписейРегистра Цикл // Чтение и модификация очередного движения. КонецЦикла; Для Каждого НаборЗаписейРегистра из Движения Цикл НаборЗаписейРегистра.Прочитать(); Для Каждого Запись из НаборЗаписейРегистра Цикл // Чтение и модификация очередного движения. КонецЦикла; КонецЦикла; |
|||
10
Vladal
модератор
22.12.14
✎
09:09
|
Да, кстати, тема плохо оформлена - прислушайся к совету в (4) и почитай рекомендации по оформлению темы:
http://www.forum.mista.ru/rules.php |
|||
11
Любопытная
22.12.14
✎
09:09
|
(9) А потом перепровести ручками документы и удивиться :)
|
|||
12
Vladal
22.12.14
✎
09:11
|
(11) А если у документов движения уже исправлены, но чтобы не дергать последовательности, просто корректируют движения документов. Но мы это не узнаем, пока автор не расскажет.
|
|||
13
Vladal
22.12.14
✎
09:13
|
Упс... Я дал неверный пример. Регистры бухгалтерии меняются немного по-другому.
Подробнее найди в книге "Простые примеры разработки" в разделе "Как в регистре бухгалтерии сформировать проводки?" |
|||
14
Славен
22.12.14
✎
09:14
|
(11) признак ручной корректировки поставить и все
|
|||
15
neo1109
22.12.14
✎
09:16
|
(12) пока есть конкретная задача: в записях регистра бухгалтерии в пределах одного документа поменять местами Дт и Кт. А уж к чему это приведет и зачем это надо - другой вопрос )
|
|||
16
neo1109
22.12.14
✎
10:40
|
все? неужели все высказались?
|
|||
17
Andrewww123
22.12.14
✎
10:51
|
(0) Грубо накидаю. Должно работать..
СубконтоДт0 = ЗаписьРегистра.СубконтоДт[0]; СубконтоКт0 = ЗаписьРегистра.СубконтоКт[0]; СчетДт = ЗаписьРегистра.СчетДт; СчетКт = ЗаписьРегистра.СчетКт; ЗаписьРегистра.СчетДт = СчетКт; ЗаписьРегистра.СчетКт = СчетДт; ЗаписьРегистра.СубконтоДт[0] = СубконтоКт0; ЗаписьРегистра.СубконтоКт[0] = СубконтоДт0; |
|||
18
neo1109
22.12.14
✎
10:55
|
(17) проверяли?
"Возможно обращение к значению субконто посредством оператора [...]. В качестве аргумента передается вид субконто (ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>). " а что за "...[0]"? |
|||
19
Andrewww123
22.12.14
✎
11:00
|
(18) По памяти, давно с бухгалтерией не ковырялся. Возможно и нельзя по индексу, не помню.
Ну тогда примерно так: Для Каждого ВидСубконтоДт Из ЗаписьРегистра.СчетДт.ВидыСубконто Цикл ЗначениеСубконто = ЗаписьРегистра.СубконтоДт[ВидСубконтоДт] // Тут значения можно добавлять в созданный массив, а потом так же обойти ВидыСбконто счета кредита и по порядку из массива устанавливать значения. КонецЦикла; Аналогично для Кт. Как-то так, смысл должен быть понятен. |
|||
20
Стерва-бух
22.12.14
✎
11:15
|
(0) вопрос бухгалтера: а ЗАЧЕМ?????
что это за документ, который делает неправильные проводки, которые надо Дт и Кт менять? |
|||
21
neo1109
22.12.14
✎
11:30
|
(20) ответ специалиста отдела разработки: СКАЗАЛИ - ДЕЛАЕМ.
Далеко не копайте. Воспринимайте как чисто технологический вопрос: как программно обратить проводку. и все. без особых "а зачем?", "это ж кто такое придумал???"... |
|||
22
Жан Пердежон
22.12.14
✎
11:35
|
(20) это ж очевидно! ТС написал обработку проведения, но с Дт/Кт не угадал, теперь вот переделывает и устраняет последствия...
|
|||
23
Andrewww123
22.12.14
✎
11:40
|
(20) Да мало ли. Существует очень много "бухгалтеров", которые решили что нужно делать так, а потом решили наоборот. Программист-то при чем?
|
|||
24
ManyakRus
22.12.14
✎
11:40
|
//в проводке меняет местами Дт и Кт, и не меняет знак
Процедура ИнвертироватьПроводку(НоваяПроводка, Проводка0) Экспорт НоваяПроводка.Период = Проводка0.Период; НоваяПроводка.Регистратор = Проводка0.Регистратор; НоваяПроводка.Активность = Проводка0.Активность; НоваяПроводка.Организация = Проводка0.Организация; НоваяПроводка.Содержание = Проводка0.Содержание; НоваяПроводка.СчетДт = Проводка0.СчетКт; НоваяПроводка.СчетКт = Проводка0.СчетДт; //заполним Дт Для Каждого Субконто1 из Проводка0.СубконтоКт Цикл НоваяПроводка.СубконтоДт.Вставить(Субконто1.Ключ.Ссылка, Субконто1.Значение); КонецЦикла; //заполним Кт Для Каждого Субконто1 из Проводка0.СубконтоДт Цикл НоваяПроводка.СубконтоКт.Вставить(Субконто1.Ключ.Ссылка, Субконто1.Значение); КонецЦикла; //заполним суммы Если ЗначениеЗаполнено(Проводка0.Сумма) Тогда НоваяПроводка.Сумма = Проводка0.Сумма; КонецЕсли; //заполним количество Если ЗначениеЗаполнено(Проводка0.КоличествоКт) Тогда НоваяПроводка.КоличествоДт = Проводка0.КоличествоКт; КонецЕсли; Если ЗначениеЗаполнено(Проводка0.КоличествоДт) Тогда НоваяПроводка.КоличествоКт = Проводка0.КоличествоДт; КонецЕсли; //заполним валюты Если ЗначениеЗаполнено(Проводка0.ВалютаКт) Тогда НоваяПроводка.ВалютаДт = Проводка0.ВалютаКт; КонецЕсли; Если ЗначениеЗаполнено(Проводка0.ВалютаДт) Тогда НоваяПроводка.ВалютаКт = Проводка0.ВалютаДт; КонецЕсли; КонецПроцедуры |
|||
25
ManyakRus
22.12.14
✎
11:42
|
функция работала почти нормально :)
но был глюк что появляется четвёртое субконто пустое и всё глючит потом :( |
|||
26
Andrewww123
22.12.14
✎
11:43
|
(24) Суммы НУ, ВР, ПР забыл.
|
|||
27
neo1109
22.12.14
✎
11:46
|
Уточнил задачу. Задачу поставили коллеге, а я тут просто как ретранслятор ;)
1. есть док 2. формирует проводки НАДО: 3. в конце ОбработкиПроведения() добавить обход движений и поменять местами Дт и Кт, а также сумму с минусом сделать. насколько понимаю задачу: дебетовый оборот превратить в кредитовый и наоборот, оставив сам смысл проводки тем же. |
|||
28
Andrewww123
22.12.14
✎
11:47
|
(27) Если так, то попахивает какой-то бредятиной :) Почему сразу не сформировать нужные проводки?
|
|||
29
neo1109
22.12.14
✎
11:48
|
(28) а вот это уже совсем другая история... )
|
|||
30
Славен
22.12.14
✎
11:49
|
(27) :) если её обратить и сделать со знаком "-" то получится в итоге то же что и было)))
|
|||
31
Стерва-бух
22.12.14
✎
11:50
|
(27) СМЫСЛ проводки не останется прежним. Если вообще ни вы ни ваш "коллега" не разбираетесь в предметной области - поверьте на слово ГБ...
возникает вопрос о профессиональной адекватности того, кто поставил такую задачу. Либо ТС чего то темнит. |
|||
32
neo1109
22.12.14
✎
11:52
|
(30) итог получится в целом тот же, только ОборотДт по изначальному счету Дт станет оборотом Кт...
|
|||
33
Andrewww123
22.12.14
✎
11:53
|
(32) Наверное, кто-то из вас с коллегой должен пойти к бухгалтерам и объяснить что это слегка странно. Поменять счета местами и сделать сумму с минусом - это совсем не то же самое.
|
|||
34
neo1109
22.12.14
✎
11:55
|
(33)
"Поменять счета местами и сделать сумму с минусом" в моем случае это делается ОДНОВРЕМЕННО |
|||
35
Andrewww123
22.12.14
✎
11:58
|
(34) Это понятно, но это называется "сторно", это не простая бухгалтерская проводка.
В общем, два вариант же предложили уже. Задача не самая сложная. |
|||
36
Andrewww123
22.12.14
✎
12:00
|
Вообще, ситуация знакомая :) Тоже крайне часто приходилось делать непонятно что. Пришлось вникать в бух. учет и доказывать "бухгалтерам" что они немного некомпетентны..
|
|||
37
neo1109
22.12.14
✎
12:00
|
(35) ИМХО сторно - это когда у проводки просто сумма с минусом ставится. а тут еще и ДтКт меняется... тут несколько другое...
|
|||
38
Пеппи
22.12.14
✎
12:02
|
(37) намекни хоть какие проводки, умираю от любопытства )))
|
|||
39
Andrewww123
22.12.14
✎
12:07
|
(37) А какая разница, меняются ли счета Дт и Кт? В любом случае, это проводка с отрицательной суммой, которая задействует два счета. Это и есть сторно..
|
|||
40
Andrewww123
22.12.14
✎
12:09
|
Да, тоже стало интересно что за проводки :)
|
|||
41
neo1109
22.12.14
✎
12:46
|
(40) специально уточнил
проводки документа ВозвратТоваровПоставщику |
|||
42
eklmn
гуру
22.12.14
✎
12:50
|
жесть
|
|||
43
ДенисЧ
22.12.14
✎
12:57
|
||||
44
Andrewww123
22.12.14
✎
13:00
|
(41) Ну всё-таки советую пообсуждать эту задачу с заказчиком, вдруг кто-то немного ошибается..
|
|||
45
Andrewww123
22.12.14
✎
13:02
|
(41) А может там счета какие-то забалансовые? Тогда менее бредово задача звучит
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |