Имя: Пароль:
1C
1С v8
1С:Комплексная автоматизация ред. 2.5 (2.5.9.125) сбой в "закрытие месяца"
,
0 Nst
 
naïve
18.10.22
11:39
Здравствуйте, при закрытии месяца выходит такая ошибка, подскажите, пожалуйста, что можно сделать?
(было сделано - тии базы, отключение всех расширений, обновление базы, очистка кеша)доработок в самой базе нет
Закрытие месяца.ФормированиеДвиженийПоРасчетамСПартнерамиИПереоценкаРасчетов
При выполнении операции "Актуализация движений документов по данным взаиморасчетов" произошла ошибка:
Преобразование значения к типу Число не может быть выполнено
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(683)}:                        СуммаСписанияРегл = Окр(ДолгРегл + ДолгРаспределеноРегл - Окр(ДолгРаспределеноРегл,2),2);
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(4044)}:        ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры);
{ОбщийМодуль.ВзаиморасчетыСервер.Модуль(13971)}:            ОперативныеВзаиморасчетыСервер.ИсправитьОстаткиВзаиморасчетов(НачалоРасчета, ДанныеКРасчетуЗаМесяц.Организация);
{(1)}:ВзаиморасчетыСервер.Выполнить_ФормированиеДвиженийПоРасчетамСПартнерамиИПереоценкаРасчетов(Параметры[0])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5263)}:    Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{Обработка.ОперацииЗакрытияМесяца.МодульМенеджера(1926)}:                ОбщегоНазначения.ВыполнитьМетодКонфигурации(
{ОбщийМодуль.ЗакрытиеМесяцаСервер.Модуль(3354)}:    Обработки.ОперацииЗакрытияМесяца.ВыполнитьРасчетЭтапов(ПараметрыЗапуска);
1 alarm2020
 
18.10.22
11:54
(0) Как вариант, не ставить 2.5.9, оставаться на 2.5.8
2 Nst
 
naïve
18.10.22
11:59
обратно перешли на 1С:Комплексная автоматизация 2 (2.5.8.295) , но ошибка осталась
3 Фрэнки
 
18.10.22
11:59
А что тут делать...

Воспроизводить вашу ошибку, чтоб указать со 100%-ой точностью? Не реально, да и времени займет очень много.

Фишка в том, что это ветка 2.5.9, которая установлена даже еще реже, чем 2.5.8

На практике что делать :
- смотреть на строчку
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(683)}:                        СуммаСписанияРегл = Окр(ДолгРегл + ДолгРаспределеноРегл - Окр(ДолгРаспределеноРегл,2),2);
в отладчике, если такая возможность есть.

- проверять данные в регистре, которые пытается выбрать процедура. Вероятно, что каких-то ожидаемых строк просто нет.

- вколотить HOOK (хук, крюк или костыль) перехватив сбойную строчку вместе со её процедурой в расширение. добавить проверки и зануление на пустые значения. Просто, чтоб не глючило.
4 Фрэнки
 
18.10.22
12:12
И кстати, совет отктываться... ну так себе совет, потому что данные регистра, если они были испорчены обновлением, уже не откатить. Только перепроводить толпу документов.

Кстати, тоже вариант. Не всегда помогает, но все-таки вариант.
Запустить что-то вроде восстановления последовательности, т.е. перепроведения документов, которые влияют на состояние
В данном случае состояние должно быть здесь:
ВзаиморасчетыСервер.Выполнить_ФормированиеДвиженийПоРасчетамСПартнерамиИПереоценкаРасчетов(Параметры[0])

з.ы. и никаких гарантий, что эта попытка будет удачней остальных
5 kittystark
 
18.10.22
12:21
(0) даю +1 к (1)
2.5.8.х - LTS до апреля 2023
уже пол года расхлебываем переход с 2.4 на 2.5, до сих пор плююсь
на 2.5.9 переходить будем оттягивая до последнего - т.к. как всегда "восьмерка еще сырая"
6 Nst
 
naïve
18.10.22
13:00
(5)обратно перешли на 2.5.8.295, но ошибка осталась
7 shuhard
 
18.10.22
13:20
(0) [что можно сделать]
поставить точку останова
найти в Рг Расчетов сбойную запись и пофиксить
8 Nst
 
naïve
18.10.22
13:22
(7) точку остановы поставила, но туда не заходит,
а какой регистр посмотреть?
9 kittystark
 
18.10.22
13:24
попробуй обновись до 2.5.8.309, не факт что поможет, но ошибки там фиксили
10 shuhard
 
18.10.22
14:33
(8) [точку остановы поставила, но туда не заходит] не подключены фоновые задания или не использован флаг Отладка
11 Nst
 
naïve
18.10.22
15:23
(10) отладка работает, но по точке не останавливается
12 Nst
 
naïve
18.10.22
19:51
обновили до 2.5.8.309 ошибка осталась
13 Naumov
 
18.10.22
22:54
(12) Ошибка прям такая же?
14 Nst
 
naïve
19.10.22
07:27
да, такая же
15 Фрэнки
 
19.10.22
08:22
(14) потому что состояние записей в регистре, со сбойной записью, одной или несколькими, никто не изменил.

Если ставите эксперименты с отладкой и откатом, перекатом с релиза на релиз туда-сюда-обратно... данные в регистре/регистрах смогли установить, от которых зависит появление ошибки?
16 Nst
 
naïve
19.10.22
10:34
(15) в каком именно регистре? делала поиск по регистрам в описании ошибки - и взаиморасчеты и остатки, ничего подобного нет
17 Фрэнки
 
19.10.22
10:41
(16) ладно. Давайте другим путем пойдем.

С использованием Расширения готовы обойти этот глюк? Будете такое расширение делать?
18 Nst
 
naïve
19.10.22
10:42
(17)да, готовы
19 Фрэнки
 
19.10.22
10:53
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(683)}:                        СуммаСписанияРегл = Окр(ДолгРегл + ДолгРаспределеноРегл - Окр(ДолгРаспределеноРегл,2),2);

Возле этого места сделать добавление в расширение способом " Вместо с контролем "

И сделать вставку строк, в которых попыткой проверить
Попытка
    ДолгРегл = Число(ДолгРегл);
Исключение
    ДолгРегл = 0;
КонецПопытки;
Попытка
    ДолгРаспределеноРегл = Число(ДолгРаспределеноРегл);
Исключение
    ДолгРаспределеноРегл = 0;
КонецПопытки;

Это костыль. Но именно преобразование в число он решит.
20 Nst
 
naïve
19.10.22
10:58
(19) попробую, спасибо,
а вообще название регистра есть? в ошибке его нигде нет
21 Фрэнки
 
19.10.22
11:11
(20) подразумевается что используемые регистры будут видны здесь

ВзаиморасчетыСервер.Выполнить_ФормированиеДвиженийПоРасчетамСПартнерамиИПереоценкаРасчетов(Параметры[0])

Но у Вас не получилось поймать это место отладчиком и посмотреть, что там в параметрах и что там в коде процедуры задано, по каким регистрам строить запросы.

Выше писали кратко, что нужно сделать, чтоб отладчик туда попал
22 2S
 
19.10.22
11:14
(19) похоже на банальное отсутствие естьnull в запросе
23 Naumov
 
19.10.22
13:04
(14) В партнерке ничего подобного не писали. Других ошибок куча, такой не припомню
24 Naumov
 
19.10.22
13:06
(22) Кстати, у нас в старых релизах был вылет из-за отсутствия базы распределения доп.расходов, например доп.расходы проводились раньше, чем основание (поступление)