Исправление ошибки арифметического переполнения при преобразовании numeric к типу данных numeric при расчете себестоимости

13.12.16

Разработка - Запросы

В данной статье описывается один из способов исправления ошибки арифметического переполнения при преобразовании numeric к типу данных numeric, с которой не раз сталкивались многие люди, занимающиеся расчетом себестоимости в базах с большим объёмом данных.

Многие люди, занимающиеся расчетом себестоимости в базах с большим объёмом данных, не раз сталкивались со следующей ошибкой:

Microsoft SQL Server Native Client 11.0:Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.

HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

Особенно часто (судя по личному опыту и темам форумов) данная ошибка появляется при проведении документа "Расчет себестоимости товаров", когда не хватает знаков до запятой при использоании в запросах функции ВЫРАЗИТЬ и происходит потеря значащих цифр при вычислении значения. Один из самых простых и быстрых вариантов решения следующий:

  1. Запускаем проведение проблемного документа расчета с/с в режиме отладки и дожидаемся ошибки.
  2. Смотрим, на какой строке кода происходит ошибка, и идём в конфигуратор. В моём случае это была строка 2519: Запрос.ВыполнитьПакет()[1].Выбрать() модуля объекта документа "Расчет себестоимости"
  3. В тексте запроса ищем функцию ВЫРАЗИТЬ
  4. Если есть строчки ВЫРАЗИТЬ(<ВыбранноеПоле> КАК ЧИСЛО (23,10))  изменяем их на ВЫРАЗИТЬ(<ВыбранноеПоле> КАК ЧИСЛО (25,10)) и радуемся результату

В моём случае текст запроса был изменен следующим образом:

        "ВЫБРАТЬ
		|	УзлыКорректировки.НомерУзла КАК НомерУзла,
		|	ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.Стоимость) КАК ЧИСЛО(25, 10)) КАК СвободныйКоэффициент,
		|	ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьБезНДС) КАК ЧИСЛО(25, 10)) КАК СвободныйКоэффициентБезНДС,
		|	ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ПостояннаяРазница) КАК ЧИСЛО(25, 10)) КАК СвободныйКоэффициентПостояннаяРазница,
		|	ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ВременнаяРазница) КАК ЧИСЛО(25, 10)) КАК СвободныйКоэффициентВременнаяРазница,
		|	ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходы) КАК ЧИСЛО(25, 10)) КАК СвободныйКоэффициентДопрасходы,
		|	ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходыБезНДС) КАК ЧИСЛО(25, 10)) КАК СвободныйКоэффициентДопрасходыБезНДС,
		|	МИНИМУМ(УзлыКорректировки.ВременнаяРазницаЗнак * ЕСТЬNULL(ВтТаблицаРешений.ВременнаяРазницаЗнак, 1)) КАК ВременнаяРазницаЗнак,
		|	МИНИМУМ(УзлыКорректировки.ПостояннаяРазницаЗнак * ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазницаЗнак, 1)) КАК ПостояннаяРазницаЗнак,
		|	(ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.Стоимость, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(25, 10))) / УзлыКорректировки.Количество КАК Стоимость,
		|	(ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.СтоимостьБезНДС, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(25, 10))) / УзлыКорректировки.Количество КАК СтоимостьБезНДС,
		|	(ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазница, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(25, 10))) / УзлыКорректировки.Количество КАК ПостояннаяРазница,
		|	(ВЫРАЗИТЬ(СУММА((ЕСТЬNULL(ВтТаблицаРешений.ВременнаяРазница, 0) + ВЫБОР
		|				КОГДА ПеремещенияСписания.КосвенныеЗатратыНУ
		|					ТОГДА ЕСТЬNULL(ВтТаблицаРешений.Стоимость, 0)
		|				ИНАЧЕ 0
		|			КОНЕЦ + ВЫБОР
		|				КОГДА ПеремещенияСписания.КосвенныеЗатратыНУ
		|					ТОГДА ЕСТЬNULL(ВтТаблицаРешений.СтоимостьДопРасходы, 0)
		|				ИНАЧЕ 0
		|			КОНЕЦ) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(25, 10))) / УзлыКорректировки.Количество КАК ВременнаяРазница,
		|	(ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.СтоимостьДопРасходы, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(25, 10))) / УзлыКорректировки.Количество КАК СтоимостьДопРасходы,
		|	(ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.СтоимостьДопРасходыБезНДС, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(25, 10))) / УзлыКорректировки.Количество КАК СтоимостьДопРасходыБезНДС
		|ПОМЕСТИТЬ ВременнаяТаблицаРешений
		|ИЗ
		|	ВтУзлыКорректировки КАК УзлыКорректировки
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВтПеремещенияСписания КАК ПеремещенияСписания
		|		ПО УзлыКорректировки.НомерУзла = ПеремещенияСписания.НомерУзлаПриемник
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаРешений КАК ВтТаблицаРешений
		|		ПО (ПеремещенияСписания.НомерУзлаИсточник = ВтТаблицаРешений.НомерУзла)
		|ГДЕ
		|	УзлыКорректировки.Количество <> 0
		|	И ЕСТЬNULL(ВтТаблицаРешений.Стоимость, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0) > -999999999.999999999
		|	И ЕСТЬNULL(ВтТаблицаРешений.Стоимость, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0) < 999999999.999999999
		|
		|СГРУППИРОВАТЬ ПО
		|	УзлыКорректировки.НомерУзла,
		|	УзлыКорректировки.Количество
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	НомерУзла
		|;
		|

арифметическое переполнение расчет себестоимости закрытие месяца преобразование numeric к типу данных numeric

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    151686    833    397    

841

Запросы Программист Запросы Бесплатно (free)

Отлаживая взаимодействие с базой данных, мы регулярно сталкиваемся с зависающими или подозрительно долго выполняющимися обращениями, негативно влияющими на производительность. О том, как в PostgreSQL выявить подозрительные запросы, основываясь на доступной о них информации, расскажем в статье.

16.08.2024    6776    user1840182    5    

27

Математика и алгоритмы Запросы Программист Платформа 1С v8.3 Запросы Бесплатно (free)

Рассмотрим быстрый алгоритм поиска дублей с использованием hash функции по набору полей шапки и табличных частей.

08.07.2024    2078    ivanov660    9    

22

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    7143    implecs_team    6    

46

Запросы Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Часто поступают задачи по произвольному распределению общих сумм. После распределения иногда пропадают копейки. Суть решения добавить АвтоНомерЗаписи() в ВТ распределения, и далее используя функции МАКСИМУМ или МИНИМУМ можем положить разницу копеек в первую или последнюю строку знаменателя распределения.

11.04.2024    3190    andrey_sag    10    

35

Запросы СКД Программист Стажер Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    7298    KawaNoNeko    23    

26

Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2960    3    Yashazz    0    

34
Вознаграждение за ответ
Показать полностью
Отзывы
1. корум 288 13.12.16 11:05 Сейчас в теме
Чудны творения твои, 1с...
Innuil; Gendelf; YPermitin; ASMIR.ru; romashka_tr; profisasha; IvanovAV; Gvenor; +8 Ответить
17. maslennikov_ea 6 21.02.18 15:20 Сейчас в теме
(16) (15) (14)(13) Коллеги, всех приветствую! Была аналогичная проблема при переходе на УТ 11.3.4.93 с 11.1.10.199. Долго искал решение и пробовал различные варианты. Пришел к чему - проблему нужно решать другим способом. Тот, что описан в статье дает лишь временное решение и не всегда срабатывает.
Что нужно сделать: нужно проанализировать регистр "ВыручкаИСебестоимостьПродаж". Там Вы увидите, что переполнение происходит из-за огромных цифр, которые получаются из-за ошибок в учете. В каких-то случаях помогало перепроведение, в каких-то пришлось править документы (возвраты, например).
Приведу пример запроса, которым искал ошибки. Вы, конечно, можете написать свой:

ВЫБРАТЬ ПЕРВЫЕ 150
	НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, МЕСЯЦ) КАК МЕСЯЦ,
	ВыручкаИСебестоимостьПродаж.ВременнаяРазница КАК ВременнаяРазница,
	ВыручкаИСебестоимостьПродаж.ПостояннаяРазница КАК ПостояннаяРазница,
	ВыручкаИСебестоимостьПродаж.СуммаВыручкиРегл КАК СуммаВыручкиРегл,
	ВыручкаИСебестоимостьПродаж.СебестоимостьРегл КАК СебестоимостьРегл,
	ВыручкаИСебестоимостьПродаж.Себестоимость КАК Себестоимость,
	ВыручкаИСебестоимостьПродаж.СебестоимостьБезНДС КАК СебестоимостьБезНДС,
	ВыручкаИСебестоимостьПродаж.Период КАК Период,
	ВыручкаИСебестоимостьПродаж.Регистратор КАК Регистратор,
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
	ВыручкаИСебестоимостьПродаж.ЗаказКлиента КАК ЗаказКлиента,
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
	ВыручкаИСебестоимостьПродаж.Подразделение КАК Подразделение,
	ВыручкаИСебестоимостьПродаж.ТипЗапасов КАК ТипЗапасов,
	ВыручкаИСебестоимостьПродаж.ВидЗапасов КАК ВидЗапасов,
	ВыручкаИСебестоимостьПродаж.Менеджер КАК Менеджер,
	ВыручкаИСебестоимостьПродаж.Склад КАК Склад,
	ВыручкаИСебестоимостьПродаж.Соглашение КАК Соглашение,
	ВыручкаИСебестоимостьПродаж.Договор КАК Договор,
	ВыручкаИСебестоимостьПродаж.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
	ВыручкаИСебестоимостьПродаж.Количество КАК Количество,
	ВыручкаИСебестоимостьПродаж.СуммаВыручки КАК СуммаВыручки,
	ВыручкаИСебестоимостьПродаж.СуммаВыручкиБезНДС КАК СуммаВыручкиБезНДС
ПОМЕСТИТЬ ТаблицаОшибок
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж

УПОРЯДОЧИТЬ ПО
	ПостояннаяРазница УБЫВ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ТаблицаОшибок.МЕСЯЦ КАК МЕСЯЦ,
	ТаблицаОшибок.ВременнаяРазница КАК ВременнаяРазница,
	ТаблицаОшибок.ПостояннаяРазница КАК ПостояннаяРазница,
	ТаблицаОшибок.СуммаВыручкиРегл КАК СуммаВыручкиРегл,
	ТаблицаОшибок.СебестоимостьРегл КАК СебестоимостьРегл,
	ТаблицаОшибок.Себестоимость КАК Себестоимость,
	ТаблицаОшибок.СебестоимостьБезНДС КАК СебестоимостьБезНДС,
	ТаблицаОшибок.Период КАК Период,
	ТаблицаОшибок.Регистратор КАК Регистратор,
	ТаблицаОшибок.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
	ТаблицаОшибок.ЗаказКлиента КАК ЗаказКлиента,
	ТаблицаОшибок.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
	ТаблицаОшибок.Подразделение КАК Подразделение,
	ТаблицаОшибок.ТипЗапасов КАК ТипЗапасов,
	ТаблицаОшибок.ВидЗапасов КАК ВидЗапасов,
	ТаблицаОшибок.Менеджер КАК Менеджер,
	ТаблицаОшибок.Склад КАК Склад,
	ТаблицаОшибок.Соглашение КАК Соглашение,
	ТаблицаОшибок.Договор КАК Договор,
	ТаблицаОшибок.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	ТаблицаОшибок.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
	ТаблицаОшибок.Количество КАК Количество,
	ТаблицаОшибок.СуммаВыручки КАК СуммаВыручки,
	ТаблицаОшибок.СуммаВыручкиБезНДС КАК СуммаВыручкиБезНДС
ИЗ
	ТаблицаОшибок КАК ТаблицаОшибок
ГДЕ
	ТаблицаОшибок.Себестоимость > 100000
	ИЛИ ТаблицаОшибок.СебестоимостьРегл > 100000
	ИЛИ  ТаблицаОшибок.ПостояннаяРазница > 100000
Показать
georgebgk; murat_; Tonynya; Aggressorak; ASMIR.ru; gigansk; leossb; PLAstic; +8 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. корум 288 13.12.16 11:05 Сейчас в теме
Чудны творения твои, 1с...
Innuil; Gendelf; YPermitin; ASMIR.ru; romashka_tr; profisasha; IvanovAV; Gvenor; +8 Ответить
2. v3rter 13.12.16 15:33 Сейчас в теме
Плюсану, поскольку сталкивался и лечил такие проблемы в самопальных складских программах.
3. alex_4x 87 13.03.17 13:15 Сейчас в теме
В данном случае помогло, но это не факт, что всегда поможет.
Проблема может быть не только с длиной целой части, но и длиной дробной части.

Суть ошибки в том, что во время вычисления - SQL не может преобразовать тип внутри вычисления как правило умножения или деления. Решается не обязательно увеличением разрядности, достаточно ВЫРАЗИТЬ( Значение , ХХ,ХХ) использовать для всех вычисляемых аргументов в том числе внутри скобок. Тогда SQL не занимается самодеятельностью по выбору типа внутри самого вычисления и ошибка не происходит.

Ну примерно так:
Было:
 ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазница, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23, 10)))

Будет
ВЫРАЗИТЬ 
СУММА(ВЫРАЗИТЬ ЕСТЬNULL(ПеремещенияСписания.Количество, 0) КАК ЧИСЛО(23, 10) *
 ВЫРАЗИТЬ ЕСТЬNULL(ПеремещенияСписания.Количество, 0) КАК ЧИСЛО(23, 10) )
КАК ЧИСЛО(23, 10)
insurgut; user1432326; Gurami; AndrewVVS; murat_; vatkir; Re:аниматор; Red_Devil; dap; Gvenor; +10 Ответить
19. dap 14 28.08.18 13:52 Сейчас в теме
(3)

Странно, но ошибка эта может вываливаться просто на счетчике.
Вот строка запроса в обработке базопузомера:
Подсчитывалось количество записей в регистре сведений

| СУММА(1) КАК Счетчик

Вот этот счетчик и выдал ошибку. Количество записей в самом большом регистре было около 62 млн. записей

и нормально заработала по вашему совету вот так:

| СУММА(ВЫРАЗИТЬ (1 КАК Число(23,0))) КАК Счетчик

плюсую
24. Red_Devil 181 26.11.19 09:12 Сейчас в теме
(3)тоже самое. Пришлось всем полям ВЫРАЗИТЬ писать. Тогда ошибка ушла

СУММА(ВЫРАЗИТЬ(
		|		ВЫБОР КОГДА ВЫРАЗИТЬ(УзлыКорректировкиСтоимостиСписания.Количество КАК ЧИСЛО(23, 10)) <> 0 ТОГДА
		|			ВЫРАЗИТЬ(ТаблицаРешений.Стоимость КАК ЧИСЛО(23, 10)) *
		|			(ВЫБОР КОГДА ВЫРАЗИТЬ(ВложенныйЗапрос.Количество КАК ЧИСЛО(23, 10)) = 0 ТОГДА 
		|				ВЫРАЗИТЬ(ВложенныйЗапрос.Стоимость КАК ЧИСЛО(23, 10)) 
		|			ИНАЧЕ 
		|				ВЫРАЗИТЬ(ВложенныйЗапрос.Количество КАК ЧИСЛО(23, 10)) 
		|			КОНЕЦ) / 
		|			ВЫРАЗИТЬ(УзлыКорректировкиСтоимостиСписания.Количество КАК ЧИСЛО(23, 10))
		|		ИНАЧЕ
		|			0
		|		КОНЕЦ
		|	КАК ЧИСЛО(23,10))) КАК Стоимость
Показать
27. vatkir 16 09.08.22 14:59 Сейчас в теме
(3) Вашим методом удалось исправить расчет себестоимости УТ 11.2. Процедура РешитьСЛУ

"
// 0 Расчет коэффициентов (количество перехода из состояния в состояние) уравнения.
|ВЫБРАТЬ
| УзлыКорректировки.НомерУзла КАК НомерУзла,
| ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.Стоимость) КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициент,
| ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьБезНДС) КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентБезНДС,
| ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ПостояннаяРазница) КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентПостояннаяРазница,
| ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ВременнаяРазница) КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентВременнаяРазница,
| ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходы) КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентДопрасходы,
| ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходыБезНДС) КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентДопрасходыБезНДС,
|
| МАКСИМУМ(УзлыКорректировки.ВременнаяРазницаЗнак) КАК ВременнаяРазницаЗнак,
| МАКСИМУМ(УзлыКорректировки.ПостояннаяРазницаЗнак) КАК ПостояннаяРазницаЗнак,
|
| ВЫРАЗИТЬ(СУММА(
| ВЫБОР
| КОГДА ЕСТЬNULL(ПеремещенияСписания.ПередачаВЭксплуатацию, ЛОЖЬ) ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.Стоимость КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0) КОНЕЦ) КАК ЧИСЛО(23,10))
| / ВЫРАЗИТЬ(УзлыКорректировки.Количество КАК ЧИСЛО(23,10)) КАК Стоимость,
| ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.СтоимостьБезНДС КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0)) КАК ЧИСЛО(23,10))
| / ВЫРАЗИТЬ(УзлыКорректировки.Количество КАК ЧИСЛО(23,10)) КАК СтоимостьБезНДС,
| ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.ПостояннаяРазница КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.ПостояннаяРазницаЗнак КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0)) КАК ЧИСЛО(23,10))
| / ВЫРАЗИТЬ(УзлыКорректировки.Количество КАК ЧИСЛО(23,10)) КАК ПостояннаяРазница,
| ВЫРАЗИТЬ(
| СУММА((ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.ВременнаяРазница КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.ВременнаяРазницаЗнак КАК ЧИСЛО(23,10)), 0)
| + ВЫБОР КОГДА ЕСТЬNULL(ПеремещенияСписания.ПередачаВЭксплуатацию, ЛОЖЬ)
| ТОГДА ЕСТЬNULL(-ВЫРАЗИТЬ(ВтТаблицаРешений.Стоимость КАК ЧИСЛО(23,10)), 0) + ЕСТЬNULL(-ВЫРАЗИТЬ(ВтТаблицаРешений.СтоимостьДопРасходы КАК ЧИСЛО(23,10)), 0)
| ИНАЧЕ 0
| КОНЕЦ
| + ВЫБОР КОГДА ЕСТЬNULL(ПеремещенияСписания.КосвенныеЗатратыНУ, ЛОЖЬ)
| ТОГДА ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.Стоимость КАК ЧИСЛО(23,10)), 0) + ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.СтоимостьДопРасходы КАК ЧИСЛО(23,10)), 0)
| ИНАЧЕ 0
| КОНЕЦ)
| * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0)) КАК ЧИСЛО(23,10))
| / ВЫРАЗИТЬ(УзлыКорректировки.Количество КАК ЧИСЛО(23,10)) КАК ВременнаяРазница,
| ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.СтоимостьДопРасходы КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0)) КАК ЧИСЛО(23,10))
| / ВЫРАЗИТЬ(УзлыКорректировки.Количество КАК ЧИСЛО(23,10)) КАК СтоимостьДопРасходы,
| ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.СтоимостьДопРасходыБезНДС КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0)) КАК ЧИСЛО(23,10))
| / ВЫРАЗИТЬ(УзлыКорректировки.Количество КАК ЧИСЛО(23,10)) КАК СтоимостьДопРасходыБезНДС
|
|ПОМЕСТИТЬ ВременнаяТаблицаРешений
|ИЗ
| ВтУзлыКорректировки КАК УзлыКорректировки
| ЛЕВОЕ СОЕДИНЕНИЕ ВтПеремещенияСписания КАК ПеремещенияСписания
| ПО УзлыКорректировки.НомерУзла = ПеремещенияСписания.НомерУзлаПриемник
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаРешений КАК ВтТаблицаРешений
| ПО ПеремещенияСписания.НомерУзлаИсточник = ВтТаблицаРешений.НомерУзла
|ГДЕ
| ВЫРАЗИТЬ(УзлыКорректировки.Количество КАК ЧИСЛО(23,10)) <> 0
| И ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.Стоимость КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0) > -999999999.999999999
| И ЕСТЬNULL(ВЫРАЗИТЬ(ВтТаблицаРешений.Стоимость КАК ЧИСЛО(23,10)), 0) * ЕСТЬNULL(ВЫРАЗИТЬ(ПеремещенияСписания.Количество КАК ЧИСЛО(23,10)), 0) < 999999999.999999999
|
|СГРУППИРОВАТЬ ПО
| УзлыКорректировки.НомерУзла,
| УзлыКорректировки.Количество
|
|ИНДЕКСИРОВАТЬ ПО
| НомерУзла
|;
|////////////////////////////////////////////////////////////­/////////////////
// 1 Расчет ошибки расчета.
|ВЫБРАТЬ
| ЕСТЬNULL(
| МАКСИМУМ(
| ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.Стоимость,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициент
| + ВременнаяТаблицаРешений.Стоимость)) > 0 ТОГДА
|
| ЕСТЬNULL(ТаблицаРешений.Стоимость,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициент
| + ВременнаяТаблицаРешений.Стоимость)
| ИНАЧЕ
| -(
| ЕСТЬNULL(ТаблицаРешений.Стоимость,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициент
| + ВременнаяТаблицаРешений.Стоимость)
| )
| КОНЕЦ
| )
| ,0) КАК Отклонение,
| ЕСТЬNULL(
| МАКСИМУМ(
| ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС
| + ВременнаяТаблицаРешений.СтоимостьБезНДС)) > 0 ТОГДА
|
| ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС
| + ВременнаяТаблицаРешений.СтоимостьБезНДС)
| ИНАЧЕ
| -(
| ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС
| + ВременнаяТаблицаРешений.СтоимостьБезНДС)
| )
| КОНЕЦ
| )
| ,0) КАК ОтклонениеБезНДС,
| ЕСТЬNULL(
| МАКСИМУМ(
| ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
| + ВременнаяТаблицаРешений.СтоимостьДопРасходы)) > 0 ТОГДА
|
| ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
| + ВременнаяТаблицаРешений.СтоимостьДопРасходы)
|
| ИНАЧЕ
| -(
| ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
| + ВременнаяТаблицаРешений.СтоимостьДопРасходы)
| )
| КОНЕЦ
| )
| ,0) КАК ОтклонениеДопрасходы,
| ЕСТЬNULL(
| МАКСИМУМ(
| ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
| + ВременнаяТаблицаРешений.СтоимостьДопРасходы)) > 0 ТОГДА
|
| ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
| + ВременнаяТаблицаРешений.СтоимостьДопРасходы)
|
| ИНАЧЕ
| -(
| ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) - (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы
| + ВременнаяТаблицаРешений.СтоимостьДопРасходы)
| )
| КОНЕЦ
| )
| ,0) КАК ОтклонениеДопрасходыБезНДС
|ИЗ
| ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаРешений КАК ТаблицаРешений
| ПО ВременнаяТаблицаРешений.НомерУзла = ТаблицаРешений.НомерУзла
|;
|////////////////////////////////////////////////////////////­//
// 2 Удаление таблиц.
|УНИЧТОЖИТЬ ВтТаблицаРешений
|;
// 3 Суммирование коэффициентов.
|////////////////////////////////////////////////////////////­//
|ВЫБРАТЬ
| ВременнаяТаблицаРешений.НомерУзла КАК НомерУзла,
| ВЫБОР
| КОГДА ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница * ВременнаяТаблицаРешений.ВременнаяРазницаЗнак + ВременнаяТаблицаРешений.ВременнаяРазница < 0
| ТОГДА -1
| ИНАЧЕ 1
| КОНЕЦ КАК ВременнаяРазницаЗнак,
| ВЫБОР
| КОГДА ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница * ВременнаяТаблицаРешений.ПостояннаяРазницаЗнак + ВременнаяТаблицаРешений.ПостояннаяРазница < 0
| ТОГДА -1
| ИНАЧЕ 1
| КОНЕЦ КАК ПостояннаяРазницаЗнак,
| ВЫРАЗИТЬ(
| ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициент КАК ЧИСЛО(23,10))
| + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.Стоимость КАК ЧИСЛО(23,10))
| КАК ЧИСЛО(23,10)) КАК Стоимость,
| ВЫРАЗИТЬ(
| ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС КАК ЧИСЛО(23,10))
| + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СтоимостьБезНДС КАК ЧИСЛО(23,10))
| КАК ЧИСЛО(23,10)) КАК СтоимостьБезНДС,
| ВЫРАЗИТЬ(ВЫБОР
| КОГДА ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница КАК ЧИСЛО(23,10)) * ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ВременнаяРазницаЗнак КАК ЧИСЛО(23,10)) + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ВременнаяРазница КАК ЧИСЛО(23,10)) < 0
| ТОГДА -(ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница КАК ЧИСЛО(23,10)) * ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ВременнаяРазницаЗнак КАК ЧИСЛО(23,10)) + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ВременнаяРазница КАК ЧИСЛО(23,10)))
| ИНАЧЕ ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница КАК ЧИСЛО(23,10)) * ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ВременнаяРазницаЗнак КАК ЧИСЛО(23,10)) + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ВременнаяРазница КАК ЧИСЛО(23,10))
| КОНЕЦ КАК ЧИСЛО(23,10)) КАК ВременнаяРазница,
| ВЫРАЗИТЬ(ВЫБОР
| КОГДА ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница КАК ЧИСЛО(23,10)) * ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ПостояннаяРазницаЗнак КАК ЧИСЛО(23,10)) + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ПостояннаяРазница КАК ЧИСЛО(23,10)) < 0
| ТОГДА -(ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница КАК ЧИСЛО(23,10)) * ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ПостояннаяРазницаЗнак КАК ЧИСЛО(23,10)) + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ПостояннаяРазница КАК ЧИСЛО(23,10)))
| ИНАЧЕ ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница КАК ЧИСЛО(23,10)) * ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ПостояннаяРазницаЗнак КАК ЧИСЛО(23,10)) + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.ПостояннаяРазница КАК ЧИСЛО(23,10))
| КОНЕЦ КАК ЧИСЛО(23,10)) КАК ПостояннаяРазница,
|
| ВЫРАЗИТЬ(
| ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы КАК ЧИСЛО(23,10))
| + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СтоимостьДопРасходы КАК ЧИСЛО(23,10))
| КАК ЧИСЛО(23,10)) КАК СтоимостьДопРасходы,
| ВЫРАЗИТЬ(
| ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходыБезНДС КАК ЧИСЛО(23,10))
| + ВЫРАЗИТЬ(ВременнаяТаблицаРешений.СтоимостьДопРасходыБезНДС КАК ЧИСЛО(23,10))
| КАК ЧИСЛО(23,10)) КАК СтоимостьДопРасходыБезНДС
|
|ПОМЕСТИТЬ ВтТаблицаРешений
|
|ИЗ
| ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений
|
|ИНДЕКСИРОВАТЬ ПО
| НомерУзла
|;
|////////////////////////////////////////////////////////////­//
// 4 Удаление таблицы.
| УНИЧТОЖИТЬ ВременнаяТаблицаРешений
|"
33. insurgut 208 09.01.24 18:42 Сейчас в теме
(3) здоровья тебе милый человек :) Пока я все операнды в конструкцию ВЫРАЗИТЬ не заключил - никак не мог обойти ошибку.
4. v3rter 13.03.17 14:23 Сейчас в теме
При таких расчетах могут накапливаться и ошибки округления дробной части, здесь это нивелируется десятью знаками после запятой ЧИСЛО(..., 10). Попутно может всплыть проблема сравнения итогов с нулём или константой, так как из-за накопления ошибок округления дробной части выглядеть она будет как -0.0001 < x <0,0001
5. a.artemov 29.06.17 16:05 Сейчас в теме
Коллеги прошу помощи.
Увеличение разрядности не помогло.
Ошибка осталась. Кто может помочь?

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.КорректировкаСтоимостиУчетЗатрат.Модуль(403)}: Ошибка при вызове метода контекста (Выполнить)
Док.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 11.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1


Код такой:
СУММА(ВЫРАЗИТЬ(
	|		ВЫБОР КОГДА УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
	|			УчетЗатрат.Стоимость
	|		ИНАЧЕ
	|			0
	|		КОНЕЦ
	|	КАК ЧИСЛО(38,10))) КАК Стоимость
6. Al-77 74 29.06.17 22:40 Сейчас в теме
7. Al-77 74 29.06.17 22:40 Сейчас в теме
8. a.artemov 30.06.17 08:08 Сейчас в теме
Управление производственным предприятием, редакция 1.3 (1.3.89.2)

Если есть возможность помочь для более оперативного общения контакты на почту прислать? У меня каждый день на счету.
9. rintik 19 30.06.17 10:03 Сейчас в теме
А если попробовать поменять
|	КАК ЧИСЛО(38,10))) КАК Стоимость


на
|	КАК ЧИСЛО(32,10))) КАК Стоимость
10. корум 288 30.06.17 12:14 Сейчас в теме
(9) читаем статью, "не хватает знаков ДО запятой", метод решения:
Если есть строчки ВЫРАЗИТЬ(<ВыбранноеПоле> КАК ЧИСЛО (23,10)) изменяем их на ВЫРАЗИТЬ(<ВыбранноеПоле> КАК ЧИСЛО (25,10)) и радуемся результату.

Читаем (9) и понимаем, что уменьшение знаков до запятой не поможет...
12. a.artemov 30.06.17 15:01 Сейчас в теме
(9) Начинали с 25,10 дошли до 38,10 не помогает. ТЬочнее попробовал 40,10 ругнулась что перебор...
11. Al-77 74 30.06.17 13:28 Сейчас в теме
У меня такая же ситуация, только последняя УТ 11.3.3.231 я уже 2 месяца пытаюсь найти в данных проблему. пробовал увеличить разрядность, помогло на два месяца потом опять стала ошибка.
13. a.artemov 01.07.17 07:54 Сейчас в теме
Проблема не решена. Помогите кто может.
14. Napalmmm 12.07.17 18:43 Сейчас в теме
Вот и я попал. (37,10) стояло больше двух лет, сейчас не спасло. Решения нет?
15. see888 12.07.17 19:57 Сейчас в теме
Теперь и я) как перевел базу на с 11.1 на 11.3.4... даже не пойму что он там по кругу выполняет,с каждым выполнением отклонение растет. Что это такое вообще? Кто сможет объяснить:
Дополнительная информация об этапе:
- Отклонение на текущей итерации: 42 631,8
- Отклонение на текущей итерации: 24 780
- Отклонение на текущей итерации: 21 311,8
- Отклонение на текущей итерации: 17 797,43
- Отклонение на текущей итерации: 7 800
- Отклонение на текущей итерации: 20 588,5568513129
- Отклонение на текущей итерации: 20 588,556851313
- Отклонение на текущей итерации: 73 530,5601832607
- Отклонение на текущей итерации: 73 530,5601832608
- Отклонение на текущей итерации: 262 609,1435116457
- Отклонение на текущей итерации: 262 609,1435116456
- Отклонение на текущей итерации: 937 889,7982558771
- Отклонение на текущей итерации: 937 889,798255877
- Отклонение на текущей итерации: 3 349 606,4223424179
- Отклонение на текущей итерации: 3 349 606,422342418
- Отклонение на текущей итерации: 11 962 880,07979435
- Отклонение на текущей итерации: 11 962 880,07979435
- Отклонение на текущей итерации: 42 724 571,71355125
- Отклонение на текущей итерации: 42 724 571,71355125
- Отклонение на текущей итерации: 152 587 756,1198258929
- Отклонение на текущей итерации: 152 587 756,119825893
- Отклонение на текущей итерации: 544 956 271,8565210464
- Отклонение на текущей итерации: 544 956 271,8565210464
- Отклонение на текущей итерации: 1 946 272 399,4875751657
- Отклонение на текущей итерации: 1 946 272 399,4875751656
- Отклонение на текущей итерации: 6 950 972 855,3127684486
- Отклонение на текущей итерации: 6 950 972 855,3127684486
- Отклонение на текущей итерации: 24 824 903 054,688458745
- Отклонение на текущей итерации: 24 824 903 054,688458745
- Отклонение на текущей итерации: 88 660 368 052,4587812321
- Отклонение на текущей итерации: 88 660 368 052,458781232
- Отклонение на текущей итерации: 316 644 171 615,9242186857
Это то что под приложением выдал из состоянии расчета.

А в отладчике последнее значение было таково :
267 488 214 754 648 642 684 559 809,9800832
и это на 85 Итерации из 200 как он показывает.

Что тут вообще происходит?)
16. Glav 13.12.17 14:19 Сейчас в теме
Такая же проблема. Увеличение разряда не помогает УТ 11.3.4.124
17. maslennikov_ea 6 21.02.18 15:20 Сейчас в теме
(16) (15) (14)(13) Коллеги, всех приветствую! Была аналогичная проблема при переходе на УТ 11.3.4.93 с 11.1.10.199. Долго искал решение и пробовал различные варианты. Пришел к чему - проблему нужно решать другим способом. Тот, что описан в статье дает лишь временное решение и не всегда срабатывает.
Что нужно сделать: нужно проанализировать регистр "ВыручкаИСебестоимостьПродаж". Там Вы увидите, что переполнение происходит из-за огромных цифр, которые получаются из-за ошибок в учете. В каких-то случаях помогало перепроведение, в каких-то пришлось править документы (возвраты, например).
Приведу пример запроса, которым искал ошибки. Вы, конечно, можете написать свой:

ВЫБРАТЬ ПЕРВЫЕ 150
	НАЧАЛОПЕРИОДА(ВыручкаИСебестоимостьПродаж.Период, МЕСЯЦ) КАК МЕСЯЦ,
	ВыручкаИСебестоимостьПродаж.ВременнаяРазница КАК ВременнаяРазница,
	ВыручкаИСебестоимостьПродаж.ПостояннаяРазница КАК ПостояннаяРазница,
	ВыручкаИСебестоимостьПродаж.СуммаВыручкиРегл КАК СуммаВыручкиРегл,
	ВыручкаИСебестоимостьПродаж.СебестоимостьРегл КАК СебестоимостьРегл,
	ВыручкаИСебестоимостьПродаж.Себестоимость КАК Себестоимость,
	ВыручкаИСебестоимостьПродаж.СебестоимостьБезНДС КАК СебестоимостьБезНДС,
	ВыручкаИСебестоимостьПродаж.Период КАК Период,
	ВыручкаИСебестоимостьПродаж.Регистратор КАК Регистратор,
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
	ВыручкаИСебестоимостьПродаж.ЗаказКлиента КАК ЗаказКлиента,
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
	ВыручкаИСебестоимостьПродаж.Подразделение КАК Подразделение,
	ВыручкаИСебестоимостьПродаж.ТипЗапасов КАК ТипЗапасов,
	ВыручкаИСебестоимостьПродаж.ВидЗапасов КАК ВидЗапасов,
	ВыручкаИСебестоимостьПродаж.Менеджер КАК Менеджер,
	ВыручкаИСебестоимостьПродаж.Склад КАК Склад,
	ВыручкаИСебестоимостьПродаж.Соглашение КАК Соглашение,
	ВыручкаИСебестоимостьПродаж.Договор КАК Договор,
	ВыручкаИСебестоимостьПродаж.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	ВыручкаИСебестоимостьПродаж.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
	ВыручкаИСебестоимостьПродаж.Количество КАК Количество,
	ВыручкаИСебестоимостьПродаж.СуммаВыручки КАК СуммаВыручки,
	ВыручкаИСебестоимостьПродаж.СуммаВыручкиБезНДС КАК СуммаВыручкиБезНДС
ПОМЕСТИТЬ ТаблицаОшибок
ИЗ
	РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж

УПОРЯДОЧИТЬ ПО
	ПостояннаяРазница УБЫВ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ТаблицаОшибок.МЕСЯЦ КАК МЕСЯЦ,
	ТаблицаОшибок.ВременнаяРазница КАК ВременнаяРазница,
	ТаблицаОшибок.ПостояннаяРазница КАК ПостояннаяРазница,
	ТаблицаОшибок.СуммаВыручкиРегл КАК СуммаВыручкиРегл,
	ТаблицаОшибок.СебестоимостьРегл КАК СебестоимостьРегл,
	ТаблицаОшибок.Себестоимость КАК Себестоимость,
	ТаблицаОшибок.СебестоимостьБезНДС КАК СебестоимостьБезНДС,
	ТаблицаОшибок.Период КАК Период,
	ТаблицаОшибок.Регистратор КАК Регистратор,
	ТаблицаОшибок.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
	ТаблицаОшибок.ЗаказКлиента КАК ЗаказКлиента,
	ТаблицаОшибок.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
	ТаблицаОшибок.Подразделение КАК Подразделение,
	ТаблицаОшибок.ТипЗапасов КАК ТипЗапасов,
	ТаблицаОшибок.ВидЗапасов КАК ВидЗапасов,
	ТаблицаОшибок.Менеджер КАК Менеджер,
	ТаблицаОшибок.Склад КАК Склад,
	ТаблицаОшибок.Соглашение КАК Соглашение,
	ТаблицаОшибок.Договор КАК Договор,
	ТаблицаОшибок.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	ТаблицаОшибок.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
	ТаблицаОшибок.Количество КАК Количество,
	ТаблицаОшибок.СуммаВыручки КАК СуммаВыручки,
	ТаблицаОшибок.СуммаВыручкиБезНДС КАК СуммаВыручкиБезНДС
ИЗ
	ТаблицаОшибок КАК ТаблицаОшибок
ГДЕ
	ТаблицаОшибок.Себестоимость > 100000
	ИЛИ ТаблицаОшибок.СебестоимостьРегл > 100000
	ИЛИ  ТаблицаОшибок.ПостояннаяРазница > 100000
Показать
georgebgk; murat_; Tonynya; Aggressorak; ASMIR.ru; gigansk; leossb; PLAstic; +8 Ответить
34. zoeh 31 16.03.24 06:42 Сейчас в теме
(17)
100000


Мне не помог этот запрос





При выполнении расчета диагностирована ошибка:
При выполнении подзапроса 8 (ВтБазаРаспределенияНаПродажи) произошла ошибка:
Ошибка при вызове метода контекста (Выполнить)
{ОбщийМодуль.РасчетСебестоимостиПрикладныеАлгоритмы.Модуль(17264)}:РезультатПодзапроса = Запрос.Выполнить();
{ОбщийМодуль.РасчетСебестоимостиПрикладныеАлгоритмы.Модуль(6768)}:ВыполнитьЗапросСЗамеромДляПротокола(ПараметрыРасчета, Запрос,,,, Пояснение);
{ОбщийМодуль.РасчетСебестоимостиПостатейныеЗатраты.Модуль(6699)}:ТекстЗапросаРаспределениеРасходовНаПродажи(ПараметрыРасчета));
{ОбщийМодуль.РасчетСебестоимостиПостатейныеЗатраты.Модуль(151)}:ПолучитьДанныеДляРаспределенияРасходовНаПродажу(ПараметрыРасчета);
{ОбщийМодуль.РасчетСебестоимости.Модуль(324)}:РасчетСебестоимостиПостатейныеЗатраты.РаспределениеПостатейныхРасходовНаПродажу(ПараметрыРасчета);
{ОбщийМодуль.РасчетСебестоимости.Модуль(485)}:РассчитатьВсе(ПараметрыЗапуска, ПараметрыРасчета, ПараметрыОтладки);
{ОбщийМодуль.РасчетСебестоимостиКорректировкаСтоимости.Модуль(424)}:РасчетСебестоимости.РассчитатьВсеВПопыткеИсключении(ПараметрыЗапуска);
{(1)}:РасчетСебестоимостиКорректировкаСтоимости.Выполнить_РасчетПартийИСебестоимости(Параметры[0])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5962)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{Обработка.ОперацииЗакрытияМесяца.МодульМенеджера(2048)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(
{ОбщийМодуль.ЗакрытиеМесяцаСервер.Модуль(3151)}:Обработки.ОперацииЗакрытияМесяца.ВыполнитьРасчетЭтапов(ПараметрыЗапуска);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 11.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

{ОбщийМодуль.РасчетСебестоимостиПрикладныеАлгоритмы.Модуль(17296)}:ВызватьИсключение ТекстДляПротокола;
{ОбщийМодуль.РасчетСебестоимостиПрикладныеАлгоритмы.Модуль(6768)}:ВыполнитьЗапросСЗамеромДляПротокола(ПараметрыРасчета, Запрос,,,, Пояснение);
{ОбщийМодуль.РасчетСебестоимостиПостатейныеЗатраты.Модуль(6699)}:ТекстЗапросаРаспределениеРасходовНаПродажи(ПараметрыРасчета));
{ОбщийМодуль.РасчетСебестоимостиПостатейныеЗатраты.Модуль(151)}:ПолучитьДанныеДляРаспределенияРасходовНаПродажу(ПараметрыРасчета);
{ОбщийМодуль.РасчетСебестоимости.Модуль(324)}:РасчетСебестоимостиПостатейныеЗатраты.РаспределениеПостатейныхРасходовНаПродажу(ПараметрыРасчета);
{ОбщийМодуль.РасчетСебестоимости.Модуль(485)}:РассчитатьВсе(ПараметрыЗапуска, ПараметрыРасчета, ПараметрыОтладки);
{ОбщийМодуль.РасчетСебестоимостиКорректировкаСтоимости.Модуль(424)}:РасчетСебестоимости.РассчитатьВсеВПопыткеИсключении(ПараметрыЗапуска);
{(1)}:РасчетСебестоимостиКорректировкаСтоимости.Выполнить_РасчетПартийИСебестоимости(Параметры[0])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5962)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{Обработка.ОперацииЗакрытияМесяца.МодульМенеджера(2048)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(
{ОбщийМодуль.ЗакрытиеМесяцаСервер.Модуль(3151)}:Обработки.ОперацииЗакрытияМесяца.ВыполнитьРасчетЭтапов(ПараметрыЗапуска);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
18. jefjef 10 29.05.18 17:32 Сейчас в теме
Смысл ошибки можно сформулировать проще.

Запрос не может выразить полученное при исполнении числовое значение, так как в результате получено число больше, чем разрешено условиями запроса.

Если будет конструкция ВЫРАЗИТЬ(1,0) а запросу попадется число 11, то он не сможет выразить его числом от 0 до 9.

Так то у вас все написано правильно, но к сути проблемы докопаться сложно.
user838522; +1 Ответить
20. svetanik 5 07.08.19 01:06 Сейчас в теме
Вот и мои столкнулись с той же ошибкой. Только при проведении Отчета производства за смену (УПП 1.3.120.1 на 8.2.19.130).
В запросе никаких ВЫРАЗИТЬ нет.
Прошу совета в том, как найти ошибку в учете, если есть. Или как поправить запрос:

//// ТекстЗапросаДокумент


ВЫБРАТЬ
	Док.Ссылка.Организация			КАК Организация,
	Док.Ссылка.Подразделение		КАК Подразделение,
	Док.Ссылка.ПодразделениеОрганизации	КАК ПодразделениеОрганизации,

	Док.НомерСтроки,
	ВЫБОР КОГДА Док.Ссылка.ИспользоватьНаработку ТОГДА
		Док.ВидВыпуска
	ИНАЧЕ
		&ВидВыпускаВыпуск		
	КОНЕЦ КАК ВидВыпуска,
	Док.Продукция,
	Док.ХарактеристикаПродукции,
	Док.СерияПродукции,
	Док.Спецификация,

	Док.Номенклатура,
	Док.Номенклатура.ВестиУчетПоСериямВНЗП КАК ВестиУчетПоСериямВНЗП,
	Док.ХарактеристикаНоменклатуры,
	ВЫБОР КОГДА Док.Номенклатура.ВестиУчетПоСериямВНЗП ТОГДА
		Док.СерияНоменклатуры
	ИНАЧЕ
		ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	КОНЕЦ КАК СерияНоменклатуры,
	Док.НоменклатурнаяГруппа,
	Док.СтатьяЗатрат,

	Док.СчетЗатрат,
	Док.СчетЗатратНУ,
	Док.СчетЗатрат КАК СчетУчета,
	Док.СчетЗатратНУ КАК СчетУчетаНУ,

	ВЫБОР КОГДА Док.Ссылка.ИспользоватьАналитикуНЗП ТОГДА
		Док.НоменклатурнаяГруппаНЗП 
	ИНАЧЕ
		Док.НоменклатурнаяГруппа
	КОНЕЦ КАК НоменклатурнаяГруппаНЗП,

	ВЫБОР КОГДА Док.ПодразделениеНЗП = &ПустоеПодразделение ИЛИ Не Док.Ссылка.ИспользоватьПодразделенияНЗП ТОГДА
		Док.Ссылка.Подразделение
	ИНАЧЕ
		Док.ПодразделениеНЗП
	КОНЕЦ КАК ПодразделениеНЗП,

	ВЫБОР КОГДА Док.ПодразделениеОрганизацииНЗП = &ПустоеПодразделениеОрганизации ИЛИ Не Док.Ссылка.ИспользоватьПодразделенияНЗП ТОГДА
		Док.Ссылка.ПодразделениеОрганизации
	ИНАЧЕ
		Док.ПодразделениеОрганизацииНЗП
	КОНЕЦ КАК ПодразделениеОрганизацииНЗП,

	ВЫБОР КОГДА Док.Ссылка.ИспользоватьЗаказы 
			И Док.Заказ ССЫЛКА Документ.ЗаказПокупателя 
			И Док.Заказ <> &ПустойЗаказПокупателя ТОГДА
		Док.Заказ

	КОГДА Док.Ссылка.ИспользоватьЗаказы 
			И Док.Заказ ССЫЛКА Документ.ЗаказНаПроизводство 
			И Док.Заказ <> &ПустойЗаказНаПроизводство
			И &УчетЗатратПоЗаказамНаПроизводство ТОГДА
		Док.Заказ
	ИНАЧЕ
		Неопределено
	КОНЕЦ КАК Заказ,

	ВЫБОР КОГДА Док.Ссылка.ИспользоватьЗаказы 
			И Док.Заказ ССЫЛКА Документ.ЗаказПокупателя 
			И Док.Заказ <> &ПустойЗаказПокупателя ТОГДА
		Док.Заказ

	КОГДА Док.Ссылка.ИспользоватьЗаказы 
			И Док.Заказ ССЫЛКА Документ.ЗаказНаПроизводство 
			И Док.Заказ <> &ПустойЗаказНаПроизводство
			И &УчетЗатратПоЗаказамНаПроизводствоРегл ТОГДА
		Док.Заказ
	ИНАЧЕ
		Неопределено
	КОНЕЦ КАК ЗаказРегл,

	ВЫБОР КОГДА Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.ЗаказНЗП ССЫЛКА Документ.ЗаказПокупателя
			И Док.ЗаказНЗП <> &ПустойЗаказПокупателя ТОГДА
		Док.ЗаказНЗП

	КОГДА Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.ЗаказНЗП ССЫЛКА Документ.ЗаказНаПроизводство 
			И Док.ЗаказНЗП <> &ПустойЗаказНаПроизводство
			И &УчетЗатратПоЗаказамНаПроизводство ТОГДА
		Док.ЗаказНЗП

	КОГДА Не Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.Заказ ССЫЛКА Документ.ЗаказПокупателя 
			И Док.Заказ <> &ПустойЗаказПокупателя ТОГДА
		Док.Заказ

	КОГДА Не Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.Заказ ССЫЛКА Документ.ЗаказНаПроизводство 
			И Док.Заказ <> &ПустойЗаказНаПроизводство
			И &УчетЗатратПоЗаказамНаПроизводство ТОГДА
		Док.Заказ
	ИНАЧЕ
		Неопределено
	КОНЕЦ КАК ЗаказНЗП,

	ВЫБОР КОГДА Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.ЗаказНЗП ССЫЛКА Документ.ЗаказПокупателя 
			И Док.ЗаказНЗП <> &ПустойЗаказПокупателя ТОГДА
		Док.ЗаказНЗП

	КОГДА Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.ЗаказНЗП ССЫЛКА Документ.ЗаказНаПроизводство 
			И Док.ЗаказНЗП <> &ПустойЗаказНаПроизводство
			И &УчетЗатратПоЗаказамНаПроизводствоРегл ТОГДА
		Док.ЗаказНЗП

	КОГДА Не Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.Заказ ССЫЛКА Документ.ЗаказПокупателя 
			И Док.Заказ <> &ПустойЗаказПокупателя ТОГДА
		Док.Заказ

	КОГДА Не Док.Ссылка.ИспользоватьАналитикуНЗП 
			И Док.Заказ ССЫЛКА Документ.ЗаказНаПроизводство 
			И Док.Заказ <> &ПустойЗаказНаПроизводство
			И &УчетЗатратПоЗаказамНаПроизводствоРегл ТОГДА
		Док.Заказ
	ИНАЧЕ
		Неопределено
	КОНЕЦ КАК ЗаказНЗПРегл,

	Неопределено КАК ТипСтоимости,
	Неопределено КАК КодОперации,

	Док.Количество * Док.Коэффициент /Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Количество,
	0 КАК Сумма,
	0 КАК СуммаРегл,
	0 КАК СуммаНал

ПОМЕСТИТЬ ТаблицаДокумента
ИЗ
	Документ.ОтчетПроизводстваЗаСмену.РаспределениеМатериалов КАК Док
ГДЕ
	Док.Ссылка = &Ссылка
	И Док.Ссылка.ИспользоватьМатериалы

//// ТекстЗапросаДокумент КОНЕЦ

/// ШапкаДокумента

ВЫБРАТЬ РАЗЛИЧНЫЕ
	РегистрАналитикаВидаУчета.Ссылка КАК АналитикаВидаУчета,
	РегистрАналитикаВидаУчетаРегл.Ссылка КАК АналитикаВидаУчетаРегл,
	РегистрАналитикаУчетаЗатрат.Ссылка КАК АналитикаУчетаЗатрат,
	РегистрАналитикаРаспределенияЗатрат.Ссылка КАК АналитикаРаспределенияЗатрат,
	РегистрАналитикаУчетаПартий.Ссылка КАК АналитикаУчетаПартий,
	
	РегистрАналитикаВидаУчета.Подразделение,
	РегистрАналитикаВидаУчетаРегл.ПодразделениеОрганизации,
	
	РегистрАналитикаУчетаЗатрат.Затрата,
	РегистрАналитикаУчетаЗатрат.ХарактеристикаЗатраты,
	РегистрАналитикаУчетаЗатрат.СерияЗатраты,
	РегистрАналитикаУчетаЗатрат.СтатьяЗатрат,
	
	РегистрАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа,
	РегистрАналитикаУчетаПартий.Заказ,

	РегистрАналитикаВидаУчетаРегл.СчетУчета,
	ВЫБОР КОГДА ТаблицаДокумента.СчетУчетаНУ = РегистрАналитикаВидаУчетаРегл.СчетУчетаНУ ТОГДА
		РегистрАналитикаВидаУчетаРегл.СчетУчетаНУ
	ИНАЧЕ
		Неопределено
	КОНЕЦ КАК СчетУчетаНУ
	
ПОМЕСТИТЬ ТаблицаАналитики
ИЗ
	ТаблицаДокумента КАК ТаблицаДокумента

	ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
	ПО
		РегистрАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Затраты)
		И РегистрАналитикаВидаУчета.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
		И ТаблицаДокумента.ПодразделениеНЗП = РегистрАналитикаВидаУчета.Подразделение
		И РегистрАналитикаВидаУчета.СчетУчета = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)
		И РегистрАналитикаВидаУчета.СчетУчетаНУ = ЗНАЧЕНИЕ(ПланСчетов.Налоговый.ПустаяСсылка)
		И РегистрАналитикаВидаУчета.Проект = Неопределено
		И РегистрАналитикаВидаУчета.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		
	ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчетаРегл
	ПО
		РегистрАналитикаВидаУчетаРегл.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Затраты)
		И ТаблицаДокумента.Организация = РегистрАналитикаВидаУчетаРегл.Организация
		И ТаблицаДокумента.ПодразделениеОрганизацииНЗП = РегистрАналитикаВидаУчетаРегл.ПодразделениеОрганизации
		И ТаблицаДокумента.СчетУчета = РегистрАналитикаВидаУчетаРегл.СчетУчета
		И РегистрАналитикаВидаУчетаРегл.Проект = Неопределено
		И РегистрАналитикаВидаУчетаРегл.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)

		
	ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
	ПО
		ТаблицаДокумента.СтатьяЗатрат = РегистрАналитикаУчетаЗатрат.СтатьяЗатрат
		И ТаблицаДокумента.Номенклатура = РегистрАналитикаУчетаЗатрат.Затрата
		И ТаблицаДокумента.ХарактеристикаНоменклатуры = РегистрАналитикаУчетаЗатрат.ХарактеристикаЗатраты
		И ТаблицаДокумента.СерияНоменклатуры = РегистрАналитикаУчетаЗатрат.СерияЗатраты
		И РегистрАналитикаУчетаЗатрат.ХарактерЗатрат = ЗНАЧЕНИЕ(Перечисление.ХарактерЗатрат.ПроизводственныеРасходы)
		
	ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрСведений.АналитикаРаспределенияЗатрат КАК РегистрАналитикаРаспределенияЗатрат
	ПО
		ТаблицаДокумента.НоменклатурнаяГруппаНЗП = РегистрАналитикаРаспределенияЗатрат.НоменклатурнаяГруппа
		И РегистрАналитикаРаспределенияЗатрат.Продукция = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		И РегистрАналитикаРаспределенияЗатрат.ХарактеристикаПродукции = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
		И РегистрАналитикаРаспределенияЗатрат.СерияПродукции = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
		И РегистрАналитикаРаспределенияЗатрат.Спецификация = ЗНАЧЕНИЕ(Справочник.СпецификацииНоменклатуры.ПустаяСсылка)
		
	ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
	ПО
		(ТаблицаДокумента.Заказ = РегистрАналитикаУчетаПартий.Заказ
		ИЛИ ТаблицаДокумента.ЗаказНЗП = РегистрАналитикаУчетаПартий.Заказ)
		И РегистрАналитикаУчетаПартий.ДоговорКомитента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
		И РегистрАналитикаУчетаПартий.ДоговорКомиссионера = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
		И РегистрАналитикаУчетаПартий.ДокументПередачи = ЗНАЧЕНИЕ(Документ.ПередачаМатериаловВЭксплуатацию.ПустаяСсылка)
		И РегистрАналитикаУчетаПартий.ФизЛицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
		И РегистрАналитикаУчетаПартий.НазначениеИспользования = ЗНАЧЕНИЕ(Справочник.НазначенияИспользования.ПустаяСсылка)
		И РегистрАналитикаУчетаПартий.СтатусПартии = ЗНАЧЕНИЕ(Перечисление.СтатусыПартийТоваров.ПустаяСсылка)
		
/// ШапкаДокумента  КОНЕЦ

////////////////////////////////////////
ВЫБРАТЬ
	УчетЗатрат.АналитикаВидаУчета,
	УчетЗатрат.АналитикаУчетаЗатрат,
	УчетЗатрат.АналитикаРаспределенияЗатрат,
	УчетЗатрат.АналитикаУчетаПартий,
	//ДляРеглУчета УчетЗатрат.СтоимостьНУОстаток,
	//ДляРеглУчета УчетЗатрат.КоличествоНУОстаток,
	УчетЗатрат.СтоимостьОстаток,
	УчетЗатрат.КоличествоОстаток
	
ПОМЕСТИТЬ УчетЗатрат
ИЗ
	РегистрНакопления.УчетЗатрат.Остатки(&КонДата, 
		(
		АналитикаВидаУчета,
		АналитикаУчетаЗатрат,
		АналитикаРаспределенияЗатрат,
		АналитикаУчетаПартий
		) В (
			ВЫБРАТЬ
				 АналитикаВидаУчета,
				//ДляРеглУчета АналитикаВидаУчетаРегл,
				АналитикаУчетаЗатрат,
				АналитикаРаспределенияЗатрат,
				АналитикаУчетаПартий
			ИЗ
				ТаблицаАналитики
			)
	) КАК УчетЗатрат
;
////////////////////////////////////////////////////////////­////////////////

ВЫБРАТЬ
	ТаблицаАналитики.Подразделение,
	ТаблицаАналитики.ПодразделениеОрганизации,
	
	ТаблицаАналитики.Затрата,
	ТаблицаАналитики.ХарактеристикаЗатраты,
	ТаблицаАналитики.СерияЗатраты,
	ТаблицаАналитики.СтатьяЗатрат,
	
	ТаблицаАналитики.НоменклатурнаяГруппа,
	ТаблицаАналитики.Заказ КАК Заказ,

	ТаблицаАналитики.СчетУчета,

	//ДляРеглУчета СУММА(
	//ДляРеглУчета 	ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА
	//ДляРеглУчета 		УчетЗатрат.СтоимостьНУОстаток
	//ДляРеглУчета 	ИНАЧЕ
	//ДляРеглУчета 		0
	//ДляРеглУчета 	КОНЕЦ
	//ДляРеглУчета ) КАК СтоимостьНУОстаток,

	//ДляРеглУчета СУММА(
	//ДляРеглУчета 	ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА
	//ДляРеглУчета 		УчетЗатрат.КоличествоНУОстаток
	//ДляРеглУчета 	ИНАЧЕ
	//ДляРеглУчета 		0
	//ДляРеглУчета 	КОНЕЦ
	//ДляРеглУчета ) КАК КоличествоНУОстаток,

	СУММА(УчетЗатрат.СтоимостьОстаток) КАК СтоимостьОстаток,
	СУММА(УчетЗатрат.КоличествоОстаток) КАК КоличествоОстаток

ПОМЕСТИТЬ ТаблицаСтоимостиЗатрат
ИЗ
	УчетЗатрат КАК УчетЗатрат
	
	ЛЕВОЕ СОЕДИНЕНИЕ
		ТаблицаАналитики КАК ТаблицаАналитики
	ПО
		 УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчета
		//ДляРеглУчета УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчетаРегл
		И УчетЗатрат.АналитикаУчетаЗатрат = ТаблицаАналитики.АналитикаУчетаЗатрат
		И УчетЗатрат.АналитикаРаспределенияЗатрат = ТаблицаАналитики.АналитикаРаспределенияЗатрат
		И УчетЗатрат.АналитикаУчетаПартий = ТаблицаАналитики.АналитикаУчетаПартий

СГРУППИРОВАТЬ ПО
	ТаблицаАналитики.Подразделение,
	ТаблицаАналитики.ПодразделениеОрганизации,
	
	ТаблицаАналитики.Затрата,
	ТаблицаАналитики.ХарактеристикаЗатраты,
	ТаблицаАналитики.СерияЗатраты,
	ТаблицаАналитики.СтатьяЗатрат,
	
	ТаблицаАналитики.НоменклатурнаяГруппа,
	ТаблицаАналитики.Заказ,
	ТаблицаАналитики.СчетУчета
;
////////////////////////////////////////////////////////////­////////////////
УНИЧТОЖИТЬ УчетЗатрат
;
//ТекстТаблицаСтоимостиРегл

ВЫБРАТЬ
	Док.*,
	Док.СтатьяЗатрат.ВидЗатрат КАК ВидЗатрат,
	Док.СтатьяЗатрат.СтатусМатериальныхЗатрат КАК СтатусМатериальныхЗатрат,
	Неопределено КАК СпособРаспределенияЗатрат,
	Док.Номенклатура КАК Затрата,
	Док.ХарактеристикаНоменклатуры КАК ХарактеристикаЗатраты,
	Док.СерияНоменклатуры КАК СерияЗатраты,
	ВЫБОР КОГДА Док.КодОперации <> Неопределено ТОГДА
		Док.КодОперации 
	ИНАЧЕ
   	&ПрямыеЗатраты
	КОНЕЦ КАК КодОперации,

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

	&Ссылка КАК ДокументВыпуска,

		ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА
			Док.Сумма
	 	КОГДА ТаблицаСтоимостиЗатратУУ.КоличествоОстаток = 0
				ИЛИ ТаблицаСтоимостиЗатратУУ.КоличествоОстаток ЕСТЬ NULL ТОГДА
			0
		ИНАЧЕ
			Док.Количество *
			ТаблицаСтоимостиЗатратУУ.СтоимостьОстаток /
			ТаблицаСтоимостиЗатратУУ.КоличествоОстаток
		КОНЕЦ КАК СуммаУУ,

	//ПрямыеЗатратыБУ	ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА
	//ПрямыеЗатратыБУ		Док.СуммаРегл
	//ПрямыеЗатратыБУ 	КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоОстаток = 0
	//ПрямыеЗатратыБУ			ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоОстаток ЕСТЬ NULL ТОГДА
	//ПрямыеЗатратыБУ		0
	//ПрямыеЗатратыБУ	ИНАЧЕ
	//ПрямыеЗатратыБУ		Док.Количество *
	//ПрямыеЗатратыБУ		ТаблицаСтоимостиЗатратРегл.СтоимостьОстаток /
	//ПрямыеЗатратыБУ		ТаблицаСтоимостиЗатратРегл.КоличествоОстаток
	//ПрямыеЗатратыБУ	КОНЕЦ КАК СуммаБУ,

	//ПрямыеЗатратыБУ	ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА
	//ПрямыеЗатратыБУ		Док.СуммаНал
	//ПрямыеЗатратыБУ 	КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток = 0
	//ПрямыеЗатратыБУ			ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток ЕСТЬ NULL ТОГДА
	//ПрямыеЗатратыБУ		0
	//ПрямыеЗатратыБУ	ИНАЧЕ
	//ПрямыеЗатратыБУ		Док.Количество *
	//ПрямыеЗатратыБУ		ТаблицаСтоимостиЗатратРегл.СтоимостьНУОстаток /
	//ПрямыеЗатратыБУ		ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток
	//ПрямыеЗатратыБУ	КОНЕЦ КАК СуммаНУ,

	//ФиксСтоимость		Док.Сумма КАК СуммаУУ,
	//ФиксСтоимость		Док.СуммаРегл КАК СуммаБУ,
	//ФиксСтоимость		Док.СуммаНал КАК СуммаНУ,

	//ПоНулевойУУ 		0 КАК СуммаУУ,
	 		0 КАК СуммаБУ,
	 		0 КАК СуммаНУ,

	Док.Количество

ИЗ 
	ТаблицаДокумента КАК Док

		ЛЕВОЕ СОЕДИНЕНИЕ 
			ТаблицаСтоимостиЗатрат КАК ТаблицаСтоимостиЗатратУУ
		ПО 
			Док.Номенклатура = ТаблицаСтоимостиЗатратУУ.Затрата
			И Док.ХарактеристикаНоменклатуры = ТаблицаСтоимостиЗатратУУ.ХарактеристикаЗатраты
			И Док.СерияНоменклатуры = ТаблицаСтоимостиЗатратУУ.СерияЗатраты
			И Док.СтатьяЗатрат = ТаблицаСтоимостиЗатратУУ.СтатьяЗатрат
			И Док.НоменклатурнаяГруппаНЗП = ТаблицаСтоимостиЗатратУУ.НоменклатурнаяГруппа
			И Док.ЗаказНЗП = ТаблицаСтоимостиЗатратУУ.Заказ
			И Док.ПодразделениеНЗП = ТаблицаСтоимостиЗатратУУ.Подразделение

	//ПрямыеЗатратыБУ	ЛЕВОЕ СОЕДИНЕНИЕ 
	//ПрямыеЗатратыБУ		ТаблицаСтоимостиЗатратРегл КАК ТаблицаСтоимостиЗатратРегл
	//ПрямыеЗатратыБУ	ПО 
	//ПрямыеЗатратыБУ		Док.Номенклатура = ТаблицаСтоимостиЗатратРегл.Затрата
	//ПрямыеЗатратыБУ		И Док.ХарактеристикаНоменклатуры = ТаблицаСтоимостиЗатратРегл.ХарактеристикаЗатраты
	//ПрямыеЗатратыБУ		И Док.СерияНоменклатуры = ТаблицаСтоимостиЗатратРегл.СерияЗатраты
	//ПрямыеЗатратыБУ		И Док.СтатьяЗатрат = ТаблицаСтоимостиЗатратРегл.СтатьяЗатрат
	//ПрямыеЗатратыБУ		И Док.НоменклатурнаяГруппаНЗП = ТаблицаСтоимостиЗатратРегл.НоменклатурнаяГруппа
	//ПрямыеЗатратыБУ		И Док.ЗаказНЗПРегл = ТаблицаСтоимостиЗатратРегл.ЗаказРегл
	//ПрямыеЗатратыБУ		И (Док.СчетЗатрат = ТаблицаСтоимостиЗатратРегл.СчетУчета
	//ПрямыеЗатратыБУ			ИЛИ ТаблицаСтоимостиЗатратРегл.СчетУчета = Неопределено)
	//ПрямыеЗатратыБУ		И Док.ПодразделениеОрганизацииНЗП = ТаблицаСтоимостиЗатратРегл.ПодразделениеОрганизации

УПОРЯДОЧИТЬ ПО
	Док.НомерСтроки

Показать
23. kabantus 26.10.19 21:35 Сейчас в теме
(20)
В УПП измените часть приведенного вами кода следующим образом:

&Ссылка КАК ДокументВыпуска,

        ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА
            Док.Сумма
         КОГДА ТаблицаСтоимостиЗатратУУ.КоличествоОстаток = 0
                ИЛИ ТаблицаСтоимостиЗатратУУ.КоличествоОстаток ЕСТЬ NULL ТОГДА
            0
        ИНАЧЕ
            Док.Количество *
            ВЫРАЗИТЬ(ТаблицаСтоимостиЗатратУУ.СтоимостьОстаток  КАК ЧИСЛО (27,10)) /
            ТаблицаСтоимостиЗатратУУ.КоличествоОстаток
        КОНЕЦ КАК СуммаУУ,

    //ПрямыеЗатратыБУ    ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА
    //ПрямыеЗатратыБУ        Док.СуммаРегл
    //ПрямыеЗатратыБУ     КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоОстаток = 0
    //ПрямыеЗатратыБУ            ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоОстаток ЕСТЬ NULL ТОГДА
    //ПрямыеЗатратыБУ        0
    //ПрямыеЗатратыБУ    ИНАЧЕ
    //ПрямыеЗатратыБУ        Док.Количество *
    //ПрямыеЗатратыБУ        ВЫРАЗИТЬ(ТаблицаСтоимостиЗатратРегл.СтоимостьОстаток КАК ЧИСЛО (27,10)) /
    //ПрямыеЗатратыБУ        ТаблицаСтоимостиЗатратРегл.КоличествоОстаток
    //ПрямыеЗатратыБУ    КОНЕЦ КАК СуммаБУ,

    //ПрямыеЗатратыБУ    ВЫБОР КОГДА Док.ТипСтоимости = ЗНАЧЕНИЕ(Перечисление.ВидыНормативнойСтоимостиПроизводства.Фиксированная) ТОГДА
    //ПрямыеЗатратыБУ        Док.СуммаНал
    //ПрямыеЗатратыБУ     КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток = 0
    //ПрямыеЗатратыБУ            ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток ЕСТЬ NULL ТОГДА
    //ПрямыеЗатратыБУ        0
    //ПрямыеЗатратыБУ    ИНАЧЕ
    //ПрямыеЗатратыБУ        Док.Количество *
    //ПрямыеЗатратыБУ        ВЫРАЗИТЬ(ТаблицаСтоимостиЗатратРегл.СтоимостьНУОстаток КАК ЧИСЛО (27,10)) /
    //ПрямыеЗатратыБУ        ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток
    //ПрямыеЗатратыБУ    КОНЕЦ КАК СуммаНУ,

    //ФиксСтоимость        Док.Сумма КАК СуммаУУ,
    //ФиксСтоимость        Док.СуммаРегл КАК СуммаБУ,
    //ФиксСтоимость        Док.СуммаНал КАК СуммаНУ,

    //ПоНулевойУУ         0 КАК СуммаУУ,
             0 КАК СуммаБУ,
             0 КАК СуммаНУ,

    Док.Количество
Показать


Число 27 в этом примере означает октиллион. По умолчанию в системе граничным значением является 15 - триллион (биллион).
Как только в запросе появляются значения по разрядности равные квадриллиону возникает ошибка.
Максимально допустимое значение 38 - это между 10^36 андециллионом и 10^39 дуодециллионом.

Также скорее всего потребуется увеличить разрядность ресурса Стоимость регистра накопления УчетЗатрат.

Когда увеличенное значение достигнет предела и ошибка снова появится можно в настройках учетной политики
сменить порядок формирования учетных цен с По прямым затратам на По нулевой стоимости (при этом программа перестанет переходить в ту ветку запроса, где ранее происходило деление и умножение гиганстких цифр).

Ну а если и это не подойдет, то придется разбираться с проводками документов на тестовой базе.
26. tango 544 13.08.20 17:13 Сейчас в теме
21. gusen_it 6 04.10.19 00:22 Сейчас в теме
Такая же проблема. Запрос к регистру ВыручкаИСебестоимостьПродаж показал что каждый документ записан 2 раза один раз с правильным количеством товара и суммы. а второй раз с правильной суммой а количество равное нулю. После отмены проведения и повторно ручного проведения запись документа в этом регистре с нулевым количеством исчезает. Это стандартное поведение или ошибка в системе?
22. TelekaevAB 07.10.19 10:24 Сейчас в теме
В конце сентября так же столкнулись с такой проблемой. Не решается СЛУ в процедуре расчета себестоимости, увеличение длины переменной не дает эффект, т.к. отклонение растет с каждой итерацией (хотя на рабочем бэкапе оно падает), т.е. сколько не увеличь столько оно и займет. Проблема появилась "вдруг" 27-го сентября. Всё это время пытался найти решения, пытался повторить положительный опыт найденный тут и на других форумах (исключение отрицательных остатков, исправление регистров...), но ничего не давало эффекта. Восстановили бэкап от 23-го сентября и попытался найти разницу между текущей не рабочей базой и рабочей от 23-го.
Разница была на входе условий для запуска процедуры решения СЛУ, она заключалась в том, что на рабочей базе датой начала использования партионного учета стояла дата "01.01.0001 0:00:00" (явно установили в момент заведения новой базы, а используем мы её с конца 09.2018), а в не рабочей дата начала партионного учета стояла "01.09.2019 0:00:00". Проведя эксперимент с бэкапом от 23.09.19 выяснил, что:
1. Если в настройках учета (в администрировании) выключить, а потом включить партионный учет, то дата начала сменится на текущий месяц.
2. При подобной операции на рабочем бэкапе воспроизвелась та же ошибка, что получена на боевой, т.е. я предполагаю уже основываясь на проведенном опыте, что именно отключение/включение партионного учета приводит с сбою расчета себестоимости.
Себестоимость считается по ФИФО взвешенная. Партионный учет версии 2.2. УТ версии 11.3.4.21 (есть изменения, процесс подготовки обновления идет, но пока не готовы обновить).
Попытался понять по какому принципу устанавливается дата начала ведения партионного учета (ведь интерфейс не дает её изменить, она не активна) и нашел процедуру соответствующую, вот кусочек кода:
	// Включение партионного учета.
			Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьПартионныйУчет") Тогда
				КонстантаИмя = "ИспользоватьПартионныйУчет";
				Константы.ИспользоватьПартионныйУчет.Установить(Истина);
			КонецЕсли;
			
			Если (РежимПартионногоУчета = "Версия22") <> ПолучитьФункциональнуюОпцию("ПартионныйУчетВерсии22") Тогда
				
				// Включение партионного учета версии 2.2.
				КонстантаИмя = "ПартионныйУчетВерсии22";
				Константы.ПартионныйУчетВерсии22.Установить(РежимПартионногоУчета = "Версия22");
			
				Если РежимПартионногоУчета = "Версия22" И НЕ ЗначениеЗаполнено(НаборКонстант.ДатаПереходаНаПартионныйУчетВерсии22) Тогда
					
					// Если в ИБ есть движения, то установим дату перехода на этот месяц; если движений нет, то пусть дата остается пустой
					Запрос = Новый Запрос;
					Запрос.Текст =
					"ВЫБРАТЬ ПЕРВЫЕ 1
					|	1
					|ИЗ
					|	РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров";
					
					УстановитьПривилегированныйРежим(Истина);
					ЕстьДвиженияСебестоимости = НЕ Запрос.Выполнить().Пустой();
					УстановитьПривилегированныйРежим(Ложь);
					
					Если ЕстьДвиженияСебестоимости Тогда
						НаборКонстант.ДатаПереходаНаПартионныйУчетВерсии22 = НачалоМесяца(ТекущаяДатаСеанса());
						СохранитьЗначениеРеквизита("НаборКонстант.ДатаПереходаНаПартионныйУчетВерсии22");
					КонецЕсли;
					
				КонецЕсли;
				
			КонецЕсли;
Показать

Я совсем слаб в коде 1с (да и в целом в рабоче 1с), поэтому делаю вывод просто из комментария - если движения были в базе, то делаем началом текущего месяца, если не были, то делаем датой 01.01.0001 0:00:00. Проверяет он по регистру себестоимости товаров судя по коду.
Теперь вопросы:
1. Как решить проблему не расчета себестоимости наиболее корректно? В каком направлении двигаться? Попытаться включить партионный учет задним числом? Если да то как? Или в каком направлении смотреть?
2. Почему так легко 1с дает сломать систему расчета себе стоимости? Никаких предупреждений она не выдает, в настройках просто переключатель, не нужно нажимать что-то типа "разрешить изменения", "могут быть последствия" и т.д.
Очень надеюсь на помощь, спасибо.
25. sokol_6630 3 11.06.20 05:08 Сейчас в теме
Привет.
Я выбирал количество записей в таблице регистра сведений,там было 13 миллионов записей и выдавалась такая же ошибка, помогло ВЫРАЗИТЬ (1 КАК Число(23,0))
28. user1385401 31.08.22 05:18 Сейчас в теме
Помог запрос по РН Выручка и себестоимость продаж, не закрывался май, он вывел на документ Отчет комиссионера -перепровела документ
и май закрылся
29. zoeh 31 14.10.22 09:11 Сейчас в теме
(28)какой конкретно запрос помог?
30. insurgut 208 10.11.23 15:27 Сейчас в теме
Поделюсь своим опытом... и тем, как SQL "понимает" арифметические операции. Точнее как она их решает "тупо в лоб".
Пример:
СУММА(ВЫРАЗИТЬ(РаспределениеЗапасов.Количество * ВЫБОР
				КОГДА РаспределениеЗапасов.КоличествоПродукции = 0
					ТОГДА 1
				ИНАЧЕ ПродукцияИЭтапы.Количество * ВЫБОР
						КОГДА ПродукцияИЭтапы.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
							ТОГДА ПродукцияИЭтапы.Номенклатура.КоэффициентЕдиницыДляОтчетов  / ПродукцияИЭтапы.Спецификация.ВесПродукции
						ИНАЧЕ 1
					КОНЕЦ / РаспределениеЗапасов.КоличествоПродукции
			КОНЕЦ КАК ЧИСЛО(15, 3))) КАК Количество
Показать


Решение в лоб ЧИСЛО(15, 3) заменить на ЧИСЛО(25, 3) - никак не решало проблемы.

Проблема в том, что получается SQL не решает операции внутри конструкции ВЫБОР, и в результате, если убрать условия, то выглядит он так:

СУММА(ВЫРАЗИТЬ(РаспределениеЗапасов.Количество
*
ПродукцияИЭтапы.Количество
*
ПродукцияИЭтапы.Номенклатура.КоэффициентЕдиницыДляОтчетов  / ПродукцияИЭтапы.Спецификация.ВесПродукции
/
РаспределениеЗапасов.КоличествоПродукции
КАК ЧИСЛО(15, 3))) КАК Количество
Показать


Т.е. в данном участке если бы решилось конструкция внутри ВЫБОР ПродукцияИЭтапы.Номенклатура.КоэффициентЕдиницыДляОтчетов / ПродукцияИЭтапы.Спецификация.ВесПродукции - проблем бы не было, там результат 0,1. Но так как решение идет по порядку, получается что
РаспределениеЗапасов.Количество * ПродукцияИЭтапы.Количество * ПродукцияИЭтапы.Номенклатура.КоэффициентЕдиницыДляОтчетов

выходит далеко за пределы 25 разрядов.
В результате пришлось в запросе
ПродукцияИЭтапы.Номенклатура.КоэффициентЕдиницыДляОтчетов  / ПродукцияИЭтапы.Спецификация.ВесПродукции

заменить на параметр &КоэффициентПродукции, который уже в параметры просто подставлять.

Не знаю понятно нет, может у кого-то частный случай будет походим, может поможет.
31. _Vovik 97 13.12.23 18:23 Сейчас в теме
УТ 11.4. Не проводился документ с аналогичной ошибкой. Тупо в закрытии месяца нажал расчет себестоимости в каждом не закрытом месяце до текущего. Помогло.
32. mrsmrv 127 25.12.23 07:00 Сейчас в теме
А мне помогло. В УНФ было 23.10, поставил 32.12 стало проводится.
35. volkov-mv 27.05.24 09:06 Сейчас в теме
Платформа 8.3.23.1865
1С:ERP. Управление холдингом (3.2.1.83)
Проблема возникла в бюджетировании при заполнении экземпляра отчета по умолчанию.
По шагам выполнялось следующее:
1. Из результата запроса выгружалась таблица значений (таблица коэффициентов).
2. Далее эта таблица (таблица коэффициентов) добавлялась через параметр запроса в следующий запрос.
3. При умножении сумм на значения из таблицы коэффицентов появляется данная ошибка.

Ошибка появлялась когда сумма превышала миллиард.
Коэффициент всегда был 1.
Выражения ВЫРАЗИТЬ() не было в запросе вообще.

Упрощенный пример кода приводящий к ошибке (можно просто в форме обработки выполнить и появится ошибка):

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	1 КАК Коэффициент";
	
ТаблицаКоэффициент = Запрос.Выполнить().Выгрузить();
	
Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ТаблицаКоэффициент.Коэффициент КАК Коэффициент
	|ПОМЕСТИТЬ ТаблицаКоэффициент
	|ИЗ
	|	&ТаблицаКоэффициент КАК ТаблицаКоэффициент
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	16000000 КАК Сумма
	|ПОМЕСТИТЬ Суммы
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	Суммы.Сумма * ТаблицаКоэффициент.Коэффициент КАК Результат
	|ИЗ
	|	Суммы КАК Суммы
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаКоэффициент КАК ТаблицаКоэффициент
	|		ПО (ИСТИНА)";

Запрос.УстановитьПараметр("ТаблицаКоэффициент", ТаблицаКоэффициент);

РезультатЗапроса = Запрос.Выполнить();
Показать


На на других платформах появлялась ошибка "Переполнение поля:"

Я как понял ошибка связана с тем, что при выгрузке таблицы значений из результата запроса разрядность квалификатора числа будет 0 (неограниченное).

Можно вместо выгрузки из результата запроса создать таблицу значений и задать квалификатор числа ограниченный, типа 15,4 или в текст запроса добавить
|    Суммы.Сумма * ВЫРАЗИТЬ(ТаблицаКоэффициент.Коэффициент КАК ЧИСЛО (15,4)) КАК Результат


Как-то связано мне кажется вот с этим:
Разраядность результата выражения в языке запросов
Вычисление разрядности при умножении.
Оставьте свое сообщение