вот запрос на который ругается и не может выполнить
Запрос = Новый Запрос(»
|ВЫБРАТЬ
| ВременнаяТаблицаТовары.Индекс КАК Индекс,
| ВременнаяТаблицаТовары.Номенклатура КАК Номенклатура,
| ВременнаяТаблицаТовары.Характеристика КАК Характеристика,
| ВременнаяТаблицаТовары.ВидЦены КАК ВидЦены,
| ВременнаяТаблицаТовары.Цена КАК Цена,
| ВременнаяТаблицаТовары.Упаковка КАК Упаковка,
| ВременнаяТаблицаТовары.ЦенаИзмененаВручную КАК ЦенаИзмененаВручную
|ПОМЕСТИТЬ
| ВременнаяТаблицаТовары
|ИЗ
| &Товары КАК ВременнаяТаблицаТовары
|ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, ВидЦены
|;
|ВЫБРАТЬ
| Товары.Индекс КАК Индекс,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Товары.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
| ВЫБОР
| КОГДА Товары.Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ОбщиеДляВидаНоменклатуры)
| ТОГДА ИСТИНА
| КОГДА Товары.Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ИндивидуальныеДляНоменклатуры)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ХарактеристикиИспользуются,
| Товары.ВидЦены КАК ВидЦены,
| Товары.Цена КАК Цена,
| Товары.ЦенаИзмененаВручную КАК ЦенаИзмененаВручную,
| ВЫБОР
| КОГДА ЦеныНоменклатуры.Упаковка = Товары.Упаковка
| ТОГДА ЦеныНоменклатуры.Цена
| ИНАЧЕ ЦеныНоменклатуры.Цена / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) * ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1)
| КОНЕЦ КАК ДействующаяЦена,
| ВЫРАЗИТЬ(ВЫБОР
| КОГДА ЦеныНоменклатуры.Цена <> 0
| ТОГДА 100 * (Товары.Цена — ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатуры.Упаковка, &ПустаяУпаковка) = Товары.Упаковка
| ТОГДА ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)
| ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) * ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1)
| КОНЕЦ) / ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатуры.Упаковка, &ПустаяУпаковка) = Товары.Упаковка
| ТОГДА ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)
| ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) * ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1)
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК ЧИСЛО(19, 2)) КАК Процент,
| Товары.Упаковка КАК Упаковка
|ИЗ
| ВременнаяТаблицаТовары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
| ПО (ЦеныНоменклатуры.ВидЦены = Товары.ВидЦены)
| И (ЦеныНоменклатуры.Характеристика = Товары.Характеристика)
| И (ЦеныНоменклатуры.Номенклатура = Товары.Номенклатура)
| И (ЦеныНоменклатуры.Период В
| (ВЫБРАТЬ
| МАКСИМУМ(Цены.Период)
| ИЗ
| РегистрСведений.ЦеныНоменклатуры КАК Цены
| ГДЕ
| Цены.ВидЦены = Товары.ВидЦены
| И Цены.Номенклатура = Товары.Номенклатура
| И Цены.Характеристика = Товары.Характеристика
| И Цены.Период <= &Дата))
|
|УПОРЯДОЧИТЬ ПО
| Индекс
|ИТОГИ
| МИНИМУМ(ЕдиницаИзмерения)
|ПО
| Номенклатура,
| Характеристика
|»);
20.06.18 — 09:44
Доброе утро,
посоветуйте пожалуйста что можно попробовать.
Розница 2.2, в нее конвертацией из 7.7 загружена Установка цен, пустых строк в ТЧ нет, заполнены цены, единицы измерения.
При открытии загруженного документа вылетает ошибка Деление на ноль, если этот же док Скопировать, то форму создания скопированного открывает, тч заполнена как и должна, не изменяя ничего сохраняю копию, она открывается, все хорошо. Что не так может быть с загруженным документом? как понимаю при открытии формы чего-то не хватает, но чего…
вот ошибка
{Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента.Форма(3665)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Деление на 0
по причине:
Ошибка SQL: Деление на 0
по причине:
Деление на 0 значения типа Numeric
вот запрос на который ругается и не может выполнить
Запрос = Новый Запрос(»
|ВЫБРАТЬ
| ВременнаяТаблицаТовары.Индекс КАК Индекс,
| ВременнаяТаблицаТовары.Номенклатура КАК Номенклатура,
| ВременнаяТаблицаТовары.Характеристика КАК Характеристика,
| ВременнаяТаблицаТовары.ВидЦены КАК ВидЦены,
| ВременнаяТаблицаТовары.Цена КАК Цена,
| ВременнаяТаблицаТовары.Упаковка КАК Упаковка,
| ВременнаяТаблицаТовары.ЦенаИзмененаВручную КАК ЦенаИзмененаВручную
|ПОМЕСТИТЬ
| ВременнаяТаблицаТовары
|ИЗ
| &Товары КАК ВременнаяТаблицаТовары
|ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, ВидЦены
|;
|ВЫБРАТЬ
| Товары.Индекс КАК Индекс,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Характеристика КАК Характеристика,
| Товары.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Товары.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
| ВЫБОР
| КОГДА Товары.Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ОбщиеДляВидаНоменклатуры)
| ТОГДА ИСТИНА
| КОГДА Товары.Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ИндивидуальныеДляНоменклатуры)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ХарактеристикиИспользуются,
| Товары.ВидЦены КАК ВидЦены,
| Товары.Цена КАК Цена,
| Товары.ЦенаИзмененаВручную КАК ЦенаИзмененаВручную,
| ВЫБОР
| КОГДА ЦеныНоменклатуры.Упаковка = Товары.Упаковка
| ТОГДА ЦеныНоменклатуры.Цена
| ИНАЧЕ ЦеныНоменклатуры.Цена / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) * ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1)
| КОНЕЦ КАК ДействующаяЦена,
| ВЫРАЗИТЬ(ВЫБОР
| КОГДА ЦеныНоменклатуры.Цена <> 0
| ТОГДА 100 * (Товары.Цена — ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатуры.Упаковка, &ПустаяУпаковка) = Товары.Упаковка
| ТОГДА ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)
| ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) * ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1)
| КОНЕЦ) / ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатуры.Упаковка, &ПустаяУпаковка) = Товары.Упаковка
| ТОГДА ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)
| ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) / ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент, 1) * ЕСТЬNULL(Товары.Упаковка.Коэффициент, 1)
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК ЧИСЛО(19, 2)) КАК Процент,
| Товары.Упаковка КАК Упаковка
|ИЗ
| ВременнаяТаблицаТовары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
| ПО (ЦеныНоменклатуры.ВидЦены = Товары.ВидЦены)
| И (ЦеныНоменклатуры.Характеристика = Товары.Характеристика)
| И (ЦеныНоменклатуры.Номенклатура = Товары.Номенклатура)
| И (ЦеныНоменклатуры.Период В
| (ВЫБРАТЬ
| МАКСИМУМ(Цены.Период)
| ИЗ
| РегистрСведений.ЦеныНоменклатуры КАК Цены
| ГДЕ
| Цены.ВидЦены = Товары.ВидЦены
| И Цены.Номенклатура = Товары.Номенклатура
| И Цены.Характеристика = Товары.Характеристика
| И Цены.Период <= &Дата))
|
|УПОРЯДОЧИТЬ ПО
| Индекс
|ИТОГИ
| МИНИМУМ(ЕдиницаИзмерения)
|ПО
| Номенклатура,
| Характеристика
|»);
Деление на 0: как исправить ошибку в программах 1С?
- Опубликовано 25.01.2022 16:09
- Автор: Administrator
- Просмотров: 15349
Совсем скоро предстоит начислять зарплату за январь в программах 1С. И большинство расчетчиков и бухгалтеров столкнутся с такой ошибкой в базах как «Деление на 0». Почему это происходит и как самостоятельно, не прибегая к помощи программистов, исправить самую частую ошибку января любого года расскажем в данной публикации.
Итак, ошибка выглядит следующим образом:
Возникает она потому, что не указана норма дней на новый календарный год.
Есть несколько причин почему так происходит:
1. Не заполнены графики работы на новый календарный год – это самая популярная ситуация.
В 1С: ЗУП ред. 3.1 они находятся в разделе «Настройка» – «Предприятие» — «Графики работы сотрудников», в 1С: Бухгалтерии предприятия ред. 3.0 — в разделе «Зарплата и кадры» — «Справочники и настройки» — «Графики работы».
По кнопке «Заполнить» сформируется график и ошибка уйдет.
Такие манипуляции необходимо сделать со всеми введенными графиками, в том числе индивидуальными.
2. Неверно заполнен производственный календарь
В вышеуказанных разделах 1С есть производственные календари. Редко, но бывает, что ошибка деления на 0 происходит из-за некорректно заполненного календаря.
На скриншоте приведен календарь на следующий 2023 год. Видите, он полностью красный? Именно так и выглядит эта ошибка. Разработчики к концу 2022 года ее поправят, и норма дней будет считаться корректно.

3. В графике работ все дни помечены как выходные
Да, такое тоже бывает. Иногда пользователи вводят индивидуальные графики сотрудникам, «играются» с их заполнением, но не всегда программа это понимает и порой выдает ошибку деления на 0.
4. Ошибка в формуле расчета
Иногда пользователю необходимо считать зарплату по своим индивидуальным формулам расчета. Но зачастую формула вводится неверно, отсюда и возникает эта ошибка. В этом случае мы рекомендуем обращаться к консультантам 1С. Возможно вашу формулу можно настроить штатными механизмами 1С.
Тут же стоит сказать еще об одной вытекающей из этого пункта ошибке — не верно настроен приоритет видов начислений. Именно в случае когда создается много начислений со своими формулами расчета они начинают конфликтовать со стандартным начислением оплаты по окладу.
Так что, друзья, не выдумываем велосипед там, где его давно изобрели, а обращаемся к специалистам 1С.
5. В редких случаях такая ошибка возникает в следствие экстренного отключения электроэнергии, аварийного завершения 1С. В этом случае необходимо почистить кэш и прибегнуть к тестированию базы 1С.
Автор статьи: Ирина Плотникова
Понравилась статья? Подпишитесь на рассылку новых материалов
Добавить комментарий
Проблема
При формировании документа Расчет и установка себестоимости в Розница 2.2.7.39 летит ошибка, в серверном варианте:
{ОбщийМодуль.ЗапасыСервер.Модуль(437)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Деление на 0
В файловом варианте:
Деление на 0 значения типа Numeric
Решение
Когда не формируется себестоимость это печальбеда для руководителя, но это нормально, если магазины живут от инвентаризации до инвентаризации и на складах множество номенклатуры с минусовыми остатками. Программа не посчитает себестоимость, так как в формуле ниже нет проверки деления на ноль:
СУММА(СебестоимостьПоПоступлениям.СуммаОборот) / СУММА(СебестоимостьПоПоступлениям.Количество) КАК Стоимость
Решение есть, идём в конфигуратор в общий модуль ЗапасыСервер.
Нас интересует Функция СформироватьУзлыКорректировкиСписанияСтоимости
В ней ищем Запрос:
СГРУППИРОВАТЬ ПО
СебестоимостьПоПоступлениям.Магазин,
СебестоимостьПоПоступлениям.Номенклатура,
СебестоимостьПоПоступлениям.Характеристика,
СебестоимостьПоПоступлениям.МагазинОтправитель
Никакой проверки 1Сниками на нулевые значения не написано, поэтому допишем её:
СГРУППИРОВАТЬ ПО
СебестоимостьПоПоступлениям.Магазин,
СебестоимостьПоПоступлениям.Номенклатура,
СебестоимостьПоПоступлениям.Характеристика,
СебестоимостьПоПоступлениям.МагазинОтправительИМЕЮЩИЕ
СУММА(СебестоимостьПоПоступлениям.Количество) <> 0
Все, теперь деления на ноль не будет и себестоимость будет корректно формироваться.
+3
Это сообщение возникает в том случае, если в алгоритме конфигурации Используется деление и не выполняется проверка значения делителя. Обычно эта ошибка возникает из-за того, что не заполнены какие-либо данные (сумма, количество, коэффициенты и т.п.). Необходимые для работы алгоритма данные должны быть заполнены, например, в документе или справочнике, элемент которого выбран в документе. Обычно эта проблема решается вводом необходимых для работы алгоритма данных и повторным запуском алгоритма (формирования отчета или проведения документов).
Решение:
в коде
Код 1C v 8.х
//Просто проверка на то что Делитель не равен 0
Если Число(ШиринаБумаги) <> 0 Тогда
КолвоБумСПриладкой = КолвоБумаги / Число(ШиринаБумаги);
КонецЕсли;
в запросе:
Код 1C v 8.х
ВЫБОР
КОГДА ПартииТоваровНаСкладахОстатки.КоличествоОстаток = 0 ТОГДА 0
ИНАЧЕ ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0)
КОНЕЦ КАК Себестоимость
Позвонил клиент с ошибкой расчета себестоимости в 1с Розница 2.2.7.39
Сама ошибка
Цитата:
{ОбщийМодуль.ЗапасыСервер.Модуль(437)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Деление на 0
по причине:
Ошибка SQL: Деление на 0
по причине:
Деление на 0 значения типа Numeric
Посмотрел в конфигуратор.
В общем модуле ЗапасыСервер в процедуре
СформироватьУзлыКорректировкиСписанияСтоимости используется следующий запрос:
Даже простой взгляд видит, что нет проверки на 0 для СУММА(СебестоимостьПоПоступлениям.Количество) в выражении
Код:
СУММА(СебестоимостьПоПоступлениям.СуммаОборот) / СУММА(СебестоимостьПоПоступлениям.Количество) КАК Стоимость,
Обходится через расширение.
В расширении изменяем эту строчку на
Код:
ВЫБОР КОГДА СУММА(СебестоимостьПоПоступлениям.Количество) = 0 ТОГДА 0 ИНАЧЕ СУММА(СебестоимостьПоПоступлениям.Количество) КОНЕЦ КАК Стоимость,
Или изменить (добавить) условие (наверное, это даже правильнее)
Было:
Код:
СГРУППИРОВАТЬ ПО СебестоимостьПоПоступлениям.Магазин, СебестоимостьПоПоступлениям.Номенклатура, СебестоимостьПоПоступлениям.Характеристика, СебестоимостьПоПоступлениям.МагазинОтправитель
Стало:
Код:
СГРУППИРОВАТЬ ПО СебестоимостьПоПоступлениям.Магазин, СебестоимостьПоПоступлениям.Номенклатура, СебестоимостьПоПоступлениям.Характеристика, СебестоимостьПоПоступлениям.МагазинОтправитель ИМЕЮЩИЕ СУММА(СебестоимостьПоПоступлениям.Количество) <> 0
Само исправление, не снимая конфигурации с поддержки, делается через расширение (во вложении — расширение, в котором для строк с нулевым количество ставится нулевая себестоимость, кто захочет под себя переделать на неучитывание таких строк — решение так же описано в данном топике).
При подключении расширения снимаем «птичку» безопасного режима, перезапускаем 1с.
-
Пришла на предприятие, тут же посадили исправлять ошибку сделанную прошлым программистом, я в программировании 1с невзубногой, думала почитаю — разберусь, а не тут то было.
В общем по теме.
Директору нужно было изменить один из отчетов. а именно — Запасы (склад) —> стоимостная оценка склада в ценах номенклатуры. Программист постарался, наделал ошибок и исчез.
в оперативном режиме (остатки) все действует шикарно, а вот в не оперативном, (остатки и себестоимость) выдает ошибку деления на 0.с вот таким текстом:
«{Отчет.УниверсальныйОтчет.МодульОбъекта(86)}: Ошибка при вызове метода контекста (Вывести)
ПостроительОтчета.Вывести(ТабличныйДокумент);
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Деление на 0
по причине:
Ошибка SQL: Деление на 0
по причине:
Деление на 0 значения типа Numeric«Буду очень благодарна, если кто-нибудь сможет оказать помощь :unsure:
Наверняка нужно добавить проверку, да вот только я не пойму в каком месте о.о»
Прикреплю кусок кода, если кто-либо сможет глянуть :unsure: -
Offline
mialord
Модераторы
Команда форума
Модератор- Регистрация:
- 31 июл 2009
- Сообщения:
- 5.460
- Симпатии:
- 53
- Баллы:
- 54
Проверку нужно добавлять в запросе
Пример:ВЫБОР КОГДА Регистр.Количество = 0 ТОГДА 0 ИНАЧЕ //тут расчет КОНЕЦ
Это не конкретно к Вашему отчету, это принцип исключения ошибки
-
Спасибо, сейчас попробую.
Не понятно что вообще эту ошибку вызывает о.о
Не заполненная строка типа цены, присваивается к нулю, и при делении на нее происходит ошибка, может быть такое? -
Offline
leemuar
Опытный в 1С- Регистрация:
- 21 окт 2010
- Сообщения:
- 310
- Симпатии:
- 0
- Баллы:
- 26
Вы же сами написали — «берется ноль и на него делится», как думаете, такое может быть?
-
я имела ввиду когда поле не заполнено оно присваивается к нулю, или же нет и где-то в коде указано это присваивание
-
Offline
leemuar
Опытный в 1С- Регистрация:
- 21 окт 2010
- Сообщения:
- 310
- Симпатии:
- 0
- Баллы:
- 26
Да, конечно. В вашем случае это происходит в запросе. Посмотрите текст выполняемого запроса, найдите там операции деления и перепишите их как указал mialord.
-
:unsure: Сейчас посмотрим
-
Операций деления больше 15 продублированные по 3 раза :unsure:
-
Offline
x_under
Модераторы
Команда форума
Модератор- Регистрация:
- 25 апр 2007
- Сообщения:
- 2.576
- Симпатии:
- 16
- Баллы:
- 29
А сделайте просто отчет «Ведомость по партиям товаров на складах» и посмотрите нет ли в нем строк, где количество нулевое, а сумма — нет.
возможно там захотели сделать вывод цены, а ситуацию с делением (как я указал выше) не отловили. -
Да, действительно в конечном остатке не было указанно количество товара в некоторых строках, а стоимость была.
Ошибка происходила при расчете Наценки единицы товара.
Большое спасибо, все получилось *-* -
Offline
tonatiuh
- Регистрация:
- 19 ноя 2012
- Сообщения:
- 5
- Симпатии:
- 0
- Баллы:
- 1
Доброго времени суток. У меня точно такая же ошибка при создании отчета валовая прибыль. Перечитал уже этот пост несколько раз и не могу понять куда дописать что бы все заработало.
Проверку нужно добавлять в запросе
Пример:ВЫБОР КОГДА Регистр.Количество = 0 ТОГДА
0
ИНАЧЕ
//тут расчетКОНЕЦ
Можете написать поподробней куда нужно этот код дописать?
Буду очень благодарен. -
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
надо посмотреть, какое поле в запросе может быть 0 (раз ошибка возникает «деление на 0», тогда смотрите именно то поле, на которое делите). Наугад трудно сказать куда вам проверку в запросе поставить
З.Ы. пользуйтесь тегами для оформления кода — удобнее для чтения
-
Offline
tonatiuh
- Регистрация:
- 19 ноя 2012
- Сообщения:
- 5
- Симпатии:
- 0
- Баллы:
- 1
Не подскажете, как можно посмотреть какое поле в запросе может быть 0? Где запрос смотреть? Отчет, валовая прибыль и там в модуле объекта Процедура УстановитьНачальныеНастройки? или я вообще не там ищу? А если там то как правильно все сделать?
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
а в модуле больше никаких процедур нет? по идее должен быть какой-то алгоритм выборки данных
-
Offline
tonatiuh
- Регистрация:
- 19 ноя 2012
- Сообщения:
- 5
- Симпатии:
- 0
- Баллы:
- 1
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВложенныйЗапрос.Организация КАК Организация, | ВложенныйЗапрос.Проект КАК Проект, | ВложенныйЗапрос.Подразделение КАК Подразделение, | ВложенныйЗапрос.Покупатель КАК Покупатель, | ВложенныйЗапрос.ДоговорПокупателя КАК ДоговорПокупателя, | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ВложенныйЗапрос.ЗаказПокупателя КАК ЗаказПокупателя, | ВложенныйЗапрос.Регистратор КАК Регистратор, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Организация) КАК ОрганизацияПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Проект) КАК ПроектПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Подразделение) КАК ПодразделениеПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Покупатель) КАК ПокупательПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ДоговорПокупателя) КАК ДоговорПокупателяПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Номенклатура) КАК НоменклатураПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатурыПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ЗаказПокупателя) КАК ЗаказПокупателяПредставление, | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Регистратор) КАК РегистраторПредставление, | ВложенныйЗапрос.Период КАК Период, | ВложенныйЗапрос.ПериодДень КАК ПериодДень, | ВложенныйЗапрос.ПериодНеделя КАК ПериодНеделя, | ВложенныйЗапрос.ПериодДекада КАК ПериодДекада, | ВложенныйЗапрос.ПериодМесяц КАК ПериодМесяц, | ВложенныйЗапрос.ПериодКвартал КАК ПериодКвартал, | ВложенныйЗапрос.ПериодПолугодие КАК ПериодПолугодие, | ВложенныйЗапрос.ПериодГод КАК ПериодГод, | ВложенныйЗапрос.Количество КАК Количество, | ВложенныйЗапрос.КоличествоЕдиницОтчетов КАК КоличествоЕдиницОтчетов, | ВложенныйЗапрос.КоличествоБазовыхЕдиниц КАК КоличествоБазовыхЕдиниц, | ВложенныйЗапрос.СтоимостьБезНДС КАК СтоимостьБезНДС, | ВложенныйЗапрос.НДС КАК НДС, | ВложенныйЗапрос.Стоимость КАК Стоимость, | ВложенныйЗапрос.Себестоимость КАК Себестоимость, | ВложенныйЗапрос.ВаловаяПрибыль КАК ВаловаяПрибыль, | ВложенныйЗапрос.Эффективность КАК Эффективность, | ВложенныйЗапрос.Рентабельность КАК Рентабельность | //ПОЛЯ_СВОЙСТВА | //ПОЛЯ_КАТЕГОРИИ |{ВЫБРАТЬ | Организация.*, | Проект.*, | Подразделение.*, | Покупатель.*, | ДоговорПокупателя.*, | Номенклатура.*, | ХарактеристикаНоменклатуры.*, | ЗаказПокупателя.*, | Регистратор.*, | Период, | ПериодДень, | ПериодНеделя, | ПериодДекада, | ПериодМесяц, | ПериодКвартал, | ПериодПолугодие, | ПериодГод, | Количество, | КоличествоЕдиницОтчетов, | КоличествоБазовыхЕдиниц, | СтоимостьБезНДС, | НДС, | Стоимость, | Себестоимость, | ВаловаяПрибыль, | Эффективность, | Рентабельность | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИЗ | (ВЫБРАТЬ | ВложенныйЗапрос.Организация КАК Организация, | ВложенныйЗапрос.Проект КАК Проект, | ВложенныйЗапрос.Подразделение КАК Подразделение, | ВложенныйЗапрос.Покупатель КАК Покупатель, | ВложенныйЗапрос.ДоговорПокупателя КАК ДоговорПокупателя, | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ВложенныйЗапрос.ЗаказПокупателя КАК ЗаказПокупателя, | ВложенныйЗапрос.Регистратор КАК Регистратор, | ВложенныйЗапрос.Период КАК Период, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕНЬ) КАК ПериодДень, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, НЕДЕЛЯ) КАК ПериодНеделя, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕКАДА) КАК ПериодДекада, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ) КАК ПериодМесяц, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, КВАРТАЛ) КАК ПериодКвартал, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие, | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД) КАК ПериодГод, | СУММА(ВложенныйЗапрос.Количество) КАК Количество, | СУММА(ВложенныйЗапрос.КоличествоЕдиницОтчетов) КАК КоличествоЕдиницОтчетов, | СУММА(ВложенныйЗапрос.КоличествоБазовыхЕдиниц) КАК КоличествоБазовыхЕдиниц, | СУММА(ВложенныйЗапрос.СтоимостьБезНДС) КАК СтоимостьБезНДС, | СУММА(ВложенныйЗапрос.НДС) КАК НДС, | СУММА(ВложенныйЗапрос.Стоимость) КАК Стоимость, | СУММА(ВложенныйЗапрос.Себестоимость) КАК Себестоимость, | ВЫБОР | КОГДА &НеВключатьНДСВСтоимостьПартий | ТОГДА СУММА(ВложенныйЗапрос.СтоимостьБезНДС) | ИНАЧЕ СУММА(ВложенныйЗапрос.Стоимость) | КОНЕЦ - СУММА(ВложенныйЗапрос.Себестоимость) КАК ВаловаяПрибыль, | 100 * ВЫБОР | КОГДА &НеВключатьНДСВСтоимостьПартий | ТОГДА ВЫБОР | КОГДА СУММА(ВложенныйЗапрос.Себестоимость) <> 0 | ТОГДА (СУММА(ВложенныйЗапрос.СтоимостьБезНДС) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Себестоимость) | ИНАЧЕ 0 | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА СУММА(ВложенныйЗапрос.Себестоимость) <> 0 | ТОГДА (СУММА(ВложенныйЗапрос.Стоимость) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Себестоимость) | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК Эффективность, | 100 * ВЫБОР | КОГДА &НеВключатьНДСВСтоимостьПартий | ТОГДА ВЫБОР | КОГДА СУММА(ВложенныйЗапрос.СтоимостьБезНДС) <> 0 | ТОГДА (СУММА(ВложенныйЗапрос.СтоимостьБезНДС) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.СтоимостьБезНДС) | ИНАЧЕ 0 | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА СУММА(ВложенныйЗапрос.Стоимость) <> 0 | ТОГДА (СУММА(ВложенныйЗапрос.Стоимость) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Стоимость) | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК Рентабельность | {ВЫБРАТЬ | Организация, | Проект, | Подразделение, | Покупатель, | ДоговорПокупателя, | Номенклатура, | ХарактеристикаНоменклатуры, | ЗаказПокупателя, | Регистратор, | Период, | ПериодДень, | ПериодНеделя, | ПериодДекада, | ПериодМесяц, | ПериодКвартал, | ПериодПолугодие, | ПериодГод} | ИЗ | (ВЫБРАТЬ | ПродажиОбороты.Проект КАК Проект, | ПродажиОбороты.Подразделение КАК Подразделение, | ПродажиОбороты.Контрагент КАК Покупатель, | ПродажиОбороты.ДоговорКонтрагента КАК ДоговорПокупателя, | ПродажиОбороты.Номенклатура КАК Номенклатура, | ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя, | ПродажиОбороты.Организация КАК Организация, | ПродажиОбороты.Регистратор КАК Регистратор, | ПродажиОбороты.Период КАК Период, | ПродажиОбороты.КоличествоОборот КАК Количество, | ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетов, | ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) КАК КоличествоБазовыхЕдиниц, | ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот КАК СтоимостьБезНДС, | ПродажиОбороты.НДСОборот КАК НДС, | ПродажиОбороты.СтоимостьОборот КАК Стоимость, | ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0) КАК Себестоимость | ИЗ | РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {Организация.* КАК Организация, Проект.* КАК Проект, Подразделение.* КАК Подразделение, Контрагент.* КАК Покупатель, ДоговорКонтрагента.* КАК ДоговорПокупателя, Номенклатура.* КАК Номенклатура, ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, ЗаказПокупателя.* КАК ЗаказПокупателя}) КАК ПродажиОбороты | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ПродажиСебестоимость.Номенклатура КАК Номенклатура, | ПродажиСебестоимость.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя, | ВЫБОР | КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО | ТОГДА ПродажиСебестоимость.ДокументДвижения | ИНАЧЕ ПродажиСебестоимость.Регистратор | КОНЕЦ КАК Регистратор, | СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот | ИЗ | РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость | ГДЕ | ПродажиСебестоимость.Период МЕЖДУ &ДатаНачала И &ДатаКонца | {ГДЕ | ПродажиСебестоимость.Проект.* КАК Проект, | ПродажиСебестоимость.Подразделение.* КАК Подразделение, | ПродажиСебестоимость.Номенклатура.* КАК Номенклатура, | ПродажиСебестоимость.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | ПродажиСебестоимость.ЗаказПокупателя.* КАК ЗаказПокупателя} | | СГРУППИРОВАТЬ ПО | ПродажиСебестоимость.Номенклатура, | ПродажиСебестоимость.ХарактеристикаНоменклатуры, | ПродажиСебестоимость.ЗаказПокупателя, | ВЫБОР | КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО | ТОГДА ПродажиСебестоимость.ДокументДвижения | ИНАЧЕ ПродажиСебестоимость.Регистратор | КОНЕЦ) КАК ТаблицаРегистраПродажиСебестоимость | ПО ТаблицаРегистраПродажиСебестоимость.Номенклатура = ПродажиОбороты.Номенклатура | И ТаблицаРегистраПродажиСебестоимость.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры | И ТаблицаРегистраПродажиСебестоимость.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя | И ТаблицаРегистраПродажиСебестоимость.Регистратор = ПродажиОбороты.Регистратор) КАК ВложенныйЗапрос | | СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Организация, | ВложенныйЗапрос.Проект, | ВложенныйЗапрос.Подразделение, | ВложенныйЗапрос.Покупатель, | ВложенныйЗапрос.ДоговорПокупателя, | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.ХарактеристикаНоменклатуры, | ВложенныйЗапрос.ЗаказПокупателя, | ВложенныйЗапрос.Регистратор, | ВложенныйЗапрос.Период | | ИМЕЮЩИЕ | (СУММА(ВложенныйЗапрос.Количество) <> 0 | ИЛИ СУММА(ВложенныйЗапрос.Стоимость) <> 0 | ИЛИ СУММА(ЕСТЬNULL(ВложенныйЗапрос.Себестоимость, 0)) <> 0)) КАК ВложенныйЗапрос | //СОЕДИНЕНИЯ |{ГДЕ | ВложенныйЗапрос.Регистратор.*, | ВложенныйЗапрос.Период, | ВложенныйЗапрос.ПериодДень, | ВложенныйЗапрос.ПериодНеделя, | ВложенныйЗапрос.ПериодДекада, | ВложенныйЗапрос.ПериодМесяц, | ВложенныйЗапрос.ПериодКвартал, | ВложенныйЗапрос.ПериодПолугодие, | ВложенныйЗапрос.ПериодГод, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.КоличествоЕдиницОтчетов, | ВложенныйЗапрос.КоличествоБазовыхЕдиниц, | ВложенныйЗапрос.СтоимостьБезНДС, | ВложенныйЗапрос.НДС, | ВложенныйЗапрос.Стоимость, | ВложенныйЗапрос.Себестоимость, | ВложенныйЗапрос.ВаловаяПрибыль, | ВложенныйЗапрос.Эффективность, | ВложенныйЗапрос.Рентабельность | //УСЛОВИЯ_СВОЙСТВА | //УСЛОВИЯ_КАТЕГОРИИ |} |{УПОРЯДОЧИТЬ ПО | Организация.*, | Проект.*, | Подразделение.*, | Покупатель.*, | ДоговорПокупателя.*, | Номенклатура.*, | ХарактеристикаНоменклатуры.*, | ЗаказПокупателя.*, | Регистратор.*, | Период, | ПериодДень, | ПериодНеделя, | ПериодДекада, | ПериодМесяц, | ПериодКвартал, | ПериодПолугодие, | ПериодГод, | Количество, | КоличествоЕдиницОтчетов, | КоличествоБазовыхЕдиниц, | СтоимостьБезНДС, | НДС, | Стоимость, | Себестоимость, | ВаловаяПрибыль, | Эффективность, | Рентабельность | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |} |ИТОГИ | СУММА(Количество), | СУММА(КоличествоЕдиницОтчетов), | СУММА(КоличествоБазовыхЕдиниц), | СУММА(СтоимостьБезНДС), | СУММА(НДС), | СУММА(Стоимость), | СУММА(Себестоимость), | ВЫБОР | КОГДА &НеВключатьНДСВСтоимостьПартий | ТОГДА СУММА(СтоимостьБезНДС) | ИНАЧЕ СУММА(Стоимость) | КОНЕЦ - СУММА(Себестоимость) КАК ВаловаяПрибыль, | 100 * ВЫБОР | КОГДА &НеВключатьНДСВСтоимостьПартий | ТОГДА ВЫБОР | КОГДА СУММА(Себестоимость) <> 0 | ТОГДА (СУММА(СтоимостьБезНДС) - СУММА(Себестоимость)) / СУММА(Себестоимость) | ИНАЧЕ 0 | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА СУММА(Себестоимость) <> 0 | ТОГДА (СУММА(Стоимость) - СУММА(Себестоимость)) / СУММА(Себестоимость) | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК Эффективность, | 100 * ВЫБОР | КОГДА &НеВключатьНДСВСтоимостьПартий | ТОГДА ВЫБОР | КОГДА СУММА(СтоимостьБезНДС) <> 0 | ТОГДА (СУММА(СтоимостьБезНДС) - СУММА(Себестоимость)) / СУММА(СтоимостьБезНДС) | ИНАЧЕ 0 | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА СУММА(Стоимость) <> 0 | ТОГДА (СУММА(Стоимость) - СУММА(Себестоимость)) / СУММА(Стоимость) | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК Рентабельность | //ИТОГИ_СВОЙСТВА | //ИТОГИ_КАТЕГОРИИ |ПО | ОБЩИЕ |{ИТОГИ ПО | Организация.*, | Проект.*, | Подразделение.*, | Покупатель.*, | ДоговорПокупателя.*, | Номенклатура.*, | ХарактеристикаНоменклатуры.*, | ЗаказПокупателя.*, | Регистратор.*, | Период, | ПериодДень, | ПериодНеделя, | ПериодДекада, | ПериодМесяц, | ПериодКвартал, | ПериодПолугодие, | ПериодГод | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ |}";извиняюсь… если это тут где то надо вставить проверку не подскажете где
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
для начала, оформляйте код тегом КОД1С — удобнее читать
вы отладчиком умеете пользоваться?
-
Offline
tonatiuh
- Регистрация:
- 19 ноя 2012
- Сообщения:
- 5
- Симпатии:
- 0
- Баллы:
- 1
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
очень жаль, если кратко, то вот принцип: запускаете в конфигураторе, ищите «проблемное» по вашему мнению место, устанавливаете точку останова (напротив нужной строки слева можно щелкнуть, можно через меню установить), затем запускайте через F5 отладку, выполняете в реиме предприятия нужные действия, когда выполнение код адойдет до той самой строки, вас выбросит в конфигуратор и можно будет передвигаться по коды и смотреть изменения значений переменных (типа онлайн) Попробуйте так выяснить где у вас косячит, может дело то и не в запросе?
-
Offline
tonatiuh
- Регистрация:
- 19 ноя 2012
- Сообщения:
- 5
- Симпатии:
- 0
- Баллы:
- 1
почитаю пока как пользоваться отладчиком






