Ошибка sql переполнение поля 1с унф

Я
   Santa4527

26.11.13 — 15:33

В Функция РешитьСЛУ() модуле объекта документа Закрытие Месяца выдает ошибку при «РасчетФактическойСебестоимости»

Выдает ошибку

{Обработка.ЗакрытиеМесяца.Форма.Форма.Форма(228)}: Ошибка при вызове метода контекста (Записать)

        ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);

по причине:

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’

по причине:

{Документ.ЗакрытиеМесяца.МодульОбъекта(859)}: Ошибка при вызове метода контекста (ВыполнитьПакет)

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

по причине:

Ошибка выполнения запроса

по причине:

Ошибка при выполнении операции над данными:

Ошибка SQL: Переполнение поля

по причине:

Ошибка SQL: Переполнение поля

В чем может быть проблема? Решение наверняка СЛУ наверняка принимает очень очень большое значение. В чем такое может быть? И куда смотреть?

   shuhard

1 — 26.11.13 — 15:35

(0) смотри в отрицательные остатки

РАУЗ на них может упасть

   Santa4527

2 — 26.11.13 — 15:48

(1)Там в результате запроса получается СуммаКвадратовОтклонений и эта переменная принимает не реальное значение. Больше 31 432 695 382 183 526 177 893 294,037480856. Это может быть из за отрицательный остатков в

РегистрНакопления.Запасы

   х86

3 — 26.11.13 — 15:50

(2)косяки в настройках

   Santa4527

4 — 26.11.13 — 15:54

(3) а что за косяк?

   х86

5 — 26.11.13 — 15:57

(4)предположу что ключи не правильно настроены, а так смотреть надо

   Maxus43

6 — 26.11.13 — 15:59

у нас такое было из-за ошибок округления, на старой конфе УПП 1.2, в 1.3 это починили, а потом вобще переписали алгоритмы

   Santa4527

7 — 26.11.13 — 16:09

Короче жесть.

   Maxus43

8 — 26.11.13 — 16:17

(7) можно конечно найти, но надо ковырять глубоко. Например для начала узнать номер итерации, в которой гаснет, туда воткнуть запрос для разузловки, чтоб выйти на кокнретную номенклатуру и т.д. Это после всяких плясок с отчетами, если уж совсем никак

   х86

9 — 26.11.13 — 16:23

(7)посмотри суммы по остаткам

   Santa4527

10 — 26.11.13 — 16:27

(8) Номер итерации 47

   Maxus43

11 — 26.11.13 — 16:32

(10) если там точку останова поставить — можно из временных таблиц вытащить данные. Сначала проверь простые пути, отчеты, анализ данных

   Santa4527

12 — 26.11.13 — 18:20

Запрос.Текст =

        «ВЫБРАТЬ

        |    «»РешитьСЛУ»» КАК Поле1,

        |    УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,

        |    СУММА(ВЫРАЗИТЬ(ВЫБОР

        |                КОГДА УзлыКорректировкиСтоимостиСписания.Количество <> 0

        |                    ТОГДА ТаблицаРешений.Сумма * ВЫБОР

        |                            КОГДА ВложенныйЗапрос.Количество = 0

        |                                ТОГДА ВложенныйЗапрос.Сумма

        |                            ИНАЧЕ ВложенныйЗапрос.Количество

        |                        КОНЕЦ / УзлыКорректировкиСтоимостиСписания.Количество

        |                ИНАЧЕ 0

        |            КОНЕЦ КАК ЧИСЛО(38, 10))) КАК Сумма

        |ПОМЕСТИТЬ ВременнаяТаблицаРешений

        |ИЗ

        |    РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания

        |        ЛЕВОЕ СОЕДИНЕНИЕ УчетЗатрат КАК ВложенныйЗапрос

        |            ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений

        |            ПО ВложенныйЗапрос.НомерУзла = ТаблицаРешений.НомерУзла

        |        ПО УзлыКорректировкиСтоимостиСписания.Организация = ВложенныйЗапрос.Организация

        |            И УзлыКорректировкиСтоимостиСписания.СтруктурнаяЕдиница = ВложенныйЗапрос.СтруктурнаяЕдиница

        |            И УзлыКорректировкиСтоимостиСписания.СчетУчета = ВложенныйЗапрос.СчетУчета

        |            И УзлыКорректировкиСтоимостиСписания.Номенклатура = ВложенныйЗапрос.Номенклатура

        |            И УзлыКорректировкиСтоимостиСписания.Характеристика = ВложенныйЗапрос.Характеристика

        |            И УзлыКорректировкиСтоимостиСписания.Партия = ВложенныйЗапрос.Партия

        |            И УзлыКорректировкиСтоимостиСписания.ЗаказПокупателя = ВложенныйЗапрос.ЗаказПокупателя

        |ГДЕ

        |    УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор

        |

        |СГРУППИРОВАТЬ ПО

        |    УзлыКорректировкиСтоимостиСписания.НомерУзла

        |

        |ИНДЕКСИРОВАТЬ ПО

        |    НомерУзла

        |;

        |

        |////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ

        |    СУММА((ЕСТЬNULL(ТаблицаРешений.Сумма, 0) — (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0))) * (ЕСТЬNULL(ТаблицаРешений.Сумма, 0) — (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0)))) КАК СуммаКвадратовОтклонений

        |ИЗ

        |    РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания

        |        ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений

        |        ПО (ВременнаяТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла)

        |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений

        |        ПО (ТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла)

        |ГДЕ

        |    УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор»;

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

Этот запрос выдает ошибку. Я уже не знаю куда смотреть.

   Santa4527

13 — 26.11.13 — 18:20

приблизительно после 47 итерации

   Михаил Козлов

14 — 26.11.13 — 19:23

Попробуйте обратиться в 1С. Может матрица прямых затрат плохо обусловлена, может сам метод неустойчив. Мне кажется, 1С должна быть заинтересована разобраться.

  

saaken

15 — 26.11.13 — 21:50

(0) отмени проведение половины документов и проверь еще раз

Прочитай, хотя бы, Митичкина «Разработка в системе 1С:Предприятие 8». Волшебник

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Добрый день. Помогите пожалуйста устранить ошибку. В УПП редакция 1.3 (1.3.6.1)  при проведении «Отчет производства за смену» 1с выдаёт ошибку:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.УправлениеПроизводствомДвиженияПоРегистрам.Модуль(3672)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Переполнение поля
по причине:
Ошибка SQL: Переполнение поля

Предполагаю что ошибка возникает из за следующих строк запроса:
   Док.Количество *
  ТаблицаСтоимостиЗатратУУ.СтоимостьОстаток /
  ТаблицаСтоимостиЗатратУУ.КоличествоОстаток

Полный запрос имеет вид:
ВЫБРАТЬ
   ТаблицаАналитики.Подразделение,
   ТаблицаАналитики.ПодразделениеОрганизации,

      ТаблицаАналитики.Затрата,
   ТаблицаАналитики.ХарактеристикаЗатраты,
   ТаблицаАналитики.СерияЗатраты,
   ТаблицаАналитики.СтатьяЗатрат,

      ТаблицаАналитики.НоменклатурнаяГруппа,
   ТаблицаАналитики.Заказ КАК Заказ,

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

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

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

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

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

      ) КАК УчетЗатрат

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

СГРУППИРОВАТЬ ПО
   ТаблицаАналитики.Подразделение,
   ТаблицаАналитики.ПодразделениеОрганизации,

      ТаблицаАналитики.Затрата,
   ТаблицаАналитики.ХарактеристикаЗатраты,
   ТаблицаАналитики.СерияЗатраты,
   ТаблицаАналитики.СтатьяЗатрат,

      ТаблицаАналитики.НоменклатурнаяГруппа,
   ТаблицаАналитики.Заказ,
   ТаблицаАналитики.СчетУчета
;
////////////////////////////////////////////////////////////////////////////

//ТекстТаблицаСтоимостиРегл

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

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

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

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

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

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

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

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

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

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

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

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

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

Опубликовано: 21.02.2018 /

В рамках проекта перехода с Управление торговлей 11.1 на Комплексная автоматизация 2.2 возникли с одной проблемой. Суть в следующем. Сам переход подразумевает обновление УТ на КА (как базовую бухгалтерию на проф) — никаких трудностей. Но перед переходом необходимо в УТ рассчитать себестоимость и закрыть месяца. У нас было обновление на 10 релизов примерно, после чего я и попытался сделать закрытие месяц. Вот тут и появилась ошибка:

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

С этого момента начался поиск решения проблемы. Что было проверено:

  • последняя платформа 1С
  • последний релиз конфигурации 1С
  • полное ТиИ (и отдельно пересчет итогов)
  • checkdb в ms sql server

Также был найден запрос, на котором была ошибка, и запросе, было исправлено выражение ВЫРАЗИТЬ(15,3) на ВЫРАЗИТЬ(25,3) — или что-то подобное. Такой способ рекомендуют во многих местах в сети (в том числе и на infostart). Но он тоже мне не помог

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

И проанализировал регистр «ВыручкаИСебестоимостьПродаж«. И ужаснулся — в полях себестоимости были миллиарды.

Тут я понял, что проблему нужно решать с другой стороны! После чего и начал искать с чего все началось — с каких документов. Где-то исправлял ошибки, где-то просто перепроводил документы и потом закрывал месяц. И все получилось. И самый правильный залог успеха — отсутствие отрицательных остатков!

Позже выложу обработку, которая упрощает механизм поиска и исправления данных ошибок.

  • Главная
  •  / 
  • Статьи
  •  / 
  • Программирование на 1С:Предприятие
  •  / 
  • Ошибка SQL: переполнение поля

Ошибка SQL: переполнение поля

Переполнение поля — это превышение размерности типа в SQL.

Пример причины такой ошибки может быть следующим:

Функция ВЫРАЗИТЬ ххх КАК ЧИСЛО(5, 2) может вызывать такую ошибку, если ххх будет больше 5 разрядов то выводится данная ошибка, нельзя же 100 000 выразить как 99 999. А вот с числами после запятой все просто — они просто округляются сколько бы их там не было.

Возврат к списку

   Santa4527

26.11.13 — 15:33

В Функция РешитьСЛУ() модуле объекта документа Закрытие Месяца выдает ошибку при «РасчетФактическойСебестоимости»

Выдает ошибку

{Обработка.ЗакрытиеМесяца.Форма.Форма.Форма(228)}: Ошибка при вызове метода контекста (Записать)

        ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);

по причине:

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’

по причине:

{Документ.ЗакрытиеМесяца.МодульОбъекта(859)}: Ошибка при вызове метода контекста (ВыполнитьПакет)

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

по причине:

Ошибка выполнения запроса

по причине:

Ошибка при выполнении операции над данными:

Ошибка SQL: Переполнение поля

по причине:

Ошибка SQL: Переполнение поля

В чем может быть проблема? Решение наверняка СЛУ наверняка принимает очень очень большое значение. В чем такое может быть? И куда смотреть?

   shuhard

1 — 26.11.13 — 15:35

(0) смотри в отрицательные остатки

РАУЗ на них может упасть

   Santa4527

2 — 26.11.13 — 15:48

(1)Там в результате запроса получается СуммаКвадратовОтклонений и эта переменная принимает не реальное значение. Больше 31 432 695 382 183 526 177 893 294,037480856. Это может быть из за отрицательный остатков в

РегистрНакопления.Запасы

   х86

3 — 26.11.13 — 15:50

(2)косяки в настройках

   Santa4527

4 — 26.11.13 — 15:54

(3) а что за косяк?

   х86

5 — 26.11.13 — 15:57

(4)предположу что ключи не правильно настроены, а так смотреть надо

   Maxus43

6 — 26.11.13 — 15:59

у нас такое было из-за ошибок округления, на старой конфе УПП 1.2, в 1.3 это починили, а потом вобще переписали алгоритмы

   Santa4527

7 — 26.11.13 — 16:09

Короче жесть.

   Maxus43

8 — 26.11.13 — 16:17

(7) можно конечно найти, но надо ковырять глубоко. Например для начала узнать номер итерации, в которой гаснет, туда воткнуть запрос для разузловки, чтоб выйти на кокнретную номенклатуру и т.д. Это после всяких плясок с отчетами, если уж совсем никак

   х86

9 — 26.11.13 — 16:23

(7)посмотри суммы по остаткам

   Santa4527

10 — 26.11.13 — 16:27

(8) Номер итерации 47

   Maxus43

11 — 26.11.13 — 16:32

(10) если там точку останова поставить — можно из временных таблиц вытащить данные. Сначала проверь простые пути, отчеты, анализ данных

   Santa4527

12 — 26.11.13 — 18:20

Запрос.Текст =

        «ВЫБРАТЬ

        |    «»РешитьСЛУ»» КАК Поле1,

        |    УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла,

        |    СУММА(ВЫРАЗИТЬ(ВЫБОР

        |                КОГДА УзлыКорректировкиСтоимостиСписания.Количество <> 0

        |                    ТОГДА ТаблицаРешений.Сумма * ВЫБОР

        |                            КОГДА ВложенныйЗапрос.Количество = 0

        |                                ТОГДА ВложенныйЗапрос.Сумма

        |                            ИНАЧЕ ВложенныйЗапрос.Количество

        |                        КОНЕЦ / УзлыКорректировкиСтоимостиСписания.Количество

        |                ИНАЧЕ 0

        |            КОНЕЦ КАК ЧИСЛО(38, 10))) КАК Сумма

        |ПОМЕСТИТЬ ВременнаяТаблицаРешений

        |ИЗ

        |    РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания

        |        ЛЕВОЕ СОЕДИНЕНИЕ УчетЗатрат КАК ВложенныйЗапрос

        |            ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений

        |            ПО ВложенныйЗапрос.НомерУзла = ТаблицаРешений.НомерУзла

        |        ПО УзлыКорректировкиСтоимостиСписания.Организация = ВложенныйЗапрос.Организация

        |            И УзлыКорректировкиСтоимостиСписания.СтруктурнаяЕдиница = ВложенныйЗапрос.СтруктурнаяЕдиница

        |            И УзлыКорректировкиСтоимостиСписания.СчетУчета = ВложенныйЗапрос.СчетУчета

        |            И УзлыКорректировкиСтоимостиСписания.Номенклатура = ВложенныйЗапрос.Номенклатура

        |            И УзлыКорректировкиСтоимостиСписания.Характеристика = ВложенныйЗапрос.Характеристика

        |            И УзлыКорректировкиСтоимостиСписания.Партия = ВложенныйЗапрос.Партия

        |            И УзлыКорректировкиСтоимостиСписания.ЗаказПокупателя = ВложенныйЗапрос.ЗаказПокупателя

        |ГДЕ

        |    УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор

        |

        |СГРУППИРОВАТЬ ПО

        |    УзлыКорректировкиСтоимостиСписания.НомерУзла

        |

        |ИНДЕКСИРОВАТЬ ПО

        |    НомерУзла

        |;

        |

        |////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ

        |    СУММА((ЕСТЬNULL(ТаблицаРешений.Сумма, 0) — (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0))) * (ЕСТЬNULL(ТаблицаРешений.Сумма, 0) — (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0)))) КАК СуммаКвадратовОтклонений

        |ИЗ

        |    РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания

        |        ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений

        |        ПО (ВременнаяТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла)

        |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений

        |        ПО (ТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла)

        |ГДЕ

        |    УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор»;

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

Этот запрос выдает ошибку. Я уже не знаю куда смотреть.

   Santa4527

13 — 26.11.13 — 18:20

приблизительно после 47 итерации

   Михаил Козлов

14 — 26.11.13 — 19:23

Попробуйте обратиться в 1С. Может матрица прямых затрат плохо обусловлена, может сам метод неустойчив. Мне кажется, 1С должна быть заинтересована разобраться.

  

saaken

15 — 26.11.13 — 21:50

(0) отмени проведение половины документов и проверь еще раз

Добрый день. Помогите пожалуйста устранить ошибку. В УПП редакция 1.3 (1.3.6.1)  при проведении «Отчет производства за смену» 1с выдаёт ошибку:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.УправлениеПроизводствомДвиженияПоРегистрам.Модуль(3672)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Переполнение поля
по причине:
Ошибка SQL: Переполнение поля

Предполагаю что ошибка возникает из за следующих строк запроса:
   Док.Количество *
  ТаблицаСтоимостиЗатратУУ.СтоимостьОстаток /
  ТаблицаСтоимостиЗатратУУ.КоличествоОстаток

Полный запрос имеет вид:
ВЫБРАТЬ
   ТаблицаАналитики.Подразделение,
   ТаблицаАналитики.ПодразделениеОрганизации,

      ТаблицаАналитики.Затрата,
   ТаблицаАналитики.ХарактеристикаЗатраты,
   ТаблицаАналитики.СерияЗатраты,
   ТаблицаАналитики.СтатьяЗатрат,

      ТаблицаАналитики.НоменклатурнаяГруппа,
   ТаблицаАналитики.Заказ КАК Заказ,

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

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

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

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

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

      ) КАК УчетЗатрат

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

СГРУППИРОВАТЬ ПО
   ТаблицаАналитики.Подразделение,
   ТаблицаАналитики.ПодразделениеОрганизации,

      ТаблицаАналитики.Затрата,
   ТаблицаАналитики.ХарактеристикаЗатраты,
   ТаблицаАналитики.СерияЗатраты,
   ТаблицаАналитики.СтатьяЗатрат,

      ТаблицаАналитики.НоменклатурнаяГруппа,
   ТаблицаАналитики.Заказ,
   ТаблицаАналитики.СчетУчета
;
////////////////////////////////////////////////////////////////////////////

//ТекстТаблицаСтоимостиРегл

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

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

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

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

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

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

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

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

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

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

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

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

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

ВЫБРАТЬ

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    

    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    

    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ КАК Заказ,

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

    //ДляРеглУчета СУММА(

    //ДляРеглУчета     ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

    //ДляРеглУчета         УчетЗатрат.СтоимостьНУОстаток

    //ДляРеглУчета     ИНАЧЕ

    //ДляРеглУчета         0

    //ДляРеглУчета     КОНЕЦ

    //ДляРеглУчета ) КАК СтоимостьНУОстаток,

    //ДляРеглУчета СУММА(

    //ДляРеглУчета     ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

    //ДляРеглУчета         УчетЗатрат.КоличествоНУОстаток

    //ДляРеглУчета     ИНАЧЕ

    //ДляРеглУчета         0

    //ДляРеглУчета     КОНЕЦ

    //ДляРеглУчета ) КАК КоличествоНУОстаток,

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

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

ПОМЕСТИТЬ ТаблицаСтоимостиЗатрат

ИЗ

    РегистрНакопления.УчетЗатрат.Остатки(&КонДата,

        (

        АналитикаВидаУчета,

        АналитикаУчетаЗатрат,

        АналитикаРаспределенияЗатрат,

        АналитикаУчетаПартий

        ) В (

            ВЫБРАТЬ

                 АналитикаВидаУчета,

                //ДляРеглУчета АналитикаВидаУчетаРегл,

                АналитикаУчетаЗатрат,

                АналитикаРаспределенияЗатрат,

                АналитикаУчетаПартий

            ИЗ

                ТаблицаАналитики

            )

    
    ) КАК УчетЗатрат

    

    ЛЕВОЕ СОЕДИНЕНИЕ

        ТаблицаАналитики КАК ТаблицаАналитики

    ПО

         УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчета

        //ДляРеглУчета УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчетаРегл

        И УчетЗатрат.АналитикаУчетаЗатрат = ТаблицаАналитики.АналитикаУчетаЗатрат

        И УчетЗатрат.АналитикаРаспределенияЗатрат = ТаблицаАналитики.АналитикаРаспределенияЗатрат

        И УчетЗатрат.АналитикаУчетаПартий = ТаблицаАналитики.АналитикаУчетаПартий

СГРУППИРОВАТЬ ПО

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    

    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    

    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ,

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

;

////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    

    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    

    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ КАК ЗаказРегл,

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

     СУММА(

         ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

             УчетЗатрат.СтоимостьНУОстаток

         ИНАЧЕ

             0

         КОНЕЦ

     ) КАК СтоимостьНУОстаток,

     СУММА(

         ВЫБОР КОГДА ТаблицаАналитики.СчетУчетаНУ <> Неопределено ТОГДА

             УчетЗатрат.КоличествоНУОстаток

         ИНАЧЕ

             0

         КОНЕЦ

     ) КАК КоличествоНУОстаток,

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

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

ПОМЕСТИТЬ ТаблицаСтоимостиЗатратРегл

ИЗ

    РегистрНакопления.УчетЗатратРегл.Остатки(&КонДата,

        (

        АналитикаВидаУчета,

        АналитикаУчетаЗатрат,

        АналитикаРаспределенияЗатрат,

        АналитикаУчетаПартий

        ) В (

            ВЫБРАТЬ

                //ДляУпрУчета АналитикаВидаУчета,

                 АналитикаВидаУчетаРегл,

                АналитикаУчетаЗатрат,

                АналитикаРаспределенияЗатрат,

                АналитикаУчетаПартий

            ИЗ

                ТаблицаАналитики

            )

    
    ) КАК УчетЗатрат

    

    ЛЕВОЕ СОЕДИНЕНИЕ

        ТаблицаАналитики КАК ТаблицаАналитики

    ПО

        //ДляУпрУчета УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчета

         УчетЗатрат.АналитикаВидаУчета = ТаблицаАналитики.АналитикаВидаУчетаРегл

        И УчетЗатрат.АналитикаУчетаЗатрат = ТаблицаАналитики.АналитикаУчетаЗатрат

        И УчетЗатрат.АналитикаРаспределенияЗатрат = ТаблицаАналитики.АналитикаРаспределенияЗатрат

        И УчетЗатрат.АналитикаУчетаПартий = ТаблицаАналитики.АналитикаУчетаПартий

СГРУППИРОВАТЬ ПО

    ТаблицаАналитики.Подразделение,

    ТаблицаАналитики.ПодразделениеОрганизации,

    

    ТаблицаАналитики.Затрата,

    ТаблицаАналитики.ХарактеристикаЗатраты,

    ТаблицаАналитики.СерияЗатраты,

    ТаблицаАналитики.СтатьяЗатрат,

    

    ТаблицаАналитики.НоменклатурнаяГруппа,

    ТаблицаАналитики.Заказ,

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

;

////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

    Док.*,

    Док.СтатьяЗатрат.ВидЗатрат КАК ВидЗатрат,

    Док.СтатьяЗатрат.СтатусМатериальныхЗатрат КАК СтатусМатериальныхЗатрат,

    Неопределено КАК СпособРаспределенияЗатрат,

    Док.Номенклатура КАК Затрата,

    Док.ХарактеристикаНоменклатуры КАК ХарактеристикаЗатраты,

    Док.СерияНоменклатуры КАК СерияЗатраты,

    ВЫБОР КОГДА Док.КодОперации <> Неопределено ТОГДА

        Док.КодОперации

    ИНАЧЕ

       &ПрямыеЗатраты

    КОНЕЦ КАК КодОперации,

    ВЫБОР КОГДА Док.Заказ ССЫЛКА Документ.ЗаказПокупателя

        И Док.Заказ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.Переработка)

    ТОГДА

        ЗНАЧЕНИЕ(Перечисление.ВариантыВыпускаПродукции.ПродукцияИзДавальческогоСырья)

    ИНАЧЕ

          Неопределено

    КОНЕЦ КАК ВариантВыпускаПродукции,

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

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

            Док.Сумма

         КОГДА ТаблицаСтоимостиЗатратУУ.КоличествоОстаток = 0

                ИЛИ ТаблицаСтоимостиЗатратУУ.КоличествоОстаток ЕСТЬ NULL ТОГДА

            0

        ИНАЧЕ

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

            ТаблицаСтоимостиЗатратУУ.СтоимостьОстаток /

            ТаблицаСтоимостиЗатратУУ.КоличествоОстаток

        КОНЕЦ КАК СуммаУУ,

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

            Док.СуммаРегл

         КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоОстаток = 0

                ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоОстаток ЕСТЬ NULL ТОГДА

            0

        ИНАЧЕ

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

            ТаблицаСтоимостиЗатратРегл.СтоимостьОстаток /

            ТаблицаСтоимостиЗатратРегл.КоличествоОстаток

        КОНЕЦ КАК СуммаБУ,

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

            Док.СуммаНал

         КОГДА ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток = 0

                ИЛИ ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток ЕСТЬ NULL ТОГДА

            0

        ИНАЧЕ

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

            ТаблицаСтоимостиЗатратРегл.СтоимостьНУОстаток /

            ТаблицаСтоимостиЗатратРегл.КоличествоНУОстаток

        КОНЕЦ КАК СуммаНУ,

    //ФиксСтоимость        Док.Сумма КАК СуммаУУ,

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

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

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

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

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

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

ИЗ

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

        ЛЕВОЕ СОЕДИНЕНИЕ

            ТаблицаСтоимостиЗатрат КАК ТаблицаСтоимостиЗатратУУ

        ПО

            Док.Номенклатура = ТаблицаСтоимостиЗатратУУ.Затрата

            И Док.ХарактеристикаНоменклатуры = ТаблицаСтоимостиЗатратУУ.ХарактеристикаЗатраты

            И Док.СерияНоменклатуры = ТаблицаСтоимостиЗатратУУ.СерияЗатраты

            И Док.СтатьяЗатрат = ТаблицаСтоимостиЗатратУУ.СтатьяЗатрат

            И Док.НоменклатурнаяГруппаНЗП = ТаблицаСтоимостиЗатратУУ.НоменклатурнаяГруппа

            И Док.ЗаказНЗП = ТаблицаСтоимостиЗатратУУ.Заказ

            И Док.ПодразделениеНЗП = ТаблицаСтоимостиЗатратУУ.Подразделение

        ЛЕВОЕ СОЕДИНЕНИЕ

            ТаблицаСтоимостиЗатратРегл КАК ТаблицаСтоимостиЗатратРегл

        ПО

            Док.Номенклатура = ТаблицаСтоимостиЗатратРегл.Затрата

            И Док.ХарактеристикаНоменклатуры = ТаблицаСтоимостиЗатратРегл.ХарактеристикаЗатраты

            И Док.СерияНоменклатуры = ТаблицаСтоимостиЗатратРегл.СерияЗатраты

            И Док.СтатьяЗатрат = ТаблицаСтоимостиЗатратРегл.СтатьяЗатрат

            И Док.НоменклатурнаяГруппаНЗП = ТаблицаСтоимостиЗатратРегл.НоменклатурнаяГруппа

            И Док.ЗаказНЗПРегл = ТаблицаСтоимостиЗатратРегл.ЗаказРегл

            И (Док.СчетЗатрат = ТаблицаСтоимостиЗатратРегл.СчетУчета

                ИЛИ ТаблицаСтоимостиЗатратРегл.СчетУчета = Неопределено)

            И Док.ПодразделениеОрганизацииНЗП = ТаблицаСтоимостиЗатратРегл.ПодразделениеОрганизации

УПОРЯДОЧИТЬ ПО

    Док.НомерСтроки

  • Ошибка spn 1387 камаз 5490
  • Ошибка srs mercedes как сбросить
  • Ошибка sql переполнение поля 1с при закрытии месяца
  • Ошибка spn 1378 fmi 31
  • Ошибка srs mercedes w245