Как программно открыть типовые отчеты (Карточку счета, Анализ счета, ОСВ по счету) с отбором, не изменяя сам отчет, в конфигурации БП 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    840    DarkPinch222    0    

9

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

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

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

1 стартмани

29.12.2023    816    4    vladimir_korshun    0    

6

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

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

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

5 стартмани

04.09.2023    696    3    serg1234    0    

3

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

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

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

12000 руб.

08.08.2023    1454    1    1    

4

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

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

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

1 стартмани

28.07.2023    4393    47    Serg2000mr    30    

58

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

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

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

1 стартмани

12.12.2022    1363    0    RocKeR_13    2    

4

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

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

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

2 стартмани

12.04.2022    6052    36    Obertone    7    

25

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

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

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

1 стартмани

02.03.2022    3595    6    Topmuk    0    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kalaratra 13 13.04.15 13:18 Сейчас в теме
Круто! Спасибо! Пыталась разобраться сама, но не получилось((((
user1852677; DrAku1a; Mariya_vrn; +3 Ответить
2. Леонов Александр 1163 14.04.15 17:20 Сейчас в теме
А если через ВидРасшифровки = 2 ? ;)
DrAku1a; SashaV; +2 Ответить
4. Kondratenko.as 563 15.04.15 13:03 Сейчас в теме
(2) Леонов Александр,
Тогда не нужно будет помещать во временное хранилище ,он возьмет настройки из пользовательских которые будут указаны в параметрах передаваемых форме.
adhocprog; DrAku1a; +2 Ответить
3. ЗС1 15.04.15 08:56 Сейчас в теме
Спасибо за публикацию!
А как можно потом еще сохранить результат полученного отчета в файл?
Nikola_N; +1 Ответить
5. Kondratenko.as 563 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 563 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 563 26.06.15 08:07 Сейчас в теме
(9) Manoshkin, примера нет. Так как не было такой необходимости.
10. RodinMax 26.06.15 06:55 Сейчас в теме
а куда вышеописанный код вставлять?
- в подписку на событие?
- или внеш обработку какую делать из которой будут вызываться типовые отчеты конфигурации
Можете немного подробнее пояснить если не трудно. Спасибо
12. Kondratenko.as 563 26.06.15 08:10 Сейчас в теме
(10) RodinMax, Куда угодно)Откуда вы хотите вызывать типовой отчет по описанным настройкам. У меня он используется во многих местах. В том числе и во внешних обработках.
13. link_l 12 09.07.15 15:26 Сейчас в теме
а есть пример для БП 2.0 (упп 1.3)?
15. Kondratenko.as 563 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 142 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 Сейчас в теме
Автору - респект. По "мотивам" его идеи я реализовал формирование ОСВ и сохранение в файл для списка организаций.
Формирование ОСВ программно
Можно использовать для сравнения обороток до и после обновления, например.
Оставьте свое сообщение