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

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

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

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

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

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

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

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

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

 

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


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

 

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

89

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

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

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

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

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


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



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

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


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

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


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

Показать


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

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

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

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


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

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

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

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

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

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

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

Спасибо!
25. Legavaz 671 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. user855339 04.10.18 15:10 Сейчас в теме
Автору огромное спасибо!
32. Batman 150 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. Kate_13 19.06.19 17:46 Сейчас в теме
Спасибо, помогло!
Единственный вопрос, можно ли сделать так, чтобы отчет при открытии не формировался сразу. Дело в том, что я вызываю его из справочника, а даты ещё не определены. И мне необходимо сделать так, чтобы после открытия пользователь сначала задавал период, а только потом нажимал на кнопку формирования. В параметрах процедуры ОткрытьФорму ничего похожего не нашла :(.
Оставьте свое сообщение

См. также

СКД. Отчеты с картинками 175

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

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    4500    YPermitin    24       

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

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

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

05.09.2019    9732    ids79    42       

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

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

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

08.08.2019    10133    ids79    24       

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

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

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

04.07.2019    6152    SeiOkami    48       

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

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

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

25.06.2019    17215    ids79    16       

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

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

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

11.06.2019    11432    dmurk    134       

Детализация денежных средств по направлениям деятельности. БГУ 2 3

Статья Программист Нет файла v8 v8::БУ БГУ Россия Госбюджет Финансовый учет и бюджетирование (FRP) Бесплатно (free) Практика программирования Разработка

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

10.06.2019    1501    ptkrzy    0       

Подсистема "Варианты отчетов". Используете ли Вы ее правильно? 208

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

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    14040    YPermitin    49       

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

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

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

16.05.2019    17103    YPermitin    27       

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

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

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

25.04.2019    4746    m-rv    2       

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

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

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

16.04.2019    7264    m-rv    16       

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

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

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

07.04.2019    16237    ellavs    122       

Не открывается оборотно-сальдовая ведомость или "variable not found in subplan target lists" 0

Статья Программист Нет файла v8 v8::БУ УПП1 БУ Оборотно-сальдовая ведомость, Анализ счета Бесплатно (free) Адаптация типовых решений

При попытке открыть Оборотно-сальдовую ведомость программа выдает ошибку "Ошибка СУБД: ERROR: variable not found in subplan target lists" и либо закрывается, либо ее нужно перезапускать. Описан частный случай решения проблемы.

02.04.2019    2146    Max777    4       

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

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

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

28.03.2019    12618    ellavs    83       

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

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

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

14.03.2019    12732    YPermitin    52       

Добавление отчетов в типовые конфигурации 1С 200

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

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

07.03.2019    22992    ids79    32       

Функциональные опции 1С 8.3 – все возможные варианты использования 170

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

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

22.02.2019    15635    ids79    5       

Информирование пользователя. Работа с объектом «СообщениеПользователю» 249

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

Различные варианты и нюансы использования объекта СообщениеПользователю и другие способы информирования пользователя: без привязки к какой-либо форме и с выводом сообщения в отдельном окне.

15.02.2019    16784    ids79    34       

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 162

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    15315    ids79    9       

Новый подход к обмену данными EnterpriseData 203

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

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    21265    ids79    72       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 126

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

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    20719    ids79    40       

Вспомогательные инструкции в коде 1С 104

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

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

15.10.2018    20362    tormozit    100       

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

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

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

24.09.2018    4650    aleksey.kubovtsov    2       

Произвольный код в фоновом режиме 164

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

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

03.09.2018    14496    nikita0832    41       

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час 376

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

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

03.09.2018    30882    SergeyN    26       

Зачем запросу план и кто его выполняет? 175

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

Как определить, почему запрос выполняется слишком долго? Что происходит с запросом на стороне сервера баз данных? В статье приводится объяснение, что такое план запроса и для чего он нужен. А также говорится о том, в чем разница между потоком операторов и потоком данных, как работает оптимизатор и зачем нужна статистика.

09.08.2018    18091    Dem1urg    44       

[Шпаргалка] Свой заголовок отчету на СКД с параметрами (без программирования) 198

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

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

23.07.2018    24516    rpgshnik    38       

Пакетное формирование типовых отчетов (ОСВ, Остатки товаров, Валовая прибыль) в БП 3.0 3

Отчеты и формы Бухгалтер Внешняя обработка (ert,epf) v8 v8::БУ БП3.0 БУ Оборотно-сальдовая ведомость, Анализ счета Абонемент ($m) Бухгалтерские

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

1 стартмани

28.06.2018    4002    10    eugene1C    0       

Повышаем эффективность разработки правил обмена 122

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

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    19220    olegtymko    43       

Как сделать запрос на изменение данных 75

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

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    21104    m-rv    21       

Строим графы средствами 1С (без GraphViz) 42

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

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    16887    slozhenikin_com    19       

Распределение расходов пропорционально продажам 9

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Бесплатно (free) Практика программирования

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    11273    Rustig    9       

Автоматическая подмена ОКТМО - ОКАТО в платёжных поручениях в УПП 1

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

1С: УПП автоматически поменял ОКТМО в платёжке при смене даты документа. Первоначально бухгалтер указал ОКТМО, отличный от базового для организации, и послал платёжное поручение в банк. Росприроднадзор указал, что ОКТМО ошибочное. Действительно, в платёжке в банк был базовый ОКТМО. При разборе ситуации выяснилось, что бухгалтер просто поменял дату.

01.03.2018    6987    Alex Y    1       

Минимализмы 3 350

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

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    35434    ildarovich    44       

Ошибки регламентированного отчета статистики «Форма №11 (краткая)» за 2017 год для БГУ 1.0 и их исправление 2

Статья Программист Нет файла v8 v8::БУ БГУ Государственные, бюджетные структуры Россия Госбюджет Windows Учет ОС и НМА Бесплатно (free) Практика программирования

В статье описываются ошибки регламентированного отчета статистики «Форма №11 (краткая)» для конфигурации "Бухгалтерия государственного учреждения 8, редакция 1.0" за 2017 год и даются рекомендации по их исправлению.

16.02.2018    10619    infotec    4       

Этюды по программированию. Взаимодействие с Microsoft Word 108

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

Часто приходится заниматься созданием сложных документов Word с таблицами, вложенными фрагментами, хитрым оформлением и прочими радостями жизни. Это - попытка как-то структурировать полученный опыт, чтобы не приходилось перерывать ворох старых обработок в поисках крупиц истины. Надеюсь, эта статья будет полезна и Вам.

11.12.2017    25755    milkers    23       

Метод формирования движений в типовых регистрах нетиповыми регистраторами 31

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

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

05.12.2017    21247    itriot11    34       

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена) 720

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

Что такое КД3? Как начать использовать? Полезные дополнения к документации. Что нужно исправить в типовых обработках и конфигурации. Как изменить правила обмена не снимая конфигурацию с поддержки. Как отлаживать правила обмена?

19.11.2017    137140    MaxS    251       

Программные перечисления, ч.2: приемы кэширования при разработке 66

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

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

30.10.2017    20976    unichkin    17       

Разбираемся с настройками компоновки данных 159

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

Краткая шпаргалка по программной работе с настройками СКД

29.10.2017    23944    json    9       

Работа с Excel 288

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

Собрал различные полезности для работы с Excel из 1С. Иногда приходится форматировать документ Excel программно из 1С. Так вот, чтобы не искать постоянно на просторах интернета как сделать левое выравнивание в ячейке Excel из 1С и т.п. решил опубликовать это...

23.10.2017    24516    arakelyan    39       

Подбор в управляемой форме - что может быть проще? 119

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

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

19.09.2017    27774    starik-2005    51