Программное открытие отчета СКД с параметрами и отбором

Публикация № 1493225 07.08.21

Разработка - СКД

открыть отчет СКД

Периодически возникает задача открытия формы отчёта СКД уже со сформированным отчётом, с определёнными параметрами и отборами. В данной публикации рассматриваются способы сделать это как в обычном приложении, так и в управляемом.

 

Пример для обычных форм

Пример для управляемых форм

Резюме / полезные ссылки

________________________________________________________________________

Сформируем тестовый отчёт СКД, задав его параметр "Период" и отбор "Водитель" в обычном приложении с использованием обычных форм.

Для этого нам понадобится:

  1. Получить объект отчёта;
  2. Из объекта отчёта получить КомпоновщикНастроек СКД;
  3. При помощи вспомогательной процедуры "УстановитьПараметрСКД", в настройках СКД установить необходимые параметры отчёта;
  4. При помощи вспомогательной процедуры "УстановитьОтборСКД", в настройках СКД установить необходимые отборы отчёта;
  5. При помощи метода "ПолучитьФорму", объекта отчёта, получить форму отчёта;
  6. При помощи метода "СкомпоноватьРезультат", сформировать отчёт, в качестве первого параметра данного метода нужно указать элемент табличного поля формы отчёта, в котором отображается результат;
  7. Открыть форму отчёта.

 

 

Процедура ОткрытьОтчётСОтборомНажатие(Элемент)
	
	Перем ОбъектОтчёта, КомпоновщикНастроек, Период, ФормаОтчёта; 
	
	ОбъектОтчёта = Отчеты.ТестовыйОтчёт.Создать();
	КомпоновщикНастроек = ОбъектОтчёта.КомпоновщикНастроек;
	
	Период = Новый СтандартныйПериод();
	Период.ДатаНачала = Дата(2021,08,01);
	Период.ДатаОкончания = Дата(2021,08,31,23,59,59);
	
	УстановитьПараметрСКД(КомпоновщикНастроек, "Период", Период);
	УстановитьОтборСКД(КомпоновщикНастроек, "Водитель", "Петров");

	ФормаОтчёта = ОбъектОтчёта.ПолучитьФорму("ФормаОтчета");
	ОбъектОтчёта.СкомпоноватьРезультат(ФормаОтчёта.ЭлементыФормы.Результат, ФормаОтчёта.ДанныеРасшифровки);
	ФормаОтчёта.Открыть();
	
КонецПроцедуры //  ОткрытьОтчётСОтборомНажатие

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

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

КонецПроцедуры //  УстановитьОтборСКД

Результат выполнения кода:

 

________________________________________________________________________

Сформируем тестовый отчёт СКД, задав его параметр "Период" и отбор "Водитель" в управляемом приложении с использованием управляемых форм.

Для этого нам понадобится:

  1. Получить форму отчёта;
  2. Из реквизита "Отчет", формы отчёта, получить КомпоновщикНастроек СКД;
  3. При помощи вспомогательной процедуры "УстановитьПользовательскийПараметрСКД", в настройках СКД установить необходимые параметры отчёта;
  4. При помощи вспомогательной процедуры "УстановитьПользовательскийОтборСКД", в настройках СКД установить необходимые отборы отчёта;
  5. Сформировать параметры формы;
  6. Открыть форму отчёта.
&НаКлиенте
Процедура КомандаОткрытьОтчётСОтбором(Команда)
	
	Перем ФормаОтчёта, КомпоновщикНастроек, Период, ПараметрыФормы;
	
	ФормаОтчёта = ПолучитьФорму("Отчет.ТестовыйОтчёт.Форма");
	КомпоновщикНастроек = ФормаОтчёта.Отчет.КомпоновщикНастроек;
	
	Период = Новый СтандартныйПериод();
	Период.ДатаНачала = Дата(2021,08,01);
	Период.ДатаОкончания = Дата(2021,08,31,23,59,59);
	
	УстановитьПользовательскийПараметрСКД(КомпоновщикНастроек, "Период", Период);
	УстановитьПользовательскийОтборСКД(КомпоновщикНастроек, "Водитель", "Петров");
	
	ПараметрыФормы = Новый Структура();
	ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
	ПараметрыФормы.Вставить("КлючВарианта", "Основной");
	ПараметрыФормы.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки); 
	
	ОткрытьФорму("Отчет.ТестовыйОтчёт.Форма", ПараметрыФормы, ЭтаФорма);
	
КонецПроцедуры //  КомандаОткрытьОтчётСОтбором

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

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

КонецПроцедуры //  УстановитьПользовательскийОтборСКД

Результат выполнения кода:

 

 

________________________________________________________________________

Представленные реализации не претендуют на «истину в последней инстанции», безусловно данная задача может иметь и другие варианты реализации, например:

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

1С СКД. Программный запуск отчета с открытием и настройкой (Данная ссылка была предоставлена Yashazz)

А ссылка ниже – краткое руководство по составным частям компоновщика настроек СКД и программной работе с ними:

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. cleaner_it 216 09.08.21 09:25 Сейчас в теме
Мне нравится ваш вариант, спасибо)
ErrorEd88; Eugen-S; +2 Ответить
2. Drivingblind 213 09.08.21 13:21 Сейчас в теме
Для новых конфигураций на БСП, где вывод отчетов (в т.ч. внешних) реализован через общую форму "ФормаОтчета", а добавление кнопок отчетов на формы объектов через подключаемые команды и программную дорисовку элементов, такой подход, к сожалению, работать не будет.
26. mongiilol 20.02.23 17:08 Сейчас в теме
(2) Добрый день

А существует ли какое-то известное решение для этого варианта? Когда Форма - "ФормаОтчета" общая
27. mongiilol 23.02.23 21:25 Сейчас в теме
(26) В общем и целом, если кому то будет интересно, пример привожу из ЕРП 2.5. Я немного изучил типовой общий модуль "КомпоновкаДанныхКлиентСервер", и на основе этого написал такую функцию, попытался максимально универсально для своих нужд.

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

Показать
28. mongiilol 23.02.23 21:38 Сейчас в теме
(27) Дополню такой информацией

В (24) Приведен пример, который будет не актуален для сложных отборов где данные через точку, так как в структуру нельзя добавить ключ "Ссылка.СвойствоСсылки.СвойствоСсылкиСсылки"

А в моем примере абсолютно не важна глубина вложенности для отбора
29. mongiilol 24.02.23 19:50 Сейчас в теме
(27) Если вы планируете открывать форму Универсального отчета, то рекомендую сначала создать нужные варианты отчетов, и тогда метод описанный выше будет отличаться только в моменте получения формы. И уже на нужный вариант отчетов можно накладывать отборы.

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


Наложение отборов остается без изменений;
3. SiAl 76 10.08.21 11:16 Сейчас в теме
Зачем такие сложности? В пользовательских настройках варианта отчета уже можно указать все значения параметров и отборов. Для ссылочных параметров или полей нельзя корректно заполнить значения в Конфигураторе, но никто не мешает пользовательские настройки сделать в 1С:Предприятие через какую-нибудь консоль СКД, выгрузить настройки в файл и файл настроек уже загрузить в схему СКД в Конфигураторе.
4. Altez 256 10.08.21 13:57 Сейчас в теме
(3) Если речь способе программно открыть типовой отчет с произвольными отборами, хотелось бы подробностей в виде кода. Сами пользуетесь этим методом?
8. SiAl 76 11.08.21 06:32 Сейчас в теме
(4) Причем тут типовой отчет, если у Вас в коде:
Отчеты.Тестовый
?
Я бы вместо установки значений параметров коде просто загрузил бы настройки сразу в схему компоновки данных.
9. Terve!R 19.08.21 10:07 Сейчас в теме
(8) какие заранее подготовленные настройки ты бы загрузил, если на входе постоянно разные отборы, а значит параметры?
11. SiAl 76 19.08.21 10:32 Сейчас в теме
(9) В примере отборы прописаны в коде. Кто мешает установить эти отборы просто интерактивно?
5. Yashazz 4511 10.08.21 18:27 Сейчас в теме
Столько плюсов за такую тривиальщину, разжёванную в куче руководств... И это притом, что автор совершенно не упоминает параметр формы "Отбор", и ничего не говорит о конфликте с возможно сохранёнными настройками, о тех прелестях, что могут поджидать в событиях самой открываемой формы, о фиксированных настройках.
Кусок примитивного кода, принятый "на ура". Если такое на ИС пользуется спросом, то очень грустно.
6. Eugen-S 326 10.08.21 19:23 Сейчас в теме
(5)

Кусок примитивного кода, принятый "на ура". Если такое на ИС пользуется спросом, то очень грустно.


Yashazz, согласитесь, люди имеют право на своё мнение, и если они добавляют эту публикацию к себе в закладки, значит находят её полезной для себя.


И это притом, что автор совершенно не упоминает параметр формы "Отбор"


Про параметр формы "Отбор" написано на ИТС, но параметр формы "Отбор", работает только на УФ. И к тому же отбор, заданный через этот параметр попадает в фиксированные настройки и никак не отображается в пользовательских.


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


Про остальные сложности, я доходчиво написал в резюме:


Представленные реализации не претендуют на «истину в последней инстанции», безусловно данная задача может иметь и другие варианты реализации


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

Найти в ИТС тот самый "примитивный кусок кода" я не смог, и мне пришлось потратить определённое время на "изобретение велосипеда".

Чтобы в следующий раз не заниматься "изобретением велосипеда" столкнувшись с подобной задачей, я и решил написать эту статью.

Основная концепция данной публикации - дать простое решение, без излишних теоретических рассуждений, которое будет работать в подавляющем большинстве случаев с чистыми СКД отчётами (под чистыми, понимаются отчёты состоящие из СКД и формы отчёта без наворотов или же вовсе без формы).
xnd; Рамзес; natal_tihom; ErrorEd88; user1252779; artbear; +6 Ответить
7. Yashazz 4511 10.08.21 21:28 Сейчас в теме
(6)
если они добавляют эту публикацию к себе в закладки, значит находят её полезной для себя
Видимо, да.
(6)
Чтобы в следующий раз не заниматься "изобретением велосипеда" столкнувшись с подобной задачей, я и решил написать эту статью.
Понимаю. К вам-то никаких претензий, как напоминалочка для "сделать по-быстрому" это очень даже пригодно.

Вероятно, я просто настолько уже на автомате делаю подобные действия, что в голову не приходит, что кому-то это без образца тяжело. Может быть...
10. Terve!R 19.08.21 10:08 Сейчас в теме
(5) приведешь пример гениального кода по решаемой задаче, или ты просто чешешь свое ЧСВ?
Сам то что-то выложил полезное, или только обплевывать критикой умеешь?
12. пользователь 19.08.21 12:34
Сообщение было скрыто модератором.
...
13. Yashazz 4511 19.08.21 17:36 Сейчас в теме
Кстати, всё это ещё и баян, т.к. было много раз. Вот, навскидку: https://infostart.ru/1c/articles/345249/
14. Eugen-S 326 19.08.21 17:44 Сейчас в теме
(13)
Материал по приведённой ссылке про формирование типовых отчётов на УФ.

Ну и где в этом "навскидку" пример для обычных форм?

Тема баяна, не раскрыта.

Публика ждёт ссылок на реальный эквивалент данной публикации, чтобы с примерами для ОФ и УФ в рамках одной публикации, и в примере для УФ, чтобы непременно в открытом отчёте можно было изменять параметры и отборы (примеры с фиксированными настройками, зачтены не будут).
ErrorEd88; +1 Ответить
15. Yashazz 4511 19.08.21 17:46 Сейчас в теме
(14) Если не использовать "Отбор", то работа с отчётами на УФ и ОФ практически однотипна. А учить вас пользоваться поиском я буду только за почасовую оплату)
16. Eugen-S 326 19.08.21 18:11 Сейчас в теме
(15)
А учить вас пользоваться поиском я буду только за почасовую оплату)

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

Окружающие оценят по достоинству Ваш уход в отказ.
17. Yashazz 4511 19.08.21 18:20 Сейчас в теме
(16) Я уже всё сказал. ИС - свободный ресурс, и в рамках правил все вольны высказываться. Поэтому возьмите себя в руки и прекратите хамить. Окружающие по достоинству оценят как то, что я уже сказал по делу, так и ваше поведение. Не умеете адекватно реагировать - заведите свой блог и там можете посетителям затыкать рот, грубить, итд, а тут не надо.
18. Eugen-S 326 19.08.21 18:31 Сейчас в теме
(17)
Поэтому возьмите себя в руки и прекратите хамить. Окружающие по достоинству оценят как то, что я уже сказал по делу, так и ваше поведение.

Вам никто не хамит.

Отправлять искать доказательство своего утверждения других, разве не наглость?

Моя реакция вполне адекватна.

И рот Вам никто не затыкает, а как раз таки наоборот.

Предъявили, обоснуйте. Не можете обосновать, это не моя проблема.
19. Yashazz 4511 19.08.21 18:43 Сейчас в теме
(18) https://infostart.ru/1c/articles/286563/ и там комментарии докучи.
https://forum.mista.ru/topic.php?id=700949
https://codexp.ru/interesnoe/zametki-po-1s/33-otkrytie-otcheta-na-skd-s-zadanym-otborom
https://wiki.programstore.ru/1s-skd-programmnyj-zapusk-otcheta-s-otkrytiem-i-nastrojkoj/
Хватит, или ещё?))

Обосновать... Мы тут не в суде и не на стрелке. Так что - теперь жду вашего ответа по каждой приведённой ссылке. А то вдруг я не угадал, да ещё и наглость очередную выдал, а?)))
20. Eugen-S 326 19.08.21 18:57 Сейчас в теме
(19)
Итого, всего одна публикация, именно с Инфостарта, очень краткая, только для ОФ, то есть под УФ нужно будет адаптировать, и то в вызове метода "СкомпоноватьРезультат" забыли про расшифровку.

А судит пусть почтенная публика. Ставя "+" или "-".
21. Sirruf 181 08.02.22 19:49 Сейчас в теме
ПолучитьФорму() не лучшее решение, так как в этом случае будут автоматом восстанавливаться сохраненные пользовательские настройки...
22. Kitsunedie 11.07.22 14:53 Сейчас в теме
Здравствуйте. Пользовался вашей статьей для создания своего отчета. Начал кодить в 1С недавно и поэтому есть вопросы. Есть такой код
СтандартнаяОбработка = Ложь;
	СхемаСКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	КомпановщикМакетаКД = Новый КомпоновщикМакетаКомпоновкиДанных;
	НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();
	ПарамПериод = НастройкиКомпоновки.ПараметрыДанных.Элементы.Найти("Период");
	
	Период = ПарамПериод.Значение;
	ДатаНач = Период.ДатаНачала;
	ДатаКон = Период.ДатаОкончания;
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	
	"ВЫБРАТЬ
	|	ЗаказПоставщику.Ссылка КАК Ссылка
	|ИЗ
	|	Документ.ЗаказПоставщику КАК ЗаказПоставщику
	|ГДЕ
	|	ЗаказПоставщику.Дата МЕЖДУ &ДатаНач И &ДатаКон";
	
	Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
	Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
	
	РезультатЗапроса = Запрос.Выполнить();
	тз = РезультатЗапроса.Выгрузить();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	
	"ВЫБРАТЬ
	|	&Ссылка КАК ЗаказПоставщикуСсылка,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеТоваровУслуг)
	|		КОНЕЦ) КАК ПриобретениеТоваровУслуг,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств)
	|		КОНЕЦ) КАК ЗаявкаНаРасходованиеДенежныхСредств,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств)
	|		КОНЕЦ) КАК СписаниеБезналичныхДенежныхСредств,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов)
	|		КОНЕЦ) КАК ПриобретениеУслугПрочихАктивов,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеТоваровУслуг).Проведен
	|	КОНЕЦ КАК ПриобретениеТоваровУслугПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ КАК ПриобретениеТоваровУслугСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).Проведен
	|	КОНЕЦ КАК ЗаявкаНаРасходованиеДенежныхСредствПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).СуммаДокумента
	|	КОНЕЦ КАК ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).Проведен
	|	КОНЕЦ КАК СписаниеБезналичныхДенежныхСредствПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).СуммаДокумента
	|	КОНЕЦ КАК СписаниеБезналичныхДенежныхСредствСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).Проведен
	|	КОНЕЦ КАК ПриобретениеУслугПрочихАктивовПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ КАК ПриобретениеУслугПрочихАктивовСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер)
	|	КОНЕЦ КАК РасходныйКассовыйОрдер,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).Проведен
	|	КОНЕЦ КАК РасходныйКассовыйОрдерПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).СуммаДокумента
	|	КОНЕЦ КАК РасходныйКассовыйОрдерСуммаДокумента
	|ПОМЕСТИТЬ ВТЗ
	|ИЗ
	|	КритерийОтбора.СвязанныеДокументы(&Ссылка) КАК СвязанныеДокументы
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК ЗаявкаНаРасходованиеДенежныхСредств
	|		ПО СвязанныеДокументы.Ссылка = ЗаявкаНаРасходованиеДенежныхСредств.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
	|		ПО СвязанныеДокументы.Ссылка = ПриобретениеТоваровУслуг.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриобретениеУслугПрочихАктивов КАК ПриобретениеУслугПрочихАктивов
	|		ПО СвязанныеДокументы.Ссылка = ПриобретениеУслугПрочихАктивов.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
	|		ПО СвязанныеДокументы.Ссылка = СписаниеБезналичныхДенежныхСредств.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
	|		ПО СвязанныеДокументы.Ссылка = РасходныйКассовыйОрдер.Ссылка
	|ГДЕ
	|	(СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|			ИЛИ СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ИЛИ СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ИЛИ СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов)
	|	И НЕ СвязанныеДокументы.Ссылка = ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
	|	И НЕ СвязанныеДокументы.Ссылка = ЗНАЧЕНИЕ(Документ.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка)
	|	И НЕ СвязанныеДокументы.Ссылка = ЗНАЧЕНИЕ(Документ.ПриобретениеУслугПрочихАктивов.ПустаяСсылка)
	|
	|СГРУППИРОВАТЬ ПО
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеТоваровУслуг).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер)
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТЗ.ЗаказПоставщикуСсылка КАК ЗаказПоставщикуСсылка,
	|	ЕСТЬNULL(ВТЗ.ПриобретениеТоваровУслуг, ЗНАЧЕНИЕ(Документ.ПриобретениеТоваровУслуг.ПустаяСсылка)) КАК ПриобретениеТоваровУслуг,
	|	ВТЗ.ЗаявкаНаРасходованиеДенежныхСредств КАК ЗаявкаНаРасходованиеДенежныхСредств,
	|	ВТЗ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств,
	|	ВТЗ.ПриобретениеУслугПрочихАктивов КАК ПриобретениеУслугПрочихАктивов,
	|	ВТЗ.ПриобретениеТоваровУслугПроведен КАК ПриобретениеТоваровУслугПроведен,
	|	ВТЗ.ПриобретениеТоваровУслугСуммаДокумента КАК ПриобретениеТоваровУслугСуммаДокумента,
	|	ВТЗ.ЗаявкаНаРасходованиеДенежныхСредствПроведен КАК ЗаявкаНаРасходованиеДенежныхСредствПроведен,
	|	ВТЗ.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента КАК ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента,
	|	ВТЗ.СписаниеБезналичныхДенежныхСредствПроведен КАК СписаниеБезналичныхДенежныхСредствПроведен,
	|	ВТЗ.СписаниеБезналичныхДенежныхСредствСуммаДокумента КАК СписаниеБезналичныхДенежныхСредствСуммаДокумента,
	|	ВТЗ.ПриобретениеУслугПрочихАктивовПроведен КАК ПриобретениеУслугПрочихАктивовПроведен,
	|	ВТЗ.ПриобретениеУслугПрочихАктивовСуммаДокумента КАК ПриобретениеУслугПрочихАктивовСуммаДокумента,
	|	ВТЗ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер,
	|	ВТЗ.РасходныйКассовыйОрдерПроведен КАК РасходныйКассовыйОрдерПроведен,
	|	ВТЗ.РасходныйКассовыйОрдерСуммаДокумента КАК РасходныйКассовыйОрдерСуммаДокумента,
	|	ЗаказПоставщику.Партнер КАК ЗаказПоставщикуПартнер,
	|	ЗаказПоставщику.Статус КАК ЗаказПоставщикуСтатус,
	|	ЗаказПоставщику.Проведен КАК ЗаказПоставщикуПроведен,
	|	ЗаказПоставщику.СуммаДокумента КАК ЗаказПоставщикуСуммаДокумента,
	|	ЗаказПоставщику.Комментарий КАК ЗаказПоставщикуКомментарий
	|ИЗ
	|	ВТЗ КАК ВТЗ
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
	|		ПО ВТЗ.ЗаказПоставщикуСсылка = ЗаказПоставщику.Ссылка";
	
	ИтогТЗ = Новый ТаблицаЗначений;
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуСсылка");
	ИтогТЗ.Колонки.Добавить("ПриобретениеТоваровУслуг");
	ИтогТЗ.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредств");
	ИтогТЗ.Колонки.Добавить("СписаниеБезналичныхДенежныхСредств");
	ИтогТЗ.Колонки.Добавить("ПриобретениеУслугПрочихАктивов");
	ИтогТЗ.Колонки.Добавить("ПриобретениеТоваровУслугПроведен");
	ИтогТЗ.Колонки.Добавить("ПриобретениеТоваровУслугСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствПроведен");
	ИтогТЗ.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствПроведен");
	ИтогТЗ.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("РасходныйКассовыйОрдер");
	ИтогТЗ.Колонки.Добавить("РасходныйКассовыйОрдерПроведен");
	ИтогТЗ.Колонки.Добавить("РасходныйКассовыйОрдерСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуПартнер");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуСтатус");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуПроведен");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуКомментарий");
	ИтогТЗ.Колонки.Добавить("ПриобретениеУслугПрочихАктивовПроведен");
	ИтогТЗ.Колонки.Добавить("ПриобретениеУслугПрочихАктивовСуммаДокумента");
	
	Для каждого Строка из тз Цикл
		
		Запрос.УстановитьПараметр("Ссылка", Строка.Ссылка);
		ТЗДок = Запрос.Выполнить().Выгрузить();
		
		Для каждого СтрокаТЗДок Из ТЗдок Цикл
			СтрокаИтогТЗ = ИтогТЗ.Добавить();
			ЗаполнитьЗначенияСвойств(СтрокаИтогТЗ, СтрокаТЗДОК);
		КонецЦикла;
		
	КонецЦикла;
	
	Итог = Новый ТаблицаЗначений;
	Итог.Колонки.Добавить("ЗаказПоставщикуСсылка");
	Итог.Колонки.Добавить("ПриобретениеТоваровУслуг");
	Итог.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредств");
	Итог.Колонки.Добавить("СписаниеБезналичныхДенежныхСредств");
	Итог.Колонки.Добавить("ПриобретениеУслугПрочихАктивов");
	Итог.Колонки.Добавить("ПриобретениеТоваровУслугПроведен");
	Итог.Колонки.Добавить("ПриобретениеТоваровУслугСуммаДокумента");
	Итог.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствПроведен");
	Итог.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента");
	Итог.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствПроведен");
	Итог.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствСуммаДокумента");
	Итог.Колонки.Добавить("РасходныйКассовыйОрдер");
	Итог.Колонки.Добавить("РасходныйКассовыйОрдерПроведен");
	Итог.Колонки.Добавить("РасходныйКассовыйОрдерСуммаДокумента");
	Итог.Колонки.Добавить("ЗаказПоставщикуПартнер");
	Итог.Колонки.Добавить("ЗаказПоставщикуСтатус");
	Итог.Колонки.Добавить("ЗаказПоставщикуПроведен");
	Итог.Колонки.Добавить("ЗаказПоставщикуСуммаДокумента");
	Итог.Колонки.Добавить("ЗаказПоставщикуКомментарий");
	Итог.Колонки.Добавить("ПриобретениеУслугПрочихАктивовПроведен");
	Итог.Колонки.Добавить("ПриобретениеУслугПрочихАктивовСуммаДокумента");
	
	СчетчикИтогТЗ = 0;
	СчетчикИтог = Неопределено;
	
	Для каждого Строка из ИтогТЗ Цикл
		СчетчикИтогТЗ = СчетчикИтогТЗ + 1;
		Если СчетчикИтог = Неопределено Тогда
			СчетчикИтогТЗ = СчетчикИтогТЗ;
			НоваяСтрока = Итог.Добавить();
			СчетчикИтог = 0;
			НоваяСтрока.ЗаказПоставщикуСсылка = Строка.ЗаказПоставщикуСсылка;
			НоваяСтрока.ЗаказПоставщикуПартнер = Строка.ЗаказПоставщикуПартнер;
			НоваяСтрока.ЗаказПоставщикуСтатус = Строка.ЗаказПоставщикуСтатус;
		    НоваяСтрока.ЗаказПоставщикуПроведен = Строка.ЗаказПоставщикуПроведен;
		    НоваяСтрока.ЗаказПоставщикуСуммаДокумента = Строка.ЗаказПоставщикуСуммаДокумента;
			НоваяСтрока.ЗаказПоставщикуКомментарий = Строка.ЗаказПоставщикуКомментарий;
			Если НЕ Строка.ПриобретениеТоваровУслуг = Документы.ПриобретениеТоваровУслуг.ПустаяСсылка() Тогда
				НоваяСтрока.ПриобретениеТоваровУслуг = Строка.ПриобретениеТоваровУслуг;
				НоваяСтрока.ПриобретениеТоваровУслугПроведен = Строка.ПриобретениеТоваровУслугПроведен;
				НоваяСтрока.ПриобретениеТоваровУслугСуммаДокумента = Строка.ПриобретениеТоваровУслугСуммаДокумента;
			ИначеЕсли НЕ Строка.ЗаявкаНаРасходованиеДенежныхСредств = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка() Тогда
				НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредств = Строка.ЗаявкаНаРасходованиеДенежныхСредств;
				НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствПроведен = Строка.ЗаявкаНаРасходованиеДенежныхСредствПроведен;
				НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента = Строка.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента;
			ИначеЕсли НЕ Строка.СписаниеБезналичныхДенежныхСредств =  Документы.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка() Тогда
				НоваяСтрока.СписаниеБезналичныхДенежныхСредств = Строка.СписаниеБезналичныхДенежныхСредств;
				НоваяСтрока.СписаниеБезналичныхДенежныхСредствПроведен = Строка.СписаниеБезналичныхДенежныхСредствПроведен;
				НоваяСтрока.СписаниеБезналичныхДенежныхСредствСуммаДокумента = Строка.СписаниеБезналичныхДенежныхСредствСуммаДокумента;
			ИначеЕсли НЕ Строка.ПриобретениеУслугПрочихАктивов = Документы.ПриобретениеУслугПрочихАктивов.ПустаяСсылка() Тогда
				НоваяСтрока.ПриобретениеУслугПрочихАктивов = Строка.ПриобретениеУслугПрочихАктивов;
				НоваяСтрока.ПриобретениеУслугПрочихАктивовПроведен = Строка.ПриобретениеУслугПрочихАктивовПроведен;
				НоваяСтрока.ПриобретениеУслугПрочихАктивовСуммаДокумента = Строка.ПриобретениеУслугПрочихАктивовСуммаДокумента;
			ИначеЕсли НЕ Строка.РасходныйКассовыйОрдер = Документы.РасходныйКассовыйОрдер.ПустаяСсылка() Тогда
				НоваяСтрока.РасходныйКассовыйОрдер = Строка.РасходныйКассовыйОрдер;
				НоваяСтрока.РасходныйКассовыйОрдерПроведен = Строка.РасходныйКассовыйОрдерПроведен;
				НоваяСтрока.РасходныйКассовыйОрдерСуммаДокумента = Строка.РасходныйКассовыйОрдерСуммаДокумента;
			КонецЕсли;
		Иначе
			Если Итог[СчетчикИтог].ЗаказПоставщикуСсылка = ИтогТЗ[СчетчикИтогТЗ-1].ЗаказПоставщикуСсылка Тогда
				Если НЕ Строка.ПриобретениеТоваровУслуг = Документы.ПриобретениеТоваровУслуг.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеТоваровУслуг = Строка.ПриобретениеТоваровУслуг;
					НоваяСтрока.ПриобретениеТоваровУслугПроведен = Строка.ПриобретениеТоваровУслугПроведен;
					НоваяСтрока.ПриобретениеТоваровУслугСуммаДокумента = Строка.ПриобретениеТоваровУслугСуммаДокумента;
				ИначеЕсли НЕ Строка.ЗаявкаНаРасходованиеДенежныхСредств = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредств = Строка.ЗаявкаНаРасходованиеДенежныхСредств;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствПроведен = Строка.ЗаявкаНаРасходованиеДенежныхСредствПроведен;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента = Строка.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.СписаниеБезналичныхДенежныхСредств =  Документы.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.СписаниеБезналичныхДенежныхСредств = Строка.СписаниеБезналичныхДенежныхСредств;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствПроведен = Строка.СписаниеБезналичныхДенежныхСредствПроведен;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствСуммаДокумента = Строка.СписаниеБезналичныхДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.ПриобретениеУслугПрочихАктивов = Документы.ПриобретениеУслугПрочихАктивов.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеУслугПрочихАктивов = Строка.ПриобретениеУслугПрочихАктивов;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовПроведен = Строка.ПриобретениеУслугПрочихАктивовПроведен;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовСуммаДокумента = Строка.ПриобретениеУслугПрочихАктивовСуммаДокумента;
				ИначеЕсли НЕ Строка.РасходныйКассовыйОрдер = Документы.РасходныйКассовыйОрдер.ПустаяСсылка() Тогда
					НоваяСтрока.РасходныйКассовыйОрдер = Строка.РасходныйКассовыйОрдер;
					НоваяСтрока.РасходныйКассовыйОрдерПроведен = Строка.РасходныйКассовыйОрдерПроведен;
					НоваяСтрока.РасходныйКассовыйОрдерСуммаДокумента = Строка.РасходныйКассовыйОрдерСуммаДокумента;
				КонецЕсли;
			Иначе
			  	НоваяСтрока = Итог.Добавить();
				СчетчикИтог = СчетчикИтог + 1;
				НоваяСтрока.ЗаказПоставщикуСсылка = Строка.ЗаказПоставщикуСсылка;
				НоваяСтрока.ЗаказПоставщикуПартнер = Строка.ЗаказПоставщикуПартнер;
				НоваяСтрока.ЗаказПоставщикуСтатус = Строка.ЗаказПоставщикуСтатус;
			    НоваяСтрока.ЗаказПоставщикуПроведен = Строка.ЗаказПоставщикуПроведен;
			    НоваяСтрока.ЗаказПоставщикуСуммаДокумента = Строка.ЗаказПоставщикуСуммаДокумента;
				НоваяСтрока.ЗаказПоставщикуКомментарий = Строка.ЗаказПоставщикуКомментарий;
				Если НЕ Строка.ПриобретениеТоваровУслуг = Документы.ПриобретениеТоваровУслуг.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеТоваровУслуг = Строка.ПриобретениеТоваровУслуг;
					НоваяСтрока.ПриобретениеТоваровУслугПроведен = Строка.ПриобретениеТоваровУслугПроведен;
					НоваяСтрока.ПриобретениеТоваровУслугСуммаДокумента = Строка.ПриобретениеТоваровУслугСуммаДокумента;
				ИначеЕсли НЕ Строка.ЗаявкаНаРасходованиеДенежныхСредств = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредств = Строка.ЗаявкаНаРасходованиеДенежныхСредств;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствПроведен = Строка.ЗаявкаНаРасходованиеДенежныхСредствПроведен;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента = Строка.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.СписаниеБезналичныхДенежныхСредств =  Документы.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.СписаниеБезналичныхДенежныхСредств = Строка.СписаниеБезналичныхДенежныхСредств;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствПроведен = Строка.СписаниеБезналичныхДенежныхСредствПроведен;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствСуммаДокумента = Строка.СписаниеБезналичныхДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.ПриобретениеУслугПрочихАктивов = Документы.ПриобретениеУслугПрочихАктивов.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеУслугПрочихАктивов = Строка.ПриобретениеУслугПрочихАктивов;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовПроведен = Строка.ПриобретениеУслугПрочихАктивовПроведен;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовСуммаДокумента = Строка.ПриобретениеУслугПрочихАктивовСуммаДокумента;
				ИначеЕсли НЕ Строка.РасходныйКассовыйОрдер = Документы.РасходныйКассовыйОрдер.ПустаяСсылка() Тогда
					НоваяСтрока.РасходныйКассовыйОрдер = Строка.РасходныйКассовыйОрдер;
					НоваяСтрока.РасходныйКассовыйОрдерПроведен = Строка.РасходныйКассовыйОрдерПроведен;
					НоваяСтрока.РасходныйКассовыйОрдерСуммаДокумента = Строка.РасходныйКассовыйОрдерСуммаДокумента;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;	
	
	СоответствиеТипов = ПолучитьСоответствиеТипов();

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


Есть результат его выполнения на скриншоте.
И собственно вопрос. Как при нажатии на Элемент колонки Заказ поставщику сделать переход по ссылке на документ.
В стандартных отчетах без программного скармливания таблицы значений в СКД все работает, а тут нет, видимо нужно что-то дописать. А как сформулировать правильно вопрос или где прочитать найти не могу. Был бы признателен какому-нибудь тонкому намеку в сторону решения.
Прикрепленные файлы:
23. nikonorov_ag 16 17.08.22 12:19 Сейчас в теме
Спасибо! Все просто и понятно. В УТ11 заработало сразу. Заменил имя отчета, передаваемый период и передаваемый отбор на свои. В самом открываемом отчете на СКД не написал ни строчки кода!
24. kaaasteeen 01.11.22 13:49 Сейчас в теме
Есть более простой и лаконичный способ открытия СКД отчета с заполненными параметрами(отборами).

УсловияОтбора = Новый Структура("<ИмяПараметра>", <ЗначениеПараметра>); // Тут может быть как параметр, так и отбор.
ПараметрыФормы = Новый Структура("Отбор, СформироватьПриОткрытии", УсловияОтбора, Истина);
ОткрытьФорму("Отчет.<ИмяВашегоОтчета>.ФормаОбъекта", ПараметрыФормы);


P.S.
Взято с ИТС.
psvXXL; TSSV; Eugen-S; +3 Ответить
25. TSSV 1105 21.12.22 14:26 Сейчас в теме
(24) Приведенный в статье способ для управляемых форм у меня в УТ 11.5 не сработал, в отличие от Вашего, спасибо.
kaaasteeen; Eugen-S; +2 Ответить
30. ХамитоваРайса 18.04.23 13:55 Сейчас в теме
(24)Не передается отбор в новый отчет. Параметр СформироватьПриОткрытии передается, а отбор как будто не передаю даже. Пыталась таким способом открыть "Карточку счета" в БУ с фильтром по номенклатуре и счету учета.
31. AfterEarth 16.05.23 13:46 Сейчас в теме
(30) Райса - сам долго мучался так! Нужно сделать:
                ОтчетДвижениеСерийТоваров = Отчеты["ДвиженияСерийТоваров"].Создать(); 
		Форма = ОтчетДвижениеСерийТоваров.ПолучитьФорму("Отчет.ДвиженияСерийТоваров.Форма");
		
		Форма.УстановитьТекущийВариант("ДвиженияСерииТовара"); 

		КомпоновщикНастроек = ОтчетДвижениеСерийТоваров.КомпоновщикНастроек;
		Настройки = ПолучитьНастройки(КомпоновщикНастроек, ЗначенияРасшифровки);
		
		КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
		
		ПараметрыФормы = Новый Структура();
		ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
		ПараметрыФормы.Вставить("КлючВарианта", "ДвиженияСерииТовара");
		ПараметрыФормы.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки); 
		ОткрытьФорму("Отчет.ДвиженияСерийТоваров.Форма", ПараметрыФормы, ЭтаФорма);

Показать


Где:

&НаСервереБезКонтекста
Функция ПолучитьНастройки(КомпоновщикНастроек, ЗначенияРасшифровки)
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки;
	
	////Настройки = СКДДвиженияСерииТовара.ВариантыНастроек["ДвиженияСерииТовара"].Настройки;
	
	//////Настройки = ОтчетДвижениеСерийТоваров.СхемаКомпоновкиДанных.ВариантыНастроек.ДвиженияСерииТовара.Настройки;
	
	Для Каждого ЭлементОтбора Из Настройки.Отбор.Элементы Цикл
		ЭлементОтбора.Использование = Ложь;
	КонецЦикла;
	Для Каждого ЭлементПоляРасшифровки Из ЗначенияРасшифровки Цикл
		Если ЭлементПоляРасшифровки.Ключ = "Серия" Тогда
			Для Каждого ЭлементОтбора Из Настройки.Отбор.Элементы Цикл
				Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Серия") Тогда
					ЭлементОтбора.ПравоеЗначение = ЭлементПоляРасшифровки.Значение;
					ЭлементОтбора.Использование = Истина;  
					
					Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда
				 		ПользовательскийОтбор = ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
						ПользовательскийОтбор.Использование = Истина;
						ПользовательскийОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; 
						ПользовательскийОтбор.ПравоеЗначение  = ЭлементПоляРасшифровки.Значение;                      
					КонецЕсли;
				КонецЕсли;
			КонецЦикла;
		ИначеЕсли ЭлементПоляРасшифровки.Ключ = "Номенклатура" Тогда
			Для Каждого ЭлементОтбора Из Настройки.Отбор.Элементы Цикл
				Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура") Тогда
					ЭлементОтбора.ПравоеЗначение = ЭлементПоляРасшифровки.Значение;
					ЭлементОтбора.Использование = Истина;
					
					Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда
				 		ПользовательскийОтбор = ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
						ПользовательскийОтбор.Использование = Истина;
						ПользовательскийОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; 
						ПользовательскийОтбор.ПравоеЗначение  = ЭлементПоляРасшифровки.Значение;                      
					КонецЕсли;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;     
	КонецЦикла;
	
	Для Каждого ЭлементОтбора Из Настройки.Отбор.Элементы Цикл
		Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладскаяОперация") Тогда
			ЭлементОтбора.ПравоеЗначение = Перечисления.СкладскиеОперации.ПриемкаОтПоставщика;
			ЭлементОтбора.Использование = Истина;
					
			Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда
		 		ПользовательскийОтбор = ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
				ПользовательскийОтбор.Использование = Истина;
				ПользовательскийОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; 
				ПользовательскийОтбор.ПравоеЗначение  = Перечисления.СкладскиеОперации.ПриемкаОтПоставщика;                      
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Настройки;
КонецФункции
Показать
32. ХамитоваРайса 16.05.23 14:16 Сейчас в теме
AfterEarth, спасибо большое за способ. Я уже, вроде, как сделала. Не знаю, так или по-другому. Но, думаю, что примерно так же. Но на всякий случай сохраню себе эту статью и комментарий. Если кому надо, то могу прислать внешний отчет, который сделала, и там открывается "Карточка счета" и с нужным отбором, и с нужными параметрами.
(31)
33. AfterEarth 26.05.23 12:55 Сейчас в теме
(32) Райса, буду очень признателен!
34. ХамитоваРайса 26.05.23 13:42 Сейчас в теме
(33)Ivan Alexeev, никогда не отвечала в личку. Напишите, как отправить Вам внешний отчет с расшифровкой. Хотела здесь прикрепить файл, но чёт не прикрепляется.
Прикрепленные файлы:
ОборачиваемостьЗапасов_с_количествомХРР.erf
35. ХамитоваРайса 26.05.23 13:43 Сейчас в теме
Ан нет, прикрепилось) Работает железно.
36. AfterEarth 02.06.23 18:09 Сейчас в теме
(35) Райса - огромное Вам спасибо!
Оставьте свое сообщение

См. также

Обработка результатов запроса произвольными вычисляемыми полями. Обзор некоторых новых функций СКД

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

07.02.2023    3289    quazare    7    

36

Выборочная свертка группировок для СКД

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

Методика разработки отчета на СКД с возможностью свёртки части группировок по заданному программно условию. - свертка по значению поля (неотрицательные - сворачиваются); - свертка подчиненных в иерархии с произвольным количеством уровней.

1 стартмани

16.01.2023    1752    schthaxe    3    

27

Разрабатываем отчет на СКД, содержащий данные из расширения

СКД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

17.10.2022    3968    al_zzz    9    

44

Хитрости СКД. Часть 4

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

12.10.2022    5107    milkers    17    

45

Тестовая задача: таблица умножения на СКД

СКД Платформа 1С v8.3 Бесплатно (free)

Альтернативное решение предложенной задачи.

14.06.2022    4222    81    echo77    6    

38

Хитрости СКД. Часть 3

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

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Объединение ячеек в отчете только на определенном уровне иерархии, Постобработка итогов в табличном документе, Скрытие колонок в зависимости от количества месяцев в периоде.

28.05.2022    6673    milkers    11    

87

Отчет на СКД с использованием форм из БСП. Варианты передачи списка значений в параметр СКД

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

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

1 стартмани

20.04.2022    5335    eugene-p    8    

28

По-настоящему свои макеты в отчетах СКД. Исследование процесса компоновки и генерация кода отчета

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Как скрестить формирование отчетных данных с помощью СКД и вывод в табличный документ с помощью Макет.ПолучитьОбласть(...) и ТабДок.Вывести(Секция)? А также сделать этот процесс простым и удобным? Об этом в статье ниже.

1 стартмани

22.03.2022    4871    Alxby    8    

47

Редактирование данных в ячейках СКД (простая реализация)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

11.03.2022    8542    7    Flashill    20    

52

Убираем параметры из отбора СКД

Универсальные функции СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Заметка о некоторых технических нюансах параметров данных и отборов СКД.

17.02.2022    5414    Yashazz    29    

31

Шаблон отчета на СКД (обычные формы)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Улучшенный шаблон отчёта СКД, реализованный на обычных формах. Лаконичный и функциональный, весь необходимый минимум для управления отчётом вынесен на форму отчёта, что избавляет рядовых пользователей от необходимости лезть внутрь настроек отчёта. Форма сделана гибкой и позволяет легко себя адаптировать под Ваши потребности. Ряд элементов формы сделан сворачиваемыми и растягиваемыми.

2 стартмани

14.02.2022    6696    19    Eugen-S    4    

9

Отладка СКД

СКД Система компоновки данных Бесплатно (free)

На митапе «Практика применения СКД» выступил ведущий разработчик 1С аутсорсинговой компании Programming Store Павел Шемякин. Павел рассказал, как бороться с нежелательной «оптимизацией» запроса СКД, какие инструменты для отладки СКД можно использовать – в чем их отличия и преимущества, и показал, как работать с консолью компоновки данных – на какие элементы структуры XML-файла макета СКД обращать внимание при поиске причин неправильной работы отчета.

08.02.2022    10617    ProgrammingStore    5    

85

Программная работа и компоненты СКД

СКД Система компоновки данных Бесплатно (free)

На митапе «Практика применения СКД» выступил архитектор Digital Business Петр Базелюк. Он рассказал о том, как работать с СКД программно, и как, используя общедоступную библиотеку FoxyLink, создать свой процессор вывода результата СКД напрямую в формат JSON или в CSV.

04.02.2022    4552    pbazeliuk    4    

69

Доработка типового отчета на СКД с помощью расширения

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

09.01.2022    9371    Spacer    9    

26

Реализация отборов на форме с помощью СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

28.12.2021    14553    quazare    6    

131

Варианты применения СКД вне отчетов в отраслевых конфигурациях

СКД Система компоновки данных Бесплатно (free)

Директор и ведущий разработчик компании «Арт Порт» Максим Артеменко выступил на митапе, посвященном практике применения СКД. Максим рассказал о вариантах применения механизма настроек СКД для решения нестандартных задач – визуального оформления, сегментирования данных и автоматического заполнения примечаний к документам.

18.11.2021    3715    drmaxart    0    

42

Кейсы решения задач на СКД

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Разработчик 1С в компании Neti Александр Крынецкий выступил на Infostart Meetup, посвященном практике работы с СКД. Александр поделился с коллегами кейсами по решению сложных задач при работе с СКД.

08.11.2021    6176    echo77    7    

99

Грабли на СКД

СКД Платформа 1С v8.3 Система компоновки данных Россия Бесплатно (free)

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

02.11.2021    15182    echo77    17    

136

СКД: 5 советов, как сделать лучше

СКД Платформа 1С v8.3 Система компоновки данных 8.3.14 Бесплатно (free)

Несколько примеров решения задач с использованием разных подходов

27.10.2021    12548    Neti    19    

192

Объект "Схема запроса" и расширения языка запросов СКД

СКД Платформа 1С v8.3 Запросы Россия Бесплатно (free)

Если использовать объект СхемаЗапроса для модификации текстов запросов, содержащих расширения СКД, то могут возникнуть ошибки времени исполнения. И полученных запрос не будет работать. В статье расскажу, как этого избежать.

18.07.2021    3399    mysm    14    

27

Изменение расшифровки макета СКД до компоновки

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    4362    Yashazz    7    

37

Формирование отчета СКД с расшифровкой из обработки

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Формирование отчета СКД из обработки немного отличается от формирования из отчета.

27.04.2021    6832    John_d    14    

74

Эффективные приемы разработки

Математика и алгоритмы Рефакторинг и качество кода СКД Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    5334    SergeyN    13    

39

Полезные примеры СКД, ч.2

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    18260    Neti    9    

215

Полезные примеры СКД, ч.1

СКД Система компоновки данных Бесплатно (free)

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021    23034    Neti    21    

364

Динамическая расшифровка СКД (на примере отчета)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Предлагаю Вашему неподкупному вниманию вариант более-менее унифицированной реализации динамически формирующейся расшифровки СКД на примере простейшего отчета для конфигурации УТ 11.

1 стартмани

08.12.2020    3670    mr_sav    3    

23

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

07.12.2020    12020    user1502278    23    

58

Программная корректировка при выводе отчета СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

08.10.2020    25389    dabu-dabu    18    

238

Пользовательское поле СКД одной процедурой

СКД Платформа 1С v8.3 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    3167    Yashazz    0    

23

Быстрое формирование наборов данных Объект схемы СКД

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.07.2020    12655    8    Алексей Воробьев    16    

56

Роль "Остатки" поля набора данных СКД в отчете и в расшифровке

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

24.05.2020    13350    kasper076    19    

26

СКД. Использование Менеджера временных таблиц в системе компоновки

СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

29.04.2020    20102    ixijixi    50    

112

Ограничения полей, или как обмануть СКД?

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    28929    SeiOkami    43    

125

Работа с запросами в 1С СКД. Отладка СКД

СКД Запросы Система компоновки данных Россия Бесплатно (free)

В предыдущем разделе мы изучали с вами особенности работы с запросами в СКД. Для изучения (отладки) работы различных схем компоновки данных я использовал консоль компоновки данных.

15.04.2020    7513    ProgrammingStore    3    

33

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 3

СКД Запросы Система компоновки данных Россия Бесплатно (free)

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

13.04.2020    12767    ProgrammingStore    5    

51

СКД: Прозрачная обработка результата

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

13.04.2020    7883    starik-2005    17    

45