Имя: Пароль:
1C
1С v8
УТ 10.3 Допустимое число дней задолженности: .., дата самой старой задолженности: ..
,
0 Михаил1234567890
 
07.09.17
10:04
Доброго времени суток, прошу помощи, стоит УТ 10.3.43.1 до середины августа 2017 все было нормально и отгрузки проводились нормально, с определенного дня поехали: (Пример: Допустимое число дней задолженности: 21, дата самой старой задолженности: 12.01.2012 9:52:24, превышение: 149 дней)

Базу сворачивали 31.12.2013 года, остались документы с 12 года по 13 помеченные на удаление.

У всех контрагентов стоит контроль по срокам и по сумме отгрузок.

В регистре Взаиморасчет с конт-ми по док-ам движения с 2012 по 30.12.2013 пусто

Куда копать? Заранее спасибо
1 Flover
 
07.09.17
10:36
1. Копать в сторону показателя "дата самой старой задолженности: 12.01.2012 9:52:24, превышение: 149 дней" и смотреть, почему программа считает эту запись самой старой.
2. Принять решение и убрать из программы данную запись, что бы программа её более не видела.
2 rudnitskij
 
07.09.17
10:46
алгоритм расчета превышения копайте, ведь с 2012 года прошло не 149 дней, а как минимум 365 дней в году * 5 лет
3 Михаил1234567890
 
07.09.17
10:48
(1)
Хм, так до августа 2017 все было нормально, почему поехало, ну да ладно
1. РТУ от 12.01.2012 помечен на удаление, ссылка на него есть в документе корректировка записей регистра
2. я бы с радостью и руками убрал, но откуда....
4 rudnitskij
 
07.09.17
10:48
(2) подозреваю, что игнорируется год
5 Михаил1234567890
 
07.09.17
10:49
(2)
нет, были в 12 году у этого клиента и покупки и оплаты, 149 дней он считает между покупкой и оплатой
6 rudnitskij
 
07.09.17
10:56
(5) дык все очевидно тогда. Ищите куда идет запрос на получение данных о количестве дней задолженности и оттуда удаляйте данные. Или создавайте корректировку записей
7 Михаил1234567890
 
07.09.17
11:00
(6) Видимо ума не хватает, 12 и 13 год все д-ты помечены на удаление, с 01.01.2014 по 08.2017 все было нормально и тут на тебе, откуда-то вылезло

То ли паника у меня то ли еще что, вроде бы все перерыл :(
8 rudnitskij
 
07.09.17
11:04
(7) куда идет запрос? откуда берутся данные по задолженности?
9 rudnitskij
 
07.09.17
11:04
вы код вообще смотрели?
10 Михаил1234567890
 
07.09.17
11:13
(9) я не программист 1С, вот сюда и обратился
Видимо берется тут:
Если Выборка.Следующий() И НЕ Выборка.ДатаПервойСделки=NULL Тогда
                    ДопустимоеЧислоДнейЗадолженности = ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности;
                    РазницаДатВСекундах = (ДатаПлатежа - Выборка.ДатаПервойСделки);

                    РазницаДней = Цел(РазницаДатВСекундах/(24 * 60 * 60));
                    Если РазницаДней > ДопустимоеЧислоДнейЗадолженности Тогда

                        ОбщегоНазначения.СообщитьОбОшибке("Превышено допустимое число дней задолженности по договору " + ДоговорКонтрагента +
                        Символы.ПС + Символы.Таб +
                        " Допустимое число дней задолженности: " + ДопустимоеЧислоДнейЗадолженности +
                        ", дата самой старой задолженности: " + Выборка.ДатаПервойСделки +
                        ", превышение: " +
                        РазницаДней + " дней",
                        Отказ, Заголовок);
                    КонецЕсли;
                    
                КонецЕсли;
11 patapum
 
07.09.17
11:15
(10) Тогда все очень просто. Пригласите специалиста! (с)
12 rudnitskij
 
07.09.17
11:17
(10) а Выборка это что?
13 Михаил1234567890
 
07.09.17
11:18
(12)
"ВЫБРАТЬ    // Выбирает даты самых ранних сделок по договорам, указанным в т.ч.
                |        МИНИМУМ(ДокументРасчетовСКонтрагентом.Дата) КАК ДатаПервойСделки,
                |        ДоговорКонтрагента
                |    ИЗ    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(,
                |        ДоговорКонтрагента = &ДоговорКонтрагента)
                |    ГДЕ СуммаВзаиморасчетовОстаток > 0    // Дебиторская задолженность больше 0
                |        И УпрУчет
                |        И ДоговорКонтрагента.КонтролироватьЧислоДнейЗадолженности
                |    СГРУППИРОВАТЬ ПО ДоговорКонтрагента";
14 rudnitskij
 
07.09.17
11:21
(13) "ИЗ    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки..."- "может посмотреть в регистре ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов?" - подумал Штирлиц...
15 Михаил1234567890
 
07.09.17
11:22
(14)
Там нет записей за 12-13 год, я с этого регистра и начал
16 rudnitskij
 
07.09.17
11:23
(15) а программа считает, что есть
Вы смотрите сам регистр или отчеты по нему?
17 Михаил1234567890
 
07.09.17
11:23
(16) Сам регистр
18 rudnitskij
 
07.09.17
11:24
(17) напрашивается вывод, что программа видит данные, которые не видны вам
19 Flover
 
07.09.17
11:24
(13) Выборка.ДатаПервойСделки  - вот она зараза окаянная.
РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки - вот тут и собака порылась.
Поехали остатки - что то воздействовало на данную таблицу.
Внесли записиси или наоборот, удалили из нее записи.
20 patapum
 
07.09.17
11:25
(15) Ну, запрос записи видимо возвращает? Если это так (убеждаемся в отладчике), то читаем запрос, понимаем, откуда записи. Если запрос сложный, кидаем в консоль, пишем чуть более простые аналоги запроса.
21 Flover
 
07.09.17
11:26
как вариант: попробовать пересчитать итоги в программе, возможно что то их сбило.
22 Михаил1234567890
 
07.09.17
11:28
(21) Не помогло
23 rudnitskij
 
07.09.17
11:31
(22) у вас права полные в базе?
24 Михаил1234567890
 
07.09.17
11:34
(23) Да
25 rudnitskij
 
07.09.17
11:35
(24) а если вы запустите в консоли запросов тот, который запрашивает задолженность, с указанием того договора - что он вам возвращает?
26 rudnitskij
 
07.09.17
11:36
"РТУ от 12.01.2012 помечен на удаление, ссылка на него есть в документе корректировка записей регистра" - а найти и посмотреть эту корректировку? Не вариант?
27 Михаил1234567890
 
07.09.17
11:55
(25) Я не программист, мне помощь нужна и не обязательно на безвозмездной основе, мне просто надо разобраться с алгоритмом устранении данной проблемы
28 Михаил1234567890
 
07.09.17
12:40
(27)
Документ расчетов с контрагентом    Сумма Взаиморасчетов Конечный остаток
Реализация товаров и услуг ДУ000000063 от 12.01.2012 9:52:24    10 600,00
Реализация товаров и услуг ДУ000000276 от 23.01.2012 14:52:43    12 600,00
Реализация товаров и услуг ДУ000001763 от 26.03.2012 16:21:50    4 102,50
Реализация товаров и услуг ДУ000001778 от 27.03.2012 9:38:30    7 500,00
Реализация товаров и услуг ДУ000002101 от 03.04.2012 10:41:31    27 520,00
Реализация товаров и услуг ДУ000005331 от 18.06.2012 14:32:59    5 291,90
Реализация товаров и услуг ДУ000007878 от 14.08.2012 12:54:01    27 700,00
Реализация товаров и услуг ДУ000009551 от 17.09.2012 10:58:33    23 888,10
Реализация товаров и услуг ДУ000010415 от 04.10.2012 18:51:32    22 000,00
Реализация товаров и услуг ДУ000010846 от 12.10.2012 15:00:56    550,00
Реализация товаров и услуг ДУ000011398 от 23.10.2012 9:21:15    850,00
Реализация товаров и услуг ДУ000011508 от 24.10.2012 12:20:03    7 500,00
Реализация товаров и услуг ДУ000013412 от 20.12.2012 12:13:58    15 950,00
Реализация товаров и услуг ДУ000005520 от 04.10.2013 12:14:13    2 479,58
Реализация товаров и услуг ДУ000005834 от 17.10.2013 12:36:09    14 400,00
Реализация товаров и услуг ДУ000006138 от 30.10.2013 16:17:06    23 400,00

Вопрос в том, как их оттуда убрать, т.к. все эти д-ты помечены на удаление :(
29 rudnitskij
 
07.09.17
12:41
(28) а у них есть движения? у документов этих
30 Михаил1234567890
 
07.09.17
12:42
(29) В регистрах не нашел движений, только в остатках где-то висят
31 rudnitskij
 
07.09.17
12:43
вообще неясно - то база свернута по конец 2013, теперь выясняется, что доки за 2012 в ней лежат...
ЗЫ. Откройте сам документ, и посмотрите его движения
32 rudnitskij
 
07.09.17
12:43
И 3й раз вам пишу - ищите корректировку записей регистра, о которой вы говорили в начале.
33 Михаил1234567890
 
07.09.17
12:48
(31) Да, обрезали как-то криво, но это уже вопрос минувших дней
(32) я смотрю на эту корректировку и не знаю в какую сторону ее пнуть
34 rudnitskij
 
07.09.17
12:54
(33) я к сожалению тоже, поскольку не вижу ее
35 Михаил1234567890
 
07.09.17
12:56
(34) Так могу показать, если есть время и возможность
36 rudnitskij
 
07.09.17
13:03
время и возможность посмотреть скриншот у меня есть
37 Михаил1234567890
 
07.09.17
13:40
38 rudnitskij
 
07.09.17
17:04
(37) ну вот эту вот запись запрос и находит...
которую вы выделили.
Корректировка ж не просто документ, это прямое внесение записей в регистр.
Удалите эту строку - должна исчезнуть эта ошибка
ЗЫ. А вообще ваше "сжатие базы" в итоге ни хрена не сжало, все данные же остались в базе
39 rudnitskij
 
07.09.17
17:05
(37) кстати, эта продажа в итоге была оплачена?
40 Михаил1234567890
 
07.09.17
17:12
(39)
Не могу знать (да и сжималось для каких целей и кем), а если я строчку удалю, то поедут взаиморасчеты и итоговый долг будет не верным, не так ли?
   Хм, а почему до августа все считалось, поднял базу от августа, там та же борода, но все проводится, в регистрах и документах вроде бы все одно и тоже
41 Михаил1234567890
 
07.09.17
17:14
(40)
Если СтруктураШапкиДокумента.КонтролироватьЧислоДнейЗадолженности Тогда
                    
                    Запрос = Новый Запрос;
                    Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);

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

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

                            ОбщегоНазначения.СообщитьОбОшибке("Превышено допустимое число дней задолженности по договору " + ДоговорКонтрагента +
                            Символы.ПС + Символы.Таб +
                            " Допустимое число дней задолженности: " + ДопустимоеЧислоДнейЗадолженности +
                            ", дата самой старой задолженности: " + Выборка.ДатаПервогоДокумента +
                            ", превышение: " +
                            (РазницаДней - ДопустимоеЧислоДнейЗадолженности) + " дней",
                            Отказ, Заголовок);
                        КонецЕсли;
                    КонецЕсли;
                КонецЕсли;
42 Михаил1234567890
 
07.09.17
17:14
(41)
И в новой базе и в старой отчет показывает одно и то же:

Документ расчетов с контрагентом    Сумма Взаиморасчетов Конечный остаток
Реализация товаров и услуг ДУ000000063 от 12.01.2012 9:52:24    10 600,00
Реализация товаров и услуг ДУ000000276 от 23.01.2012 14:52:43    12 600,00
Реализация товаров и услуг ДУ000001763 от 26.03.2012 16:21:50    4 102,50
Реализация товаров и услуг ДУ000001778 от 27.03.2012 9:38:30    7 500,00
Реализация товаров и услуг ДУ000002101 от 03.04.2012 10:41:31    27 520,00
Реализация товаров и услуг ДУ000005331 от 18.06.2012 14:32:59    5 291,90
Реализация товаров и услуг ДУ000007878 от 14.08.2012 12:54:01    27 700,00
Реализация товаров и услуг ДУ000009551 от 17.09.2012 10:58:33    23 888,10
Реализация товаров и услуг ДУ000010415 от 04.10.2012 18:51:32    22 000,00
Реализация товаров и услуг ДУ000010846 от 12.10.2012 15:00:56    550,00
Реализация товаров и услуг ДУ000011398 от 23.10.2012 9:21:15    850,00
Реализация товаров и услуг ДУ000011508 от 24.10.2012 12:20:03    7 500,00
Реализация товаров и услуг ДУ000013412 от 20.12.2012 12:13:58    15 950,00
Реализация товаров и услуг ДУ000005520 от 04.10.2013 12:14:13    2 479,58
Реализация товаров и услуг ДУ000005834 от 17.10.2013 12:36:09    14 400,00
Реализация товаров и услуг ДУ000006138 от 30.10.2013 16:17:06    23 400,00
43 rudnitskij
 
07.09.17
17:16
а конфигурация базы в районе августа не обновлялась?
44 rudnitskij
 
07.09.17
17:18
и еще: у вас один и тот же договор с 2012 года идет с этим клиентом?
45 Михаил1234567890
 
07.09.17
17:18
(43) 10.3.32.1 (или 2) на 10.3.43.1
46 rudnitskij
 
07.09.17
17:20
(45) видимо изменился алгоритм расчета дней просрочки долга. Потому и было норм.
Создайте новый договор и тяните его в документы, по нему точно не будет долгов из 2012 года
47 Михаил1234567890
 
07.09.17
17:21
(44) Да, договор 1 с  2012 года, как был забит в 12 так и волочется
48 Михаил1234567890
 
07.09.17
17:21
(46) Клиентов слишком много с такими глюками, я уже думал об этом
49 rudnitskij
 
07.09.17
17:45
(48) Более того: при сжатии базы надо было всем посоздавать новые договора и на них перекинуть долги (если есть). А то доки типа как удалили (на самом деле нет), а договора по ним оставили, в этом нет никакой логики.
Так что только новый договор спасет отца русской демократии)
50 Михаил1234567890
 
07.09.17
19:53
(49) Вопрос не ко мне, бывший IT там не работает, мне теперь исправлять после обновления, "все же раньше работало" (с)
51 rudnitskij
 
07.09.17
20:41
(50) а хранилище конфигурации не используете у себя?
52 Михаил1234567890
 
07.09.17
20:51
(51) Нет, я тут без году неделя, хвосты не подчистить и работать надо с тем что есть....
53 Cyberhawk
 
07.09.17
20:58
(52) Резюме уже обновил и выставил в открытый доступ?
54 Михаил1234567890
 
07.09.17
21:11
(53) ?
55 rudnitskij
 
07.09.17
22:24
(52) жалко, было б хранилище - мог бы найти код от предыдущей версии.
Советую завести кстати
56 Михаил1234567890
 
07.09.17
22:28
(55) Код изменен не был, в этом и дело, точнее все изменения 1 в 1, сейчас пересчет итогов выполнится и самый главный прикол напишу
57 rudnitskij
 
08.09.17
10:52
(56) "Код изменен не был, в этом и дело" - опыт нам подсказывает, что если до обновления результат расчета был один, а после него другой (при одинаковых исходных данных) - то скорее всего изменился алгоритм этого расчета