1. sl4y3r23 12.02.19 16:31 Сейчас в теме

Контроль числа дней задолженности

День добрый! УПП 1.3
В общем есть некое количество клиентов с галками в договоре: "По документам расчетов" и "Контролировать число дней задолженности". Все хорошо, если есть долг, превышающий число дней указанных в договоре, то система при проведении реализации выдает уведомление о не возможности проведения данного документа по причине просрочки за какую то там реализацию. Так вот есть 1 (больше пока не встречал) контрагент(ничем не отличающийся от остальных) реализации на которого проводятся без проблем, даже с учетом просрочки. Договор заполнен верно. Вот как так то?! Куда копать?
Ответы
Избранное Подписка Сортировка: Древо
2. kumi2012 1 12.02.19 16:54 Сейчас в теме
Сначала, убедитесь по отчетам, что у данного контрагента именно по указанному документу есть задолженность.
4. sl4y3r23 12.02.19 16:59 Сейчас в теме
(2)В отчетах и проверил. Отсрочка 16 дней. за 22.01 и 24.01. Просрочка 5 и 3 дня соответственно.
3. sl4y3r23 12.02.19 16:58 Сейчас в теме
Причем на 31.01.2019 у этого клиента была просрочка. И ртиу не проводилась. Я в документе ставил галку "отключить контроль взаиморасчетов при проведении документа". Теперь же проводится легко. Что могло поменяться в контрагенте? Отчет по дебиторке ссылается на долги в 3 и 5 дней по 2 реализациям. Их и последующие перепроводил. Толку 0...
5. darkmessiahan 26 13.02.19 00:24 Сейчас в теме
Ну там и в настройке пользователя есть "Разрешить проведение документа без контроля взаиморасчетов", и если у вас полные права, может не срабатывать.
6. sl4y3r23 13.02.19 08:26 Сейчас в теме
(5)С правами все норм. Я же говорю, что проводится только 1 конкретный клиент. Права же назначаются на пользователя, т.е. проводились бы все без проблем.
7. sl4y3r23 13.02.19 08:35 Сейчас в теме
+ко всему перепроводил ртиу, перезаписывал договор/контрагента. Движения в доках есть. Хз куда копать...
8. EVKash 13.02.19 08:53 Сейчас в теме
(7) посмотрите отладчиком, что возвращает функция СуммаПросроченнойЗадолженности(Договор, ДатаДокумента) общего модуля ПродажиСервер
там корявый запрос...
Можно еще попробовать пересчет итогов сделать.
9. sl4y3r23 13.02.19 09:09 Сейчас в теме
(8)Сейчас пересчет и будет бух делать. Просто интересно почему корявый запрос реагирует коряво только 1 контрагента)
10. EVKash 13.02.19 09:24 Сейчас в теме
(9) ну это по данным надо смотреть...
11. darkmessiahan 26 13.02.19 13:44 Сейчас в теме
Вам сюда
ОбщийМодуль.УправлениеДенежнымиСредствами.Модуль(1957, 42) ОбщегоНазначения.СообщитьОбОшибке("Превышено допустимое число дней задолженности по договору " +

Нужно поставить точку останова
	
//Платеж.ДоговорКонтрагента Ваш договор
		Запрос.Текст =
			"ВЫБРАТЬ
			|	ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента,
			|	МИНИМУМ(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата) КАК ДатаПервойСделки
			|ИЗ	
			|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(, 
			|		ДоговорКонтрагента В (ВЫБРАТЬ РАЗЛИЧНЫЕ ДоговорКонтрагента ИЗ ТаблицаКонтроляСрокаДолга)
			|			И УпрУчет) КАК ВзаиморасчетыПоДокументамОстатки
			|ГДЕ 
			|	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток > 0
			|
			|СГРУППИРОВАТЬ ПО 
			|	ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента
			|
			|ДЛЯ ИЗМЕНЕНИЯ
			|	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки";
				
			Результат = Запрос.Выполнить();
			Выборка   = Результат.Выбрать();
			
			Для Каждого Платеж Из ТаблицаКонтроляСрокаДолга Цикл
				
				Если Выборка.НайтиСледующий(Платеж.ДоговорКонтрагента, "ДоговорКонтрагента") Тогда
					
					ДопустимоеЧислоДнейЗадолженности = Платеж.ДопустимоеЧислоДнейЗадолженности;
					РазницаДатВСекундах = ДатаПлатежа - Выборка.ДатаПервойСделки;

					РазницаДней = Цел(РазницаДатВСекундах/(24 * 60 * 60));
					
					Если РазницаДней > ДопустимоеЧислоДнейЗадолженности Тогда
						ОбщегоНазначения.СообщитьОбОшибке("Превышено допустимое число дней задолженности по договору " +
							Платеж.ДоговорКонтрагента + Символы.ПС + Символы.Таб +
							" Допустимое число дней задолженности: " + ДопустимоеЧислоДнейЗадолженности + 
							", дата самой старой задолженности: " + Выборка.ДатаПервойСделки + 
							", превышение: " + РазницаДней + " дней", Отказ, Заголовок);
					КонецЕсли;
					
				КонецЕсли;	
				
			КонецЦикла;
Показать

Вот вам запрос, надеюсь консолью умеете пользоваться
ВЫБРАТЬ
	ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента,
	МИНИМУМ(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата) КАК ДатаПервойСделки
ИЗ
	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(, ДоговорКонтрагента = &ПроблемныйДоговор) КАК ВзаиморасчетыПоДокументамОстатки
ГДЕ
	ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток > 0

СГРУППИРОВАТЬ ПО
	ВзаиморасчетыПоДокументамОстатки.ДоговорКонтрагента
Показать

Или сделайте обработку с возможностью выбора договра, Скопируйте код, замените запрос
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
Полный день

Программист 1С
Москва
зарплата от 100 000 руб. до 130 000 руб.
Полный день

Бизнес-аналитик 1С ERP
Пермь
зарплата от 80 000 руб.
Полный день

Программист 1С УТ 11
Омск
зарплата от 60 000 руб.
Полный день

Бизнес-аналитик 1С УТ 11
Омск
зарплата от 60 000 руб.
Полный день