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

24.09.18

Задачи пользователя - Адаптация типовых решений

Доработка типового отчета в БП 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С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    11334    34    15    

41

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

5500 руб.

07.02.2023    12155    114    20    

70

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    6465    2    2    

6

Адаптация типовых решений 1С 8.3 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Беларусь Россия Платные (руб)

Расширение "Дополнительные документы" предназначено для создания дополнительных документов различного назначения, как форм для внесения данных так и печатных форм в расширяемой конфигурации пользовательскими средствами, без работы в конфигураторе и внесения изменений в структуру данных. Тестировалось для "1С:БП", "1С:УНФ","1С:КА"

21859 руб.

29.12.2025    825    1    8    

2

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

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

9760 руб.

17.06.2025    2721    7    0    

8

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9150 руб.

02.08.2023    7593    25    5    

41

Адаптация типовых решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Расширение для вывода информации об остатках и ценах номенклатуры в форме списка и выбора номенклатуры. (УТ 11, КА 2, ERP). Позволяет получать информацию о ценах, остатках и доступности в разрезе складов и характеристик номенклатуры, информацию по документам резерва.

7930 руб.

16.10.2025    901    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user619273_alevtina 30.12.18 17:27 Сейчас в теме
2. German_Tagil 43 16.02.19 21:27 Сейчас в теме
3. MonteCriZto 116 08.02.21 04:54 Сейчас в теме
Добрый день, пытался по образу и подобию воспользоваться вашими соображениями на современном релизе Бухгалтерии . (3.0.88.32)
Процедуры на форме
ИзменениеСхемыКомпоновкиДанныхНаСервере. Нет.. и я немного в замешательстве ) Если поможете буду благодарен )
4. aleksey.kubovtsov 119 08.02.21 15:36 Сейчас в теме
(3)Добрый день, Коллега. Уточните , что вы хотите сделать? Опишите постановку задачи? В БП 30 с момента публикации статьи могло много чего измениться, как БСП методы в конфигурации.
5. MonteCriZto 116 09.02.21 01:18 Сейчас в теме
На самом деле постановка задачи аналогична названию публикации). Пытаюсь поставить ограничение прав работникам склада, даю менеджер по продажам (типовое). Открываю отчет продажи, ни группировки по документам ни группировке по контрагентам нет ). Попытался в расширении подпилить как вы рекомендовали, часть с запрещенными полями удалась, Однако споткнулся на процедуре, ИзменениеСхемыКомпоновкиДанныхНаСервере, она отсутствует в форме отчета продажи )
6. aleksey.kubovtsov 119 10.02.21 14:50 Сейчас в теме
(5)
ИзменениеСхемыКомпоновкиДанныхНаСервере

см. форму отчета данного отчета , в ней "ПодготовитьПараметрыОтчетаНаСервере "
.....
ПараметрыОтчета.СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(СхемаКомпоновкиДанных);
.....

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