Консоль запросов 9000

09.01.21

Разработка - Инструментарий разработчика

Простая и удобная консоль запросов 1С для управляемых форм 8.3, работает на любой конфигурации без ее модификации. Возможность использования как внешней обработки или в составе расширения. С перехватом любых запросов и поддержкой всех типов данных во временных таблицах. Анализ плана запроса, запроса на уровне СУБД. Обработка результата кодом.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Консоль запросов 9000
.zip 327,16Kb ver:1.1.10.1
982 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
Возможности текущей версии:
  • базовый функционал (редактирование запросов, исполнение, сохранение в файл, работа с параметрами, и т.д.)
  • полноценная работа в режиме управляемых форм в режиме толстого и тонкого клиента
  • поддержка всех типов 1С, в том числе момента времени, границы, уникального идентификатора, типа «Тип», вида движений, таблиц значений (табличные части), и т.д.
  • поддержка списков, массивов, таблиц значений в параметрах, удобное их редактирование
  • перехват любых запросов из отладчика вместе с параметрами и временными таблицами
  • возможность получения всех результатов запроса («ВыполнитьПакет»)
  • просмотр перехваченных временных таблиц, изменение их данных для отладки запроса
  • вывод результата в виде таблицы, дерева, а так же в табличный документ
  • работает при запрете синхронных методов (использует только асинхронные методы клиента)
  • отладка запросов, получающих большое количество данных: два варианта ограничения количества строк в режиме отладки
  • сохранение комментариев в запросах после конструктора
  • запоминает последний файл, с которым производилась работа
  • просмотр временных таблиц, формируемых запросом
  • перехват фоновых и регламентных заданий, в том числе, запущенных под другим пользователем
  • получение в результате запроса уникальных идентификаторов ссылок
  • вставка предопределенных значений
  • передача результата запроса в параметрами
  • генерация текста запроса для создания временной таблицы из таблицы-параметра
  • обработка результата запроса кодом
  • генерация кода на встроенном языке для исполнения запроса (с параметрами)
  • получение текста запроса СУБД, плана запроса, отображение текста и плана запроса в терминах 1С
  • работа в составе дополнительных внешних обработок (с некоторыми ограничениями)
  • возможность работы в составе расширения

 

Консоль мечты

Как известно, любой разработчик в среде 1С значительное время проводит в консоли запросов. Все мы работаем с 1С, а одна из основных функций 1С – это извлечение данных из базы. Наверное, каждый из нас хоть раз как-то модифицировал консоль запросов. А консолей этих развелось уже видимо-невидимо.

Сам я пробовал работать во многих консолях запросов. Но вот беда – ни одна из них меня не устраивает. Причины разные. Начиная от мелочей, и заканчивая принципиальными вопросами. Например, есть замечательная консоль, которая устраивает абсолютно всем – но вот беда, она не работает в режиме управляемых форм. Смотрю еще одну, другую… Тоже весьма неплохие, но опять есть какие-то «но»… Например, нет развитых средств обработки кодом, или поддерживаются не все типы, или что-то еще… Ни одна консоль на управляемых формах не сохраняет комментарии в запросе после конструктора...

Последней каплей было то, что  я не нашел консолей, которые поддерживают перехват запросов, загрузку временных таблиц и все типы данных в них. Все, что я пробовал, сломались на перехвате отражения документов ERP в регламентированном учете, где используется тип «Тип». И я решил создать свою консоль, которая будет поддерживать все типы 1С, и сможет перехватить совершенно любой запрос для отладки его в консоли. И, конечно же, что бы там было все остальное, что мне не хватало в других консолях.

Предлагаю всем желающим скачать первую версию моей консоли запросов, в которой я постарался реализовать поддержку максимального числа типов. Возможно, кто-то найдет в ней то, чего не хватало в других консолях. Для работы с этой консолью необходима версия платформы не ниже 8.3.12. Режим совместимости возможен, начиная с 8.3.8.

Возможности первой версии

В начале, напишу кратко, что умеет первая версия:

  • базовый функционал (редактирование запросов, исполнение, сохранение в файл, работа с параметрами, и т.д.)
  • полноценная работа в режиме управляемых форм в режиме толстого и тонкого клиента
  • поддержка всех типов 1С, в том числе момента времени, границы, уникального идентификатора, типа «Тип», вида движений, таблиц значений (табличные части), и т.д.
  • поддержка списков, массивов, таблиц значений в параметрах, удобное их редактирование
  • перехват любых запросов из отладчика вместе с параметрами и временными таблицами
  • возможность получения всех результатов запроса («ВыполнитьПакет»)
  • просмотр перехваченных временных таблиц, изменение их данных для отладки запроса
  • перехват через функцию БСП ЗапросВСтрокуXML
  • вывод результата в виде таблицы, дерева, а так же в табличный документ
  • работает при запрете синхронных методов (использует только асинхронные методы клиента)
  • отладка запросов, получающих большое количество данных: два варианта ограничения количества строк в режиме отладки
  • сохранение комментариев в запросах после конструктора
  • запоминает последний  файл, с которым производилась работа

 

Как видим, в первой версии есть все базовые возможности, необходимые для работы. Из функций, которых мне не хватает как разработчику в первой версии - это обработка результата запроса кодом. Это будет во второй версии.

Ну а дальше пройдем по всем возможностям немного подробнее.

Базовый функционал, главное окно

Организация основного рабочего пространства основывается на эргономике, как я ее понимаю. Необходимо, что бы все самое главное было под рукой. Основная часть работы – это редактирование запроса и просмотр результата. Поэтому, фактически, экран разделен на две основные части – текст запроса и результат. Причем результату нужно отдавать максимально возможную ширину экрана, ее всегда не хватает. Тексту запроса хватит меньшей ширины, поэтому рядом с ним расположилось вспомогательное окошко с деревом запросов и опциями. Параметры и временные таблицы «живут» в том же окне, что и запрос. В общем, получился классический вид, какой имела самая первая консоль запросов времен 1С 8.0. Границы между окнами, естественно, можно двигать.


Консоль запросов 9000

 

Редактирование текста запроса

Тут все стандартно. Обработка текста: добавить/удалить комментарии, добавить/удалить перенос строки. Есть команды вызова конструктора, синтаксического контроля и форматирования. Команда форматирования обрабатывает текст примерно так же, как делает это конструктор запросов. Наверное, многие после ручного редактирования вызывают конструктор без сохранения для контроля синтаксиса, или с сохранением для форматирования. В этой консоли для этого не нужно вызывать конструктор, для этого есть отдельные команды со своими горячими клавишами. Вообще, стоит отметить, что все команды и здесь, и вообще везде во всей консоли запросов имеют горячие клавиши, которые совпадают, по возможности, с общепринятыми.

Стоит отдельно отметить три команды для перехвата запросов из отладчика. Одна из них такая-же, как и в типовой консоли запросов - "Заполнить из XML". Для ее использования нужно в отладчике выполнить функцию БСП ЗапросВСтрокуXML(Запрос), получившийся результат скопировать в поле текста запроса и выполнить команду "Заполнить из XML". При этом в консоль будет перенесен текст запроса, и все параметры запроса. Но временные таблицы перенесены не будут, поэтому лучше пользоваться другим способом, он описан подробно далее, в разделе, посвященном перехвату запросов.

 

Консоль запросов 9000 - текст запроса

 

Параметры

На закладке параметров можно увидеть три колонки – имя, тип и значение. Рядом с типом находится иконка, обозначающая тип контейнера – одиночное значение, список, массив, или таблица значений.

 

Консоль запросов 9000 - список параметров

 

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

 

 

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

Окно выбора типа выглядит так:

 

Консоль запросов 9000 - редактирование типа

 

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

Если указать тип контейнера «Таблица значений», то произойдет переключение в режим редактирования структуры таблицы.

 

Консоль запросов 9000 - редактирование структуры таблицы в параметрах

 

После задания структуры таблицы, так же просто можно заполнить содержимое.

 

Консоль запросов 9000 - редактирование таблицы в параметрах

 

Похожим способом способом задается содержимое массивов и списков.

 

Консоль запросов 9000 - подбор в список

 

Вывод результатов запроса

На мой взгляд, с результатами запроса при его отладке удобнее всего работать с помощью таблицы или дерева. Но, почему-то, большинство консолей на управляемых формах позволяют выводить результат только в табличный документ. Консоль запросов 9000 делает базовый вывод в таблицу или дерево, и дополнительно есть возможность вывести результат в табличный документ в отдельное окно.

Есть возможность выбрать любой результат в пакетном запросе, а так же сделать ограничение для вывода строк. Присутствуют стандартные возможности - поиск и вывод в список. Результат, выведенный в табличный документ можно сохранить в формате, поддерживаемом 1С для табличного документа (mxl, Excel, Word, pdf, и т.д.).

 

Консоль запросов 9000 - вывод результата

 

На ограничении вывода результата стоит остановиться отдельно. Консоль позволяет ограничить вывод двумя различными способами. Первый способ - это установка значения "ПЕРВЫЕ" рядом с кнопкой "Выполнить". В этом случае перед выполнением запроса в него добавиться "ПЕРВЫЕ" во все пакеты, за исключением формирования временных таблиц. Этот способ подходит для отладки очень тяжелых запросов, в которых получение данных занимает значительное время. Можно отладить запрос на небольшом количестве строк, не ожидая каждый раз выполнения запроса над всем массивом данных. С использованием этого варианта ограничения есть небольшой нюанс - при ошибке в запросе курсор может немного не точно позиционироваться в место ошибки. Возможно, удастся это победить в следующих версиях.

Второй способ ограничения строк результата - на скрине выше. В этом случае происходит получение всего набора данных, но ограничивается лишь вывод в таблицу результата. Заданное таким образом ограничение строк и вид результата можно в любой момент изменить, при этом мы сразу увидим изменения в окне результата, но запрос повторно выполняться не будет - будут выведены уже полученные данные.

При клике на ячейку в результате открывается соответствующее значение или его представление. Например, для ссылки справочника или документа откроется соответствующий элемент справочника или документ. В результате запроса поддерживаются даже такие типы, как подзапрос. Их содержимое так же можно просмотреть, кликнув на ячейку. Они открываются, как вложенная таблица значений.

 

Консоль запросов 9000 - открытие таблицы значений из результата запроса

 

Перехват запросов в отладчике

Перехват запросов осуществляется максимально просто. Для этого выбираем меню для получения кода, и копируем в буфер обмена. Кстати, горячая кнопка для этого меню - Shift+F9. Код для Shift+F9 получаем по Shift+F9 :)

 

Консоль запросов 9000 - код для перехвата запросов

После этого в отладчике, на точке останова выполняем этот код, вызвав "Вычислить выражение" (Shift+F9). У пользователя, под которым делаем перехват запросов, должна быть отключена защита от опасных действий. Не забываем исправить имя переменной, содержащей запрос. И еще один важный момент - перехват нужно осуществить ДО выполнения запроса. В противном случае запрос может создать временные таблицы, и его не удастся сразу выполнить в консоли - будет ошибка при создании временных таблиц с одинаковым именем. Если все же вы совершили такую ошибку, и перехватили запрос после его выполнения, необходимо создаваемые им временные таблицы удалить в консоли вручную. Это можно сделать на закладке "Менеджер временных таблиц", о ней поговорим чуть позже.

 

Консоль запросов 9000 - перехват запроса в отладчике

 

Перехват запросов можно сделать сразу несколько раз. К примеру, на скрине выше - отражение в регламентированном учете приобретения товаров и услуг, там выполняются почти подряд четыре запроса. Я сделал четыре точки останова и последовательно перехватил запрос на каждой точке. После этого идем в консоль запросов и вызываем там функцию "Получить перехваченные запросы" (Ctrl+F9). Не имеет значения - запущена консоль в этом же сеансе или другом. Важно, что бы это была та же база и тот же пользователь. При вызове этой функции будут загружены все перехваченные запросы.

 

Консоль запросов 9000 - загрузка перехваченных запросов

 

После загрузки перехваченных запросов с ними можно работать точно так же, как и с обычными запросами, созданными вручную. Но одно отличие все же есть - для них загружаются временные таблицы, если они были созданы. Временные таблицы находятся на закладке "Менеджер временных таблиц". Можно открывать и просматривать их содержимое, а так же изменять их данные. Можно изменять даже такие экзотические значения, как значения типа "Тип" или момент времени. Загруженные временные таблицы можно удалять, переименовывать или копировать под другим именем. Структуру загруженных временных таблиц изменять нельзя.

 

Консоль запросов 9000 - редактирование данных временной таблицы

 

Сохранение комментариев после конструктора запросов

Текст запроса - это такой же программный код, как и код встроенного языка. Довольно часто хочется оставить в нем комментарии. Кроме того, комментарии в языке запросов нередко встречаются и в типовых конфигурациях, например ERP. Но вот беда - они полностью теряются, если запрос отредактировать с помощью конструктора. По хорошему, что бы комментарии не терялись, их должен поддерживать конструктор запросов. Но изменить мы его не можем. Поэтому Консоль запросов 9000 пытается сохранить комментарии эвристическими методами. По сути, это напоминает объединение текстов модулей. Просматриваются строки запроса до конструктора и после. При наличии совпадений, комментарии восстанавливаются на тех же местах. Но даже если совпадений нет, комментарии потеряны не будут. Просто они могут оказаться на других местах. Если текст запроса изменится очень сильно - алгоритм поместит такой "потерянный" комментарий в конец текста запроса. При необходимости, сохранение комментариев можно отключить в опциях.

В общем, попробуем такую эвристику и посмотрим, насколько это будет полезно и удобно.

 

Сохранение и автосохранение

Консоль запросов 9000 придерживается стандартных правил работы с файлом. Например, при выходе она спрашивает, сохранить ли файл, если он был изменен и не сохранен. Такой же вопрос будет задан при нажатии на кнопку "Новый", или при открытии файла.

Существует так же автосохранение. Оно осуществляется с периодом, настраиваемым в опциях, а так же перед выполнением запроса (тоже опционально). Автосохранение происходит в ту же папку, в файл с таким же форматом, что и основной, но с другим расширением. Если в процессе работы происходит сбой, файл автосохранения остается. При открытии основного файла (или автооткрытии в момент запуска) консоль проверяет наличие автосохранения. Если оно найдено - то восстанавливается состояние на момент последнего автосохранения. Данные в консоли будут на момент автосохранения, с признаком модификации, но основной файл запросов при этом изменен не будет. Если нужно вернуться к состоянию основного файла пакета запросов - нужно просто не сохранять данные в консоли после восстановления - например, просто выйти без сохранения. Если же нужно это состояние сохранить, нажимаем "Сохранить" - в общем-то, все просто :)

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

Дальше просто приведу окно опций, там все понятно без комментариев.

 

Консоль запросов 9000 - опции

 

Заключение

Ну вот, пожалуй и все о Консоли запросов 9000 первой версии. Так сказать, базовая модель. Конечно, многое можно добавить к текущему функционалу. Пробуйте, пишите пожелания в комментариях. Если будут баги - пишите обязательно. Все баги исправлю оперативно. Ну а остальное - по мере возможности.

Из глобальных вещей - обработка кодом. Она обязательно будет во второй версии.

 


 

 

01.03.2020 Продолжение. Версия 1.1.1

Кратко об изменениях

  • Добавлена возможность просмотра временных таблиц, формируемых запросом. Ранее можно было просмотреть только перехваченные временные таблицы
  • Изменен перехват запросов - теперь есть возможность перехвата фоновых и регламентных заданий, в том числе, запущенных под другим пользователем
  • Добавлена возможность получения в результате запроса уникальных идентификаторов ссылок
  • Множество небольших исправлений в интерфейсе (добавлены иконки типов, кнопок, и др.)
  • Исправлены найденные ошибки

А теперь подробнее.

Просмотр временных таблиц, сформированных запросом.

Тут все просто, привожу только скрин.

 

Консоль запросов 9000 - временные таблицы

 

Перехват запросов

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

Получение уникального идентификатора

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

Возникает вопрос - зачем это нужно, если можно получить кодом? Да, когда будет добавлена обработка кодом, в ней можно будет сделать все что угодно. Но часто требуется что-то более простое, и хочется сделать быстро и без заморочек. Что бы сказать - вот для этих колонок хочу УИД, и нажать кнопку.

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

&__УИД_КолонкаИсточника

КолонкаИсточника - это уже существующая в результате колонка. Вот пример запроса, который получает уникальный идентификатор для номенклатуры.

Консоль запросов 9000 - получение уникального идентификатора

 

Таким образом, можно получить идентификаторы для нескольких колонок. Важно понимать, что обработка таких колонок производится после получения результата. Поэтому, это неприменимо для временных таблиц. И с таким выражением нельзя производить никаких действий - можно только указать как выражение для колонки.

При желании, поддержку макроколонок можно отключить - появилась новая настройка в "Опциях".

Некоторые доработки и исправления ошибок

Значительно переработано окно выбора типа - добавлены иконки, поиск. Устранено не совсем адекватное поведение при смене простого типа на составной, и другие мелочи.

Доработано преобразование массива/списка в таблицу и обратно, а так же редактирование структуры таблицы. Теперь, при преобразованиях не теряются данные (если, конечно позволяют типы колонок). Список попадает в первую колонку созданной таблицы, и наоборот. При редактировании структуры таблицы можно менять имена колонок - данные при этом сохраняются. В общем, данные сохраняются, насколько это возможно.

 

02.03.2020 Версия 1.1.2

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

 

07.03.2020 Версия 1.1.3

Исправлены выявленные ошибки.

Далее по новым возможностям.

Вставка предопределенного значения

По нажатию Alt+P или кнопки позволяет вставить предопределенное значение, системное перечисление или ссылку на тип.

 

Консоль запросов 9000 - Вставка предопределенного

 

Передача результата запроса в параметр

Результат запроса можно преобразовать в таблицу значения - параметр.

 

Консоль запроса 9000 - результат запроса в параметр

 

Запрос для создания временной таблицы из параметра - таблицы значений

Если в качестве параметра используется таблица значений, то в запросе на основе ее создается временная таблица. Можно быстро создать такой подзапрос, нажав на специальную кнопку. Текст созданного подзапроса будет добавлен в конец редактируемого запроса.

 

Консоль запросов 9000 - запрос создания временной таблицы из таблицы значений

 

31.05.2020 Версия 1.1.5

Исправлены некоторые ошибки.

Добавлена обработка результата кодом.

Консоль запросов 9000 - обработка результата кодом, пять вариантов.

 

10.06.2020 Версия 1.1.6

 

  • Исправлены ошибки, проявляющиеся при выполнении в фоне на некоторых версиях БСП.
  • Добавлена возможность при обработке кодом обращаться к параметрам запроса. Для этого можно использовать переменную Параметры.
  • Сообщения об ошибках выполнения кода в фоне стали более информативными.

 

16.06.2020 Версия 1.1.7

  • Исправлены некоторые ошибки
  • Добавлены миллисекунды во время исполнения запроса (изменение от kuzyara)
  • Добавлена генерация кода для исполнения запроса на встроенном языке (с параметрами):

Консоль запросов 9000 - генерация кода на встроенном языке

 

27.06.2020 Версия 1.1.8

Изменения в интерфейсе.

Появилось окно со списком результата запроса (временные таблицы и выборки). Можно увидеть сразу все результаты, количество строк, и время выполнения каждого запроса в пакете. Окно открывается по кнопке слева внизу (см. скрин).

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

Консоль запросов 9000 - главное окно с результатами запроса и параметрами.

 

Окно помощи в написание кода обработки.

Содержит структуру записи и параметры.

Консоль запросов 9000 - обработка кодом

 

03.11.2020 Версия 1.1.9

Изменения в версии

  • Добавлена возможность получения текста запроса СУБД, плана запроса, отображения текста и плана запроса в терминах 1С (пока только MS SQL)
  • Появилась возможность работы в режиме веб-клиента
  • Появилась возможность работы в качестве дополнительной внешней обработки (с ограничениями: без перехвата запросов в отладчике и без выполнения кода в фоне)
  • В окне редактирования типа отображаются идентификаторы типов, как в конфигураторе
  • Исправлены ошибки

Все изменения не требуют пояснений, кроме получения плана запроса.

Получение плана запроса

Для получения плана запроса необходимо включить технологический журнал. Делается это с помощью нажатия на кнопку. При этом файл настроек технологического журнала дополняется новой секцией, специально для консоли. В этой секции применяются очень избирательные фильтры. Логируются только события консоли, да и они не все, а только выполнение запросов в определенной строке кода. Объем дополнительных логов очень мал, так же, как и дополнительная нагрузка на сервер. Поэтому, в большинстве случаев, это можно делать на продуктивной базе. Но, в любом случае, получение планов запросов связано с манипуляциями с настройками технологического журнала, и вы должны понимать, что вы делаете. Это касается любой консоли запросов, не только этой. Настройки технологического журнала восстанавливаются при его выключении, а так же при закрытии консоли.

Итак, включаем технологический журнал, нажимая на кнопку "ТЖ".

Консоль запросов 9000 - включение технологического журнала

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

Консоль запросов 9000 - технологический журнал включен

После этого можно выполнять запросы, смотреть тексты запросов, отправляемых в СУБД, а так же планы их выполнения. Эту информацию можно получить, нажав гиперссылку "План".

Консоль запросов 9000 - открытие плана выполнения запроса

 

... или нажав на информацию о выполнении подзапроса в списке результатов.

 

Консоль запросов 9000 - открытие плана выполнения запроса из списка

 

В окне плана запроса можно увидеть сам план запроса в виде дерева, а так же текст запроса к СУБД. Текст запроса к СУБД предоставляется в двух вариантах: в оригинальном виде, и в терминах 1С. Так же можно увидеть фрагмент технологического журнала с исходными данными (на скрине свернут).

 

Консоль запросов 9000 - план запроса

 

Многие предпочитают анализировать план запроса не в виде дерева, а в обычном текстовом виде. Для этого можно использовать соответствующие закладки, где будет такой план запросов в удобном форматировании.

 

Консоль запросов 9000 - план запроса в текстовом виде

 

Выключение технологического журнала консоли происходит в обратном порядке. Кнопка "отжимается", а через некоторое время гаснет. Подсветка кнопки выключается, когда реально выключается технологический журнал консоли.

 

09.01.2021 Версия 1.1.10

Изменения в версии

  • Добавлена возможность работы в составе расширения. Функциональность точно такая же, как и у внешней обработки.
  • Добавлено получение плана запроса Postgres, только в текстовом виде. Вообще, я сомневаюсь в полезности планов запросов в виде дерева в 1С. По моим наблюдениям используют либо текстовый вид, либо графическое представление в MS SQL.
  • Добавлена поддержка момента времени во временных таблицах перехваченных запросов.
  • Исправлены ошибки.

Вступайте в нашу телеграмм-группу Инфостарт

консоль запросов 9000 1С управляемые формы конструктор тип таблица значений список массив момент времени временные таблицы захват перехват в отладчике

См. также

Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)

Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.

50000 руб.

10.09.2026    13971    125    0    

87

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    83453    432    171    

364

Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    286071    1608    423    

1220

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    16997    63    62    

74

Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    44330    123    54    

135

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    77191    147    41    

154

Разработка Инструментарий разработчика Разработчик Руководитель проекта 1С 8.3 Платные (руб)

Pilot 1C превращает задачу, поставленную обычными словами, в техническое задание, код на встроенном языке и сценарии проверки. Прежде чем что-то предложить, он сверяется с устройством вашей конфигурации через граф Analyzer 1C: существует ли объект, из чего он состоит, кто его вызывает, какие роли дают права. Чего найти не удалось – спрашивает, а не выдумывает. Готовый код проходит более полутора сотен проверок по справочнику языка и стандартам разработки, который приезжает вместе с продуктом. Модель – ваша: любой сервер, совместимый с программным интерфейсом OpenAI, в том числе локальный. Правки в конфигурацию Pilot не вносит – их применяет разработчик.

18300 руб.

11.09.2026    3843    5    0    

10

Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    28825    104    46    

107
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4931 24.02.20 13:00 Сейчас в теме
Капитальный баян. В том смысле, что сделано внушительно, серьёзно, но - из серии велосипедов для себя любимых, каковые десятками лежат по сети...
OneScan; BigB; xsazar; ByNiko1984; al_zzz; Evg-Lylyk; Drivingblind; echo77; ardn; +9 –18 Ответить
10. kuza2000 233 24.02.20 20:43 Сейчас в теме
(1) Ну так это же хорошо. Пусть будет много хороших и разных консолей запросов. Каждый сможет выбрать себе по душе)
VladC#; blackviper; ВРедная; zarodiny; by_1Cnik; romulanin; antonio_i; RustIG; adhocprog; okulus; alex_4x; Drivingblind; cprit; farukshin; gigapevt; tormozit; ARL; smirnovserg.s@gmail.com; Jeka44; Mahon83; FreeArcher; ByNiko1984; o.kovalev; frkbvfnjh; +24 – Ответить
2. tormozit 7394 24.02.20 15:39 Сейчас в теме
ни одна консоль не сохраняет комментарии в запросе после конструктора

Конструктор запросов ИР сохраняет комментарии уже давно.
Трактор; triera2000; ByNiko1984; Il; Andreeei; fancy; AronMav; DrAku1a; Drivingblind; Yashazz; ardn; +11 – Ответить
13. tormozit 7394 24.02.20 21:48 Сейчас в теме
(2) Вот демонстрация https://youtu.be/oQoW-N_0xac
Mingrel; Xershi; ByNiko1984; DrAku1a; shtinalex; Andreeei; AronMav; kuza2000; +8 – Ответить
19. top_1c 4200 25.02.20 04:07 Сейчас в теме
(2) я думаю речь была об вашей консоли
Например, есть замечательная консоль, которая устраивает абсолютно всем – но вот беда, она не работает в режиме управляемых форм.

:)
user2209069; OneScan; serg_infostart; CyberCerber; Kubik1984; kuza2000; +6 – Ответить
21. kuza2000 233 25.02.20 04:54 Сейчас в теме
(19) Верное предположение. А запуск в толстом клиенте часто не помогает, если не на всех на модулях поставили нужные галочки. И исправить это не всегда возможно.
22. top_1c 4200 25.02.20 05:00 Сейчас в теме
(21) я даже больше скажу, не все конфигурации могут запуститься под толстым клиентом :) по этому да ушел давно тоже от той замечательной консоли :(
serg_infostart; Vladimir Litvinenko; PLAstic; Evg-Lylyk; +4 –1 Ответить
44. tormozit 7394 25.02.20 11:33 Сейчас в теме
(22) Можешь привести пример таких конфигураций?
49. redtram 50 26.02.20 08:39 Сейчас в теме
(44) tormozit, Ваши инструменты разработчика просто восхитительны, они сэкономили не одному человеку тысячи часов :) я вам даже донатил, но(!) всё таки поддержу: запуск толстого клиента при удаленности сервера зачастую нецелесообразен, да и перезапуск из тонкого это лишнее действие, которое порой дольше чем накидать запрос. Бывают случаи самописок-кривописок, в которых разрешать обычные формы в УФ = Ложь.
А вообще спасибо за Ваши труды, все бы 1сники так писали :))
edesyatov; Rusbread; +2 – Ответить
50. spiteful41 5 26.02.20 10:41 Сейчас в теме
(44) Документооборот
58. tormozit 7394 26.02.20 22:08 Сейчас в теме
(50) Скачал последнюю версию Документооборот Проф 2.1. Создал демо базу. Запустил установщик расширения ИР. Установил расширение ИР. При попытке открыть любой инструмент в управляемом приложении появляется предупреждение, что нет назначенной для текущего режима формы и после его закрытия сообщение

Для использования инструмента запустите обычное приложение либо в свойствах конфигурации установите флажок "Использовать обычные формы в управляемом приложении"
доступный в режиме "Сервис"/"Параметры"/"Редактирование конфигурации для режимов запуска"="Управляемое приложение и обычное приложение".


Запустил обычное приложение. Сразу увидел сверху знакомую панель ИР. Открыл через нее инструмент "Подбор и обработка объектов". Выбрал для обработки справочник "Контрагенты". Выбрал все его элементы. Запустил обработку "Запись". Она завершилась успешно.
Однако при попытке открыть любую родную форму объекта в обычном приложении возникают ошибки и приходится пользоваться для работы с ними инструментом "Редактор объекта БД". Это действительно часто неудобно.
Поэтому я зашел в конфигуратор. Через настройку поддержки включил возможность изменения конфигурации. Далее в настройках конфигуратора включил "Редактирование конфигурации для режимов запуска"="Управляемое приложение и обычное приложение". Далее я включил флажок "Использовать обычные формы в управляемом приложении" в свойствах конфигурации. Снова запустил управляемое приложение. Там уже все инструменты ИР и родные формы объектов нормально работают.

Таким образом утверждение что "конфигурация ДокументоОборот не может запуститься под толстым клиентом" и близко не соответствует действительности.
fuser; MVK80; +2 – Ответить
65. dadel 20 27.02.20 18:09 Сейчас в теме
(58)Как последние версии программы 1С Фитнес клуб корп работают не знаю в толстом, не проверял. Но вот года с два назад только в тонком она работала без ошибок чисто по коду, который в толстом выдает ошибку.
66. Xershi 1566 27.02.20 18:36 Сейчас в теме
(44) CRM. В начале года поддерживал клиента УП+ЦРМ, которую делает спаркой Рарус.
Я им запрос отписал, обещали поправить, но с клиентом беда случилось, проверить решили эту проблему или нет не знаю.
А наш местный франч слизал у Раруса црм и УТ+модуль ЦРМ пока тоже с такими же косяками.
Я конечно ручками поправил эти галки с обычным приложением, но тяжко с этими баранами возиться, не хотят качественно делать конфигурации.
А вот ТП Раруса на ошибки оперативно реагирует, жаль не могу проверить как оперативно их исправляют.

Так что если есть возможность отпишите Рарусу по продукту, многих избавите от головной боли обновления типовых!
67. tormozit 7394 27.02.20 23:26 Сейчас в теме
(66) Большинство высказавшихся на эту тему традиционно путают "толстый клиент" с "обычное приложение". Видимо отсюда и столь смелые утверждения. На примере конфигурации "Документооборот" я подробно описал типичного представителя худшего случая - формы объектов в режиме обычного приложения не открываются, но работает неинтерактивный код конфигурации, а в толстом управляемом приложении практически все работает.
68. borzyj 1 28.02.20 00:03 Сейчас в теме
(44)
пример таких


Я могу
КА2, Erp, УТ11 последних релизов, доработка в расширении снимать с поддержки нельзя.
И если говорить честно давно жду реализации вашего набора инструментов для тонкого клиента.
Если могу быть полезен в развитии ИР - буду рад помочь
69. tormozit 7394 28.02.20 00:06 Сейчас в теме
(68) Снимать с поддержки и не нужно. Нужно лишь включить возможность изменения корня конфигурации. Сделать это очень легко. Мне лишь в единичных случаях не удавалось договориться с владельцем базы, чтобы сделать это.
144. dlebedev8 11.11.21 08:36 Сейчас в теме
(69) Сделать это - значит лишить клиента возможности простого самостоятельного обновления. И то, что лично у вас почти все клиенты соглашались лишиться этой возможности, ни о чем еще не говорит. Вам столько людей отписалось, что запуск толстого клиента не всегда возможен даже, а вы упираетесь и утверждаете, что даже модифицировать клиенту базу лишь чтобы запустить ваш инструмент это норма. Нет слов. У вас реально классный инструмент, но бывают ситуации, когда проще воспользоваться другими разработками.
ВРедная; Dmitri93; +2 – Ответить
27. tormozit 7394 25.02.20 07:03 Сейчас в теме
(19) Кажется не очень корректно писать "в режиме управляемых форм". Есть режим управляемого приложения и управляемые формы. Работать можно в режиме или через формы. Но "в режиме форм" звучит как то криво. ИР работает в режиме управляемого приложения, но через обычные формы.
29. top_1c 4200 25.02.20 08:13 Сейчас в теме
51. AlexO 136 26.02.20 16:36 Сейчас в теме
(27)
Кажется не очень корректно писать "в режиме управляемых форм".
Это 1С-у скажите ))
У них в принципе - УФ совершенно некорректное название. Здесь слово "управляемые" - лишь 10% функционала форм в плане "самоуправляемые привязки ЭУ на формах".
33. PLAstic 296 25.02.20 09:59 Сейчас в теме
(2) Мне показалось, или это старые убогие формы? Похоже, предложить для УП нечего. :(
37. tormozit 7394 25.02.20 10:08 Сейчас в теме
(33) Это обычные формы, которые кстати работают и в управляемом приложении (толстом клиенте).
38. PLAstic 296 25.02.20 10:14 Сейчас в теме
(37) Наверное, работают только там, где допустимы обычные формы? И в тех конфах, которые в принципе запускаются в толстом клиенте.
Взял, например, демо-конфу БСП 3.0.1 - у меня не открылась в толстом клиенте ни одна типовая обработка из UNIPROC82. ИР откроются?
39. tormozit 7394 25.02.20 10:16 Сейчас в теме
40. PLAstic 296 25.02.20 10:23 Сейчас в теме
(39) Решил проверить, потратил 1 баксманей. В БСП 3.0.1 увидел надпись, что работа портативных ИР в режиме УП не поддерживается. Как-то так.
Надеюсь, описывать, что в прод никто не даст интегрировать подсистему, не надо?
41. tormozit 7394 25.02.20 10:27 Сейчас в теме
(40) Портативный вариант не поддерживает работу в режиме управляемого приложения, о чем честно написано в описании. Остальные поддерживают. Тебе нужно скачать вариант Расширение или внешнюю обработку "Установщик расширения" https://youtu.be/qVGXWU8w1W0 .
fuser; top_1c; +2 – Ответить
42. PLAstic 296 25.02.20 10:31 Сейчас в теме
(41) Это понятно. Мне не дадут расширение. Потому и мимо этих инструментов. А консолька эта вполне применима без изменений.
78. Cyberhawk 135 29.02.20 12:29 Сейчас в теме
(42)
Мне не дадут расширение
Возможность открывать внешние обработки через "Файл - Открыть" дают, а расширение не дают?
79. tormozit 7394 29.02.20 12:39 Сейчас в теме
(78) Тут есть смысл. Ведь внешняя обработка применяется только в текущем сеансе и потому ее косяки не поломают работу других сеансов. А расширение будет применяться во всех сеансах и потому, если его автор накосячит и с его нейтрализацией в работе обычных сеансов (где оно не должно как либо влиять на работу программы), то пострадают пользователи и установивший расширение специалист будет виновен.
80. Cyberhawk 135 29.02.20 12:55 Сейчас в теме
(79) А в расширении ИР какие меры предпринимаются, чтобы "не насолить" чужим сеансам?
81. tormozit 7394 29.02.20 13:46 Сейчас в теме
(80) Если писать об универсальных расширениях для избранных сеансов, то главное место, где можно повлиять на работу нецелевых сеансов - обработчики модуля приложения (ПередНачаломРаботыСистемы и ПриНачалеРаботыСистемы). Они должны быть выполняться очень надежно и быстро и опираться на роли из расширения, чтобы опознавать целевые сеансы.
Cyberhawk; +1 – Ответить
43. json 3438 25.02.20 10:37 Сейчас в теме
(40) интегрировать в прод не надо.
Я пользовался ИР на ЕРП, БП 3 и ЗУП 3 без внедрения в конфу (даже на проде).

Рассказываю как пользоваться.

1. Берешь портативный вариант ИР.
2. Открываешь в управляемом режиме главную обработку.
3. Она предлагает запустить в режиме обычного приложения - запускаешь (прям в этой обработке есть кнопка для запуска).
4. Открываешь консоль запросов (значок с буквой "З") и пользуешься всеми возможностями этого супер-инструмента.

По отладке есть пара нюансов, чтобы сделать ее максимально удобной
53. AlexO 136 26.02.20 16:39 Сейчас в теме
(43)
3. Она предлагает запустить в режиме обычного приложения - запускаешь (прям в этой обработке есть кнопка для запуска).
А если как раз этот режим (ОФ) не поддерживается или запрещен?
57. json 3438 26.02.20 20:03 Сейчас в теме
(53)
Что имеешь ввиду под запрещен или не поддерживается?

В конфигурации нет такого флага или настройки, чтобы запретить запуск в обычном режиме.
Можно кодом прописать при начале работы системы проверку и выполнить завершение.
Но я не встречал, чтобы хоть кто-нибудь занимался такой фигнёй.
172. fuser 3 13.02.24 09:13 Сейчас в теме
(53) 1cv8.exe /RunModeOrdinaryApplication
Лишь бы не веб клиент
52. AlexO 136 26.02.20 16:37 Сейчас в теме
(37)толстый клиент в УФ - это именно ОФ в 8.3.
Если запуск ОФ в УФ не разрешен - не запустится ничего из ОФ.
70. borzyj 1 28.02.20 00:12 Сейчас в теме
(2), (5)
Мужики, ваши инструменты классные и я ими пользуюсь, но порой ваши комменты выглядят как "Всяк кулик свое болото хвалит"
improg; kuza2000; tormozit; +3 – Ответить
71. tormozit 7394 28.02.20 00:23 Сейчас в теме
(70) По поводу (2) тут все честно. Автор публикации утверждает "ни одна консоль не сохраняет комментарии в запросе после конструктора". Что с учетом (2) явно не соответствует действительности и тем самым вводит читателей в заблуждение. Это несправедливо по отношению к читателю. Кстати автор до сих пор не убрал это явно спорное утверждение =)
3. qwinter 686 24.02.20 18:57 Сейчас в теме
2000, 9000... В авторе явно умер маркетолог))
OneScan; BigB; xsazar; ben19791010; serg_infostart; wowik; Светлый ум; DrAku1a; Evg-Lylyk; +9 – Ответить
8. kuza2000 233 24.02.20 20:32 Сейчас в теме
(3) Вот маркетологом меня еще никто не называл)))
9000 - это в честь HAL9000 Артура Кларка, одного из любимых мной писателей-фантастов.
fuser; tech96; Yashazz; CyberCerber; +4 – Ответить
35. PLAstic 296 25.02.20 10:01 Сейчас в теме
(8) Если не ошибаюсь, был ещё BFG9000. Ну, кто в теме...
Somebody1; kuza2000; umberto_nobile; +3 – Ответить
4. tormozit 7394 24.02.20 19:38 Сейчас в теме
Посмотрел код и функционал. Сделано современно, достойно и с вниманием к деталям. Автор действительно сделал шаги вперед по ряду направлений. Заодно помог и мне один шаг сделать.
Rjhev; ixijixi; okulus; RenatKa; serg_infostart; Il; starik-2005; CyberCerber; dvsidelnikov; portwein; AronMav; dmitrydemenew; DrAku1a; kuza2000; YPermitin; +15 – Ответить
9. kuza2000 233 24.02.20 20:38 Сейчас в теме
(4) Это который не встроенный, самописный? Вот этого я не знал. Вообще, "Инструменты Разработчика" - великолепная вещь. Была бы портативная версия на УФ с поддержкой всех типов, то, пожалуй бы, и не стал делать свою консоль запросов.
Идея сделать свой конструктор запросов тоже есть. Но это в далекой перспективе. Сейчас основной приоритет - добавить обработку кодом.
Просто прикрутить исполнение кода - это можно сделать быстро. Но хочется сделать качественно, удобно. Что бы была хорошая индикация хода выполнения, возможность сохранять что-то типа библиотеки кода, возможность повторного использования кода.
54. AlexO 136 26.02.20 16:40 Сейчас в теме
(9)Сергей в принципе против УФ))
И чем дальше, тем он более прав.
55. tormozit 7394 26.02.20 17:01 Сейчас в теме
(54) Нет. Я не против управляемых форм. Просто для задач, решаемых в ИР, они плохо подходят.
56. AlexO 136 26.02.20 17:25 Сейчас в теме
(55) они вообще плохо подходят для задач программирования ))
Я бы так сказал )
5. Evg-Lylyk 5530 24.02.20 19:53 Сейчас в теме
(0) Работа проделано хорошая, но нужно глядеть аналоги
https://infostart.ru/public/835718/ все вещи которых вы не нашли есть
Перехват данных запроса
BigB; kuza2000; +2 –4 Ответить
11. CheBurator 3235 24.02.20 21:27 Сейчас в теме
а что ответит автор на (5)..?
12. kuza2000 233 24.02.20 21:41 Сейчас в теме
(5),(11) Когда я пробовал эту консоль, но она не смогла перехватить отражение документов в регламентированном учете в ERP - не загрузились ВТ с типом данных "Тип". Правда, сейчас появились более новые версии этой консоли. Возможно, в новых версиях это исправлено - не проверял. Это главное, что мне в ней не хватало. Ну и по мелочам - например, нет вывода в список и дерево значений, только в табличный документ. Хотя это не так важно.
А, в общем - тоже неплохая консоль, с весьма развитым функционалом.
15. Evg-Lylyk 5530 24.02.20 21:53 Сейчас в теме
(12) Я проверю что там с типом тип... вообще он поддерживается, но возможны нюансы. Код открыт можно дорабатввать под свои нужды
26. Светлый ум 509 25.02.20 06:36 Сейчас в теме
(12) Кстати, важная мелочь +1
Evg-Lylyk; +1 – Ответить
96. Evg-Lylyk 5530 06.03.20 15:19 Сейчас в теме
(12) в версии 3.8.4, Исправлена проблема с типом тип
47. starik-2005 3309 25.02.20 14:39 Сейчас в теме
(6) я бы сказал, что мечта - это вот тут: https://infostart.ru/public/198581/

С другой стороны, чем проще - тем иногда лучше )))
7. пользователь 24.02.20 20:18
(0) Хорошо сделано. +
duhin; top_1c; +2 – Ответить
14. json 3438 24.02.20 21:48 Сейчас в теме
Хорошее начинание.
Посмотрим что получится в итоге, если проект не затухнет.

Здоровая конкуренция никогда не помешает.

На платформе 8.3.10 - не открывается. Конфигуратор вылетает с ошибкой.

Ошибка формата потока
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: item Форма: Элемент Тип: {http://v8.1c.ru/8.1/data-composition-system/core}ParameterValue
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: value Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.2/data/chart}colorPalette Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
Evg-Lylyk; +1 – Ответить
16. kuza2000 233 24.02.20 22:47 Сейчас в теме
(14) Что-то не могу воспроизвести.
В какой момент происходит исключение? В момент открытия обработки?
Какая конфигурация?
Пока пробовал только в режиме совместимости. Возможно, придется поставить 8.3.10...
17. json 3438 24.02.20 23:06 Сейчас в теме
(16) на режиме совместимости ошибки нет.
Ошибка именно на платформе.
Открыть конфигуратор - открыть внешнюю обработку - конфигуратор закрывается с ошибкой.


Судя по ошибке проблема из-за диаграммы. Возможно, использован тип диаграммы из новых релизов платформы.
Либо просто какой-то макет новая платформа сохраняет без учета режима совместимости
23. kuzyara 2276 25.02.20 05:34 Сейчас в теме
(16)
Прикрепленные файлы:
25. kuzyara 2276 25.02.20 06:16 Сейчас в теме
(16)
Прикрепленные файлы:
30. dmitrydemenew 652 25.02.20 08:21 Сейчас в теме
(16)К сожалению, не смог открыть ни в режиме конфигуратора, ни в режиме приложения. Платформа 1С:Предприятие 8.3 (8.3.9.1818).
Ошибка та же. По описанию, консоль работает с версиями от 8.3.6 - это не верно.
Прикрепленные файлы:
32. kuza2000 233 25.02.20 08:34 Сейчас в теме
(30) (14) (25) Я тестировал в режиме совместимости. Оказывается, не все так просто. Исправлю в ближайшее время.
18. ziercool 41 25.02.20 01:33 Сейчас в теме
В параметры запроса можно выбирать только элементы справочника? Или группы можно?
20. kuza2000 233 25.02.20 04:18 Сейчас в теме
(18) Группы в параметрах выбирать можно.
133. photocritic 29.03.21 16:27 Сейчас в теме
(20)
в параметрах выбирать можно.

У меня в Рознице не выбирают группы. Как сделать чтобы был выбор групп номенклатуры?
134. photocritic 29.03.21 16:28 Сейчас в теме
(133) Работает выбор групп только через подбор!
135. kuza2000 233 30.03.21 23:32 Сейчас в теме
(134)
Сейчас попробовал на конфигурациях, что были под рукой - ERP и Управление торговлей 10.3 в управляемом режиме. Делал запрос с параметром типа СправочникСсылка.Номенклатура. По двойному клику группа раскрывается, но по кнопке Выбрать группа выбирается. Попробовал выбирать в начале в простой параметр, потом сделал список значений и попробовал выбирать туда. Во всех режимах группы выбираются.

Либо это проявляется только в некоторых конфигурациях, типа розницы, либо кто-то что-то делает не так.

Напишите, пожалуйста, подробности - как пробуете выбрать? Почему группу выбрать нельзя? Что происходит при нажатии на кнопку Выбрать?
24. top_1c 4200 25.02.20 06:13 Сейчас в теме
Соглашусь с предыдущими комментариями, конкуренция это хорошо. Многие консоли на управляемых формах перегруженные и тяжелые, да же жутко тормозять :)

Что не понял:
Список результатов есть, но сами временные таблицы посмотреть нельзя.

Что хотелось бы:
В инструментах разработчика есть возможность заполнять ТЗ на основание выборки, т.е. и типы и само наполнение таблицы происходит по запросу.

Перехват ещё не проверял.
28. MikhailDr 25.02.20 07:38 Сейчас в теме
(24)
Список результатов есть, но сами временные таблицы посмотреть нельзя.


Очень большой минус. Вот это первое, что надо исправлять.
31. kuza2000 233 25.02.20 08:31 Сейчас в теме
(28) Согласен. Сделаю просмотр ВТ в ближайшее время.

(24) Заполнять ТЗ в параметрах по запросу? А для чего это может понадобиться? Если ТЗ нужна в запросе, почему не создать ее сразу в виде временной таблицы?
34. VmvLer 25.02.20 10:00 Сейчас в теме
прочитал первый абзац - прям "Рабыня Изаура от 1С"...

Как известно, любой раб на плантации Леонсио значительное время проводит в зарослях сахарного тростника. Все мы любим сахарок, а одна из основных функций рабов – это носить тяжелые тюки на мозолистой спине. Наверное, каждый из нас хоть раз как-то поднимал барский палец на недостойного. А недостойных услады нашего величественного взгляда развелось уже видимо-невидимо.

Сам я пробовал поручить работы в барской усадьбе многим рабыням. Но вот беда – ни одна из них меня не устраивает. Причины разные. Начиная от мелочей, и заканчивая принципиальными вопросами. Например, есть замечательная кухарка, которая устраивает абсолютно всем – но вот беда, она не умеет готовить брагу из забродивших фруктов. Смотрю еще одну, другую… Тоже весьма неплохие, но опять есть какие-то «но»… Например, нет развитых форм, или не может поддержать разговор о конях и вкусе бурбона, или что-то еще… И, конечно, ни одна рабыня не сохраняет память обо мне, как о величайшем владельце фазенды в нашей глуши...

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

Сверьте первый абзац тс с моим опусом и задайте себе вопрос - зачем в презентации продукта столько чуши?
Evg-Lylyk; +1 –2 Ответить
36. login1020 151 25.02.20 10:02 Сейчас в теме
Внесу свои 5 копеек в пожелания, мне, например, очень понравилась реализация вот этой консоли: https://infostart.ru/public/617990/
а конкретно:
1) визуализация тела запроса, связей таблиц
2) возможность выполнять отдельно каждый узел и вносить изменения на горячую.

Очень удобный вариант, когда у Вас 20,30, 40 и т.д пакетов, и нужно понять из какого пакета тянется ошибка в итоговый результат.

С таким функционалом Ваша разработка станет одной из самых удобных, если не самой удобной.
okulus; JohnConnor; Evg-Lylyk; +3 – Ответить
59. FreeArcher 164 27.02.20 04:58 Сейчас в теме
(36) 10$ реально стоит попробовать ту консоль?

Хорошая консоль, хорошая публикация. Очень странно видеть в комментариях обсуждение другой консоли...

Пожелание для автора, сделать консоль в расширении. Очень удобно, особенно отлавливать запросы. А прописывая путь, приходится размещать обработку где в общей папке при клиент-серверной работе.
62. kuza2000 233 27.02.20 08:30 Сейчас в теме
(59) >А прописывая путь, приходится размещать обработку где в общей папке при клиент-серверной работе.
Самому - не приходится.
Обработка сама размещается на сервере и говорит, уже готовую строку, которую надо просто подставить в отладчик.
64. FreeArcher 164 27.02.20 11:11 Сейчас в теме
(62) Да действительно. В других консолях вроде приходилось. Удобно вопрос снимаю.

(61) Отлично. Сразу скачаю.

Но насчет расширения, тоже подумайте мне удобно. В тестовую базу включил и всегда под рукой.
63. login1020 151 27.02.20 08:32 Сейчас в теме
(59) свою стоимость она уже отбила, сэкономив мне время)
45. Yashazz 4931 25.02.20 13:14 Сейчас в теме
Кстати что отмечу - описание обработки хорошее. Подробное, грамотное, понятное. Иногда бывает отличная разработка и никудышное описание из пары строк, непонятно ни как юзать, ни какие плюсы. В данном случае автор тоже реально молодец.
46. Elgens 25.02.20 13:53 Сейчас в теме
Стрёмненько юзать софт от HAL9000 из космической одиссеи что-то тут не то)))

— Добрый день, джентльмены. Я – Хэл 9000. Я был активирован 20 января 1992 года в лаборатории Х-Э-Л в Урбане, штат Иллинойс. Я готов к работе, все мои системы функционируют исправно.
48. Aggressorak 25.02.20 14:59 Сейчас в теме
(46) Не так уж всё и стрёмно думаю будет, т.к. если посмотреть второй фильм то станет очевидно, что Хал неплохой комп, а вот людишки как всегда.
60. FreeArcher 164 27.02.20 05:59 Сейчас в теме
А вывода временных таблиц нет?
61. kuza2000 233 27.02.20 08:26 Сейчас в теме
(60) Вывод временных таблиц, сформированных запросом, будет в ближайшем обновлении, которое я планирую сделать в эти выходные.
Временные таблицы, захваченные в отладчике, можно менять и просматривать в текущей версии.
72. wazup666 26 28.02.20 14:47 Сейчас в теме
Спасибо, отличная консоль.
Единственное, не получилось перехватить запрос, выполняемый фоновым заданием. А такой сценарий, думаю, не редкость.
Скажите, можно ли это реализовать в будущих версиях или это нереально?
73. kuza2000 233 28.02.20 16:38 Сейчас в теме
(72) Фоновые задания ничем не отличаются от обычных процессов. Подозреваю, что просто были разные пользователи.
Попробуйте войти в систему под пользователем, от которого запускалось фоновое задание, запустить консоль и выполнить "получить перехваченные запросы". Или сделать запуск регламентного задания от своего пользователя.

Возможно, стоит сделать режим перехвата без фильтрации по пользователю...
74. wazup666 26 28.02.20 17:07 Сейчас в теме
(73) Пользователь был один и тот же. Подозрение пало на фоновое задание т.к. без него этот же запрос перехватился. Так же заметил, при выполнении ФЗ не записался файлик в темпах на сервере 1С.
75. kuza2000 233 28.02.20 17:25 Сейчас в теме
(74) Не совсем понял. Выполняете в отладчике строку для сохранения запроса, результат возвращается "ОК", а файл в темпах не формируется?
76. wazup666 26 28.02.20 17:31 Сейчас в теме
(75) При ФЗ "Ок" не возвращает. Тот же запрос без ФЗ возвращает "Ок"
82. kuza2000 233 02.03.20 12:04 Сейчас в теме
(76)
(60)
(28)
В новой версии есть вывод временных таблиц, исправлены проблемы с перехватом фоновых заданий. Версию выложил, можно пробовать!)
84. MikhailDr 02.03.20 12:17 Сейчас в теме
(82) Надо опять за sm качать?

Я пожалуй тогда подожду еще чутка.

Чего мне еще не хватает. Это вот этой плашки в конструкторе запроса. Не знаю можно ли ее в вашу консоль добавить, но в других я ее видел.

В остальном все очень удобно. На данный момент это моя основная консоль. Благодарю за работу.
Прикрепленные файлы:
85. kuza2000 233 02.03.20 14:45 Сейчас в теме
(84) Вообще, я пока мало взаимодействовал с "Инфостартом" раньше, поэтому деталей скачивания обновления не знаю.
Сейчас обратился в поддержку с этим вопросом. Мне ответили, что в течении 30 дней можно скачивать повторно бесплатно, в том числе и обновления.


(84)
Чего мне еще не хватает. Это вот этой плашки в конструкторе запроса. Не знаю можно ли ее в вашу консоль добавить, но в других я ее видел.

Конструктор стандартный 1С, он везде одинаковый, и от разработчика не зависит (если, конечно, не писать свой). Но он в толстом и тонком клиенте разный. Попробуйте запустить в другом варианте клиента.
87. MikhailDr 02.03.20 15:56 Сейчас в теме
(85) В целом это незначительная мелочь. С просмотром ВТ (единственное, чего мне раньше не хватало) ваша консоль теперь для меня вообще стала единственной, которую я использую.
86. kuza2000 233 02.03.20 15:31 Сейчас в теме
(84) Да, сейчас проверил. Эта "плашка" появляется только в режиме толстого клиента. Увы, это ограничение платформы, и в ближайшее время что-то исправить тут не могу.
77. kuza2000 233 28.02.20 17:32 Сейчас в теме
(75) Сам себе и отвечу - да, пишет ОК, а запрос не перехватывается. Будем исправлять.
83. kuza2000 233 02.03.20 12:16 Сейчас в теме
Выложил обновление v1.1.1, добавил в описание.
88. kuza2000 233 02.03.20 17:45 Сейчас в теме
В версию 1.1.1 прокралась довольно неприятная ошибка, сделал обновление 1.1.2 с ее исправлением.
89. orilien 13 03.03.20 09:43 Сейчас в теме
Маленькое пожелание для новых версий. Отключить авто ввод новой строки в таблице параметров. А так же значения в таблице результата открываются модально.
90. kuza2000 233 03.03.20 11:15 Сейчас в теме
(89) Хорошие замечания. Взял в работу.
91. wazup666 26 03.03.20 11:21 Сейчас в теме
Вот бы ещё поиск по дереву метаданных в конструкторе запроса.
92. kuza2000 233 03.03.20 22:39 Сейчас в теме
(91) Тут такой же ответ, как на (84) - поведение стандартного конструктора изменить нельзя, увы.
93. Азбука Морзе 110 04.03.20 15:20 Сейчас в теме
В функции ПолучитьОписаниеТипов() строку:

КвалификаторыЧисла = Новый КвалификаторыЧисла(КвалификаторыЧислаДлина, КвалификаторыЧислаДлина

нужно заменить на строку:

КвалификаторыЧисла = Новый КвалификаторыЧисла(КвалификаторыЧислаДлина, КвалификаторыЧислаТочность
95. kuza2000 233 04.03.20 16:04 Сейчас в теме
(93) Точно! Спасибо.

(94) Речь идет об импорте данных в параметр-таблицу? Да, пока нет. Записал в пожелания.
94. Азбука Морзе 110 04.03.20 15:23 Сейчас в теме
Не нашел кнопки "Заполнить параметр Товары из табличной части Товары документа Заказ клиента или хотя бы из эксель-файла"
Natoriys; +1 – Ответить
97. lisrws 145 23.03.20 23:35 Сейчас в теме
при открытии на старых релизах выдает ошибку:
{ВнешняяОбработка.КонсольЗапросов9000.Форма.Форма.Форма(84,12)}: Процедура или функция с указанным именем не определена (СтрРазделить)
маЧасти = <<?>>СтрРазделить(стрОшибка, ":");

Автор, маленькое пожелание. хотелось бы получить универсальную обработку, без привязки к режиму совместимости, на сколько это возможно. аналог такой ерунды как СтрРазделить можно ведь и самому написать на базе поддерживаемых во всех релизах функций. вместо использования встроенного, дабы оно не напрягало при разработке и работало везде стабильно.
98. kuza2000 233 24.03.20 10:25 Сейчас в теме
(97) СтрРазделить - это действительно ерунда. Но в обработке активно используется СхемаЗапроса, которая действительно нужна. Она с 8.3.5, а СтрРазделить - с 8.3.6. То есть, речь идет только о работе в режиме совместимости 8.3.5. Причем на более-менее новом релизе (до 8.3.11 обработка просто не откроется). Сейчас все же другие приоритеты. Совместимость с 8.3.6 буду поддерживать максимально долго.
99. lisrws 145 24.03.20 10:56 Сейчас в теме
(98)
СхемаЗапроса
релиз 8.3.11 - бог с ним. релиз платформы и обновить не проблема. я про привязку к режиму совместимости. есть древние конфигурации, которые работают на новых релизах платформы, но с низкими версиями режима совместимости. вот у меня например 8.3.13 работает с конфой у которой совместимость 8.3.4. Проблема была только в тех строковых функциях. Схема запроса отлично отработала.
Прикрепленные файлы:
100. kuza2000 233 24.03.20 14:17 Сейчас в теме
(99) Забавно. Я не проверял, а синтаксис-помощник утверждает, что она с 8.3.5.
Прикрепленные файлы:
101. lisrws 145 24.03.20 14:24 Сейчас в теме
(100) у 1с как-то прикольно сделано, не могу вкурить по какому принципу. что-то не очень глобальное, без чего отлично можно обойтись, типа этих строковых функций, работает если режим совместимости конфигурации позволяет. а глобальные и нужные вещи типа схемы запроса работают вне зависимости от режима совместимости, лишь бы релиз платформы позволял.
102. mihanov 11 31.03.20 08:10 Сейчас в теме
Удобная замена аналогу из ИР. Спасибо!

Есть нюанс. Если открыть обработку в двух базах, возникает ошибка доступа к файлу.
Временно подправил так:
стрИмяФайлаОбработкиНаСервере = КаталогВременныхФайлов() + Файл.ИмяБезРасширения + "_" + Объект.ВерсияОбработки
// ++ ... {2020-03-31
+ "_" + Формат(Объект.СеансИД,"ЧГ=0")
// -- ... 2020-03-31}
+ Файл.Расширение;
103. kuza2000 233 31.03.20 09:40 Сейчас в теме
(102) Понятно. Спасибо, учту...
104. huxuxuya 409 07.04.20 12:06 Сейчас в теме
Привет.
Отличная обработка, нашел несколько ошибок и есть несколько пожеланий.

1. Консоль запросов ошибку ловит если в параметре запроса список значений задан.
2. Если параметр запроса - таблица значений то тоже консоль ошибку пишет.
3. Еще в меню нужна кнопка "Удалить файл перехвата". Если поймал какую то ошибку при перехвате, но никак не убить/очистить косячный файл.
105. huxuxuya 409 07.04.20 12:07 Сейчас в теме
(104)
А у тебя ее в гите нет? Принял бы участие в доработке.
113. kuza2000 233 31.05.20 19:46 Сейчас в теме
(104)
1 - Исправил.
2 - Не могу воспроизвести, нужно больше информации. Перехватываю запрос, у которого параметр - таблица значений, все ОК. Загружается параметр и содержимое таблицы в нем.
3 - Добавил удаление файлов.
Исправленную версию выложу сегодня, это будет 1.5
114. huxuxuya 409 10.06.20 22:36 Сейчас в теме
106. winipuhtwo 12 20.04.20 15:14 Сейчас в теме
При попытке изменить параметры виртуальной таблицы - какую-то ерунду показывает.
Прикрепленные файлы:
JohnConnor; +1 – Ответить
110. kuza2000 233 31.05.20 19:13 Сейчас в теме
(106)
Это баги конструктора запросов, который встроен в платформу. Проявляется на всех консолях, которые используют типовой конструктор запросов. Тут я изменить ничего не могу. У меня тоже такое бывает, на разных консолях. Если параметры закрыть и открыть снова - проходит.
107. Aleskey_K 38 23.04.20 13:59 Сейчас в теме
111. kuza2000 233 31.05.20 19:17 Сейчас в теме
(107)
От консоли поддержка этих конструкций не зависит. Все что написано в запросе, исполняет платформа. Есть ли поддержка в конструкторе - так же зависит от конструктора запросов, который встроен в платформу.
108. FreeArcher 164 04.05.20 12:07 Сейчас в теме
Хорошая консоль.
Можно на будущее сделать навигацию по результатам через ссылки, нагляднее и удобнее.
Прикрепленные файлы:
109. soulner 536 27.05.20 10:24 Сейчас в теме
Добрый день.

1С:Комплексная автоматизация 2 (2.4.11.46)
1С:Предприятие 8.3 (8.3.15.1700)

Толстый клиент. При выборе любого объекта в конструкторе запроса возникает ошибка.

При подписке ПереопределитьПолучаемуюФормуПрисоединенногоФайлаЗарплатаКад­рыБазовая на событие ОбработкаПолученияФормы произошла ошибка. Обработчик события не найден.
{ВнешняяОбработка.КонсольЗапросов9000.Форма.Форма.Форма(2796)}: Если КонструкторЗапроса.ОткрытьМодально() Тогда

по причине:
При подписке ПереопределитьПолучаемуюФормуПрисоединенногоФайлаЗарплатаКад­рыБазовая на событие ОбработкаПолученияФормы произошла ошибка. Обработчик события не найден.
112. kuza2000 233 31.05.20 19:28 Сейчас в теме
(109)
Это ошибки в конфигурации. Если попробовать использовать любую другую консоль запросов в том же режиме (толстый клиент) - будет то же самое.
Нужно разобраться, почему не найден обработчик события.
115. papche 682 29.06.20 19:15 Сейчас в теме
Хорошая штука. Брал ради уникальных идентификаторов ссылок. Полный порядок в этом.
Да и остальное - видно постарался автор!
116. soulner 536 02.07.20 18:37 Сейчас в теме
Конфигурация 1С:Комплексная автоматизация 2 (2.4.11.46), большой запрос по пользователям, нужно сделать фильтр по подразделениям, по некоторой группе подразделений, беру Вашу консоль запросов, т.к. в описании написано, что можно в качестве параметра передавать массив. А оказывается, что нет. Объект в базе есть, а в поиске его не найти. Что делать? Это баг или фича такая?
Прикрепленные файлы:
117. kuza2000 233 02.07.20 21:43 Сейчас в теме
(116)
При выборе типов поиск ведется в списке, в котором отображаются представления типов. У меня нет под рукой КА, заглянул в ERP. Там у этого справочника представление как "Подразделение". Видимо, в КА он тоже под этим именем будет.
Прикрепленные файлы:
119. soulner 536 03.07.20 15:17 Сейчас в теме
(117) А вы правы, я синоним посмотрел, а представление нет. Свой вопрос снимаю, сам не внимателен.
118. kuza2000 233 02.07.20 22:01 Сейчас в теме
(116)
Вообще, с этими представлениями путаница происходит частенько. Ниже - стандартное окно выбора типов 1С в режиме пользователя. Там тоже по представлениям. Подразделения там аж две штуки. Одно из них - структура предприятия, а другое - подразделения организаций.
А вот в конфигураторе везде идентификаторы метаданных. Наверное, и в консоли стоит сделать тоже по идентификаторам типов.
Прикрепленные файлы:
120. redtram 50 07.08.20 18:33 Сейчас в теме
Невозможно добавить в параметры массив типов. При переключении контейнера на массив и открытии окна редактирования параметра есть только "не определено" и нет возможности редактирования.
125. kuza2000 233 29.08.20 16:35 Сейчас в теме
(120)
Да, редактировать массив типов не удается. В следующей версии исправлю.
Сейчас можно создать массив типов обходным путем: создать таблицу с колонкой типа "тип", заполнить ее, и преобразовать в массив.
121. Kubik1984 59 13.08.20 16:42 Сейчас в теме
А если уже скачивал ранее, в марте вроде, то для получения актуальной версии нужно снова за денюжку скачивать?
122. redtram 50 14.08.20 12:32 Сейчас в теме
Как насчет вывести вашу обработку в опенсорс на гитхаб? :) Коллективно допилим, будете сами смотреть что включить в мастер ветку, а что не включать :)
124. kuza2000 233 29.08.20 13:41 Сейчас в теме
127. Axel_F 83 29.12.20 16:57 Сейчас в теме
(124)

Привет) как ее на гите найти?
123. пользователь 29.08.20 13:39
Сообщение было скрыто модератором.
...
126. alex_sayan 71 08.11.20 19:43 Сейчас в теме
Растёт наш брат 1сник. Раньше каждый изобретал свой перенумератор с блэкджеком и шлюпками. Теперь каждый изобретает свою консоль запросов с с блэкджеком и шлюпками (:
128. zzerro 277 11.01.21 09:41 Сейчас в теме
Отличная консоль, но есть несколько минусов:
1. Нет поиска по дереву конфигурации в конструкторе запросов
2. Нет раскраски текста запроса (параметры, комментарии)
3. Нет подстановки метаданных в тексте запроса через ctrl+пробел
4. Не работает кнопка "В документ"
5. Невозможно вывести результат запроса в виде дерева на печать
6. Хотелось бы кнопку "Сохранить в эксель" результат выборки
7. В алгоритмах работа идет с выборкой, было бы интересно еще с таблицей (деревом), что бы можно было какие-то колонки выборки (таблицы) заполнить постобработкой.
129. kuza2000 233 11.01.21 11:17 Сейчас в теме
(128)
Спасибо за отзыв!

Пожелания учту. Но сделать, например, 1 очень непросто, так как используется типовой конструктор запросов от 1С. Если только писать свой, что работа колоссальная. Но реальная, возможно, сделаю это в будущем. То же касается 2 и 3 - 1С этого тоже не умеет. Ситуация осложняется еще тем, что консоль эта работает не только под Windows.

А 4 - это баг? Почему не работает, что сообщает?

П. 6 можно сделать, нажав вывод в список (скрин), там есть кнопка сохранения, можно сохранить и в Эксель. Так же это можно сделать и через "В документ".
Прикрепленные файлы:
130. kaliuzhnyi 136 15.02.21 15:39 Сейчас в теме
Эх, решил попробовать данную консольку и на первом же запросе свалилась.
При подстановке значение берется не из имени элемента перечисления а из синонима.
Прикрепленные файлы:
131. kaliuzhnyi 136 15.02.21 15:48 Сейчас в теме
(130) А вообще - консоль понравилась. Хотелось бы, чтобы автор развивал данный проект.
132. kuza2000 233 15.02.21 20:01 Сейчас в теме
(130) Кнопка предопределенного значения не верно сформировала значение. Исправьте его вручную. Ошибку записал, исправлю в следующей версии.
136. vlivanov 6 27.04.21 10:43 Сейчас в теме
1С:Предприятие 8.3 (8.3.16.1659)
1С:ERP Управление предприятием
БИТ.ФИНАНС 3.2 (2.4.12.83/3.2.27.8)

Док.ОтчетКомиссионера.МО
Функция ВременныеТаблицыДанныхДокумента(Сторно)
Вынесенная в расширение с аннотацией &ИзменениеИКонтроль

При попытке перехвата запроса из строки
Запрос.Выполнить()
в конце функции выдает ошибку:

ВнешниеОбработки.Создать("C:\Users\USR1CV8\AppData\Local\Temp\Консоль Запросов 9000_1.1.10.epf", Ложь).СохранитьЗапрос(2424274648, Запрос) {ВнешняяОбработка.КонсольЗапросов9000.МодульОбъекта(1174)}: Ошибка при вызове метода контекста (ЗаписатьXML)

Воспроизводится и из внешней обработки и из расшрения.
138. kuza2000 233 27.04.21 17:13 Сейчас в теме
(136) Возникает именно при использовании расширения, без него не возникает?
Попробую воспроизвести.

(137) Записал как пожелание.
139. vlivanov 6 27.04.21 21:02 Сейчас в теме
(138)
Возникает именно при использовании расширения, без него не возникает?
Попробую воспроизвести.

Именно этот момент не тестил. В расширении изменена пара строчек в запросе. Сам запрос отрабатывает без ошибок. В том числе и в консоли, если его туда руками перенести.
137. vlivanov 6 27.04.21 12:45 Сейчас в теме
А еще среди типов параметров нехватает типа Неопределено.
140. vlivanov 6 10.06.21 17:52 Сейчас в теме
https://imgur.com/yH6nf6B
Жму на кнопку и получаю в тексте запроса:
ЗНАЧЕНИЕ(Перечисление.ТипыДоговоров.С поставщиком / исполнителем)
142. kuza2000 233 28.07.21 15:09 Сейчас в теме
(140)
В следующей версии будет исправлено.
143. vlivanov 6 02.08.21 13:40 Сейчас в теме
(142) Спасибо.
Еще хорошо бы добавить отображение полного пути и имени текущего открытого файла с запросами в заголовок формы (после или вместо надписи "КонсольЗапросов 9000")
141. Migleon 28.07.21 14:51 Сейчас в теме
При использовании расширения нельзя в качестве параметра выбрать значения объектов метаданных расширения.
145. user1605991 16.11.21 19:51 Сейчас в теме
Скажите пожалуйста, почему недоступен внутренний (вложенный) реквизит из поля временной таблицы из Менеджера временных таблиц при перехвате запроса из отладчика

Поле не найдено "Таблица.Ссылка.ХозяйственнаяОперация"
Таблица.Ссылка.<<?>>ХозяйственнаяОперация

Такая же ситуация и в известной консоли Управляемая Консоль Отчетов 3.8.9 Люлюка.

Ошибку можно исправить например через функцию ВЫРАЗИТЬ вот так:

ВЫРАЗИТЬ(Таблица.Ссылка КАК Документ.РеализацияТоваровУслуг).ХозяйственнаяОперация

НО, это типовая конфигурация Комплексная автоматизация 2.4.13.119, платформа 8.3.18.1433
Документ Реализации, запрос, формирующий печатную форму Торг-12.
Почему же внутри конфигурации запрос работает, а в консоли ругается?

И, самое интересное, в консоли запросов Инструментов разработчика все работает!
Да, ИР работает в Толстом клиенте, но если запустить данную консоль 9000 также в Толстом клиенте то все равно ошибка.
Так и должно быть? По-моему нет.
Прикрепленные файлы:
146. Evg-Lylyk 5530 17.11.21 10:51 Сейчас в теме
(145) Попробую что-то прояснить
Сталкивался с подобными ситуациями, когда конструктор запроса (механизм объектной модели запроса) не может определить тип и сбоит.
Разницы в выполнении по идее нет все сводится к методу Запрос.Выполнить()
Особенности могут быть при получении параметров НайтиПараметры() и при получении из отладки тут нужно глубже копать.
Еще может быть особенность касательно конструктора запросов их два тонкий и толстый.
Я бы разобрался, только подскажите где находится воспроизводимый пример (сам не смог).

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

Также сталкивался с проблемой что иногда в параметрах запроса есть параметры которые в тексте не используются и они могут иметь значения типов не поддерживаемых в запросе. Делал что бы в консоль тянулись только параметры найденные в тексте запроса (так в Туллкит продолжении управл. консоли). Тоже будет ошибка.

На счет ИР могут быть особенности думаю автор может ответить
147. user1605991 17.11.21 21:00 Сейчас в теме
(146)
Я бы разобрался, только подскажите где находится воспроизводимый пример


Запрос находится в Процедуре "ПолучитьДанныеДляПечатнойФормыТОРГ12" в общем модуле "РеализацияТоваровУслугЛокализация"

Часть запроса с ошибкой:
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры,

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

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

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

Целиком запрос не буду помещать, он слишком длинный, в модуле можно посмотреть полностью.

Если проследить источники данных, связанные с ошибкой
Поле не найдено "Таблица.Ссылка.ХозяйственнаяОперация"
Таблица.Ссылка.<<?>>ХозяйственнаяОперация, получится следующее:

1. Таблица "Таблица" берется из ВР "ВременнаяТаблицаНаборыПодготовка",

2. ВР "ВременнаяТаблицаНаборыПодготовка" берется из ВР МенеджераВР "РеализацияТоваровУслугТаблицаТоваров",

3. ВР из МенеджераВР "РеализацияТоваровУслугТаблицаТоваров" моём случае не пустая, имеет 2 строки.

Все скриншоты прилагаются.

P. S. В толстом клиенте сохранить параметры запроса в настройки (как на скрине 3)не получилось.
Прикрепленные файлы:
148. user1605991 17.11.21 21:09 Сейчас в теме
(146)
Ещё немного скриншотов и большая часть запроса:
ВЫБРАТЬ
	РеализацияТоваровУслуг.Ссылка КАК Ссылка,
	РеализацияТоваровУслуг.Номер КАК Номер,
	РеализацияТоваровУслуг.Дата КАК Дата,
	РеализацияТоваровУслуг.Статус КАК Статус,
	РеализацияТоваровУслуг.Партнер КАК Партнер,
	РеализацияТоваровУслуг.Контрагент КАК Контрагент,
	ВЫБОР
		КОГДА РеализацияТоваровУслуг.Организация.ОбособленноеПодразделение
			ТОГДА РеализацияТоваровУслуг.Организация.ГоловнаяОрганизация
		ИНАЧЕ РеализацияТоваровУслуг.Организация
	КОНЕЦ КАК Организация,
	ТаблицаОтветственныеЛица.РуководительНаименование  КАК Руководитель,
	ТаблицаОтветственныеЛица.РуководительДолжность КАК ДолжностьРуководителя,
	ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
	РеализацияТоваровУслуг.Отпустил КАК Кладовщик,
	РеализацияТоваровУслуг.ОтпустилДолжность КАК ДолжностьКладовщика,
	РеализацияТоваровУслуг.Организация.Префикс КАК Префикс,
	РеализацияТоваровУслуг.Основание КАК Основание,
	РеализацияТоваровУслуг.ОснованиеДата КАК ОснованиеДата,
	РеализацияТоваровУслуг.ОснованиеНомер КАК ОснованиеНомер,
	ВЫБОР
		КОГДА РеализацияТоваровУслуг.Грузополучатель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
			ТОГДА РеализацияТоваровУслуг.Контрагент
		ИНАЧЕ РеализацияТоваровУслуг.Грузополучатель
	КОНЕЦ КАК Грузополучатель,
	ВЫБОР
		КОГДА РеализацияТоваровУслуг.Грузоотправитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
			ТОГДА РеализацияТоваровУслуг.Организация
		ИНАЧЕ РеализацияТоваровУслуг.Грузоотправитель
	КОНЕЦ КАК Грузоотправитель,
	РеализацияТоваровУслуг.БанковскийСчетОрганизации КАК БанковскийСчетОрганизации,
	РеализацияТоваровУслуг.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
	РеализацияТоваровУслуг.БанковскийСчетГрузоотправителя КАК БанковскийСчетГрузоотправителя,
	РеализацияТоваровУслуг.БанковскийСчетГрузополучателя КАК БанковскийСчетГрузополучателя,
	РеализацияТоваровУслуг.АдресДоставки КАК АдресДоставки,
	НЕОПРЕДЕЛЕНО КАК Подразделение,
	РеализацияТоваровУслуг.Валюта КАК Валюта,
	РеализацияТоваровУслуг.НалогообложениеНДС КАК НалогообложениеНДС,
	РеализацияТоваровУслуг.ДоверенностьНомер КАК ДоверенностьНомер,
	РеализацияТоваровУслуг.ДоверенностьДата КАК ДоверенностьДата,
	РеализацияТоваровУслуг.ДоверенностьВыдана КАК ДоверенностьВыдана,
	РеализацияТоваровУслуг.ДоверенностьЛицо КАК ДоверенностьЛицо,
	&ЕдиницаИзмеренияВеса КАК ЕдиницаИзмеренияВеса
ИЗ
	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаДанныхДокументов КАК ДанныеДокументов
		ПО РеализацияТоваровУслуг.Ссылка = ДанныеДокументов.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
		ПО РеализацияТоваровУслуг.Ссылка = ТаблицаОтветственныеЛица.Ссылка

УПОРЯДОЧИТЬ ПО
	Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ТаблицаТоваров.Ссылка                КАК Ссылка,
	ТаблицаТоваров.НоменклатураНабора    КАК НоменклатураНабора,
	ТаблицаТоваров.ХарактеристикаНабора  КАК ХарактеристикаНабора,
	МИНИМУМ(ТаблицаТоваров.НомерСтроки)  КАК НомерСтроки,
	СУММА(ВЫБОР
		КОГДА &ЗаполненаЕдиницаИзмеренияВеса
			ТОГДА ВЫБОР
					КОГДА ТаблицаТоваров.Упаковка.Вес ЕСТЬ NULL 
						ТОГДА ТаблицаТоваров.Количество
					ИНАЧЕ ВЫБОР 
							КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = Значение(Перечисление.ТипыИзмеряемыхВеличин.Вес)
								ТОГДА 0
							ИНАЧЕ ТаблицаТоваров.КоличествоУпаковок
						КОНЕЦ
				КОНЕЦ * ВЫРАЗИТЬ(ВЫБОР
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЧислитель / ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Вес * ТаблицаТоваров.Упаковка.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Упаковка.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))
			КОГДА (ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ПустаяСсылка)
					ИЛИ ЕСТЬNULL(ТаблицаТоваров.Упаковка.Ссылка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка))
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			ИНАЧЕ 0
		КОНЕЦ / (ВЫРАЗИТЬ(1 КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		ИНАЧЕ 0
	КОНЕЦ) КАК МассаБрутто,
	СУММА(ТаблицаТоваров.Количество * ВЫРАЗИТЬ(ВЫБОР
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЧислитель / ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Вес * ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))
			КОГДА (ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
					ИЛИ ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ПустаяСсылка)
					ИЛИ ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Ссылка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка))
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			ИНАЧЕ 0
		КОНЕЦ / (ВЫРАЗИТЬ(1 КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) КАК МассаНетто,
	СУММА(ТаблицаТоваров.СуммаБезНДС)    КАК СуммаБезНДС,
	СУММА(ТаблицаТоваров.СуммаНДС)       КАК СуммаНДС
ПОМЕСТИТЬ ВременнаяТаблицаНаборыПодготовка
ИЗ
	РеализацияТоваровУслугТаблицаТоваров КАК ТаблицаТоваров

ГДЕ
	ТаблицаТоваров.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
	ТаблицаТоваров.Ссылка,
	ТаблицаТоваров.НоменклатураНабора,
	ТаблицаТоваров.ХарактеристикаНабора

;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Товары.Ссылка                                    КАК Ссылка,
	Товары.ВариантКомплектацииНоменклатуры           КАК ВариантКомплектацииНоменклатуры,
	Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
	Товары.ВариантРасчетаЦеныНабора                  КАК ВариантРасчетаЦеныНабора,
	Товары.НоменклатураНабора,
	Товары.ХарактеристикаНабора,
	Товары.Номенклатура,
	Товары.Характеристика,
	ВЫБОР КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
		И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика ТОГДА
		ИСТИНА
	ИНАЧЕ
		ЛОЖЬ
	КОНЕЦ КАК ОсновнаяКомплектующая,
	Товары.СтавкаНДС КАК СтавкаНДС,
	ВЫБОР КОГДА Товары.ВариантКомплектацииНоменклатуры.НоменклатураОсновногоКомпонента = Товары.Номенклатура
		И Товары.ВариантКомплектацииНоменклатуры.ХарактеристикаОсновногоКомпонента = Товары.Характеристика ТОГДА
		Товары.НомерГТД
	ИНАЧЕ
		null
	КОНЕЦ КАК НомерГТД,
	0 КАК КоличествоПоУмолчанию,
	Товары.Количество КАК Количество
ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьПервая
ИЗ
	РеализацияТоваровУслугТаблицаТоваров КАК Товары

ГДЕ
	Товары.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)

ОБЪЕДИНИТЬ ВСЕ

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

СГРУППИРОВАТЬ ПО
	Т.Ссылка,
	ВариантыКомплектацииНоменклатурыТовары.Ссылка,
	ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец,
	ВариантыКомплектацииНоменклатурыТовары.Ссылка.Характеристика,
	ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
	ВариантыКомплектацииНоменклатурыТовары.Характеристика,
	ВариантыКомплектацииНоменклатурыТовары.Упаковка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Таблица.Ссылка,
	Таблица.ВариантКомплектацииНоменклатуры,
	Таблица.ВариантРасчетаЦеныНабора,
	Таблица.ВариантПредставленияНабораВПечатныхФормах,
	Таблица.НоменклатураНабора,
	Таблица.ХарактеристикаНабора,
	Таблица.Номенклатура,
	Таблица.Характеристика,
	МАКСИМУМ(Таблица.СтавкаНДС) КАК СтавкаНДС,
	МАКСИМУМ(Таблица.НомерГТД) КАК НомерГТД,
	МАКСИМУМ(Таблица.ОсновнаяКомплектующая) КАК ОсновнаяКомплектующая,
	СУММА(Таблица.КоличествоПоУмолчанию) КАК КоличествоПоУмолчанию,
	СУММА(Таблица.Количество) КАК Количество
ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительноЧастьВторая
ИЗ
	ВременнаяТаблицаНаборыДополнительноЧастьПервая КАК Таблица

СГРУППИРОВАТЬ ПО
	Таблица.Ссылка,
	Таблица.ВариантКомплектацииНоменклатуры,
	Таблица.ВариантРасчетаЦеныНабора,
	Таблица.ВариантПредставленияНабораВПечатныхФормах,
	Таблица.НоменклатураНабора,
	Таблица.ХарактеристикаНабора,
	Таблица.Номенклатура,
	Таблица.Характеристика
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Результат.Ссылка,
	Результат.ВариантКомплектацииНоменклатуры,
	Результат.ВариантРасчетаЦеныНабора,
	Результат.ВариантПредставленияНабораВПечатныхФормах,
	Результат.НоменклатураНабора,
	Результат.ХарактеристикаНабора,
	МАКСИМУМ(ВЫБОР
			КОГДА Результат.ОсновнаяКомплектующая
				ТОГДА Результат.СтавкаНДС
			ИНАЧЕ null
		КОНЕЦ) КАК СтавкаНДС,
	МАКСИМУМ(Результат.НомерГТД) КАК НомерГТД,
	ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
			КОГДА Результат.КоличествоПоУмолчанию <> 0 И Результат.ОсновнаяКомплектующая
				ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
			ИНАЧЕ null
		КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК Количество,
	МАКСИМУМ(ВЫБОР
			КОГДА Результат.КоличествоПоУмолчанию <> 0
				ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
			ИНАЧЕ null
		КОНЕЦ) КАК КоэффициентМаксимум,
	ВЫРАЗИТЬ(МИНИМУМ(ВЫБОР
			КОГДА Результат.КоличествоПоУмолчанию <> 0
				ТОГДА Результат.Количество / Результат.КоличествоПоУмолчанию
			ИНАЧЕ null
		КОНЕЦ) + 0.5 КАК Число(10,0)) - 1 КАК КоэффициентМинимум
ПОМЕСТИТЬ ВременнаяТаблицаНаборыДополнительно
ИЗ
	ВременнаяТаблицаНаборыДополнительноЧастьВторая КАК Результат
СГРУППИРОВАТЬ ПО
	Результат.Ссылка,
	Результат.ВариантКомплектацииНоменклатуры,
	Результат.ВариантРасчетаЦеныНабора,
	Результат.ВариантПредставленияНабораВПечатныхФормах,
	Результат.НоменклатураНабора,
	Результат.ХарактеристикаНабора
ИНДЕКСИРОВАТЬ ПО
	Ссылка,
	НоменклатураНабора,
	ХарактеристикаНабора
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВременнаяТаблицаНаборыДополнительно.ВариантКомплектацииНоменклатуры,

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

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

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ТаблицаТоваров.Ссылка КАК Ссылка,
	ТаблицаТоваров.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
	ТаблицаТоваров.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
	ТаблицаТоваров.НоменклатураНабора КАК НоменклатураНабора,
	ТаблицаТоваров.ХарактеристикаНабора КАК ХарактеристикаНабора,
	ТаблицаТоваров.ЭтоКомплектующие КАК ЭтоКомплектующие,
	ТаблицаТоваров.ЭтоНабор КАК ЭтоНабор,
	ТаблицаТоваров.ПолныйНабор КАК ПолныйНабор,
	ТаблицаТоваров.Номенклатура КАК Номенклатура,
	ТаблицаТоваров.Номенклатура.НаименованиеПолное КАК НоменклатураНаименование,
	ТаблицаТоваров.Номенклатура.Наименование КАК НоменклатураНаименованиеКраткое,
	ВЫБОР
		КОГДА &КолонкаКодов = "Артикул"
			ТОГДА ТаблицаТоваров.Номенклатура.Артикул
		ИНАЧЕ ТаблицаТоваров.Номенклатура.Код
	КОНЕЦ КАК НоменклатураКод,
	ВЫБОР
		КОГДА &ВыводитьБазовыеЕдиницыИзмерения
			ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
		ИНАЧЕ ВЫБОР
	КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
	КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
		ТОГДА ТаблицаТоваров.Упаковка.ЕдиницаИзмерения
	ИНАЧЕ ТаблицаТоваров.Упаковка
КОНЕЦ
	КОНЕЦ КАК ЕдиницаИзмерения,
	ВЫБОР
		КОГДА &ВыводитьБазовыеЕдиницыИзмерения
			ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Представление
		ИНАЧЕ ВЫБОР
	КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Наименование
	КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
		ТОГДА ТаблицаТоваров.Упаковка.ЕдиницаИзмерения.Наименование
	ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
КОНЕЦ
	КОНЕЦ КАК ЕдиницаИзмеренияНаименование,
	ВЫБОР
		КОГДА &ВыводитьБазовыеЕдиницыИзмерения
			ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Код
		ИНАЧЕ ВЫБОР
	КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Код
	КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
		ТОГДА ТаблицаТоваров.Упаковка.ЕдиницаИзмерения.Код
	ИНАЧЕ ТаблицаТоваров.Упаковка.Код
КОНЕЦ
	КОНЕЦ КАК ЕдиницаИзмеренияКод,
	ТаблицаТоваров.Характеристика КАК Характеристика,
	ТаблицаТоваров.Характеристика.НаименованиеПолное КАК ХарактеристикаНаименование,
	ТаблицаТоваров.Упаковка КАК Упаковка,
	ВЫБОР
		КОГДА ЕСТЬNULL(ВЫБОР
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
				И ТаблицаТоваров.Номенклатура.ВесИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
				И ТаблицаТоваров.Номенклатура.ОбъемИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
				И ТаблицаТоваров.Номенклатура.ПлощадьИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
				И ТаблицаТоваров.Номенклатура.ДлинаИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЧислитель / ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА (ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время))
				И ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
			ТОГДА 1
		ИНАЧЕ NULL
	КОНЕЦ, 1) = 1
			ТОГДА ""
		ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
	КОНЕЦ КАК УпаковкаНаименование,
	ВЫБОР
		КОГДА &ВыводитьБазовыеЕдиницыИзмерения ТОГДА
			ВЫБОР
	КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Наименование
	КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
		ТОГДА ТаблицаТоваров.Упаковка.ЕдиницаИзмерения.Наименование
	ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
КОНЕЦ
		ИНАЧЕ
			ВЫБОР
	КОГДА ЕСТЬNULL(КоэффициентыУпаковок.ВидУпаковки, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Наименование
	КОГДА КоэффициентыУпаковок.ВидУпаковки.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
		ТОГДА КоэффициентыУпаковок.ВидУпаковки.ЕдиницаИзмерения.Наименование
	ИНАЧЕ КоэффициентыУпаковок.ВидУпаковки.Наименование
КОНЕЦ
	КОНЕЦ КАК ВидУпаковки,
	ТаблицаТоваров.СтавкаНДС КАК СтавкаНДС,
	ТаблицаТоваров.НомерГТД КАК НомерГТД,
	ТаблицаТоваров.НомерГТД.СтранаПроисхождения КАК СтранаПроисхождения,
	ВЫБОР
		КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
			ТОГДА ТаблицаТоваров.КоличествоУпаковок
		ИНАЧЕ ТаблицаТоваров.Количество
	КОНЕЦ КАК Количество,
	ВЫБОР
		КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
				И НЕ ТаблицаТоваров.ЭтоНабор
			ТОГДА ВЫБОР
					КОГДА КоэффициентыУпаковок.КоличествоУпаковок < ВЫРАЗИТЬ(ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентВложеннойУпаковки, 1) / ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентУпаковки, 1) КАК ЧИСЛО(12, 3))
						ТОГДА 1
					ИНАЧЕ ВЫРАЗИТЬ(ТаблицаТоваров.Количество / ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентВложеннойУпаковки, 1)  КАК ЧИСЛО(12, 3))
				КОНЕЦ
		ИНАЧЕ ВЫБОР
				КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
					ИЛИ ТаблицаТоваров.Упаковка = (ВЫБОР
											КОГДА &ВыводитьБазовыеЕдиницыИзмерения
											ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
											ИНАЧЕ ВЫБОР
	КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
	КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
		ТОГДА ТаблицаТоваров.Упаковка.ЕдиницаИзмерения
	ИНАЧЕ ТаблицаТоваров.Упаковка
КОНЕЦ 
											КОНЕЦ)  
					ТОГДА ТаблицаТоваров.Количество
				ИНАЧЕ ВЫРАЗИТЬ(ТаблицаТоваров.Количество / ЕСТЬNULL(ВЫБОР
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
				И ТаблицаТоваров.Номенклатура.ВесИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
				И ТаблицаТоваров.Номенклатура.ОбъемИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
				И ТаблицаТоваров.Номенклатура.ПлощадьИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
				И ТаблицаТоваров.Номенклатура.ДлинаИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЧислитель / ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА (ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время))
				И ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
			ТОГДА 1
		ИНАЧЕ NULL
	КОНЕЦ, 1) КАК ЧИСЛО(12, 3))
			КОНЕЦ
	КОНЕЦ КАК КоличествоМест,
	ВЫБОР
		КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения И НЕ ТаблицаТоваров.ЭтоНабор
			ТОГДА ВЫБОР
					КОГДА КоэффициентыУпаковок.КоличествоУпаковок < ВЫРАЗИТЬ(ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентВложеннойУпаковки, 1) / ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентУпаковки, 1) КАК ЧИСЛО(12,3))
						ТОГДА
						КоэффициентыУпаковок.КоличествоУпаковок
					ИНАЧЕ	
						ВЫРАЗИТЬ(ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентВложеннойУпаковки, 1) / ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентУпаковки, 1) КАК ЧИСЛО(12,3))  
					КОНЕЦ
		ИНАЧЕ ВЫБОР
				КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
					ИЛИ ТаблицаТоваров.Упаковка = (ВЫБОР
										КОГДА &ВыводитьБазовыеЕдиницыИзмерения
										ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
										ИНАЧЕ ВЫБОР
	КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
	КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
		ТОГДА ТаблицаТоваров.Упаковка.ЕдиницаИзмерения
	ИНАЧЕ ТаблицаТоваров.Упаковка
КОНЕЦ 
										КОНЕЦ)  
					ТОГДА 
						ВЫБОР КОГДА ТаблицаТоваров.Количество < 1
							ТОГДА ТаблицаТоваров.Количество
							ИНАЧЕ 1
						КОНЕЦ
				ИНАЧЕ 
					ВЫБОР КОГДА ТаблицаТоваров.Количество < ЕСТЬNULL(ВЫБОР
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
				И ТаблицаТоваров.Номенклатура.ВесИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
				И ТаблицаТоваров.Номенклатура.ОбъемИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
				И ТаблицаТоваров.Номенклатура.ПлощадьИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
				И ТаблицаТоваров.Номенклатура.ДлинаИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЧислитель / ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА (ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время))
				И ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
			ТОГДА 1
		ИНАЧЕ NULL
	КОНЕЦ, 0)
						ТОГДА ТаблицаТоваров.Количество
						ИНАЧЕ ЕСТЬNULL(ВЫБОР
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
				И ТаблицаТоваров.Номенклатура.ВесИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
				И ТаблицаТоваров.Номенклатура.ОбъемИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
				И ТаблицаТоваров.Номенклатура.ПлощадьИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
				И ТаблицаТоваров.Номенклатура.ДлинаИспользовать
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЧислитель, 0) <> 0
				И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЧислитель / ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА (ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время))
				И ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
				И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
			ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))
		КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
			ТОГДА 1
		ИНАЧЕ NULL
	КОНЕЦ, 0)
					КОНЕЦ
			КОНЕЦ
	КОНЕЦ КАК КоличествоВОдномМесте,	
	ВЫБОР
		КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
			ТОГДА ТаблицаТоваров.СуммаБезНДС / ТаблицаТоваров.КоличествоУпаковок
		ИНАЧЕ ТаблицаТоваров.СуммаБезНДС / ТаблицаТоваров.Количество
	КОНЕЦ КАК Цена,
	ТаблицаТоваров.СуммаБезНДС КАК СуммаБезНДС,
	ТаблицаТоваров.СуммаНДС КАК СуммаНДС,
	ТаблицаТоваров.СуммаБезНДС + ТаблицаТоваров.СуммаНДС КАК СуммаСНДС,
	ТаблицаТоваров.МассаНетто,
	ТаблицаТоваров.МассаБрутто,
	ТаблицаТоваров.НомерСтроки КАК НомерСтроки,
	ТаблицаТоваров.НомерСтрокиНаборы КАК НомерСтрокиНаборы,
	ВЫБОР
		КОГДА
			ТаблицаТоваров.Ссылка.ВернутьМногооборотнуюТару
			И ТаблицаТоваров.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
		ТОГДА
			ИСТИНА
		ИНАЧЕ
			ЛОЖЬ
	КОНЕЦ КАК ЭтоВозвратнаяТара
ИЗ
(
	ВЫБРАТЬ
		ТаблицаТоваров.Ссылка,
		ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
			ВременнаяТаблицаНаборы.ВариантПредставленияНабораВПечатныхФормах
		ИНАЧЕ
			ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)
		КОНЕЦ КАК ВариантПредставленияНабораВПечатныхФормах,
		ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
			ВременнаяТаблицаНаборы.ВариантРасчетаЦеныНабора
		ИНАЧЕ
			ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
		КОНЕЦ КАК ВариантРасчетаЦеныНабора,
		ТаблицаТоваров.НоменклатураНабора,
		ТаблицаТоваров.ХарактеристикаНабора,
		ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
			ИСТИНА
		ИНАЧЕ
			ЛОЖЬ
		КОНЕЦ КАК ЭтоКомплектующие,
		ЛОЖЬ КАК ЭтоНабор,
		ТаблицаТоваров.НомерСтроки КАК НомерСтроки,
		ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
			ВременнаяТаблицаНаборы.НомерСтроки
		ИНАЧЕ
			ТаблицаТоваров.НомерСтроки
		КОНЕЦ КАК НомерСтрокиНаборы,
		ВЫБОР КОГДА ЕСТЬNULL(ВременнаяТаблицаНаборы.НомерСтроки, 0) <> 0 ТОГДА
			ВременнаяТаблицаНаборы.ПолныйНабор
		ИНАЧЕ
			ЛОЖЬ
		КОНЕЦ КАК ПолныйНабор,
		ТаблицаТоваров.Номенклатура,
		ТаблицаТоваров.Количество,
		ТаблицаТоваров.КоличествоУпаковок,
		ТаблицаТоваров.СтавкаНДС,
		ТаблицаТоваров.НомерГТД,
		ТаблицаТоваров.СуммаБезНДС,
		ТаблицаТоваров.СуммаНДС,
		ТаблицаТоваров.Характеристика,
		ТаблицаТоваров.Упаковка,
		ВЫБОР
			КОГДА &ЗаполненаЕдиницаИзмеренияВеса
				ТОГДА ВЫБОР
						КОГДА ТаблицаТоваров.Упаковка.Вес ЕСТЬ NULL 
							ТОГДА ТаблицаТоваров.Количество
						ИНАЧЕ ВЫБОР 
							КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = Значение(Перечисление.ТипыИзмеряемыхВеличин.Вес)
								ТОГДА 0
							ИНАЧЕ ТаблицаТоваров.КоличествоУпаковок
						КОНЕЦ
					КОНЕЦ * ВЫРАЗИТЬ(ВЫБОР
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Числитель / ТаблицаТоваров.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ДлинаЧислитель / ТаблицаТоваров.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
					И ЕСТЬNULL(ТаблицаТоваров.Упаковка.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Упаковка.Вес * ТаблицаТоваров.Упаковка.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Упаковка.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))
			КОГДА (ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
					ИЛИ ТаблицаТоваров.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ПустаяСсылка)
					ИЛИ ЕСТЬNULL(ТаблицаТоваров.Упаковка.Ссылка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка))
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			ИНАЧЕ 0
		КОНЕЦ / (ВЫРАЗИТЬ(1 КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))
			ИНАЧЕ 0
		КОНЕЦ КАК МассаБрутто,
		ТаблицаТоваров.Количество * ВЫРАЗИТЬ(ВЫБОР
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ОбъемЧислитель / ТаблицаТоваров.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
			КОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
					И ТаблицаТоваров.Номенклатура.ВесИспользовать
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЗнаменатель, 0) <> 0
					И ЕСТЬNULL(ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
				ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТоваров.Номенклатура.ПлощадьЧислитель / ТаблицаТоваров.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТоваров.Номенклатура.ВесЧислитель / ТаблицаТоваров.Номенклатура.ВесЗнаменатель) * (ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
Показать
Прикрепленные файлы:
149. kuza2000 233 17.11.21 21:14 Сейчас в теме
(145) У меня, к сожалению, нет под рукой КА, что бы воспроизвести.
Посмотрел код. Там ожидается, что иногда метод НайтиПараметры может упасть. Суть сообщение - что из текста запроса параметры достать не удалось, и они будут заполнены только по перехваченному объекту запроса. Это стоит рассматривать не как ошибку, а как предупреждение, другие функции должны работать.

Другие действия с запросом можно выполнить? Он выполняется? Открывается в конструкторе?

А вообще, Евгений в общих чертах уже пояснил. Это, по сути, ошибка платформы - падает платформенный метод на корректном запросе.

Почему ИР работает - действительно лучше спросить у автора ИР) Может быть, разница в контексте выполнения - все-таки обычное приложение это не то же самое, что толстый клиент. А может быть, там сделана более продвинутая обработка такой ситуации.
150. user1605991 17.11.21 21:43 Сейчас в теме
(149)
Суть сообщение - что из текста запроса параметры достать не удалось, и они будут заполнены только по перехваченному объекту запроса.


Как раз параметры-то все заполнены, МенеджерВР также целиком перенесен.

Другие действия с запросом можно выполнить? Он выполняется? Открывается в конструкторе?.


В конструкторе запрос не открывается, и, соответственно, не выполняется.

Это, по сути, ошибка платформы - падает платформенный метод на корректном запросе.


Платформа не видит в данном случае, что поле "Таблица.Ссылка" имеет тип ДокументСсылка.РеализацияТоваровУслуг.

Надо направить ошибку в 1с?
Прикрепленные файлы:
151. Evg-Lylyk 5530 18.11.21 18:00 Сейчас в теме
(150) Проанализировал проблему
Простой запрос для воспроизведения
ВЫБРАТЬ
	Таблица1.Ссылка КАК Ссылка
ПОМЕСТИТЬ Таблица2
ИЗ
	Таблица1 КАК Таблица1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Таблица2.Ссылка.Грузоотправитель КАК СсылкаГрузоотправитель
ИЗ
	Таблица2 КАК Таблица2
Показать


В моей консоли и Туллките с данной проблемой беда, мы имеем дела с запросом который синтаксис проверку не проходит и выполнить его не получается.
Есть механизм когда запрос проверяется и ниже запроса добавляется гиперссылка с ошибкой для перехода к ошибке интерактивно.
Нужно и для других инструментов (например: генерация кода на встроенном языке) если ошибка отправляем по ссылке к ошибке в тексте.
Казалось ни каких проблем, удобно видно ошибку не нужно нажимать проверить, выполнить и постоянно закрывать окно сообщений как в ИР.
Еще параметры автоматически обновляются их видно не будет хотя они есть.
Спасибо за информацию, проблему записал буду думать.

В консоли этой темы 9000:
Глянул в начале есть анализ запроса с помощь СхемыЗапросы на ней спотыкается и не дает выполнить, ну для своих каких-то целей добавлено.
Наверное это можно будет обойти так как работает схоже с ИР.
152. user1745409 16.02.22 13:02 Сейчас в теме
консоль, она платная?
153. kuza2000 233 17.02.22 09:50 Сейчас в теме
(152)
Здесь скачивание 1 sm.
Так же эта консоль запросов есть в составе тут https://infostart.ru/public/1178280/
Можно найти на других ресурсах бесплатно, ссылку давать не могу по правилам инфостарта.

Вообще, у нее лицензия GNU GPL v3.0 :)
154. Rain_man 22.04.22 08:43 Сейчас в теме
155. kuza2000 233 22.04.22 17:32 Сейчас в теме
157. Rain_man 25.05.22 11:56 Сейчас в теме
(155)
Может, куда-то выложить мой экземпляр?
1) ЗНАЧЕНИЕ() - выводит имя, а не синоним
2) По Esc - скрывает/показывает результаты
3) В параметрах выбираются группы иерархического справочника
4) Шрифт поменял
158. kuza2000 233 25.05.22 17:39 Сейчас в теме
(157)
Вы можете выложить у себя, на гитхабе или где угодно, поскольку лицензия GNU GPL v3 :)
156. sivalor 5 29.04.22 15:40 Сейчас в теме
Предопределенные значения вставляются по синониму, например "ЗНАЧЕНИЕ(Перечисление.ABCКлассификация.A - класс)".

Но можно поправить на форме ВыборПредопределенного:

&НаКлиенте
Процедура КомандаВставитьИмя(Команда)
	СохранитьДанныеФормы();
	Если ТипОбъектаПеречисление(ТипОбъекта) Тогда
		Закрыть(Новый Структура("ДанныеФормы, Результат", ДанныеФормы, ТипДляЗапроса(ТипОбъекта) + "." + ИмяОбъекта));
	Иначе                                                                 
		//{sivalor  29.04.2022
		//Закрыть(Новый Структура("ДанныеФормы, Результат", ДанныеФормы, ТипДляЗапроса(ТипОбъекта) + "." + ИмяОбъекта + "." + Элемент));
		Закрыть(Новый Структура("ДанныеФормы, Результат", ДанныеФормы, ТипДляЗапроса(ТипОбъекта) + "." + ИмяОбъекта + "." + ПолучитьИдентификаторЗначенияПредопределеного(Элемент)));
		//sivalor  29.04.2022}
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура КомандаВставитьЗНАЧЕНИЕ(Команда)
	СохранитьДанныеФормы();                                
	Если ТипОбъектаПеречисление(ТипОбъекта) Тогда
		Закрыть(Новый Структура("ДанныеФормы, Результат", ДанныеФормы, "ЗНАЧЕНИЕ(" + ТипДляЗапроса(ТипОбъекта) + "." + ИмяОбъекта + ")"));
	Иначе
		//{sivalor 29.04.2022
		//Закрыть(Новый Структура("ДанныеФормы, Результат", ДанныеФормы, "ЗНАЧЕНИЕ(" + ТипДляЗапроса(ТипОбъекта) + "." + ИмяОбъекта + "." + Элемент + ")"));
		Закрыть(Новый Структура("ДанныеФормы, Результат", ДанныеФормы, "ЗНАЧЕНИЕ(" + ТипДляЗапроса(ТипОбъекта) + "." + ИмяОбъекта + "." + ПолучитьИдентификаторЗначенияПредопределеного(Элемент) + ")"));		
		//sivalor 29.04.2022}
	КонецЕсли;
КонецПроцедуры

//{sivalor 29.04.2022
&НаСервереБезКонтекста
Функция ПолучитьИдентификаторЗначенияПредопределеного(Знач ЗначениеПредопределеного)
		
	Если Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(ЗначениеПредопределеного)) Тогда
		
		МетаданныеПеречисления = ЗначениеПредопределеного.Метаданные();		
		ИдентификаторПредопределеного = МетаданныеПеречисления.ЗначенияПеречисления[Перечисления[МетаданныеПеречисления.Имя].Индекс(ЗначениеПредопределеного)].Имя;
		
	Иначе
		
		Попытка
			ИдентификаторПредопределеного = ЗначениеПредопределеного.ИмяПредопределенныхДанных;
		Исключение
			ИдентификаторПредопределеного = Строка(ЗначениеПредопределеного);
		КонецПопытки;
		
	КонецЕсли;
	
	возврат ИдентификаторПредопределеного;
	
КонецФункции
//sivalor 29.04.2022
Показать
159. Rain_man 29.06.22 04:45 Сейчас в теме
Нашёл ещё глючок - чуть не грохнул себе готовый запрос: в левой части - дерево запросов, один из них (пусть он будет #1) скопировал - он стал веткой от оригинала (он будет #2), переделал копию, скопировал копию (это уже #3) и тоже переделал, а потом на #2 - нажал вытащить выше - на один уровень с #1. При этом, #3 стал точной копией #2, включая название, оставаясь веткой от #2. Повезло, что заметил сразу.
160. dadel 20 15.08.22 22:00 Сейчас в теме
Надо было перехватить запрос в ЗУПе по формированию НДФЛ декларации. Там куча временных таблиц с большими таблицами в менеджере запроса висит.
Консоль один раз вроде захватила, скачал пару дней назад свежую версию консоли. Но заново открыть консоль не могу больше. При запуске падает ошибка, ошибку закрыть жму и консоль в режиме только чтение дальше открытая висит и ни чего уже не сделать вообще ни как в этой базе. Ну может кеш почистить, но это не лучший вариант.

Несоответствие типов (параметр номер '1')
{ВнешняяОбработка.КонсольЗапросов9000.Форма.Форма.Форма(1385)}:Чтение.УстановитьСтроку(стрЗагруженныеДанные);
{ВнешняяОбработка.КонсольЗапросов9000.Форма.Форма.Форма(1400)}:стЗагруженныеДанные = ПакетЗапросов_ЗагрузитьНаСервере(стрЗагруженныеДанные);
{ВнешняяОбработка.КонсольЗапросов9000.Форма.Форма.Форма(1802)}:стЗаголовок = ПакетЗапросов_Загрузить(стрИмяФайлаАвтосохраненияТемп);
{(1)}:ПриОткрытииПродолжение(ДополнительныеПараметры);
{ВнешняяОбработка.КонсольЗапросов9000.Форма.Форма.Форма(1765)}:Выполнить(ДополнительныеПараметры.Продолжение + "(ДополнительныеПараметры);");

по причине:
Несоответствие типов (параметр номер '1')
161. dadel 20 15.08.22 22:14 Сейчас в теме
(160)На самом деле при запуске пытается открыть файл с настройками. Файл в кеше и он внутри у меня был пустым.
Как-то надо на предмет ошибки ещё проверку допилить, а не уверенно читать его.
162. fuser 3 11.01.23 15:39 Сейчас в теме
А где посмотреть примеры кода обработки результата?
"простое выполнение" и "построчно.."
163. kuza2000 233 12.01.23 12:14 Сейчас в теме
(162)
Нужно нажать на кнопку "Справка". Там подробно описано, с примерами.
Прикрепленные файлы:
164. fuser 3 12.01.23 12:17 Сейчас в теме
(163) я нажал F1 - и увидел что справку никто не написал
165. kuza2000 233 12.01.23 12:20 Сейчас в теме
(164)
Попробуйте нажать не F1, а кнопку на форме.
166. fuser 3 12.01.23 12:21 Сейчас в теме
(165) нашел уже, нашел!
kuza2000; +1 – Ответить
167. Eugen-S 456 18.03.23 09:33 Сейчас в теме
Александр - респект за инструмент!!!
Мне понравилась Ваша консоль запросов, перешёл на неё с консоли "Запросник 2.0".
Единственно чего не хватает - это темплетов кода в выполнении алгоритмов.

По типу тех, как в "consquery82.epf"

https://infostart.ru/public/14183/
168. Eugen-S 456 21.03.23 16:51 Сейчас в теме
В параметрах, если справочник иерархический нельзя выбрать группу в качестве значения параметра.
Прикрепленные файлы:
169. dikar40 9 09.06.23 11:23 Сейчас в теме
Не смог никак обойти, ни поправить в коде:
Если параметрЗапроса типа ТаблицаЗначений и имеет колонку типа УникальныйИдентификатор,
то при добавлении строки таблицы значение нельзя заполнить - значение в колонке нередактируемо.
эту проблему можно поправить?
Прикрепленные файлы:
170. improg 758 07.11.23 14:38 Сейчас в теме
(0) Добрый день, да перехват бывает полезным спасибо, но вот отборы в результатах иногда обманывают в пакетных запросах сравнивал с ирПортативным у того таких проблем нет.
171. improg 758 10.11.23 10:41 Сейчас в теме
(0) и еще один момент если использовать команду: "Получить код выполнения запросов на встроенном языке 1С", то в результате запроса строковые литералы дополнительно не обрамляются кавычками, что в дальнейшем приводит к ошибке, приходится выискивать дополнительно проставлять.
173. Stas-ch 36 18.06.24 14:06 Сейчас в теме
Отличная консоль, очень часто ей пользуюсь.
Есть маленький баг - по кнопке Получить код выполнения запроса на встроенном языке открывается окно, но в тексте запроса одинарные кавычки не заменяются на двойные!
Пример:
Выбрать "1" КАК НомерЗапроса
по кнопке получит такой текст:
| Выбрать "1" КАК НомерЗапроса
но в конфигураторе такой текст не откроется - будет ошибка. надо чтобы было так:
| Выбрать ""1"" КАК НомерЗапроса

Обратная ситуация - по кнопке Убрать перенос строк из текста двойные кавычки не заменяются на одинарные.

Поправите?
174. kuza2000 233 18.06.24 22:56 Сейчас в теме
(173) Спасибо, в следующей версии исправлю обязательно.
175. Sander80 110 20.08.24 21:15 Сейчас в теме
Отлично, все по прежнему работает, включая план.

Пара правок, которые пришлось сделать

1) для постгреса если было несколько записей плана, выживает только последняя. Нужно там где текстовый документ с планом вызывает УстановитьТекст прибавлять предыдущее значение сначала

2) если с базой работают автономники, то они могут сами считать logcfg и создать папку для логов журнала регистрации, и если это выполнено под другим пользователем, основной сервер 1с не сможет писать. Рекомендую вызывать СоздатьКаталог а также выполнение команды системы на chmod.

Если нужно, дам куски кода
176. kuza2000 233 21.08.24 17:52 Сейчас в теме
(175)
Да, интересно. Можете кинуть мне в ЛС?
177. Sander80 110 21.08.24 21:27 Сейчас в теме
(176) Да можно и тут

1)
Процедура ДобавитьПланЗапроса_DBPOSTGRS(ДанныеТерминов)
	
	Обработка = РеквизитФормыВЗначение("Объект");
	
	ТекстПлана = УбратьКавычки(Событие.planSQLText);
	
	ТекстПланаСтарый = ПланТекстовый.ПолучитьТекст();
	ТекстПланаСтарый1C = ПланТекстовый1С.ПолучитьТекст();		
	
	ПланТекстовый.УстановитьТекст(ТекстПланаСтарый + ТекстПлана);
	ПланТекстовый1С.УстановитьТекст(ТекстПланаСтарый1C + Обработка.SQLПланВТермины1С(ТекстПлана, ДанныеТерминов, 1));
	
КонецПроцедуры
Показать




2)
СоздатьКаталог(ПутьТЖ);
ЗапуститьПриложение("chmod 755 " + ПутьТЖ,,Истина);


перед

ТехнологическийЖурнал_ЗаписатьДОМ(Документ, ФайлКонфигурацииТЖ);
178. hillsnake 28 22.08.24 11:14 Сейчас в теме
Добрый день,

у вас
	Если Сред(ИспользуемоеИмяФайлаВнешнейОбработки, 2, 2) = ":\" ИЛИ Лев(ИспользуемоеИмяФайлаВнешнейОбработки, 1) = "/" Тогда
			ИмяФайлаОбработки = ИспользуемоеИмяФайлаВнешнейОбработки;
		КонецЕсли;

Лев(ИспользуемоеИмяФайлаВнешнейОбработки, 1) = "/" точно правильный слешь ?

У меня на сервере как раз конфа и не заработало, развернул слешь все ок...
179. rokhin 156 30.10.24 09:31 Сейчас в теме
Спасибо за обработку.
Замечание. Иногда нужно выбирать Группу. Не дает.
Исправил в форме. Радуюсь.
Прикрепленные файлы:
180. rokhin 156 30.10.24 09:41 Сейчас в теме
Спасибо за обработку.
Замечание. Иногда нужно выбирать Группу. Не дает.
Исправил в форме. Радуюсь.
Прикрепленные файлы:
Altone1976; +1 – Ответить
181. NenavizhySKD 08.11.24 16:51 Сейчас в теме
Подскажите, пожалуйста можно ли в вашей консоле задавать параметры выражением? типа вот так.

Запрос1 = Новый Запрос("
|ВЫБРАТЬ
| ЗаказКлиента.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
| ПО ЗаказКлиента.Договор = ДоговорыКонтрагентов.Ссылка
|ГДЕ
| ЗаказКлиента.Менеджер В(&Менеджер)");

Запрос1.УстановитьПараметр("Менеджер", ПолучитьДоступныхМенеджеров());

Хочу в параметр передать выражение ПолучитьДоступныхМенеджеров()

В описании не нашёл как этого сделать.
182. kuza2000 233 08.11.24 22:23 Сейчас в теме
(181)
Текущая версия не умеет вычислять выражения в параметрах. Возьму на карандаш для будущего развития.
Что можно сделать сейчас:
1. Перехватить такой запрос в конфигурации, параметры окажутся заполненными вычисленными значениями.
2. Заполнить параметр другим запросом, если это возможно.
183. NenavizhySKD 08.11.24 22:56 Сейчас в теме
184. user2013774 29.01.25 14:04 Сейчас в теме
В тонком клиенте при попытке получить параметр ТЗ из запроса падает, прикрепил скрин.

И нет загрузки ТЗ из табличного документа ?
Прикрепленные файлы:
Lusha_28; +1 – Ответить
185. idw 346 12.03.25 17:08 Сейчас в теме
(174) версия с исправлениями не планируется еще?
186. check2 413 19.10.26 14:06 Сейчас в теме
Судя по картинкам Ваша консоль как раз в составе Универсальные инструменты 1С Подскажите, одна из временных таблиц очень большая > 33млн строк и консоль пытается её на общих правилах затащить на клиента. Можно как то отключить просмотр результатов временных таблиц? Чтобы ТЗ для них не формировалась на сервере, и не передавалась на клиента. Спасибо!
187. Altone1976 27.10.26 14:51 Сейчас в теме
Классный инструмент
Для отправки сообщения требуется регистрация/авторизация