Связи наборов данных в СКД и принципы их использования

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

Схема компоновки данных, реализованная в 1С, поддерживает три типа источника данных (Рис.1)

Рис.1

 

Источники данных

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

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

В сложных случаях, когда требуется или целесообразней использовать выполнение некоторого кода (допустим, загрузка данных из стороннего файла) или когда нет возможности использовать запрос, на помощь приходит источник данных «Объект». Произвольный код, выполняемый в модуле, на выходе должен иметь некоторую структуру, к которой СКД сможет обратиться.

Третий источник данных «Объединение». Фактически, этот источник можно рассматривать как один из видов связи. Он объединяет (сводит в одну несколько таблиц), не сопоставляя, однако совпадение тех или иных полей. То есть, если в двух объединяемых таблицах 3 и 4 строки соответственно, то в результирующем источнике данных, будет 7 строк.

Постановка задачи

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

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

Таким образом, мы должны:

  1. Взять табличную часть документа поступления;
  2. Загрузить файл в источник данных «Объект»;
  3. Связать эти два источника по определенному параметру (в нашем случае это будет код);
  4. Вывести результирующую таблицу.

Процесс выполнения

Пройдем все перечисленные шаги:

  • Создаем запрос к табличной части документа поступления (Рис.2)

Рис.2

  • Создаем набор данных объект (Рис.3);

Рис.3

Здесь важно обратить внимание на «Имя объекта, содержащего  данные», именно это имя нам придется указать в коде модуля отчета.

  • Переходим в модуль отчета и создаем там процедуру «ПриКомпоновкеРезультата» (Рис.4);

Рис.4

Саму процедуру получения данных из внешнего файла мы описывать не будем, обратим внимание на ту часть кода, которая обязательно должна присутствовать в компоновке для того, чтобы мы могли получить данные для «Набора данных 2» (Рис.5).

Рис.5

Важно! При создании «Объекта» в коде процедуры при компоновке, значение параметра СтандартнаяОбработка должно быть Ложь.

Переходим на закладку «Связи наборов данных».

Связываем наборы

Заходим на соответствующую закладку схемы (Рис.6).

Рис.6

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

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

Прежде, чем создать связь, давайте определимся с назначением колонок:

  1. Источник связи – первый набор данных, из которого возьмутся все имеющиеся значения;
  2. Приемник связи – набор данных, из которого выберутся значения, соответствующие нашему условию;
  3. Выражение источник – поле или выражение первого набора данных, по которому будет происходить сопоставление;
  4. Выражение приемник – поле или выражение зависимого набора;
  5. Параметр – если в этом поле указать имя параметра, то связь с набором – приемником будет осуществляться только по указанному в параметре значению;
  6. Список параметров – определяет возможность использования списка значений в качестве параметра;
  7. Условие связи – указав здесь выражение с использованием полей источника, можно создать условие, выполнение которого будет служить сигналом к установлению связи;
  8. Начальное значение – показывает начальное значение связи;
  9. Обязательная связь – определяет, задействованы ли поля, используемые в источнике (установлено ЛОЖЬ) или в приемнике (установлено ИСТИНА) и на основании этого добавляет связь в макет.

Таким образом:

  • В качестве источника связи будет выступать результат нашего запроса;
  • В качестве приемника будет выступать объект;
  • Выражение источник будет «НоменклатураКод»;
  • Выражение приемник «Номенклатура»;
  • Связь будет обязательной (Рис.7).

Рис.7

Если бы мы в качестве условия связи указали наименование какой-либо номенклатуры, или её вид воспроизводства или еще что-то, мы могли бы получить более точную выборку для нашей задачи. Результат наших действий можно увидеть на рис.8

Рис.8

Для двух нижних строк отчета в файле с ценами не нашлось соответствия.


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

Ваш e-mail не будет опубликован.

*

code


Оснащение для магазина с доставкой от компании Ru-Holod
Выбор оборудования зависит от цели его эксплуатации. В магазине оборудование для реализации продуктов питания, условия хранения которых требуют поддержания особой ...
Проверка отчетности 6-НДФЛ и 2-НДФЛ в 1С ЗУП 3.1
Какие проверки необходимо произвести для успешной сдачи отчетов 6-НДФЛ и 2-НДФЛ и какие средства в 1С ЗУП 3.1 в этом ...
Как сократить издержки в производственной компании малого бизнеса. Вебинар
18 февраля 2020 г. состоялся вебинар «Как сократить издержки в производственной компании малого бизнеса. Планирование, фактическая себестоимость, анализ в 1С:Управление ...
Интервью с Сергеем Кукановым
На предприятии есть производство, но вы ещё не доросли до крупных систем управления? Тогда вполне можете попробовать обойтись решением 1С:Управление ...
Годовая отчетность за 2019 г.: бухгалтерская и налоговая
Оформить заявку на участие в онлайн-семинаре "Годовая отчетность за 2019 г.: бухгалтерская и налоговая" https://buhexpert8.ru/dostup#buh ПРОГРАММА СЕМИНАРА НАЛОГОВАЯ ОТЧЕТНОСТЬ: • ...
Новое в ЗУП за 5 мин [выпуск от 17.02.2020]
Выпуск на нашем сайте - https://buhexpert8.ru/1s-zup#tt-5min В этом выпуске: • Разместили ответы на вопросы с семинара по СЗВ-ТД • Обновили ...
1С:ERP Урок 55. Исполнение заказа на производство
Пятьдесят пятый видеоурок вводного курса по «1С:ERP Управление предприятием». Тема на сегодня – исполнение заказа на производство (без использования пооперационного ...
Новое в учете и отчетности по НДФЛ в 2020 году
Изменения по НДФЛ в 2020 году. Изменения сроков и порядка представления отчетности по НДФЛ. Как представить отчетность по доходам по ...
Ошибки при учете договоров ГПХ в 1С ЗУП 3.1
Кого считать работниками по договорам ГПХ. Ошибки квалификации договоров ГПХ. Выплаты по договорам ГПХ в 1С ЗУП 3.1. Смотрите тест-драйва ...
Ответы на популярные вопросы по ЭТК - часть 2
Фрагмент вебинара по электронным трудовым от 11.02.2020 - Если все оставляют бумажные трудовые, можно ли не сдавать СЗВ-ТД? - Нужно ...
Юридическая и организационная (управленческая) структура Компании в 1С:ЗУП КОРП
✔️ Как настроить в 1С:ЗУП КОРП юридическую и организационную (управленческую) структуру Компании? ✔️ Какой отчет показывает сотрудников в разрезе оргструктуры? ...
1С:Электронные трудовые книжки - бесплатный сервис от фирмы 1С
Если вы не используете программу 1С, предлагаем вам воспользоваться сервисом для формирования отчета СЗВ-ТД совершенно бесплатно. Переходите по ссылке etk.1c.ru ...
Сведения о среднесписочной численности работников в 1С 8.3 ЗУП
Кем и в какие сроки сдаются сведения по среднесписочной численности. Что входит в понятие среднесписочная численность и как она рассчитывается ...