Пример доработки типового отчета в БП 3.0 (Ограничение доступности поля в отборе, группировке) без снятия с поддержки

Публикация № 908830

Разработка - Практика программирования

Пример доработки типового отчета по ограничению доступности поля в отчете

Доработка типового отчета в БП 3.0. Пример, как можно внести изменения в типовой отчет "Бухгалтерии предприятия" 3.0 без снятия конфигурации с поддержки. Снять ограничение доступности нужного поля в отборе, группировке.

Доработка типового отчета в БП 30
1С:Предприятие 8.3 (8.3.10.2561)
Бухгалтерия предприятия, редакция 3.0 (3.0.64.29)

Пример, как можно внести изменения в типовой отчет Бухгалтерии предприятия 30 без снятия конфигурации с поддержки

Задача: Добавить возможность отбора, группировки по Регистратору(Документу) в типовой отчет "Регистры налогового учета"
1. Добавляем расширение в конфигурацию 1с

Меню -Конфигурация - Расширение конфигурации 

Расш_1

Добавим расширение

Расш_2

Снимем признак "Безопасный режим в расширение"

Расш_3

2. Добавил форму отчета в расширение

Находим требуемый отчет в конфигурации , щелкам правой кнопкой мышки по форме отчета, выполняем команду "Добавить в расширение"

ФормаОтчета_1

3. Определяем место инициализации компоновщика и его настроек.

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

4. Добавляем процедуру  в расширение 

Выделяем процедуру в основной форме отчета, щелкаем правой кнопкой мыши  и выполняем команду "Добавить в расширение"

Процедура_1
Выбираем в какой момент времени она будет вызвана. В нашем случаи после выполнения изначальной до изменений.
Процедура_2
Так отображается добавленная процедура в коде формы отчета расширения.
Процедура_3
5. Определяем по данным отчета, что нам нужно изменить, что бы можно было наложить отбор по требуемому полю

В данном случаи, нужно изменить "Ограничение использования реквизитов" в схеме компоновки данных
ОграничениеРеквизитов_1
6. Снимаем ограничение использования реквизитов для условия и группировки

В процедуре "ИзменениеСхемыКомпоновкиДанныхНаСервере" добавляем программный код:
 

&НаСервере
&После("ИзменениеСхемыКомпоновкиДанныхНаСервере")
Процедура Расшир_ИзменениеСхемыКомпоновкиДанныхНаСервере(Знач Схема)
	// Определяем необходимость инициализации 
	ИнициализироватьКомпНастроек=ложь;
	Если Схема = Неопределено Тогда
		Схема = ПолучитьИзВременногоХранилища(СхемаКомпоновкиДанных);
	КонецЕсли;
	
	// Найдем набор данных для изменения
	ДанныеПервичныхДокументов=Схема.НаборыДанных.найти("ДанныеПервичныхДокументов");
	
	Если ДанныеПервичныхДокументов<> неопределено тогда
		
		// Найдем в наборе данных поле для изменения
		ПолеРегистраторНаборДанных=ДанныеПервичныхДокументов.Поля.найти("Регистратор");
		Если ПолеРегистраторНаборДанных <> неопределено тогда
			
			// Меняем значение настройки поля
			ПолеРегистраторНаборДанных.ОграничениеИспользованияРеквизитов.Условие =ложь;
			ПолеРегистраторНаборДанных.ОграничениеИспользованияРеквизитов.Группировка =ложь;
			ИнициализироватьКомпНастроек=истина;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если ИнициализироватьКомпНастроек тогда
		// Обновим значение СКД
		СхемаКомпоновкиДанных = ПоместитьВоВременноеХранилище(Схема, СхемаКомпоновкиДанных);
		// Инициализируем компоновщик настроек 
		Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
	КонецЕсли;
	
КонецПроцедуры

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

&НаКлиенте
Функция ПолучитьЗапрещенныеПоля(Режим = "") Экспорт
	
	СписокПолей = Новый Массив;
	
	//Если список субконто задан
	Если Отчет.СписокВидовСубконто.Количество() > 0 Тогда
		СписокПолей.Добавить("Субконто1");
		СписокПолей.Добавить("Субконто2");
		СписокПолей.Добавить("Субконто3");
	КонецЕсли;
	
	Для Каждого Субконто Из Отчет.СписокВидовСубконто Цикл
		СписокПолей.Удалить(0);			
	КонецЦикла;
	
	СписокПолей.Добавить("UserFields");
	СписокПолей.Добавить("DataParameters");
	СписокПолей.Добавить("SystemFields");
	СписокПолей.Добавить("Показатели");
	СписокПолей.Добавить("Период");
	СписокПолей.Добавить("БухТипРесурса");
	СписокПолей.Добавить("ДатаОперации");
	СписокПолей.Добавить("ДоляЕНВД");
	СписокПолей.Добавить("Содержание");
	СписокПолей.Добавить("Организация");
	СписокПолей.Добавить("ОстатокБУ");
	СписокПолей.Добавить("ОстатокНУ");
	СписокПолей.Добавить("Регистратор");
.....

Добавляем ее по аналогу в расширение, внесем изменения для исключения поля "Регистратор" из списка ограничений.

&НаКлиенте
&Вместо("ПолучитьЗапрещенныеПоля")
Функция Расшир_ПолучитьЗапрещенныеПоля(Режим)
	
     // Результат - это поле табличного документа, заменяем на свое значение
	МассивСписокПолейФикс = ПродолжитьВызов(Режим);
	 
    // Сформируем новый фиксированный массив без ограничения на поле "Регистратор"
    СписокПолей= новый Массив;

	Для Каждого Эл из  МассивСписокПолейФикс цикл
		Если    Эл = "Регистратор" тогда
			Продолжить;
		КонецЕсли;
		СписокПолей.Добавить(Эл);
	КонецЦикла;
	// Вернем новый фикс. массив
	Возврат Новый ФиксированныйМассив(СписокПолей);

КонецФункции

8. Проверяем результат
Поле и реквизиты доступны для группировки

Регистратор_Группировка
Поле и реквизиты доступны для отбора

Регистратор_Отбор

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. user619273_alevtina 30.12.18 17:27 Сейчас в теме
2. German_Tagil 7 16.02.19 21:27 Сейчас в теме
Оставьте свое сообщение

См. также

Программная работа с настройками СКД

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    4899    ids79    25       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

[СКД] Программное создание схемы компоновки данных

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

15.01.2020    6904    John_d    20       

30 задач. Странных и не очень

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    9104    YPermitin    72       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Агрегатные функции СКД, о которых мало кто знает

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    23493    ids79    45       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Три костыля. Сказ про фокусы в коде

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    13887    YPermitin    70       

Отслеживание выполнения фонового задания

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    17893    ids79    16       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    32100    ids79    36       

Фоновое выполнение кода в 1С - это просто

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

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

02.08.2019    17982    avalakh    21       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    26349    ids79    9       

Открыто голосование за доклады на INFOSTART MEETUP Krasnodar Промо

Выбирайте и голосуйте за самые интересные доклады, лучшие из них попадут в окончательную программу митапа. Голосование продлится до 30 января 2020 года.

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    19158    ids79    27       

Регистры сведений. За кулисами

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    14580    YPermitin    12       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

"Меньше копипаста!", или как Вася универсальную процедуру писал

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    11965    SeiOkami    49       

Создание отчетов с помощью СКД - основные понятия и элементы

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    31255    ids79    17       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    16733    dmurk    144       

Регистры накопления. Структура хранения в базе данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    26798    YPermitin    27       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Выполнение внешней обработки в фоновом задании

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    16999    Eret1k    23       

Выгрузка документа по условию

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    9193    m-rv    2       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

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

5500 рублей

Как прикрутить ГУИД к регистру сведений

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    12298    m-rv    16       

О расширениях замолвите слово...

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    23093    ellavs    125       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    18331    ellavs    83       

Трюки с внешними источниками данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    20159    YPermitin    53