Имя: Пароль:
1C
1С v8
Функция РешитьСЛУ() в УНФ 1.4.5.25
,
0 Santa4527
 
26.11.13
15:33
В Функция РешитьСЛУ() модуле объекта документа Закрытие Месяца выдает ошибку при "РасчетФактическойСебестоимости"
Выдает ошибку
{Обработка.ЗакрытиеМесяца.Форма.Форма.Форма(228)}: Ошибка при вызове метода контекста (Записать)
        ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ЗакрытиеМесяца.МодульОбъекта(859)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
        МассивРезультатов = Запрос.ВыполнитьПакет();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Переполнение поля
по причине:
Ошибка SQL: Переполнение поля

В чем может быть проблема? Решение наверняка СЛУ наверняка принимает очень очень большое значение. В чем такое может быть? И куда смотреть?
1 shuhard
 
26.11.13
15:35
(0) смотри в отрицательные остатки
РАУЗ на них может упасть
2 Santa4527
 
26.11.13
15:48
(1)Там в результате запроса получается СуммаКвадратовОтклонений и эта переменная принимает не реальное значение. Больше 31 432 695 382 183 526 177 893 294,037480856. Это может быть из за отрицательный остатков в
РегистрНакопления.Запасы
3 х86
 
26.11.13
15:50
(2)косяки в настройках
4 Santa4527
 
26.11.13
15:54
(3) а что за косяк?
5 х86
 
26.11.13
15:57
(4)предположу что ключи не правильно настроены, а так смотреть надо
6 Maxus43
 
26.11.13
15:59
у нас такое было из-за ошибок округления, на старой конфе УПП 1.2, в 1.3 это починили, а потом вобще переписали алгоритмы
7 Santa4527
 
26.11.13
16:09
Короче жесть.
8 Maxus43
 
26.11.13
16:17
(7) можно конечно найти, но надо ковырять глубоко. Например для начала узнать номер итерации, в которой гаснет, туда воткнуть запрос для разузловки, чтоб выйти на кокнретную номенклатуру и т.д. Это после всяких плясок с отчетами, если уж совсем никак
9 х86
 
26.11.13
16:23
(7)посмотри суммы по остаткам
10 Santa4527
 
26.11.13
16:27
(8) Номер итерации 47
11 Maxus43
 
26.11.13
16:32
(10) если там точку останова поставить - можно из временных таблиц вытащить данные. Сначала проверь простые пути, отчеты, анализ данных
12 Santa4527
 
26.11.13
18:20
Запрос.Текст =
        "ВЫБРАТЬ
        |    ""РешитьСЛУ"" КАК Поле1,
        |    УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,
        |    СУММА(ВЫРАЗИТЬ(ВЫБОР
        |                КОГДА УзлыКорректировкиСтоимостиСписания.Количество <> 0
        |                    ТОГДА ТаблицаРешений.Сумма * ВЫБОР
        |                            КОГДА ВложенныйЗапрос.Количество = 0
        |                                ТОГДА ВложенныйЗапрос.Сумма
        |                            ИНАЧЕ ВложенныйЗапрос.Количество
        |                        КОНЕЦ / УзлыКорректировкиСтоимостиСписания.Количество
        |                ИНАЧЕ 0
        |            КОНЕЦ КАК ЧИСЛО(38, 10))) КАК Сумма
        |ПОМЕСТИТЬ ВременнаяТаблицаРешений
        |ИЗ
        |    РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
        |        ЛЕВОЕ СОЕДИНЕНИЕ УчетЗатрат КАК ВложенныйЗапрос
        |            ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений
        |            ПО ВложенныйЗапрос.НомерУзла = ТаблицаРешений.НомерУзла
        |        ПО УзлыКорректировкиСтоимостиСписания.Организация = ВложенныйЗапрос.Организация
        |            И УзлыКорректировкиСтоимостиСписания.СтруктурнаяЕдиница = ВложенныйЗапрос.СтруктурнаяЕдиница
        |            И УзлыКорректировкиСтоимостиСписания.СчетУчета = ВложенныйЗапрос.СчетУчета
        |            И УзлыКорректировкиСтоимостиСписания.Номенклатура = ВложенныйЗапрос.Номенклатура
        |            И УзлыКорректировкиСтоимостиСписания.Характеристика = ВложенныйЗапрос.Характеристика
        |            И УзлыКорректировкиСтоимостиСписания.Партия = ВложенныйЗапрос.Партия
        |            И УзлыКорректировкиСтоимостиСписания.ЗаказПокупателя = ВложенныйЗапрос.ЗаказПокупателя
        |ГДЕ
        |    УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор
        |
        |СГРУППИРОВАТЬ ПО
        |    УзлыКорректировкиСтоимостиСписания.НомерУзла
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    НомерУзла
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    СУММА((ЕСТЬNULL(ТаблицаРешений.Сумма, 0) - (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0))) * (ЕСТЬNULL(ТаблицаРешений.Сумма, 0) - (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0)))) КАК СуммаКвадратовОтклонений
        |ИЗ
        |    РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
        |        ПО (ВременнаяТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла)
        |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений
        |        ПО (ТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла)
        |ГДЕ
        |    УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор";
        
МассивРезультатов = Запрос.ВыполнитьПакет();

Этот запрос выдает ошибку. Я уже не знаю куда смотреть.
13 Santa4527
 
26.11.13
18:20
приблизительно после 47 итерации
14 Михаил Козлов
 
26.11.13
19:23
Попробуйте обратиться в 1С. Может матрица прямых затрат плохо обусловлена, может сам метод неустойчив. Мне кажется, 1С должна быть заинтересована разобраться.
15 saaken
 
26.11.13
21:50
(0) отмени проведение половины документов и проверь еще раз