Как программно открыть типовые отчеты (Карточку счета, Анализ счета, ОСВ по счету) с отбором, не изменяя сам отчет, в конфигурации БП 3.0

13.04.15

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

Была необходимость из обработки открывать типовые отчеты (ОСВ по счету, Анализ счета, Карточка счета) с отборами по субконто. В БП 2.0 все это делалось довольно просто, а вот в 3.0 пришлось поломать голову. Поскольку не нашел подобной статьи на Инфостарте, то решил поделиться опытом.

Механизм формирования отчетов в БП 3 переработали полностью по сравнению с БП 2, сделав его более «хитро-мудрым». Он стал гибок и удобен, но немного «замудрен».

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

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

Пример для «Карточки счета».

 

//Имя вызываемого отчета карточка,анализ, ОСВ по счету . Я делал только для этих трех.
	ИмяОтчета = "КарточкаСчета";
	
	//Заполняем реквизиты отчета и обязательные поля (могут отличаться в зависимости от отчета) 
	ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных;
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Счет"          , Счет);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("НачалоПериода" , Объект.ДатаНачало);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("КонецПериода"  , Объект.ДатаКонец);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Организация"   , Объект.Организация);
	
	//Заполняем дополнительные отборы (в примере только для субконто1 и субконто2)
	НовыйОтбор                                        = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
	НовыйОтбор.ИдентификаторПользовательскойНастройки = "Отбор";	
	ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина,ВидСравненияКомпоновкиДанных.Равно,"Субконто1", Контрагент);
	ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина,ВидСравненияКомпоновкиДанных.Равно,"Субконто2", Договор);
	
	//Обязателньо указываем ключ (Равным параметру "ИДРасшифровки",я указывал Имя отчета ) НастройкиРасшифровки
	НастройкиРасшифровки = Новый Структура;
	НастройкиРасшифровки.Вставить(ИмяОтчета, ПользовательскиеНастройкиКомпоновкиДанных);
	
	УсловияОтбора = Новый Структура();
	УсловияОтбора.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
	
	//Дублируем настройки (у меня в файловой без этого не открывалось)
	ОбщиеНастройки = Новый Структура();
	ОбщиеНастройки.Вставить("Объект"              , УсловияОтбора);
	ОбщиеНастройки.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
	
	//Помещаем во временное хранилище (Уид можно случайный)
	АлресХранилища = ПоместитьВоВременноеХранилище(ОбщиеНастройки, Новый УникальныйИдентификатор);
	
	//Обращаем внимания на заполнемые настройки, если вы укажете отбор = истина то затрется все выше указанные отборы ( поскольку показатели и группировки я не менял, то оставил их типоыми) 
	ЗаполнятьТиповыеНастройки = Новый Структура;
	ЗаполнятьТиповыеНастройки.Вставить("Отбор"          , Ложь);
	ЗаполнятьТиповыеНастройки.Вставить("Группирова"     , Истина);
	ЗаполнятьТиповыеНастройки.Вставить("ВыводимыеДанные", Истина);
	ЗаполнятьТиповыеНастройки.Вставить("Показатели"     , Истина);
	
	//Сами параметры для предачи на форму ("ИДРасшифровки" - в данном случаи ключ от структуры НастройкиРасшифровки , если "СформироватьПриОткрытии" будет равно Ложь то отчет откроется с ранее сохраненными настройками) 	
	ПараметрыОтчета = Новый Структура;
	ПараметрыОтчета.Вставить("ВидРасшифровки"         , 1);
	ПараметрыОтчета.Вставить("АдресНастроек"          , АлресХранилища);
	ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина);
	ПараметрыОтчета.Вставить("ИДРасшифровки"          , ИмяОтчета);
	ПараметрыОтчета.Вставить("РежимРасшифровки"       , Истина);
	ПараметрыОтчета.Вставить("ЗаполняемыеНастройки"   , ЗаполнятьТиповыеНастройки);
	
	//Ну и открываем саму форму
	ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма.ФормаОтчета", ПараметрыОтчета,ЭтаФорма);


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

 

P.S. Если что-то непонятно, то не стесняемся,  оставляем комментарии, по возможности буду отвечать.

ОСВ по счету Анализ счета Карточка счета ОСВ АС КС

См. также

Добавление отчета в расширение и вывод в меню отчетов на БСП на примере УТ 11.5

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

Пример добавления отчета в расширение в типовые конфигурации на БСП на примере УТ 11.5, с добавлением в типовые меню отчетов.

1 стартмани

31.01.2024    1098    DarkPinch222    0    

9

СКД, пример выбора варианта в обработке

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

Пример выбора варианта отчета СКД в обработке. Варианты отчета хранятся в Макетах обработки.

1 стартмани

29.12.2023    871    4    vladimir_korshun    0    

7

Менеджер отчетов

Менеджеры внешних отчетов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

5 стартмани

04.09.2023    732    3    serg1234    0    

3

Расширение «Контрольные отчеты» для автоматизации проверки ведения учета в 1С:ERP 2х, 1С:КА 2.х

Менеджеры внешних отчетов Анализ учета Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Платные (руб)

Расширение «Контрольные отчеты» для автоматизации процесса проверки ведения учета в ПП. Со списком ошибок могут работать ответственные пользователи. Помогает в процессе внедрения ПП находить нарушения в бизнес-процессах. 

12000 руб.

08.08.2023    1513    1    1    

4

Менеджер внешних обработок и отчетов

Инструментарий разработчика Менеджеры внешних отчетов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

При изменении и отладке внешней обработки приходится десятки раз заходить в Файл-Открыть и переоткрывать обработку. Данное решение значительно упрощает данную задачу.

1 стартмани

28.07.2023    4479    47    Serg2000mr    30    

58

[Расширение] Открытие варианта отчета из формы отчета

Менеджеры внешних отчетов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Добавление кнопки "Показать в списке" в формах отчетов для открытия соответствующего элемента справочника "Варианты отчетов".

1 стартмани

12.12.2022    1390    0    RocKeR_13    2    

4

Раздел меню внешних отчетов и обработок (расширение конфигурации на БСП)

Рабочее место Менеджеры внешних отчетов 8.3.14 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Абонемент ($m)

Иногда пользователю доставляет неудобство открывать разрозненно по спискам разных разделов внешние обработки и отчёты, и есть потребность поместить их в одно единственное окно. Данное расширение призвано решить такую задачу.

2 стартмани

12.04.2022    6082    36    Obertone    7    

25

Поиск варианта отчетов

Менеджеры внешних отчетов Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

02.03.2022    3630    7    Topmuk    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kalaratra 13 13.04.15 13:18 Сейчас в теме
Круто! Спасибо! Пыталась разобраться сама, но не получилось((((
user1852677; DrAku1a; Mariya_vrn; +3
2. Леонов Александр 1164 14.04.15 17:20 Сейчас в теме
А если через ВидРасшифровки = 2 ? ;)
DrAku1a; SashaV; +2
4. Kondratenko.as 565 15.04.15 13:03 Сейчас в теме
(2) Леонов Александр,
Тогда не нужно будет помещать во временное хранилище ,он возьмет настройки из пользовательских которые будут указаны в параметрах передаваемых форме.
adhocprog; DrAku1a; +2
3. ЗС1 15.04.15 08:56 Сейчас в теме
Спасибо за публикацию!
А как можно потом еще сохранить результат полученного отчета в файл?
Nikola_N; +1
5. Kondratenko.as 565 15.04.15 13:14 Сейчас в теме
(3) ЗС1, Сохранить что? Табличный документ ? Он формируется на сервере фоновым заданием и помешается во временное хранилище , а потом забирается оттуда отчетом. Адрес хранилища это УникальныйИдентификатор формы , получите его и потом проверяйте когда в хранилище что-то появится по этому адресу , то получите его и можете сохранить.
adhocprog; +1
6. spezc 782 19.04.15 12:00 Сейчас в теме
попробовал у себя вот этот код:

&НаСервере
Функция ПолучитьСсылкуПоКоду(Код) Экспорт

	Возврат Справочники.Склады.НайтиПоКоду(Код);

КонецФункции // ПолучитьСсылкуПоКоду()
 
&НаКлиенте
Процедура ОткрытьОтчет(Команда)
	
	ИмяОтчета = "ВедомостьТоварыНаСкладах";
	
    //Заполняем реквизиты отчета и обязательные поля (могут отличаться в зависимости от отчета) 
	ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных;
	//ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Склад"          , ПолучитьСсылкуПоКоду("00000118 "));
	
	// ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("НачалоПериода" , Объект.ДатаНачало);
	//ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("КонецПериода"  , Объект.ДатаКонец);
	//ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Организация"   , Объект.Организация);
    
    //Заполняем дополнительные отборы (в примере только для субконто1 и субконто2)
    НовыйОтбор                                        = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
    НовыйОтбор.ИдентификаторПользовательскойНастройки = "Отбор";    
    ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина,ВидСравненияКомпоновкиДанных.Равно,"Склад", ПолучитьСсылкуПоКоду("00000118 "));
    //ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина,ВидСравненияКомпоновкиДанных.Равно,"Субконто2", Договор);
    
    //Обязателньо указываем ключ (Равным параметру "ИДРасшифровки",я указывал Имя отчета ) НастройкиРасшифровки
    НастройкиРасшифровки = Новый Структура;
    НастройкиРасшифровки.Вставить(ИмяОтчета, ПользовательскиеНастройкиКомпоновкиДанных);
    
    УсловияОтбора = Новый Структура();
    УсловияОтбора.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
    
    //Дублируем настройки (у меня в файловой без этого не открывалось)
    ОбщиеНастройки = Новый Структура();
    ОбщиеНастройки.Вставить("Объект"              , УсловияОтбора);
    ОбщиеНастройки.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
    
    //Помещаем во временное хранилище (Уид можно случайный)
    АлресХранилища = ПоместитьВоВременноеХранилище(ОбщиеНастройки, Новый УникальныйИдентификатор);
    
    //Обращаем внимания на заполнемые настройки, если вы укажете отбор = истина то затрется все выше указанные отборы ( поскольку показатели и группировки я не менял, то оставил их типоыми) 
    ЗаполнятьТиповыеНастройки = Новый Структура;
    ЗаполнятьТиповыеНастройки.Вставить("Отбор"          , Ложь);
    ЗаполнятьТиповыеНастройки.Вставить("Группирова"     , Истина);
    ЗаполнятьТиповыеНастройки.Вставить("ВыводимыеДанные", Истина);
    ЗаполнятьТиповыеНастройки.Вставить("Показатели"     , Истина);
    
    //Сами параметры для предачи на форму ("ИДРасшифровки" - в данном случаи ключ от структуры НастройкиРасшифровки , если "СформироватьПриОткрытии" будет равно Ложь то отчет откроется с ранее сохраненными настройками)     
    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить("ВидРасшифровки"         , 1);
    ПараметрыОтчета.Вставить("АдресНастроек"          , АлресХранилища);
    ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина);
    ПараметрыОтчета.Вставить("ИДРасшифровки"          , ИмяОтчета);
    ПараметрыОтчета.Вставить("РежимРасшифровки"       , Истина);
    ПараметрыОтчета.Вставить("ЗаполняемыеНастройки"   , ЗаполнятьТиповыеНастройки);
    
    //Ну и открываем саму форму
    ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма.ФормаОтчетаУправляемая", ПараметрыОтчета,ЭтаФорма);
	
КонецПроцедуры


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



Однако отчет открылся без отбора по складу... Или я суть статьи не понял?
user1833498; +1
7. Kondratenko.as 565 20.04.15 05:42 Сейчас в теме
(6) spezc, ВедомостьТоварыНаСкладах - Такого отчета нет в БП 3 , данная статься только для конфигурации БП 3.0
+
8. Nikeuk 20.04.15 16:59 Сейчас в теме
Еще бы пример для ОСВ с группировками.....
adhocprog; avu2002; d_bat; +3
9. Manoshkin 346 24.06.15 07:04 Сейчас в теме
Спасибо! Здорово помогло! А есть пример как группировки вставить?
adhocprog; +1
11. Kondratenko.as 565 26.06.15 08:07 Сейчас в теме
(9) Manoshkin, примера нет. Так как не было такой необходимости.
+
10. RodinMax 26.06.15 06:55 Сейчас в теме
а куда вышеописанный код вставлять?
- в подписку на событие?
- или внеш обработку какую делать из которой будут вызываться типовые отчеты конфигурации
Можете немного подробнее пояснить если не трудно. Спасибо
+
12. Kondratenko.as 565 26.06.15 08:10 Сейчас в теме
(10) RodinMax, Куда угодно)Откуда вы хотите вызывать типовой отчет по описанным настройкам. У меня он используется во многих местах. В том числе и во внешних обработках.
+
13. link_l 12 09.07.15 15:26 Сейчас в теме
а есть пример для БП 2.0 (упп 1.3)?
+
15. Kondratenko.as 565 14.07.15 14:54 Сейчас в теме
(13) link_l, Для БП 2.0 и (УПП 1.3) примера нет
+
14. jour 16 14.07.15 12:13 Сейчас в теме
Отличная статья, выручил!
+
16. RomanRomans 14.08.15 14:19 Сейчас в теме
Спасибо, Добрый человек
+
17. mulla1979 9 14.08.15 15:04 Сейчас в теме
Автору плюс! Практика важнее всего!
+
18. 13kawaii13 13.11.15 14:46 Сейчас в теме
Спасибо помогло.
+
19. vladmin 48 02.03.16 17:31 Сейчас в теме
Может уже кто-нибудь сделал для УПП 1.3 или БП2? В начале статьи же ясно было написано что переработал код для БП2
+
20. virtex3 20 06.02.17 19:02 Сейчас в теме
Вообще не правильно называть новые элементы настроек как Отбор. По сути это всего лишь элементы, это во-первых.

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


Процедура ЗаполнитьЭлементПорядкаКомпоновкиДанных(ЭлементНастройкиКомпоновкиДанных,Использование,Поле,ТипУпорядочивания)
    
    НовыйЭлемент = ЭлементНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
    
    НовыйЭлемент.Использование  	= Использование;
    НовыйЭлемент.Поле				= Новый ПолеКомпоновкиДанных(Поле);
    НовыйЭлемент.ТипУпорядочивания	= ТипУпорядочивания;
    
КонецПроцедуры

Процедура ЗаполнитьЭлементУсловноеОформлениеКомпоновкиДанных(ЭлементНастройкиКомпоновкиДанных,Параметр,Значение,Представление)
    
    НовыйЭлемент = ЭлементНастройкиКомпоновкиДанных.Элементы.Добавить();
	НовыйЭлемент.Представление = Представление;
	НовыйЭлемент.Оформление.УстановитьЗначениеПараметра(Параметр,Значение);
	
КонецПроцедуры


	НовыйЭлемент  = МоиНастройки.Элементы.Добавить(Тип("ПорядокКомпоновкиДанных"));
	НовыйЭлемент.ИдентификаторПользовательскойНастройки = "Порядок";  
	ЗаполнитьЭлементПорядкаКомпоновкиДанных(НовыйЭлемент,Истина,"СальдоНаКонецПериода.БУКонечныйРазвернутыйОстатокДт.ПроцентОбщий",НаправлениеСортировкиКомпоновкиДанных.Убыв);
	
	НовыйЭлемент  = МоиНастройки.Элементы.Добавить(Тип("УсловноеОформлениеКомпоновкиДанных"));
	НовыйЭлемент.ИдентификаторПользовательскойНастройки = "УсловноеОформление";  
	ЗаполнитьЭлементУсловноеОформлениеКомпоновкиДанных(НовыйЭлемент,"ВыделятьОтрицательные",Истина,"Выделять отрицательные");
	ЗаполнитьЭлементУсловноеОформлениеКомпоновкиДанных(НовыйЭлемент,"Шрифт",Новый Шрифт(,9),"Основной шрифт");

Показать


Ну и в-третьих, хорошо бы описать как добавлять остальные элементы коллекции
adhocprog; +1
21. Bibr 16.02.17 15:04 Сейчас в теме
22. Bibr 16.02.17 15:57 Сейчас в теме
А вот как бы такой же запуск, только с целью получения табличного документа, без открытия формы?
+
23. maikl007 91 10.08.17 08:59 Сейчас в теме
для группировки нужно вставить следующий код

//Заполняем группировки
	Группировка = Новый Массив;
	
	ОписаниеГруппировки = Новый Структура("Использование,Поле", Истина, "Субконто1");
	Группировка.Добавить(ОписаниеГруппировки);
	ОписаниеГруппировки = Новый Структура("Использование,Поле", Истина, "Субконто2");
	Группировка.Добавить(ОписаниеГруппировки);
	
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Группировка", Группировка);
Показать
rzabolotin; Legin; maksimus753; Legavaz; +4
24. zsergey_ 4 21.09.17 07:33 Сейчас в теме
Автору огромное спасибо, вчера бился весь вечер над "анализом субконто".
(23) спасибо за дополнение!
+
26. bamblbi 03.11.17 10:41 Сейчас в теме
(23)
Группировка = Новый Массив;

ОписаниеГруппировки = Новый Структура("Использование,Поле", Истина, "Субконто1");
Группировка.Добавить(ОписаниеГруппировки);
ОписаниеГруппировки = Новый Структура("Использование,Поле", Истина, "Субконто2");
Группировка.Добавить(ОписаниеГруппировки);

ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Группировка", Группировка);


Что передавать в место "Субконто1", если мне нужна группировка по справочнику номенклатура?
+
27. maikl007 91 09.11.17 06:00 Сейчас в теме
Не совсем понял вопроса, вот работающий код для ОСВ по 41 счету. Субконто1 и есть номенклатура.

&НаКлиенте
Процедура ПрограммноОСВ()
	
	//Заполняем реквизиты отчета и обязательные поля (могут отличаться в зависимости от отчета) 
    ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных;
    ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("НачалоПериода" , '20170101');
    ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("КонецПериода"  , ТекущаяДата());
    ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Организация"   , "");
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ПоказательБУ",            Истина);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ПоказательНУ",            Ложь);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ПоказательПР",            Ложь);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ПоказательВР",            Ложь);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ПоказательКонтроль",      Ложь);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ПоказательВалютнаяСумма", Ложь);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ПоказательКоличество",    Истина);
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Счет", ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.Товары"));
	
	//Заполняем группировки
	Группировки = Новый Массив;
	ОписаниеГруппировки = Новый Структура("Использование,Поле", Истина, "Субконто1.ВидНоменклатуры");
	Группировки.Добавить(ОписаниеГруппировки);
	ОписаниеГруппировки = Новый Структура("Использование,Поле", Истина, "Субконто1");
	Группировки.Добавить(ОписаниеГруппировки);
	ОписаниеГруппировки = Новый Структура("Использование,Поле", Истина, "Субконто2");
	Группировки.Добавить(ОписаниеГруппировки);
	
	ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Группировка", Группировки);
	
	//Обязателньо указываем ключ (Равным параметру "ИДРасшифровки") НастройкиРасшифровки
    НастройкиРасшифровки = Новый Структура;
    НастройкиРасшифровки.Вставить("ИДРасшифровки", ПользовательскиеНастройкиКомпоновкиДанных);
    
    УсловияОтбора = Новый Структура();
    УсловияОтбора.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
    
    //Дублируем настройки (у меня в файловой без этого не открывалось)
    ОбщиеНастройки = Новый Структура();
    ОбщиеНастройки.Вставить("Объект"              , УсловияОтбора);
    ОбщиеНастройки.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
    
    //Помещаем во временное хранилище (Уид можно случайный)
    АдресХранилищаНастроекОСВ = ПоместитьВоВременноеХранилище(ОбщиеНастройки, Новый УникальныйИдентификатор);
	
	//Сами параметры для предачи на форму ("ИДРасшифровки" - в данном случаи ключ от структуры НастройкиРасшифровки , если "СформироватьПриОткрытии" будет равно Ложь то отчет откроется с ранее сохраненными настройками)     
    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить("ВидРасшифровки"         , 1);
    ПараметрыОтчета.Вставить("АдресНастроек"          , АдресХранилищаНастроекОСВ);
    ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина);
    ПараметрыОтчета.Вставить("ИДРасшифровки"          , "ИДРасшифровки");
	
	ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету.Форма", ПараметрыОтчета, ЭтаФорма, Истина);

КонецПроцедуры
Показать
Tornadius; user973149; Rainger; **Ольга**; Batman; always_newbie; Tanis; sgirg; mudrak; YUGPK; +10
29. Tanis 21.06.18 00:39 Сейчас в теме
(27) доброго времени суток!

Пробовал такое код на бухгалтерии 2.0, но к сожалению не срабатывает... Хотя с виду все красиво...

Судя по тексту автора этой статьи, изменено формирование настроек у 2.0 и 3.0?

Подскажите, плиз, как тогда можно сделать аналогично на БП 2.0?

Уже несколько вариантов испробовал... (((

Спасибо!
+
46. Incedo@yandex.ru 67 05.08.22 12:01 Сейчас в теме
(23) Если не заполнить Представление поля будут пустые
//Заполняем группировки
Группировка1 = Новый Массив;
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Ложь, "Подразделение", "Подразделение");
Группировка1.Добавить(ОписаниеГруппировки);
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Истина, "Субконто2", "Склад");
Группировка1.Добавить(ОписаниеГруппировки);
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Истина, "Субконто1", "Номенклатура");
Группировка1.Добавить(ОписаниеГруппировки);

ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Группировка", Группировка1);

И не забыть поставить
ЗаполнятьТиповыеНастройки.Вставить("Группировка" , Ложь);
+
25. Legavaz 704 03.10.17 14:49 Сейчас в теме
Отличная работа, спасибо.
+
28. ko-alla55 10.04.18 12:45 Сейчас в теме
Очень помогла статья! Спасибо большое!!!
+
30. Tanis 24.06.18 00:02 Сейчас в теме
Доброго времени суток!

Пробовал такое код на бухгалтерии 2.0, но к сожалению не срабатывает... Хотя с виду все красиво...

Подскажите, плиз, как тогда можно сделать аналогично на БП 2.0?

Уже несколько вариантов испробовал... (((

Спасибо!
+
31. always_newbie 04.10.18 15:10 Сейчас в теме
Автору огромное спасибо!
+
32. Batman 165 04.10.18 17:21 Сейчас в теме
33. Veronik 11.10.18 08:17 Сейчас в теме
Большое спасибо ))) !
+
34. MaiorovYury 10 21.05.19 13:06 Сейчас в теме
Спасибо большое!
Статья очень помогла)
+
35. LisaAVR 04.06.19 11:03 Сейчас в теме
Спасибо огромное!
+
36. mf300 19.06.19 17:46 Сейчас в теме
Спасибо, помогло!
Единственный вопрос, можно ли сделать так, чтобы отчет при открытии не формировался сразу. Дело в том, что я вызываю его из справочника, а даты ещё не определены. И мне необходимо сделать так, чтобы после открытия пользователь сначала задавал период, а только потом нажимал на кнопку формирования. В параметрах процедуры ОткрытьФорму ничего похожего не нашла :(.
+
37. Funtik90 07.04.20 09:44 Сейчас в теме
однако спасибо и большое, запарился я с ним что-то.
+
38. bulpi 215 04.11.20 23:13 Сейчас в теме
1)Спасибо!
2)Исправьте строку
ЗаполнятьТиповыеНастройки.Вставить("Группирова" , Истина);
на
ЗаполнятьТиповыеНастройки.Вставить("Группировка" , Истина);

и тогда типовые группировки не будут очищаться.
+
39. belmaxim 51 04.03.21 16:36 Сейчас в теме
Большое спасибо автору!
Очень быстро удалось решить свою задачу.
+
40. mustang_ 04.08.21 16:31 Сейчас в теме
Все четко, автор спасибо!
+
41. user1026611 14.09.21 04:16 Сейчас в теме
Подскажите, пожалуйста: пытаюсь в пользовательских настройках добавить группировку:

Группировка1 = Новый Массив();

ОписаниеГруппировки = Новый Структура("Использование,Поле,ТипГруппировки", Истина, "Субконто3", ТипГруппировкиКомпоновкиДанных.ТолькоИерархия); // "Номенклатура"
Группировка1.Добавить(ОписаниеГруппировки);

ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Группировка", Группировка1);

но при формировании отчёта Анализ счета в настройках в группировках сейчас ничего не показывает, а хотелось, чтобы стояла галочка "По субсчетам" и показавало бы Номенклатуру.
Прикрепленные файлы:
+
47. Incedo@yandex.ru 67 05.08.22 12:03 Сейчас в теме
(41)Представление

//Заполняем группировки
Группировка1 = Новый Массив;
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Ложь, "Подразделение", "Подразделение");
Группировка1.Добавить(ОписаниеГруппировки);
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Истина, "Субконто2", "Склад");
Группировка1.Добавить(ОписаниеГруппировки);
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Истина, "Субконто1", "Номенклатура");
Группировка1.Добавить(ОписаниеГруппировки);

ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Группировка", Группировка1);
+
42. Mariya_vrn 21.10.21 17:05 Сейчас в теме
Большое спаибо!!!!! Очень помогли, действительно сложные настройки
+
43. tw1ster_ok 19.05.22 16:22 Сейчас в теме
Дай бог здоровья тебе добрый человек ! :)
+
44. BaShaKo 02.06.22 13:52 Сейчас в теме
Удивительно, но у меня (вызов КарточкиСчета как расшифровки из моего отчета, БП 3.0) сразу всё заработало!
Самому дойти, если не особо "в теме", проблематично.
Спасибо! Жаль, что сразу не наткнулся на ваш вариант.
+
45. kofeinik 28 03.07.22 11:47 Сейчас в теме
Типовые отчеты по этой схеме открываются из расшифровки. Но, если оставить открытым сформированный типовой отчет, и попытаться открыть расшифровку еще раз, с другими параметрами, то просто открывается окно с ранее сформированным отчетом, и он не переформировывается с новыми настройками. Как заставить формироваться новый типовой отчет, вместо уже открытого окна со старым, если настройки формирования изменились?
+
48. Incedo@yandex.ru 67 05.08.22 12:05 Сейчас в теме
(45)
ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма.ФормаОтчета", ПараметрыОтчета,ЭтаФорма,Истина);

Добавить "Истина", в параметре открытия формы "Уникальность".
+
49. Incedo@yandex.ru 67 05.08.22 12:10 Сейчас в теме
ИмяОтчета = "ОборотноСальдоваяВедомостьПоСчету";
//Заполняем реквизиты отчета и обязательные поля (могут отличаться в зависимости от отчета)
ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных;
ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Счет" , ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.Материалы"));
ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("НачалоПериода" , НачалоГода(ДатаСоставления));
ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("КонецПериода" , КонецГода(ДатаСоставления));
ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Организация" , Организация);

//Заполняем дополнительные отборы
НовыйОтбор = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
НовыйОтбор.ИдентификаторПользовательскойНастройки = "Отбор";

// зададим Отбор
ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Ложь, ВидСравненияКомпоновкиДанных.Равно,"Подразделение", );
ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина, ВидСравненияКомпоновкиДанных.ВСписке,"Субконто2", СписокСкладов);
ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина, ВидСравненияКомпоновкиДанных.ВСписке,"Субконто1", СписокНоменклатуры);

//Заполняем группировки
Группировка1 = Новый Массив;
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Ложь, "Подразделение", "Подразделение");
Группировка1.Добавить(ОписаниеГруппировки);
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Истина, "Субконто2", "Склад");
Группировка1.Добавить(ОписаниеГруппировки);
ОписаниеГруппировки = Новый Структура("Использование,Поле,Представление", Истина, "Субконто1", "Номенклатура");
Группировка1.Добавить(ОписаниеГруппировки);

ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Группировка", Группировка1);

//Обязательно указываем ключ (Равным параметру "ИДРасшифровки",я указывал Имя отчета ) НастройкиРасшифровки
НастройкиРасшифровки = Новый Структура;
НастройкиРасшифровки.Вставить(ИмяОтчета, ПользовательскиеНастройкиКомпоновкиДанных);

УсловияОтбора = Новый Структура();
УсловияОтбора.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
//Дублируем настройки (у меня в файловой без этого не открывалось)
ОбщиеНастройки = Новый Структура();
ОбщиеНастройки.Вставить("Отчет", УсловияОтбора);//Объект
ОбщиеНастройки.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
//Помещаем во временное хранилище (Уид можно случайный)
АдресХранилища = ПоместитьВоВременноеХранилище(ОбщиеНастройки, Новый УникальныйИдентификатор);
//Обращаем внимания на заполнемые настройки, если вы укажете отбор = истина то затрется все выше указанные отборы
ЗаполнятьТиповыеНастройки = Новый Структура;
ЗаполнятьТиповыеНастройки.Вставить("Отбор" , Ложь);
ЗаполнятьТиповыеНастройки.Вставить("Группировка" , Ложь);
ЗаполнятьТиповыеНастройки.Вставить("ВыводимыеДанные", Истина);
ЗаполнятьТиповыеНастройки.Вставить("Показатели" , Истина);

//Сами параметры для предачи на форму ("ИДРасшифровки" - в данном случаи ключ от структуры НастройкиРасшифровки , если "СформироватьПриОткрытии" будет равно Ложь то отчет откроется с ранее сохраненными настройками)
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("ВидРасшифровки" , 1);
ПараметрыОтчета.Вставить("АдресНастроек" , АдресХранилища);
ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыОтчета.Вставить("ИДРасшифровки" , ИмяОтчета);
ПараметрыОтчета.Вставить("РежимРасшифровки" , Истина);
ПараметрыОтчета.Вставить("ЗаполняемыеНастройки" , ЗаполнятьТиповыеНастройки);

ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма.ФормаОтчета", ПараметрыОтчета,ЭтаФорма,Истина);
adhocprog; +1
51. krokchel 02.09.22 08:43 Сейчас в теме
Добрый день, спасибо!
Еще вопрос, можно при открытии ОСВ кнопку настроек сделать неактивной или невидимой если не влезать в сам отчет?
+
52. SadrA 14.09.22 17:09 Сейчас в теме
Следует иметь ввиду: Если метод вызывается из формы, то Группировка = Новый Массив приведет к ошибке. У формы есть одноименное свойство. ;)
+
53. Programmer-1C 143 11.11.22 15:11 Сейчас в теме
Спасибо, пригодилось!
+
54. olbir 07.01.23 23:23 Сейчас в теме
Спасибо!!! Неделю мучилась!
+
55. Sergik82 31.01.23 18:30 Сейчас в теме
Спасибо! Очень пригодилась статья. Респект Вам!!!
adhocprog; +1
56. MaximKor 20 10.02.23 11:02 Сейчас в теме
10.02.2023 на самом актуальном релизе БП 3.0, работает. Спасибо большое!!
+
57. CrazyFreeman 23.02.23 14:27 Сейчас в теме
Добрый день!

Использую данный метод для программного открытия отчета по проводкам и у меня не заполняются параметры отчета (НачалоПериода и КонецПериода).Отчет формируется, но за все время учета. Подскажите в чем может быть дело?
+
58. ХамитоваРайса 18.04.23 19:38 Сейчас в теме
Боже мой, как помогла Ваша статья!!! Несколько дней думала...
+
59. user1544463 22.05.23 17:12 Сейчас в теме
Спасибо! Статья помогла!
+
60. Sardukar 58 18.08.23 10:31 Сейчас в теме
А я карточку расчетов с поставщиками например так открыл:
		ПараметрыФормы = Новый Структура("КлючНазначенияИспользования, Отбор, СформироватьПриОткрытии, ВидимостьКомандВариантовОтчетов");
		ПараметрыФормы.Вставить("КлючНазначенияИспользования",		Неопределено); 
		ПараметрыФормы.Вставить("Отбор",							Новый Структура("ОбъектРасчетов", МассивОбъектовРасчетов));
		ПараметрыФормы.Вставить("СформироватьПриОткрытии",			Истина);
		ПараметрыФормы.Вставить("ВидимостьКомандВариантовОтчетов",	Ложь);
		
		ОткрытьФорму("Отчет.КарточкаРасчетовСПоставщиками24.Форма", ПараметрыФормы);
adhocprog; +1
61. Ygich 129 30.11.23 18:04 Сейчас в теме
если вдруг кто то как я будет мучится. если нужен отбор по списку в значение нужно подавать СписокЗначений а не Массив.
+
62. Sam13 342 19.12.23 13:27 Сейчас в теме
Автору - респект. По "мотивам" его идеи я реализовал формирование ОСВ и сохранение в файл для списка организаций.
Формирование ОСВ программно
Можно использовать для сравнения обороток до и после обновления, например.
+
Оставьте свое сообщение