Формирование отчета СКД по данным внешней базы
Admin
16.05.2017
91 понравилось
1478 просмотров

Формирование отчета СКД по данным внешней базы

Задача: В конфигурации «Управление торговлей 10.3» сформировать отчет «Ведомость по товарам на складах» на СКД, который бы собирал данные из текущей базу и внешней базы «Розница 1.0».

Создадим внешний отчет и откроем основную схему компоновки данных. Добавим «Набор данных – объединение». В объединение добавим «Набор данных – объект» и «Набор данных- запрос»

В «Наборе данных – запрос» создадим запрос: остатки и обороты регистра накопления «Товары на складах».

Для «Набора данных – объект» укажем имя объекта, содержащего данные: «ТоварыИзРозницы».

В таблице «Поля» опишем, значения, которые будем получать из внешней базы. Наименования должны совпадать с полями в «Наборе данных – запрос». Например, Номенклатура, Склад, КоличествоНачальныйОстаток, КоличествоПриход и др.

Для полей ссылочного типа укажем составной тип, состоящий из соответствующего справочника и строки.

Добавим ресурсы и создадим настройки.

Настройки подключения к внешней базе можно задавать, как реквизиты обработки. Или использовать справочник «Настройки обмена данными» и указать параметры в нем. Я буду использовать второй вариант. Разместим выбор элемента «Настроек обмена данными» на форме настроек.

Для кнопки «Проверить подключение» пропишем событие «Нажатие»:

Функция «СоздатьВнешнееСоединение» располагается в модуле объекта.

В модуле объекта пропишем процедуру ПриКомпоновкеРезультата:

Таблица товаров формируется функцией «ПолучитьТоварыИзРозницы». В этой функции создаем пустую таблицу значений, описывая типы колонок. Затем создаем внешнее соединение и проверяем, что оно корректно создано.

У вас есть вопрос, нужна помощь консультанта?

Оставьте номер телефона и мы перезвоним!

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

Все получаемые данные из внешней базы имеют тип COMОбъект. Поэтому, для того, чтобы вывести данные в отчет необходимо их преобразовать.

Таблицу товаров заполнили. Она будет передана в «Набор данных – объект».

Преобразование COMОбъектов происходит в функции «ПолучитьДанныеИзComОбъекта»:

Если полученный элемент есть в основной базе, то в таблицу помещается ссылка. Если элемента нет, то помещается строка с наименованием.

Если пользователь указал отбор в отчете, то имеет смысл использовать его при получении данных из внешней базы. Условия в запрос добавляются в процедуре «ПолучитьУсловияДляЗапроса».

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

В параметрах передаются:

ЭлементОтбора – элемент отбора настройки компоновки данных

ТекстУсловия – условие, которое будет дописано в запрос

Запрос – запрос внешней базы

ИзмерениеСравнения – имя измерения, на которое будет наложено условие

НаименованиеСправочника – имя справочника во внешней базе, элементы которого будут переданы в виде параметра запроса.

 

Эта статья помогла вам?

Теги:

Комментарии ( 5 )

image
Аноним
17.08.2018 11:25:34

Именно такую задачу решал: получит отчет на СКД об остатках товаров в базе 1С УПП 1.3 (по складам в УПП)  +  Остатки по всем магазинам из 1с Розница + Остатки по представительствам УТ 10.3. Ваш материал был в помощь. Спасибо!

image
Аноним
16.08.2018 15:57:24

помогло! спасибо!

image
Диана А.
28.03.2018 15:29:56

Благодарим за комментарий! :)

image
Аноним
28.03.2018 15:07:02

Впрочем, и так всё понятно. Спасибо!

image
Аноним
28.03.2018 14:52:52

Познавательно, но без листинга функций ПолучитьУсловияДляЗапроса, и ПолучитьВыражениеСравнения - бесполезно на практике. Если уж приводить листинг, так весь :)

Оставить комментарий