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

09.01.21

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

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

Скачать файлы

Наименование Файл Версия Размер
Консоль запросов 9000
.zip 327,16Kb
785
.zip 1.1.10.1 327,16Kb 785 Скачать
Возможности текущей версии:
  • базовый функционал (редактирование запросов, исполнение, сохранение в файл, работа с параметрами, и т.д.)
  • полноценная работа в режиме управляемых форм в режиме толстого и тонкого клиента
  • поддержка всех типов 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 управляемые формы конструктор тип таблица значений список массив момент времени временные таблицы захват перехват в отладчике

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

10000 8000 руб.

02.09.2020    122421    673    389    

716

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7344    22    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3645    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177843    1074    0    

852

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99383    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18142    6    8    

40

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28128    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23612    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
95. kuza2000 204 04.03.20 16:04 Сейчас в теме
(93) Точно! Спасибо.

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

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

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

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

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

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

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

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

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

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

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

П. 6 можно сделать, нажав вывод в список (скрин), там есть кнопка сохранения, можно сохранить и в Эксель. Так же это можно сделать и через "В документ".
Прикрепленные файлы:
130. kaliuzhnyi 135 15.02.21 15:39 Сейчас в теме
Эх, решил попробовать данную консольку и на первом же запросе свалилась.
При подстановке значение берется не из имени элемента перечисления а из синонима.
Прикрепленные файлы:
131. kaliuzhnyi 135 15.02.21 15:48 Сейчас в теме
(130) А вообще - консоль понравилась. Хотелось бы, чтобы автор развивал данный проект.
132. kuza2000 204 15.02.21 20:01 Сейчас в теме
(130) Кнопка предопределенного значения не верно сформировала значение. Исправьте его вручную. Ошибку записал, исправлю в следующей версии.
136. vlivanov 5 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 204 27.04.21 17:13 Сейчас в теме
(136) Возникает именно при использовании расширения, без него не возникает?
Попробую воспроизвести.

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

Именно этот момент не тестил. В расширении изменена пара строчек в запросе. Сам запрос отрабатывает без ошибок. В том числе и в консоли, если его туда руками перенести.
137. vlivanov 5 27.04.21 12:45 Сейчас в теме
А еще среди типов параметров нехватает типа Неопределено.
140. vlivanov 5 10.06.21 17:52 Сейчас в теме
https://imgur.com/yH6nf6B
Жму на кнопку и получаю в тексте запроса:
ЗНАЧЕНИЕ(Перечисление.ТипыДоговоров.С поставщиком / исполнителем)
142. kuza2000 204 28.07.21 15:09 Сейчас в теме
(140)
В следующей версии будет исправлено.
143. vlivanov 5 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 4580 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 204 17.11.21 21:14 Сейчас в теме
(145) У меня, к сожалению, нет под рукой КА, что бы воспроизвести.
Посмотрел код. Там ожидается, что иногда метод НайтиПараметры может упасть. Суть сообщение - что из текста запроса параметры достать не удалось, и они будут заполнены только по перехваченному объекту запроса. Это стоит рассматривать не как ошибку, а как предупреждение, другие функции должны работать.

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

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

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


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

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


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

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


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

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

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


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

В консоли этой темы 9000:
Глянул в начале есть анализ запроса с помощь СхемыЗапросы на ней спотыкается и не дает выполнить, ну для своих каких-то целей добавлено.
Наверное это можно будет обойти так как работает схоже с ИР.
152. user1745409 16.02.22 13:02 Сейчас в теме
153. kuza2000 204 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 204 22.04.22 17:32 Сейчас в теме
157. Rain_man 25.05.22 11:56 Сейчас в теме
(155)
Может, куда-то выложить мой экземпляр?
1) ЗНАЧЕНИЕ() - выводит имя, а не синоним
2) По Esc - скрывает/показывает результаты
3) В параметрах выбираются группы иерархического справочника
4) Шрифт поменял
158. kuza2000 204 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 19 15.08.22 22:00 Сейчас в теме
Надо было перехватить запрос в ЗУПе по формированию НДФЛ декларации. Там куча временных таблиц с большими таблицами в менеджере запроса висит.
Консоль один раз вроде захватила, скачал пару дней назад свежую версию консоли. Но заново открыть консоль не могу больше. При запуске падает ошибка, ошибку закрыть жму и консоль в режиме только чтение дальше открытая висит и ни чего уже не сделать вообще ни как в этой базе. Ну может кеш почистить, но это не лучший вариант.

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

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

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

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