Представления в ЗУП

27.04.21

Разработка - Механизмы типовых конфигураций

Использование представлений вместо прямого чтения из регистров сведений в ЗУП.

Скачать исходный код

Наименование Файл Версия Размер
Представления в ЗУП:
.epf 31,56Kb
60
.epf 31,56Kb 60 Скачать

Введение:

Один из основных "паттернов"  1С - "Чтение данных из регистров, а не из документов". Структура справочников и регистров считается стабильной, а "правильное" использование регистров рассматривается при подготовке к экзамену "1С:Специалист".
В ЗУП данный паттерн нарушается для регистров сведений. Вместо него разработчикам предоставляют механизм "Представлений".

При разработке запросов для ЗУП разработчики сталкиваются со следующими сложностями ЗУП:

  1. Часто требуется писать один и тот же "большой" запрос, для чтения данных.
    Это приводит к появлению большого количества "дубликатов кода" в запросах.
    При изменении структуры метаданных приходиться переписывать все эти запросы.
  2. Регистры сведений используются нестандартным образом.
    В регистры добавлены ресурсы "ОкончаниеПредположительно", "ДействуетДо", которые требуется учитывать при получении среза последних по регистру. Логика использования таких ресурсов не стандартизирована.

Для решения перечисленных выше проблем в ЗУП появился механизм представлений.
При изучении данного механизма я столкнулся с отсутствием документации по данному механизму аналогичной той которая предоставляется для БСП.

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

Использование представлений:

Что бы использовать представление необходимо пройти следующие этапы:

  1. Подготовить временную таблицу (ВТ) с исходными данными для которых надо получить "представление".
    Как правило ВТ с исходными данными должна содержать колонку "Период" и колонки соответствующие измерениям регистра, по которым надо получить срез.
  2. Описать колонки, которые требуется получить в результирующей ВТ.
  3. Указать параметры построения представления.

В ЗУП предусмотрены следующие способы работы с "представлениями":

  1. "Пустышки" в СКД
  2. Функции "СоздатьВТ..."

Ниже данные способы описываются подробнее.

"Пустышки в СКД"

Описания результирующей ВТ в СКД производятся путем написания запроса-пустышки.
Пример запроса-пустышки:

ВЫБРАТЬ
    ДАТАВРЕМЯ(1, 1, 1) КАК Период
ПОМЕСТИТЬ Представления_Периоды
ГДЕ
    "НачалоИнтервала" = &ДатаНачала
    И "ОкончаниеИнтервала" = &ДатаОкончания
    И "Периодичность" = "ДЕНЬ"
    И "ИспользоватьКонецПериода" = "ЛОЖЬ"

Для написания такого запроса необходимо знать:

  1. Какие поля допустимо использовать в запросе.
  2. Как должно называться представление (начало имени результирующей ВТ должно начинаться с имени представления).
  3. Какие параметры допустимо передать в секции "ГДЕ".

В обработке "Представления ЗУП" для быстрого написания запросов-пустышек созданы конструкторы, позволяющие создать запрос-пустышку настраивая его "мышкой".

Пример создания запроса-пустышки:


 

 

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

Для использования запросов-пустышек в отчетах необходимо заменить пустышки на фактически выполняемые запросы.
Заготовка кода, который для этого необходим есть в шаблонах кода (см. "Поиск шаблонов кода").

Функции "СоздатьВТ..."

При необходимости обратиться к представлению в коде используются функции "СоздатьВТ...".
Последовательность действий будет следующей:

  1. Создать менеджер временных таблиц (МВТ), который будет далее использоваться в цепочке запросов.
  2. Если это необходимо создать в МВТ таблицу, необходимую для построения результирующей ВТ
  3. Выполнить "СоздатьВТ..."
  4. Удалить ВТ, которые не далее не нужны.

Заготовки кода для работы с ВТ генерируются на закладке "Шаблоны кода".

 

 

Послесловие

Обработка предоставляется "как есть". Сложно сказать, будет ли она развиваться далее. Это зависит от того, будет ли у меня существенное количество задач, связанных с ЗУП. Мне эта обработка позволила собрать в кучу знания полученные при изучении механизмов и существенно увеличить скорость написания запросов-пустышек.

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

Надеюсь, что публикация будет полезной. 

Проверялось за ЗУП редакции 3.1 (3.1.14.433).

27.04.2021:

  1. Добавлено представление "КадровыеДанныеФизическихЛиц"
  2. Сформирован список найденных представлений. Располагается на первой странице.
    Доступны для выбора только поддерживаемые обработкой.
  3. Для срезов последних по некоторым регистрам обнаружены "особенности использования".
    Такие регистры выводятся в списке с "!". Под списком отображается описание тех "особенностей" с которыми столкнулся.
    Пример:
     

ЗУП Представления

См. также

Ценовая власть. Выносим из цикла схему СКД

Механизмы типовых конфигураций Ценообразование, анализ цен Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    519    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    412    tango    5    

3

Ценовая власть. Второй сезон

Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Бесплатно (free)

В первом сезоне мы рассмотрели (с точки зрения программиста) внутренний механизм, помещающий цены в регистр "Цены". Из этого регистра цена попадает в исходящие УПД (в продажи). Но эта цена (в прайс-листе) дифференцирована (ценообразована) в разрезах свойств самой номенклатуры. Но стратегия ценообразования, ценовая власть - это в первую очередь о работе с ценами для клиента. И тут вступает в дело второй акт марлезонского, Скидки (наценки) и кешбек.

08.04.2024    781    tango    0    

2

Ценовая власть (УТ 11.5) - 2

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

В прошлый раз специальной обработкой мы выбрали объекты УТ 1.5, группируя по подсистемам. Оказалось, что состав подсистем не вполне корректно отображает функциональную структуру, но зато мы нашли процедуру, которая, вроде бы, должна содержать в себе всё, что нас интересует. Обновление цен должно ведь следовать выбранной стратегии ценообразования, верно? Иначе что она обновляет...

06.04.2024    475    tango    1    

1

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    575    tango    12    

2

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

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

07.02.2024    2653    YA_418728146    11    

44

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1197    8    2ncom    6    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

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

28.12.2023    5013    mrXoxot    11    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ubnkfl 15.04.21 13:27 Сейчас в теме
В дополнение к статье.
https://its.1c.ru/db/metod81#content:7329:hdoc

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

Для подготовки текста запроса, необходимо:

выбрать страницу представления;
задать параметры;
выбрать команду "Сформировать".
В поле "Представление" будет сформирован текст запроса-представления, который необходимо скопировать в набор данных схемы компоновки данных, разрабатываемого отчета.

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

Внешняя обработка ПредставленияИспользуемыеВЗапросахНаборовДанныхСКДОтчетов.epf находится в каталоге \1CITS\EXE\HRM3
Показать
Прикрепленные файлы:
ПредставленияИспользуемыеВЗапросахНаборовДанныхСКДОтчетов.epf
1c_ssnik; AlbinaAAA; vakrikun; Strannik777; olen_ka; lepth; user1485342; VinnieThePOOH; ~Ponk@~; ixijixi; VAAngelov; Aftee; triviumfan; Kaval88; German_Tagil; asupsam; sanjabor; user_2010; +18 Ответить
2. Aftee 15.04.21 17:15 Сейчас в теме
Вот прочитает человек Вашу статью, даже получится сгенерить "пустышку". А дальше он с ней что будет делать? Ну вставит в СКД, ну получит пустой результат.
Распишите про процедуры, выполняющие заполнение наборов данных.
3. tschertovKA 15.04.21 20:19 Сейчас в теме
(2) Возможно вы не обратили внимание на предложение:
Для использования запросов-пустышек в отчетах необходимо заменить пустышки на фактически выполняемые запросы.
Заготовка кода, который для этого необходим есть в шаблонах кода (см. "Поиск шаблонов кода").

Там пока что есть только один шаблон кода, как раз тот, который надо для разработки собственного внешнего отчета с использованием в СКД запросов-пустышек.
AliceLight; +1 Ответить
4. Aftee 16.04.21 08:35 Сейчас в теме
(3) Ну да, не заметил. Хотелось бы поглядеть какой там шаблон для отчета. Приведете пример?
6. Sakuraso 16.04.21 09:26 Сейчас в теме
(4) Можно посмотреть в любом типовом отчете в ЗУП.
Выглядит примерно так:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	ЗарплатаКадрыОтчеты.ПриКомпоновкеРезультатаВТабличныйДокумент(
		ЭтотОбъект, ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка, Ложь);
	
КонецПроцедуры

#КонецОбласти


#Область СлужебныеПроцедурыИФункции

Процедура ИнициализироватьОтчет() Экспорт
	
	ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(ЭтотОбъект);
	
КонецПроцедуры

// Для общей формы "Форма отчета" подсистемы "Варианты отчетов".
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	
	Настройки.События.ПередЗагрузкойНастроекВКомпоновщик = Истина;
	
КонецПроцедуры

// Вызывается перед загрузкой новых настроек. Используется для изменения схемы компоновки.
//
Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
	
	Если КлючСхемы <> КлючВарианта Тогда
		
		ИнициализироватьОтчет();
		ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКомпоновкиДанных, КлючСхемы);
		
		КлючСхемы = КлючВарианта;
		
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли
Показать
AliceLight; Noobmaster69; user1592156; +3 Ответить
8. Aftee 16.04.21 11:37 Сейчас в теме
(6) ну и нафига мне обработка за 5 SM, если я могу код посмотреть в
в любом типовом отчете в ЗУП
?
1c_ssnik; VinnieThePOOH; +2 Ответить
12. dock 44 19.04.21 10:51 Сейчас в теме
(8) что бы поддержать автора, у которого явная нехватка sm :))))
1c_ssnik; +1 Ответить
5. Yashazz 4725 16.04.21 09:25 Сейчас в теме
Браво! Хоть кто-то рискнул в эту муть полезть и разобраться. Плюсую!
7. Aftee 16.04.21 11:35 Сейчас в теме
(5) Это давным-давно уже разобрано. Обработка "валяется" в открытом доступе (ее и тут прикрепили в (1)).
Есть более подробное описание механизма представлений от других авторов.

5 SM за бесплатную обработку, к которой прикручен шаблон кода (по факту нужна одна процедура, которую можно скопипастить из типовой конфы или из статей других авторов).

Яков, я Вас не узнаю...
1c_ssnik; dock; triviumfan; +3 Ответить
9. Gladkov_Anton 332 16.04.21 15:58 Сейчас в теме
(7) Если вам кажется, что 5 SM это большие деньги, в связи с тем, что инфостарт их не продает любому желающему по текущему курсу - то думаю, что вопрос о ценности SM лучше направить в поддержку сайта.

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

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

Обновление в ближайшее время выложу и конечно отравлю тем, кто уже купил.

Если вы хотите сделать людям добро - предлагаю простой вариант:
Допиливаете в обработку примерно столько же сколько уже в ней сделано.
Список представлений в ЗУП намного больше тех, которые уже есть в обработке, можно приложить пояснения как пользоваться и добавить еще шаблонов кода.
Я со своей стороны выложу все это в свободный доступ, например на Git.

В противном случае ваши нападки выглядят не более чем как треп о жадности капиталистов...
amiralnar; EugeneMaliy; ubnkfl; +3 1 Ответить
10. Aftee 16.04.21 16:15 Сейчас в теме
(9)
Если вам кажется, что 5 SM это большие деньги
- Нет, не кажется.

Но
Обработка предоставляется "как есть". Сложно сказать, будет ли она развиваться далее.

+ (1) + приправить двумя типовыми процедурами по заполнению "пустышек"

Если вам кажется, что 5 SM это большие деньги
- да, кажется, учитывая вышеперечисленное.

Хозяин Барин, как говорится
1c_ssnik; VinnieThePOOH; +2 Ответить
11. Yashazz 4725 16.04.21 17:57 Сейчас в теме
(7) а я плохо разбираюсь в ЗУП. Не мой профиль. Я больше по УТ/БП, КА, производству, ну и платформе.
Ясно, спасибо за инфу. Убираю свой голос.
13. webester 26 25.07.22 09:52 Сейчас в теме
Обработка прекрасная. Шаблоны кода немного кривоваты, но пригодились. Сама обработка намного функциональнее, и удобнее чем типовая. Пользуюсь ей в приоритете перед типовой. Но автор забил на обновления. Это грусть. В списке есть и другие интересные представления. Может и дойдут руки когда-то посмотреть на них самостоятельно.
AliceLight; +1 Ответить
Оставьте свое сообщение