x 

СКД - набор данных «Объект». Пример

1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00
Рейтинг:   / 0
ПлохоОтлично 

Опубликовано: 2015.05.13

 СКД - набор данных. Пример

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

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

Представим задачу: нужно получить и сравнить остатки товара в 2-х базах 1С в обще количественном выражении. Из текущей базы получим данные с помощью набора данных запрос, а из внешней базы - с помощью COM соединения.

Создаем новый отчет, открываем схему компоновки данных, добавляем два типа набора данных: Набор-Запрос и Набор-Объект. Собственно Набор-Запрос – это получение остатков в текущей базе, а Набор-Объект – это таблица в которую будут помещены данные из внешней базы, как мы и сказали выше.

Набор-запрос: вот такой простенький текст запроса, суть сейчас в показании взаимодействия этих объектов.

СКД - набор данных. Пример

Набор-объект: В низу открывшегося окна есть поле с именем «Имя:» введем туда название «ВнешниеДанные» добавим поля: «КодСкладаВнешний» (по этому полю будет выполняться связь набора-запроса и набора-объекта) и «ОстатокВнешняяБаза».

СКД - набор данных. Пример

Теперь на закладке «Связи наборов данных», зададим связь наших наборов данных. Связи наборов данных, аналогичны связям таблиц в конструкторе запросов. Исключением является то что в СКД соединение может быть только ЛЕВЫМ.

Заполняем поля следующим образом:

  1. Источник связи: Набор-Запрос;
  2. Приемник связи: Набор-Объект;
  3. Выражение источник: Склад.Код;
  4. Выражение приемник: КодСкладаВнешний.

СКД - набор данных. Пример

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

Здесь же добавим в «Выбранные поля»: Склад, КоличествоОстаток и ОстатокВнешняяБаза.

СКД - набор данных. Пример

На этом конструирование отчета завершено, пора переходить к программированию!

Добавим новую основную форму отчета, на форме добавим кнопку «Сформировать». В обработчик кнопки добавим текст процедуры COM соединения, а после – вывод отчета, если данные получены:

СКД - набор данных. Пример

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

СКД - набор данных. Пример

 

Все работает, но при попытке отфильтровать, упорядочить, оформить и т.д. возникает ошибка исполнения: «Не найден внешний набор данных ВнешниеДанные». Момент в том, что фильтрация, упорядочивание и пр. по сути, являются установкой настроек отчета и переформированием результата. А так как используется внешний набор данных, необходимо передавать его при инициализации процессора компоновки. С учетом этого, определим для поля табличного документа «Результат», процедуру «ОбработкаРасшифровки»:

СКД - набор данных. Пример

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

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

С другими полезными темами вы можете ознакомиться в нашей базе знаний

Все Услуги 1С компании FinSoft вы можете посмотреть перейдя по ссылке

Так же Вы можете ознакомиться с нашими разработками 1С

Если у вас остались вопросы, Вы всегда можете обратиться к нашим аналитикам по телефонам:

(057) 780-70-70

(095) 090-70-20

(068) 090-70-20

Также интересно

СКД - Указание периодов в виртуальных таблицахUser Rating: / 0

Подробнее...
Связь параметров СКД с элементами формыUser Rating: / 0

Подробнее...