1с изменение таблицы динамического списка. Техническая реализация web-сервисов

Главная Заметки из Зазеркалья

21.04.2014 Получение данных динамического списка

Реализовано в версии 8.3.6.1977.

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

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

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

Динамический список сам по себе не может предоставить вам такую информацию. Задача динамического списка - обеспечить быстрый просмотр больших объёмов данных. Поэтому он считывает данные порциями, требуемыми для отображения на одном-двух экранах. И «ничего не знает», например, об общем количестве данных, которые ему предстоит считать.

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

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

Теперь эта задача решается просто. У таблицы динамического списка появились два новых метода:

  • ПолучитьИсполняемуюСхемуКомпоновкиДанных() ;
  • ПолучитьИсполняемыеНастройкиКомпоновкиДанных() .

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

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

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

При выводе в табличный документ есть ещё один приятный момент. В общем, внешний вид отчета будет соответствовать внешнему виду таблицы динамического списка в момент получения схемы и настроек. В том числе и условному оформлению таблицы. Какие-то дополнительные действия понадобятся вам только в том случае, если вы захотите перенести в отчёт ещё и условное оформление формы.

Web-сервисы - это один из механизмов платформы, используемых для интеграции с другими информационными системами . Он является средством поддержки SOA (Service-Oriented Architecture) - сервис-ориентированной архитектуры, которая является современным стандартом интеграции приложений и информационных систем.

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

Сервис-ориентированная архитектура интенсивно развивается и поддерживается крупными вендорами. Она строится на базе сервисов, автономных или управляемых извне. Предпочтительным способом их реализации являются веб-сервисы . Они независимы от платформы, автономны и поддерживаются повсеместно.

Прикладное решение 1С:Предприятия 8 может являться как поставщиком веб-сервисов, так и потребителем веб-сервисов, опубликованных другими поставщиками.

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


Техническая реализация web-сервисов

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

При этом, когда потребитель обращается к web-сервису прикладного решения , выполняется модуль web-сервиса . Этот модуль содержится в конфигурации и в нем располагаются процедуры, выполняемые при вызове тех или иных операций web-сервиса.

В случае клиент-серверного варианта работы этот модуль будет исполняться в кластере . В случае файлового варианта работы - в модуле расширения веб-сервера.

Если прикладное решение является потребителем веб-сервиса стороннего поставщика, то в этом случае взаимодействие между прикладным решением и поставщиком веб-сервиса осуществляет

Наконец-то осуществилась мечта любого «семерошника». Как часто пользователи программы 7.7 просили сделать нормальный подбор номенклатуры. Чтобы и остатки можно было видеть, и цены, и установить фильтры. Приходилось придумывать разные хитрости, вплоть до написания внешних компонентов. В 1С 8.2 появились динамические списки. Предлагаю рассмотреть, что это такое и что они нам могут дать в 1С 8.3.

За основу возьмем некую тестовую конфигурацию 1С:»Бухгалтерия предприятия 3.0″. Не будем сейчас делать подбор, просто в справочнике «Номенклатура» добавим еще одну форму выбора и сделаем ее временно основной:

При создании система по умолчанию добавит на форму табличное поле с типом «Динамический список».

Зайдем в его свойства и посмотрим, что там.

В первую очередь нас интересует флажок «Произвольный запрос». Он-то и откроет нам все преимущества динамического списка. У нас появится возможность написать собственный запрос, причем с параметрами. Устанавливаем флажок и нажимаем ссылку «Открыть»:

Откроется окно с уже готовым кодом на . Пока что там просто перечислены все поля справочника «Номенклатура».

Получите 267 видеоуроков по 1С бесплатно:

Как видим, имеется кнопка вызова « » и флажок, который дает возможность динамически изменять содержимое списка. То есть когда другой пользователь меняет что-то в справочнике, в нашем списке это тоже изменится. Кроме того, имеется закладка «Настройки», но ее мы коснемся позже.

Собственный запрос в динамическом списке

Сначала создадим нужный нам запрос с остатками и ценами. Примерно так:

Закладка «Настройки»

И вот теперь самое вкусное! Переходим на закладку «Настройки». И сразу видим, что на первой вкладке мы можем делать любые отборы по любому полю в запросе:

Программная установка параметров запроса в динамическом списке 1С 8.3

Не забываем, что в запросе у нас присутствуют два параметра: «Период» и «Тип цен». Мы должны передать их в запрос, иначе будет ошибка.

Пропишем эти параметры в параметрах формы, а в модуле формы добавим следующие строки:

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Список. Параметры. УстановитьЗначениеПараметра("Период" , Параметры. Дата) ; Список. Параметры. УстановитьЗначениеПараметра("ТипЦен" , Параметры. ТипЦен) ; КонецПроцедуры