Добрый день.
пишу функцию в запросе:
ВТ_Данные.Вес12 / &КолвоДнейМомент * &КолвоДней / ВТ_Данные.ВесПлан
Не срабатывает деление на ВТ_Данные.ВесПлан.
По отдельности все срабатывает ВТ_Данные.Вес12 / &КолвоДнейМомент * &КолвоДней есть значение.
Вывожу отдельно ВТ_Данные.ВесПлан, так же все выводится. Пол дня уже убил.... завис на одной функции.......
пишу функцию в запросе:
ВТ_Данные.Вес12 / &КолвоДнейМомент * &КолвоДней / ВТ_Данные.ВесПлан
Не срабатывает деление на ВТ_Данные.ВесПлан.
По отдельности все срабатывает ВТ_Данные.Вес12 / &КолвоДнейМомент * &КолвоДней есть значение.
Вывожу отдельно ВТ_Данные.ВесПлан, так же все выводится. Пол дня уже убил.... завис на одной функции.......
По теме из базы знаний
- Пропорциональное распределение в запросе
- Пропорциональное распределение в запросе
- Автоматическая проверка деления на 0 для математических формул в тексте запроса
- Пропорциональное распределение в запросе с использованием АвтоНомерЗаписи()
- Распределение товаров поступлений по направлениям деятельности с кастомной настройкой
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
Что то я погорячился с ответом...
написал так: ВТ_Данные.Вес12 / &КолвоДнейМомент * &КолвоДней / ЕСТЬNULL(ВТ_Данные.ВесПлан, 1)
ВТ_Данные.ВесПлан теперь всегда NULL. Рядом колонка в нее выводится нормальное значение. Но в качестве делителя никак не работает...
Что то я погорячился с ответом...
написал так: ВТ_Данные.Вес12 / &КолвоДнейМомент * &КолвоДней / ЕСТЬNULL(ВТ_Данные.ВесПлан, 1)
ВТ_Данные.ВесПлан теперь всегда NULL. Рядом колонка в нее выводится нормальное значение. Но в качестве делителя никак не работает...
(12)
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Продажи.Период,
Продажи.Регистратор,
Продажи.НомерСтроки,
Продажи.Активность,
Продажи.Номенклатура,
Продажи.Организация,
Продажи.Контрагент,
Продажи.Количество КАК КоличествоПрошлыГод,
Продажи.Стоимость КАК СтоимостьПрошлыйГод,
Продажи.Вес КАК ВесПрошлыйГод,
Продажи.МоментВремени
ПОМЕСТИТЬ ВТ_ПрошлыйГод
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Период МЕЖДУ &ДатаНачПрошлыйГод И &ДатаКонПрошлыйГод
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Продажи.Период,
Продажи.Регистратор,
Продажи.НомерСтроки,
Продажи.Активность,
Продажи.Контрагент,
Продажи.Номенклатура,
Продажи.Организация,
Продажи.Количество КАК КоличествоПрошлыйМес,
Продажи.Стоимость КАК СтоимостьПрошлыйМес,
Продажи.Вес КАК ВесПрошлыйМес,
Продажи.МоментВремени
ПОМЕСТИТЬ ВТ_ПрошлыйМес
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Период МЕЖДУ &ДатаНачПрошлыйМес И &ДатаКонПрошлыйМес
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПланПродаж.Период,
ПланПродаж.Регистратор,
ПланПродаж.НомерСтроки,
ПланПродаж.Активность,
ПланПродаж.Контрагент,
ПланПродаж.Номенклатура,
ПланПродаж.Организация,
ПланПродаж.Количество КАК КоличествоПлан,
ПланПродаж.Вес КАК ВесПлан,
ПланПродаж.Стоимость КАК СтоимостьПлан,
ПланПродаж.МоментВремени
ПОМЕСТИТЬ ВТ_План
ИЗ
РегистрНакопления.ПланПродаж КАК ПланПродаж
ГДЕ
ПланПродаж.ПериодПланирования МЕЖДУ &ДатаНачала И &ДатаОкончания
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Продажи.Период,
Продажи.Регистратор,
Продажи.НомерСтроки,
Продажи.Активность,
Продажи.Номенклатура,
Продажи.Организация,
Продажи.Контрагент,
Продажи.Количество КАК Количество11,
Продажи.Стоимость КАК Стоимость11,
Продажи.Вес КАК Вес11,
Продажи.МоментВремени
ПОМЕСТИТЬ ВТ_ТекМесяц11
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Период МЕЖДУ &ДатаНачала И КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&ДатаОкончания, ДЕНЬ, -2), ДЕНЬ)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Продажи.Период,
Продажи.Регистратор,
Продажи.НомерСтроки,
Продажи.Активность,
Продажи.Контрагент,
Продажи.Номенклатура,
Продажи.Организация,
Продажи.Количество КАК Количество12,
Продажи.Стоимость КАК Стоимость12,
Продажи.Вес КАК Вес12,
Продажи.МоментВремени,
Продажи.Вес / &КолвоДнейМомент * &КолвоДней КАК ВыполнениеВес
ПОМЕСТИТЬ ВТ_ТекМесяц12
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Период МЕЖДУ &ДатаНачала И КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&ДатаОкончания, ДЕНЬ, -1), ДЕНЬ)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ВТ_ПрошлыйГод.Период,
ВТ_ПрошлыйГод.Регистратор,
ВТ_ПрошлыйГод.НомерСтроки,
ВТ_ПрошлыйГод.Активность,
ВТ_ПрошлыйГод.Номенклатура,
ВТ_ПрошлыйГод.Организация,
ВТ_ПрошлыйГод.Контрагент,
ВТ_ПрошлыйГод.МоментВремени,
ВТ_ПрошлыйГод.КоличествоПрошлыГод,
ВТ_ПрошлыйГод.СтоимостьПрошлыйГод,
ВТ_ПрошлыйГод.ВесПрошлыйГод,
NULL КАК КоличествоПрошлыйМес,
NULL КАК СтоимостьПрошлыйМес,
NULL КАК ВесПрошлыйМес,
NULL КАК КоличествоПлан,
NULL КАК ВесПлан,
NULL КАК СтоимостьПлан,
NULL КАК Количество11,
NULL КАК Стоимость11,
NULL КАК Вес11,
NULL КАК Количество12,
NULL КАК Стоимость12,
NULL КАК Вес12,
NULL КАК ВыполнениеВес
ПОМЕСТИТЬ ВТ_Данные
ИЗ
ВТ_ПрошлыйГод КАК ВТ_ПрошлыйГод
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_ПрошлыйМес.Период,
ВТ_ПрошлыйМес.Регистратор,
ВТ_ПрошлыйМес.НомерСтроки,
ВТ_ПрошлыйМес.Активность,
ВТ_ПрошлыйМес.Номенклатура,
ВТ_ПрошлыйМес.Организация,
ВТ_ПрошлыйМес.Контрагент,
ВТ_ПрошлыйМес.МоментВремени,
NULL,
NULL,
NULL,
ВТ_ПрошлыйМес.КоличествоПрошлыйМес,
ВТ_ПрошлыйМес.СтоимостьПрошлыйМес,
ВТ_ПрошлыйМес.ВесПрошлыйМес,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
ИЗ
ВТ_ПрошлыйМес КАК ВТ_ПрошлыйМес
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_План.Период,
ВТ_План.Регистратор,
ВТ_План.НомерСтроки,
ВТ_План.Активность,
ВТ_План.Номенклатура,
ВТ_План.Организация,
ВТ_План.Контрагент,
ВТ_План.МоментВремени,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
ВТ_План.КоличествоПлан,
ВТ_План.ВесПлан,
ВТ_План.СтоимостьПлан,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
ИЗ
ВТ_План КАК ВТ_План
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_ТекМесяц11.Период,
ВТ_ТекМесяц11.Регистратор,
ВТ_ТекМесяц11.НомерСтроки,
ВТ_ТекМесяц11.Активность,
ВТ_ТекМесяц11.Номенклатура,
ВТ_ТекМесяц11.Организация,
ВТ_ТекМесяц11.Контрагент,
ВТ_ТекМесяц11.МоментВремени,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
ВТ_ТекМесяц11.Количество11,
ВТ_ТекМесяц11.Стоимость11,
ВТ_ТекМесяц11.Вес11,
NULL,
NULL,
NULL,
NULL
ИЗ
ВТ_ТекМесяц11 КАК ВТ_ТекМесяц11
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_ТекМесяц12.Период,
ВТ_ТекМесяц12.Регистратор,
ВТ_ТекМесяц12.НомерСтроки,
ВТ_ТекМесяц12.Активность,
ВТ_ТекМесяц12.Номенклатура,
ВТ_ТекМесяц12.Организация,
ВТ_ТекМесяц12.Контрагент,
ВТ_ТекМесяц12.МоментВремени,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
ВТ_ТекМесяц12.Количество12,
ВТ_ТекМесяц12.Стоимость12,
ВТ_ТекМесяц12.Вес12,
ВТ_ТекМесяц12.ВыполнениеВес
ИЗ
ВТ_ТекМесяц12 КАК ВТ_ТекМесяц12
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ВТ_Данные.Период,
ВТ_Данные.Регистратор,
ВТ_Данные.НомерСтроки,
ВТ_Данные.Активность,
ВТ_Данные.Номенклатура,
ВТ_Данные.Организация,
ВТ_Данные.Контрагент,
ВТ_Данные.МоментВремени,
ВТ_Данные.КоличествоПрошлыГод,
ВТ_Данные.СтоимостьПрошлыйГод,
ВТ_Данные.ВесПрошлыйГод,
ВТ_Данные.КоличествоПрошлыйМес,
ВТ_Данные.СтоимостьПрошлыйМес,
ВТ_Данные.ВесПрошлыйМес,
ВТ_Данные.КоличествоПлан,
ВТ_Данные.ВесПлан,
ВТ_Данные.СтоимостьПлан,
ВТ_Данные.Количество11,
ВТ_Данные.Стоимость11,
ВТ_Данные.Вес11,
ВТ_Данные.Количество12,
ВТ_Данные.Стоимость12,
ВТ_Данные.Вес12,
ЕСТЬNULL(ВТ_Данные.Вес12, 0) - ЕСТЬNULL(ВТ_Данные.Вес11, 0) КАК ОтгруженноЗаСуткиВес,
ЕСТЬNULL(ВТ_Данные.Стоимость12, 0) - ЕСТЬNULL(ВТ_Данные.Стоимость11, 0) КАК ОтгруженноЗаСуткиСтоимость,
(ВЫРАЗИТЬ(ВТ_Данные.ВыполнениеВес КАК ЧИСЛО(15, 2))) / ВТ_Данные.ВесПлан КАК ВыполнениеПланаВес,
ВТ_Данные.Стоимость12 / &КолвоДнейМомент * &КолвоДней / ЕСТЬNULL(ВТ_Данные.СтоимостьПлан, 1) КАК ВыполнениеПланаСтоимость,
ВТ_Данные.ВыполнениеВес
ИЗ
ВТ_Данные КАК ВТ_Данные
Показать
(17)Убрать из запросов поля, которые не нужны, и которые отличаются в разных запросах - регистратор, номер строки, момент времени.
Период привести к единообразию, начало месяца, там, или с какой периодичностью нужны данные.
Сгруппировать по измерениям, числовые поля просуммировать.
После этого уже делить.
Период привести к единообразию, начало месяца, там, или с какой периодичностью нужны данные.
Сгруппировать по измерениям, числовые поля просуммировать.
После этого уже делить.
у 1С нет неявных преобразований типов в запросе (только примитивы, и то - только явно указанные). У них вообще с преобразованиями все плохо. Поэтому если вместо числа - параметр (поле), попадается не числовое, возникает ошибка.
Одной из характеристик корабля является величина, рассчитываемая как половина куба калибра его главных орудий (mw). Определить с точностью до 2 десятичных знаков среднее значение mw для кораблей и других судов каждой страны, у которой есть сведения в базе данных. Вывести: Страна, mw.
Что-то не верно выводятся две страны
ВЫБРАТЬ
классыкораблей.Страна,
ВЫРАЗИТЬ(СРЕДНЕЕ(классыкораблей.КалибрОрудий * классыкораблей.КалибрОрудий * классыкораблей.КалибрОрудий / 2) КАК ЧИСЛО(10, 2)) КАК mw
ИЗ
Справочник.КлассыКораблей КАК классыкораблей
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
Корабли.КлассКорабля.Страна КАК КлассКорабляСтрана
ИЗ
Справочник.Корабли КАК Корабли
СГРУППИРОВАТЬ ПО
Корабли.КлассКорабля.Страна) КАК ВложенныйЗапрос
ПО (классыкораблей.Страна = ВложенныйЗапрос.КлассКорабляСтрана)
СГРУППИРОВАТЬ ПО
классыкораблей.Страна
Что-то не верно выводятся две страны
ВЫБРАТЬ
классыкораблей.Страна,
ВЫРАЗИТЬ(СРЕДНЕЕ(классыкораблей.КалибрОрудий * классыкораблей.КалибрОрудий * классыкораблей.КалибрОрудий / 2) КАК ЧИСЛО(10, 2)) КАК mw
ИЗ
Справочник.КлассыКораблей КАК классыкораблей
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
Корабли.КлассКорабля.Страна КАК КлассКорабляСтрана
ИЗ
Справочник.Корабли КАК Корабли
СГРУППИРОВАТЬ ПО
Корабли.КлассКорабля.Страна) КАК ВложенныйЗапрос
ПО (классыкораблей.Страна = ВложенныйЗапрос.КлассКорабляСтрана)
СГРУППИРОВАТЬ ПО
классыкораблей.Страна
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот