Форум программистов, компьютерный форум CyberForum.ru

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
MODifikaTOR18
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 77
Завершенные тесты: 1
#1

Расчёт пени - 1С

22.12.2016, 10:17. Просмотров 258. Ответов 9
Метки нет (Все метки)

В документе Задолженности в поле табличной части Пеня рассчитать собственно пеню. Исходная сумма берётся из поля Сумма табличной части этого же документа. Сумма берётся из регистра сведений ЦеныСтраховок. Писал свой код и в подстановку суммы задолженности, и в расчёт пени, оба нерабочие. За помощь заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GreenkA
Модератор
Эксперт 1С
1574 / 1067 / 365
Регистрация: 25.06.2009
Сообщений: 2,739
22.12.2016, 10:39     Расчёт пени #2
MODifikaTOR18, укажите название конфигурации(если типовая), если своя - выложите. И опишите принцип расчета пени + покажите ваш, пусть и нерабочий, код.
MODifikaTOR18
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 77
Завершенные тесты: 1
22.12.2016, 11:22  [ТС]     Расчёт пени #3
GreenkA, конфигурация своя, наверное (учебная версия 8.2, курсовой проект), принцип расчёта пени следующий:
1. берётся крайняя дата взноса (например взнос должен быть осуществлён до 16.х.2016).
2. берётся текущая дата.
3. рассчитывается разница между датами в днях.
4. за каждый день начисляется пеня в размере 2% от недоплаченной суммы.
5. рассчитанное значение подставляется в поле Пеня табличной части.

А код я набросал только для подстановки суммы из регистра сведений (только не пинайте ногами):
1C
1
2
3
4
5
6
7
8
9
10
11
&НаКлиенте
Процедура ТабличнаяЧасть1ПриАктивизацииСтроки(Элемент)
    // Получить текущую строку табличной части
    СтрокаТабличнойЧасти = Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    // Установить цену
    СтрокаТабличнойЧасти.Сумма = ВносЦены.РозничнаяЦена(Объект.Дата,
    СтрокаТабличнойЧасти.Сумма);
    // Пересчитать сумму строки
    ВносЦены.РассчитатьСумму(СтрокаТабличнойЧасти);
 
КонецПроцедуры
renat_dmitriev
92 / 92 / 26
Регистрация: 26.08.2016
Сообщений: 308
22.12.2016, 20:00     Расчёт пени #4
Цитата Сообщение от MODifikaTOR18 Посмотреть сообщение
Писал свой код и в подстановку суммы задолженности, и в расчёт пени, оба нерабочие. За помощь заранее благодарен.
Самым разумным будет выложить свой код, который нерабочий. Мы сможем подсказать вам ошибки, если за вас напишут код - вы не научитесь.
GreenkA
Модератор
Эксперт 1С
1574 / 1067 / 365
Регистрация: 25.06.2009
Сообщений: 2,739
22.12.2016, 21:08     Расчёт пени #5
MODifikaTOR18, выложите конфигурацию, если можете или покажите текст общего модуля ВносЦены.
MODifikaTOR18
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 77
Завершенные тесты: 1
23.12.2016, 09:48  [ТС]     Расчёт пени #6
GreenkA,
1C
1
2
3
4
5
6
7
Функция РозничнаяЦена(АктуальнаяДата, ЭлементСтрахования) Экспорт
// Создать вспомогательный объект Отбор
Отбор = Новый Структура("Страхование", ЭлементСтрахования);
// Получить актуальные значения ресурсов регистра
ЗначенияРесурсов = РегистрыСведений.ЦеныСтраховок.ПолучитьПоследнее(АктуальнаяДата, Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции
Вложения
Тип файла: rar Курсовая АУДП.rar (300.0 Кб, 2 просмотров)
GreenkA
Модератор
Эксперт 1С
1574 / 1067 / 365
Регистрация: 25.06.2009
Сообщений: 2,739
23.12.2016, 10:45     Расчёт пени #7
MODifikaTOR18, хорошо, у меня к вам несколько вопросов:
1. Почему в общем модуле отсутствует процедура, к которой вы обращаетесь в модуле формы документа Задолж? - РассчитатьСумму.
2. Почему расчет пени идет при активизации строки табличной части документа Задолж? Может лучше по кнопке какой сделать.
3. Про неоплаченную сумму. Почему мы берете сумму страховки из регистра сведений, а не остаток по регистру накопления Баланс? Я так понимаю, он был создан с целью фиксирования остатка задолженности по каждому клиенту?
4. Вы говорили о дате планируемого взноса, где эта дата фиксируется?
MODifikaTOR18
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 77
Завершенные тесты: 1
24.12.2016, 13:07  [ТС]     Расчёт пени #8
GreenkA,
1. Делал по примеру базы, сделанной по книге Лыгина, видимо забыл там процедуру вставить.
2. Вообще есть идея реализовать через событие ПриОткрытииНаСервере/Клиенте. Знаний кода не хватает.
3. Баланс был создан для отображения финансовых движений страхования. Еще хотел сделать итоговое поле в подвале, но не смог (у Лыгина описан процесс создания итога в документе, а нужной функции в ПутиКДанным подвала в учебной версии нет.
4. Дату взноса планирую сделать равной дате оформления страховки. Т.е. взнос должен быть осуществлён до числа оформления включительно.
GreenkA
Модератор
Эксперт 1С
1574 / 1067 / 365
Регистрация: 25.06.2009
Сообщений: 2,739
24.12.2016, 19:56     Расчёт пени #9
MODifikaTOR18,
1. можете показать обновленный код общего модуля?
2. Зачем ПриОткрытии? Для каждого нового документа будете пересчитывать? Лучше по кнопке, я писала.
3. Так значит откуда надо брать сумму? Из Баланса или регистра сведений?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2016, 10:36     Расчёт пени
Еще ссылки по теме:

MS Access Расчёт пени
Автоматический расчёт выплат 1С
MS Access Расчет пени на текущую сумму долга
Расчёт площади для парковки авто (тип авто, площадь, расчёт средней общей) C++
MS Word контракт с автоматическим вычислением пени, взносов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MODifikaTOR18
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 77
Завершенные тесты: 1
25.12.2016, 10:36  [ТС]     Расчёт пени #10
GreenkA,
1. Код в своей конфигурации не изменял, но откопал код по книге Лыгина. Если надо, то вот он:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//событие формы ПриИзменении
&НаКлиенте
Процедура ПереченьНоменклатурыНомерСтрокиПриИзменении(Элемент)
// Получить текущую строку табличной части
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
// Установить цену
СтрокаТабличнойЧасти.Цена  =  РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, 
СтрокаТабличнойЧасти.Номенклатура);
// Пересчитать сумму строки
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
 
 
Функция  РозничнаяЦена(АктуальнаяДата, 
ЭлементНоменклатуры) Экспорт 
// Создать вспомогательный объект Отбор
Отбор  =  Новый  Структура("Номенклатура", 
ЭлементНоменклатуры);
// Получить актуальные значения ресурсов регистра
ЗначенияРесурсов  = 
РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, 
Отбор);
Возврат ЗначенияРесурсов.Цена;
КонецФункции
 
 
Процедура РассчитатьСумму(СтрокаТабличнойЧасти) 
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество *СтрокаТабличнойЧасти.Цена;
КонецПроцедуры
2. По кнопке так по кнопке.
3. Из регистра сведений.
Yandex
Объявления
25.12.2016, 10:36     Расчёт пени
Ответ Создать тему
Опции темы

Текущее время: 00:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru