запросы

Как связать несколько документов, создаваемых программно, если нет документа-основания?

Представим, что циклом мы обходим некую таблицу значений, на основании данных которой программно формируем целый пакет документов – например, заявок на расходование денежных средств. В данном случае, нам не подойдёт классический способ использования реквизита ДокументОснование, т.к. набор создаваемых документов не имеет никакого головного объекта. Вот некоторые способы решения задачи: 1. Связь через общий реквизит (например, пакет или идентификатор) Можно добавить в каждый документ реквизит, который будет идентифицировать этот пакет документов. Например, это может быть уникальный идентификатор (UUID), создаваемый для каждого пакета при генерации документов. Все документы в пакете будут иметь одно и то же значение этого реквизита, что позволит связать их между собой. Пошагово: 1. В каждом документе добавьте реквизит типа “Строка” (или другой подходящий тип), который будет хранить идентификатор пакета. 2. При программном создании документов создайте уникальный идентификатор и присвойте его каждому документу. В… Подробнее »Как связать несколько документов, создаваемых программно, если нет документа-основания?

Оптимизация запроса с помощью функции языка запросов «ВЫРАЗИТЬ»

Давайте представим ситуацию, когда из регистра накопления «ТоварыНаСкладах» нам необходимо выбрать регистратор, являющийся составным полем: А теперь представим себе запрос, в котором мы выбираем регистратор и два его подчиненных поля – «Номер» и «Дата»: Результатов выполнения запроса будет следующая таблица: Когда мы выбираем номер и дату, система начинает перебирать все таблицы, которые являются регистраторами – “Продажи”, “Поступления”, а также третий документ, который не влез на скриншот – “Перемещение”. Получается достаточно сложный запрос, когда мы пытаемся разыменовать (обратиться через точку) поле составного типа. Его сложную структуру можно отдельно посмотреть в консоли запросов, поддерживающей план выполнения запроса – там мы увидим запрос в виде SQL. Если же нам необходимы данные из регистра только лишь по документу “РеализацияТовара”, то мы можем с помощью функции “ВЫРАЗИТЬ” получать номер и дату только для нужного документа: В результате мы не будем… Подробнее »Оптимизация запроса с помощью функции языка запросов «ВЫРАЗИТЬ»