![]() |
![]() |
![]() |
|
Корректировка распределения счет 20 | ☑ | ||
---|---|---|---|---|
0
ivan123123
25.05.15
✎
13:57
|
Добрый день. В ниже указанной процедуре происходит не правильное распределение (См рис). Подскажите, как это можно подправить.
Процедура РаспределениеСчета20(СтруктураШапкиДокумента, Отказ, Ошибки) // ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА ПараметрыПроведения = Документы.РегламентнаяОперация.ПодготовитьПараметрыУчетЗатрат(СтруктураШапкиДокумента, Отказ); Если Отказ Тогда Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК СуммаОборотДт, | ПравилаРаспределенияСчета20.ДопНоменклатурнаяГруппа, | СУММА(ХозрасчетныйОбороты.СуммаНУОборотДт) КАК СуммаНУОборотДт |ПОМЕСТИТЬ База |ИЗ | РегистрСведений.ПравилаРаспределенияСчета20 КАК ПравилаРаспределенияСчета20 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачало, &ДатаКонец, , Счет = &Счет, , Организация = &Организация, , ) КАК ХозрасчетныйОбороты | ПО ПравилаРаспределенияСчета20.ОснНоменклатурнаяГруппа = ХозрасчетныйОбороты.Субконто1 | |СГРУППИРОВАТЬ ПО | ПравилаРаспределенияСчета20.ДопНоменклатурнаяГруппа |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПравилаРаспределенияСчета20.ОснНоменклатурнаяГруппа, | ХозрасчетныйОбороты.СуммаОборотДт / База.СуммаОборотДт КАК Коэфициент, | ПравилаРаспределенияСчета20.ДопНоменклатурнаяГруппа, | ХозрасчетныйОбороты.СуммаНУОборотДт / База.СуммаНУОборотДт КАК КоэфициентНУ |ПОМЕСТИТЬ Коэфициенты |ИЗ | РегистрСведений.ПравилаРаспределенияСчета20 КАК ПравилаРаспределенияСчета20 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачало, &ДатаКонец, , Счет = &Счет, , Организация = &Организация, , ) КАК ХозрасчетныйОбороты | ПО ПравилаРаспределенияСчета20.ОснНоменклатурнаяГруппа = ХозрасчетныйОбороты.Субконто1 | ВНУТРЕННЕЕ СОЕДИНЕНИЕ База КАК База | ПО ПравилаРаспределенияСчета20.ДопНоменклатурнаяГруппа = База.ДопНоменклатурнаяГруппа |ГДЕ | ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотДт / База.СуммаОборотДт, 0) <> 0 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Коэфициенты.ОснНоменклатурнаяГруппа КАК СубконтоДт1, | ХозрасчетныйОбороты.Субконто2 КАК СубконтоДт2, | ХозрасчетныйОбороты.СуммаОборотДт * Коэфициенты.Коэфициент КАК Сумма, | ХозрасчетныйОбороты.Счет КАК СчетДт, | ХозрасчетныйОбороты.Организация, | ХозрасчетныйОбороты.Валюта КАК ВалютаДт, | ХозрасчетныйОбороты.Подразделение КАК ПодразделениеДт, | ХозрасчетныйОбороты.Субконто3 КАК СубконтоДт3, | Коэфициенты.ДопНоменклатурнаяГруппа КАК СубконтоКт1, | ХозрасчетныйОбороты.Субконто2 КАК СубконтоКт2, | ХозрасчетныйОбороты.Субконто3 КАК СубконтоКт3, | ХозрасчетныйОбороты.Подразделение КАК ПодразделениеКт, | ХозрасчетныйОбороты.Валюта КАК ВалютаКт, | ХозрасчетныйОбороты.Счет КАК СчетКт, | ХозрасчетныйОбороты.СуммаНУОборотДт * Коэфициенты.КоэфициентНУ КАК СуммаНУДт, | ХозрасчетныйОбороты.СуммаНУОборотДт * Коэфициенты.КоэфициентНУ КАК СуммаНУКт |ИЗ | Коэфициенты КАК Коэфициенты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачало, &ДатаКонец, , Счет = &Счет, , Организация = &Организация, , ) КАК ХозрасчетныйОбороты | ПО Коэфициенты.ДопНоменклатурнаяГруппа = ХозрасчетныйОбороты.Субконто1 |ГДЕ | ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотДт * Коэфициенты.Коэфициент, 0) <> 0"; Запрос.УстановитьПараметр("ДатаНачало", СтруктураШапкиДокумента.НачДата); Запрос.УстановитьПараметр("ДатаКонец", СтруктураШапкиДокумента.КонГраница); Запрос.УстановитьПараметр("Организация", СтруктураШапкиДокумента.Организация); Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); // ФОРМИРОВАНИЕ ДВИЖЕНИЙ Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Проводка = Движения.Хозрасчетный.Добавить(); ЗаполнитьЗначенияСвойств(Проводка, ВыборкаДетальныеЗаписи); Проводка.Регистратор = СтруктураШапкиДокумента.Ссылка; Проводка.Период = СтруктураШапкиДокумента.Дата; Для НомерСубконто = 1 По 3 Цикл // Дт БухгалтерскийУчет.УстановитьСубконто( Проводка.СчетДт, Проводка.СубконтоДт, НомерСубконто, ВыборкаДетальныеЗаписи["СубконтоДт" + НомерСубконто]); // Кт БухгалтерскийУчет.УстановитьСубконто( Проводка.СчетКт, Проводка.СубконтоКт, НомерСубконто, ВыборкаДетальныеЗаписи["СубконтоКт" + НомерСубконто]); КонецЦикла; КонецЦикла; Движения.Хозрасчетный.Записывать = Истина; КонецПроцедуры |
|||
1
Любопытная
25.05.15
✎
13:58
|
А где рис?
|
|||
2
шаэс
25.05.15
✎
13:59
|
(0)а в чем неправильность?
|
|||
3
ivan123123
25.05.15
✎
14:04
|
Не найду как рисунок прицепить.
|
|||
4
ivan123123
25.05.15
✎
14:08
|
||||
5
ivan123123
25.05.15
✎
14:09
|
Идет расхождение на несколько копеек.
|
|||
6
шаэс
25.05.15
✎
16:14
|
(5) начальное сальдо было?
|
|||
7
shuhard_серый
25.05.15
✎
16:16
|
(5) ежу понятно , что путем тупого деления нельзя получить ту же сумму, поэтом у в типовых это всегда делается в цикле и путем вычитания долей из базы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |