Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 23:54
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Нужна помощь с распределение сумм  (Прочитано 1968 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ООО

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-05-05
  • Сайт: 
  • Профессия: Бухгалтер
Добрый день. Создал процедуру по распределению (см ниже). В ходе распределения образуется расхождение в несколько копеек между базой распределения и суммой распределения.

Подскажите как это подправить, если можно на конкретном примере.

Процедура РаспределениеСчета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 Цикл
// Дт
БухгалтерскийУчет.УстановитьСубконто(
Проводка.СчетДт,
Проводка.СубконтоДт,
НомерСубконто,
ВыборкаДетальныеЗаписи["СубконтоДт" + НомерСубконто]);
// Кт
БухгалтерскийУчет.УстановитьСубконто(
Проводка.СчетКт,
Проводка.СубконтоКт,
НомерСубконто,
ВыборкаДетальныеЗаписи["СубконтоКт" + НомерСубконто]);
КонецЦикла;

КонецЦикла;

Движения.Хозрасчетный.Записывать = Истина;

КонецПроцедуры


Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Если нужно точное совпадение,можно так.
Все суммы округляете в меньшую сторону, а остатки суммы распределения кидаете на последний элемент распределения.
Это один из способов, но их очень много.
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн ООО

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-05-05
  • Сайт: 
  • Профессия: Бухгалтер
А как кинуть на последнюю элемент распределения? Можно пример привести.

Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
У вас есть несколько сумм на которые нужно распределить другую сумму
Например
Сумм    Распр
300р     100
200р     100
100р     100 + погрешность
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн ООО

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-05-05
  • Сайт: 
  • Профессия: Бухгалтер
Спасибо за разъяснения, но
Под примером я имел ввиду как это будет выглядеть в модуле программы.

Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Таких примеров у меня под рукой нет, а писать нехочеться.
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн ООО

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-05-05
  • Сайт: 
  • Профессия: Бухгалтер
Хорошо. СПС за участие.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
50 Сообщений
andron81_81
41 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 223
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal