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С
Москва
зарплата от 160 000 руб. до 180 000 руб.
Полный день

Ведущий программист / Руководитель проектов 1С
Москва
зарплата от 190 000 руб. до 190 000 руб.
Полный день

Программист 1С ЗУП
Уфа
зарплата от 60 000 руб. до 90 000 руб.
Полный день

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

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