Как открыть конструктор запроса в 1с
Перейти к содержимому

Как открыть конструктор запроса в 1с

  • автор:

Конструктор запросов. Обзор

Для быстрого написания запросов для конфигураций на платформе 1С 8 существует
такая вещь как Конструктор запросов.
Для его вызова достаточно щелкнуть правой кнопкой мыши в окне редактирования кода и выбрать пункт
Конструктор запроса.

konstruktorzaprosamenyu_vz

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

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

Для примера составим простейший запрос с использованием конструктора. Выберем все
элементы из справочника Сайты.
Достаточно раскрыть в дереве метаданных справочник Сайты и дважды щелкнуть по полю
Ссылка. В результате получим вот такую картину:

konstruktorspravochnik_vz

Нажимаем кнопку ОК и в окне редактирования кода видим следующий запрос:

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

  • Скорость написания запросов. Даже на небольшом примере выше видно, что с использованием
    конструктора скорость написания запроса возрастает в несколько раз.
  • Качество кода. Практически исключена возможность опечаток, т.к. текст генерируется
    автоматически.
  • В конструкторе удобно анализировать тексты больших запросов, количество строк которых
    может достигать две-три тысячи со множеством временных таблиц и вложенных запросов.
    И понять что-то в таком запросе только смотря на текст просто нереально. В конструкторе
    же информация представлена более укрупненно и наглядно.
  • Есть встроенная справочная информация по различным функциям языка запросов.

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

Конструктор запросов 1С — обучение на примерах

Конструктор запросов в 1С 8.3 и 8.2 — мощнейший инструмент разработки. Он позволяет составить текст запроса при помощи специальной визуальной среды. Таким образом, чтобы создать запрос 1с не обязательно знать встроенный язык запросов, достаточно ориентироваться в не сложном и интуитивно понятном интерфейсе конструктора.

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

Описание конструктора запросов на официальном сайте 1С 8: v8.1c.ru

Для того чтобы вызвать конструктор запросов 1с 8 в программном коде необходимо:

  • Создать новый запрос
  • Задать пустую строку текста запроса
  • Поставить курсор мышки между кавычками, нажать правую кнопку мыши. В открывшемся контекстном меню выбрать пункт Конструктор запроса и ответить Да на вопрос о создании нового запроса. Если текст запроса уже записан, то необходимо щелкнуть на любом месте внутри него и вызвать конструктор;

Рассмотрим на небольших примерах с возрастающей сложностью все основные вкладки конструктора запросов. Такой подход позволит начинающему программисту 1с более эффективно изучить конструктор и все его возможности. Для примеров будем использовать конфигурацию Бухгалтерия 3.0.

Урок №1. Конструктор запросов — простейший пример использования.

Задача: написать запрос к справочнику номенклатура, выбрать всю номенклатуру справочника.

Новые вкладки: Таблицы и поля.

Новые механизмы: просмотр и редактирование текста запроса при помощи кнопки «Запрос».

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

Конструктор запросов вкладка Таблицы и поля

Теоретическая часть урока №1

Вкладка Таблицы и поля состоит из трех разделов:

База данных. В данном разделе представлены все таблицы базы данных, которые можно использовать для построения запроса;

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

  • Либо дважды щелкнуть по таблице;
  • Либо воспользоваться кнопками «>» или «>>».

Над разделом Таблицы присутствует ряд кнопок. Про большинство из них будет подробнее рассказано в следующих уроках. А пока дам только краткие пояснения.

Кнопки работы с таблицами в конструкторе запросов 1с 8.3

  • Создать вложенный запрос (красная линия). Предназначена для создания нового вложенного запроса;
  • Создать описание временной таблицы (желтая линия). Позволяет задать имя временной таблицы, которая расположена вне данного запроса, также можно использовать для передачи в запрос таблицы значений;
  • Изменить текущий элемент (зеленая линия). Позволяет перейти в выделенный вложенный запрос, временную таблицу или описание временной таблицы;
  • Удалить текущий элемент (голубая линия). Удаляет выделенную таблицу из выбранных таблиц;
  • Заменить таблицу (синяя линия). Открывает диалог замены выделенной таблицы. Полезно, если вы неверно выбрали виртуальную таблицу регистра, так как происходит позиционирование на текущей выбранной таблице в списке.
  • Параметры виртуальной таблицы (фиолетовая линия). Открывает параметры виртуальной таблицы регистра.

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

  • Либо дважды щелкнуть по полю;
  • Либо воспользоваться кнопками «>» или «>>»;
  • Также можно добавить новое поле самостоятельно, используя произвольное выражение из полей выбранных таблиц и функций языка запросов.

Над разделом Поля присутствует ряд кнопок. Про создание полей при помощи произвольных выражений будет подробнее рассказано в следующих уроках. А пока дам только краткие пояснения.

Кнопки работы с полями в конструкторе запросов

  • Добавить (зеленая линия). Предназначена для добавления нового поля при помощи редактора произвольных выражений;
  • Изменить текущий элемент (красная линия). Позволяет изменить выделенное поле при помощи редактора;
  • Удалить текущий (синяя линия). Удаляет выделенное поле из списка.
Практическая часть урока №1

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

Приступим к созданию запроса по номенклатуре:

  • Создадим новый запрос и откроем конструктор методом указанным в начале урока;
  • В разделе База данных, откроем ветку Справочники и найдем там справочник Номенклатура;
  • Выделим его и при помощи кнопки «>» перенесем в раздел Таблицы;
  • В разделе Таблицы раскроем справочник номенклатура при помощи значка «+»;
  • В раскрывшемся списке полей найдем поле Ссылка и перенесем его в раздел Поля при помощи кнопки «>»
  • Запрос по номенклатуре готов, нажимаем кнопку «ОК» в нижней части окна конструктора.

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

В итоге у нас получится запрос со следующим текстом:

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

Использование конструктора запросов в 1С

Предлагаем рассмотреть инструмент, предназначенный для упрощения построения запросов в 1С. Он называется конструктором запросов. Как его запустить? Чем именно он помогает пользователю? Давайте разберемся вместе!

Для запуска конструктора запросов можно щёлкнув правой кнопкой мышь в любое место программного кода и выбрать «Конструктор запроса…».

Конструктор запроса 1С

Так же конструктор запроса используется в схеме компоновки данных при построении отчёта. Рассмотрим конструктор запросов на примере отчёта из статьи про СКД. Для этого в схеме компоновки данных нажимаем «Конструктор запроса…»

Конструктор запроса 1С

Вкладка «Таблицы и поля»

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

Конструктор запроса 1С

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

Конструктор запроса 1С

В правой части экрана расположены поля, которые мы выбрали в запрос.

Конструктор запроса 1С

Вкладка «Группировка»

На этой вкладке можно выбрать поля которые необходимо сгруппировать или суммировать. Группируемы поля необходимо добавить в поле «Группируемое поле», суммируемые поля в «Суммируемое поле».

Конструктор запроса 1С

Вкладка «Условия»

На данной вкладке мы задаем значения условий. В нашем примере необходимо было выбрать все элементы справочника «Номенклатура» имеющие определённый тип номенклатуры. В левой части экрана расположены поля которые можно выбрать для установления условия. Выбор производится двойным кликом. Или можно нажать кнопку «Добавить».

Конструктор запроса 1С

В правой части располагается конструкция нашего условия — поле, для которого мы задаём условие, вид сравнения (равно, больше или равно, не равно, между и тд.) и значение. В случае, если мы поставим галочку перед условием, его формулировка будет в свободной форме. Это подходит для сложных составных условий.

Конструктор запроса 1С

Вкладка «Дополнительно»

Очень важная вкладка, ведь именно здесь можно установить настройки для выбранных записей. «Первые N» — позволяет задать количество выбираемых нами записей, если флажок установлен, то система выдаст в результате запроса только первые N штук. Флаг «Без повторяющихся» предназначен для отбора только уникальных записей в результат запроса. Флаг «Разрешенные» предназначен для отбора записей с учетом настройки RLS.

Конструктор запроса 1С

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

Конструктор запроса 1С

Вкладка «Объединения\псевдонимы»

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

Как использовать конструктор запроса в 1С?

Вкладка «Порядок»

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

Как использовать конструктор запроса в 1С?

Вкладка «Компоновка»

Служебная вкладка, определяющая поля СКД. Подробно её рассмотрим в отдельной статье.

Как использовать конструктор запроса в 1С?

Вкладка «Пакет запросов»

На данной вкладке отображаются все наши пакеты запросов.

Как использовать конструктор запроса в 1С?

Отдельно стоит упомянуть кнопку «Запрос», доступную на всех вкладках «Конструктора запросов». Она предназначена для просмотра и изменения текста запроса.

Как использовать конструктор запроса в 1С?

Конструктор запроса с обработкой результата

Разновидность конструктора запросов, используемая в программном коде.

Когда мы используем «Конструктор запроса», то необходимо самостоятельно записывать программный код для выполнения запроса и действий совершаемых с полученным результатом запроса. Для «Конструктора запроса с обработкой результат» программный код работы с запросом формируется автоматически.

Для запуска конструктора необходимо в любом месте программного кода кликнуть правой кнопкой мыши и выбрать из контекстного меню «Конструктор запроса с обработкой результата».

Как использовать конструктор запроса в 1С?

Первая вкладка «Конструктора запроса с обработкой результата» предназначена для выбора типа обработки. Мы можем выводить результат в табличный документ или диаграмму, или просто добавить код для обхода результата. Чаще всего выбирают значение «Обход результата».

Как использовать конструктор запроса в 1С?

Остальные вкладки «Конструктора запроса с обработкой результата» аналогичны «Конструктору запроса».

После завершения работы конструктора в программном коде появляется часть кода созданная «Конструктором запроса с обработкой результата». Она выделена комментариями «<<КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА».

Как использовать конструктор запроса в 1С?

Решать вопросы самостоятельно или пользоваться услугами специалистов?

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

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

Вы еще не внедрили 1С или необходимо установить программу в новый филиал компании? Обратитесь за внедрением и настройкой к нам — вы сэкономите свое время и избежите возможных ошибок и проблем в дальнейшем.

Позвоните по номеру телефона, указанному на сайте или заполните форму обратной связи, чтобы наши сотрудники сориентировали по стоимости работ, подобрали оптимальное решение и рассказали, как начать сотрудничество. Ждем вас!

Конструктор запросов в управляемом приложении в «1С:Предприятие 8» (бесплатная статья по Программированию в 1С)

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

Кроме того, описан новый объект СхемаЗапроса, который позволяет изменять текст запроса из встроенного языка без необходимости анализа текста самого запроса.

Применимость

В статье рассматривается платформа «1С:Предприятие» редакции 8.3.5.823 в управляемом режиме работы. В актуальных версиях платформы описанная функциональность не изменилась, поэтому материал полностью актуален.

Конструктор запросов в управляемом приложении в «1С:Предприятие 8.3.5»

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

Теперь конструктор запроса доступен в тонком и толстом клиентах, а также в веб-клиенте.

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

Создадим внешнюю обработку, на форме разместим поле ввода для текста запроса и кнопку, открывающую конструктор:

Открытие конструктора в тонком клиенте

Для увеличения нажмите на изображение.

Напишем следующий обработчик нажатия на кнопку:

&НаКлиенте
Процедура ОткрытьКонструкторЗапросаЗавершение ( Текст , ДополнительныеПараметры ) Экспорт
Если НЕ Текст = Неопределено Тогда
ТекстЗапроса = Текст ;
КонецЕсли ;
КонецПроцедуры

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

При открытии обработки в тонком клиенте и нажатии на кнопку открывается форма конструктора запроса:

Форма конструктора запроса

Для увеличения нажмите на изображение.

По сравнению с классическим конструктором, к которому мы привыкли еще со времен 8.0, внешний вид нового претерпел несколько изменений.

Первое, что бросается в глаза – отсутствие привычных закладок, отображающих запросы пакета, имена временных таблиц и объединения запросов:

Новый конструктор 1С

Вместо этого теперь в нижней части окна расположены два выпадающих списка – “Редактируемый запрос” и “Редактируемый оператор”.

Выпадающие списки

Для увеличения нажмите на изображение.

Выпадающие списки

Для увеличения нажмите на изображение.

В первом из них перечислены запросы, входящие в пакет, для временных таблиц указываются имена.

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

В классическом конструкторе запроса для создания запроса на уничтожение временной таблицы нужно было установить переключатель на закладке “Дополнительно” в соответствующую позицию:

Классический конструктор запроса

А при использовании управляемого конструктора запроса это действие выполняется на закладке “Пакет запросов” при выборе соответствующего пункта кнопки “Добавить”:

Управляемый конструктор запроса

Для увеличения нажмите на изображение.

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

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

Вид соединения таблиц в конструкторе

Для увеличения нажмите на изображение.

Вид соединения теперь выбирается явно из списка, а не указывается галочками. Также больше не существует галочки “Произвольное условие” при описании связей и условий, все условия редактируются только в редакторе произвольного выражения или вручную.

Схема запроса

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

Для этого зачастую применяется следующий подход: строка, содержащая текст запроса, собирается динамически, “по кусочкам”.

Для примера рассмотрим, как в типовой конфигурации “Управление торговлей, редакция 10.3” формируется текст запроса.

ТекстЗапроса = СтрЗаменить ( ТекстЗапроса , “%ВыборкаПоНоменклатуре%” , “Номенклатура В
(“ + ТекстЗапросаСписокНоменклатуры + “)” );

Если не УчитыватьСерии Тогда
ТекстЗапроса = СтрЗаменить ( ТекстЗапроса , “%ПОЛЕ_Док_Серия%” , “&ПустаяСерия” );
КонецЕсли ;

Как видно, текст запроса собирается из частей при помощи конкатенации, в тексте запроса намеренно используются недопустимые символы (например, %).

Части текста запроса подменяются при помощи СтрЗаменить() на те или иные значения в зависимости от различных условий.

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

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

Для этого был реализован специальный объект СхемаЗапроса.

Для примера составим при помощи объектной модели на демо-конфигурации “Управляемое приложение” текст запроса, в котором к табличной части документа “Расход товара” при помощи левого соединения присоединяем срез последних регистра сведений “Цены товаров”.

Пояснения к разрабатываемому коду даны в комментариях.

//получаем таблицы для дальнейшего использования
ДоступнаяТаблицаРасходТовара = Пакет.ДоступныеТаблицы.Найти ( “Документ.РасходТовара” );
ДоступнаяТаблицаРасходТовараТовары =
Пакет.ДоступныеТаблицы.Найти ( “Документ.РасходТовара.Товары” );

//добавляем источники
Источник = Оператор.Источники.Добавить ( ДоступнаяТаблицаРасходТовараТовары );
Источник.Источник.Псевдоним = “РасходТовараТовары” ;

Источник = Оператор.Источники.Добавить ( Пакет.ДоступныеТаблицы.Найти
( “РегистрСведений.ЦеныТоваров.СрезПоследних” ));
Источник.Источник.Псевдоним = “ЦеныТоваровСрезПоследних” ;

//задаем параметры виртуальной таблицы для среза последних регистра сведений
Источник.Источник.Параметры [ 0 ] .Выражение = Новый ВыражениеСхемыЗапроса ( “&Дата” );
Источник.Источник.Параметры [ 1 ] .Выражение = Новый ВыражениеСхемыЗапроса ( “ВидЦен =
&ВидЦен” );

//устанавливаем условия левого соединения таблиц
Соединение = Оператор.Источники [ 0 ] .Соединения.Добавить ( “ЦеныТоваровСрезПоследних” ,
“РасходТовараТовары.Товар = ЦеныТоваровСрезПоследних.Товар” );
Оператор.Источники [ 0 ] .Соединения [ 0 ] .ТипСоединения =
ТипСоединенияСхемыЗапроса.ЛевоеВнешнее ;

//перечисляем выходные поля
//для первых двух псевдоним будет сгенерирован автоматически
//а для третьего принудительно укажем псевдоним “Цена”
ВыбранноеПоле = Оператор.ВыбираемыеПоля.Добавить ( “РасходТовараТовары.Товар” );
ВыбранноеПоле = Оператор.ВыбираемыеПоля.Добавить ( “РасходТовараТовары.Количество” );
ВыбранноеПоле =
Оператор.ВыбираемыеПоля.Добавить ( “ЕСТЬNULL(ЦеныТоваровСрезПоследних.Цена, 0)” );

Пакет.Колонки [ 2 ] .Псевдоним = “Цена” ;

//добавляем секцию ГДЕ в запрос
Оператор.Отбор.Добавить ( “РасходТовараТовары.Ссылка = &Ссылка” );

При выполнении метода ПолучитьТекстЗапроса() объекта СхемаЗапроса мы получим следующий текст запроса:

Если же необходимо готовый текст запроса трансформировать в объект СхемаЗапроса, то следует воспользоваться методом УстановитьТекстЗапроса():

СхемаЗапроса = Новый СхемаЗапроса ;
СхемаЗапроса.УстановитьТекстЗапроса ( Текст );

После этого объект СхемаЗапроса будет содержать структуру запроса в виде набора свойств.

Использование схемы запроса позволяет редактировать текст запроса более наглядно, оперируя при этом элементами структуры запроса.

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

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

В дополнение к статье Вы можете скачать Консоль запросов для платформы 8.3.5. Автор приложения – BigB.

PDF-версия статьи для участников группы ВКонтакте

Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

Статья по программированию - в PDF-формате

Статья в PDF-формате

Комментарии / обсуждение (42):

Добрый день! Подскажите пожалуйста.
Пытаюсь модифицировать типовой запрос из УТ11 при помощи схемы запроса. Вот кусок запроса:
ИЗ
Документ.ПоступлениеТоваровУслуг.Серии КАК ТаблицаСерии
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ТаблицаТовары
ПО ТаблицаСерии.Ссылка = ТаблицаТовары.Ссылка
И ТаблицаСерии.Номенклатура = ТаблицаТовары.Номенклатура
И ТаблицаСерии.Характеристика = ТаблицаТовары.Характеристика
И ТаблицаСерии.Склад = ТаблицаТовары.Склад
//+ Добавлено
И ТаблицаСерии.Помещение = ТаблицаТовары.Помещение
//- Добавлено Источник: ©Курсы-по-1С.рф
И ТаблицаСерии.Назначение = ТаблицаТовары.Назначение
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК Поступление
ПО Поступление.Ссылка = ТаблицаСерии.Ссылка

Комментариями выделена добавленная связь между таблицами.
В таком виде все прекрасно – запрос открывается в конструкторе запросов. Затем я удаляю добавленную связь из текста запроса и пытаюсь добавить ее программно:

СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
ЗапросВыбора = СхемаЗапроса.ПакетЗапросов[0];
ОператорВыбрать = ЗапросВыбора.Операторы[1];
ОператорВыбрать.Источники[1].Соединения.Добавить(“ТаблицаСерии”, “ТаблицаТовары.Помещение = ТаблицаСерии.Помещение”);

На последней строке получаю сообщение об ошибке:
Ошибка при вызове метода контекста (Добавить)
ОператорВыбрать.Источники[1].Соединения.Добавить(“ТаблицаСерии”, “ТаблицаТовары.Помещение = ТаблицаСерии.Помещение”);
по причине:
Противоречивая связь “#1”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *