Получение значения расшифровки и значений вышестоящих группировок расшифровки в отчете СКД

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

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

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

В форме для поля "Результат" определим для события "ОбработкаРасшифровки" процедуру "РезультатОбработкиРасшифровки". И, соответствено, тело процедуры будет следующим:

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
 
    //Значение текущего поля     
    Поле = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0];
    Сообщить("Поле: " + Поле.Поле + ", значение: " + Поле.Значение);
    
    //Значения всех вышестоящих группировок     
    ВывестиЗначениеГруппировки(Расшифровка);

КонецПроцедуры 

Где процедура "ВывестиЗначениеГруппировки" имеет следующее содержание:

Процедура ВывестиЗначениеГруппировки(ТекРасшифровка)
	
	МассивРодителей = ДанныеРасшифровки.Элементы[ТекРасшифровка].ПолучитьРодителей();
	Для СчРодителей = 1 По МассивРодителей.Количество() Цикл
	
		ПолеРодитель = МассивРодителей[СчРодителей-1];
		Если Число(ПолеРодитель.Идентификатор) > 0 Тогда
			
			//Получим текущее поле
			Если ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
			   МассивПолей = ПолеРодитель.ПолучитьПоля();
			ИначеЕсли ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
			   МассивПолей = ПолеРодитель.ПолучитьРодителей()[0].ПолучитьПоля();
			КонецЕсли; 
			   
			Для СчПолей = 1 По МассивПолей.Количество() Цикл
				
				Поле = МассивПолей[СчПолей-1];
			
				//Выведем значения текущей расшифровки
				Сообщить("Поле: " + Поле.Поле + ", значение: " + Поле.Значение);
				
				//Рекурсивный вызов процедуры. 
				РасшифровкиВыше = ПолеРодитель.ПолучитьРодителей()[0].Идентификатор;
				ВывестиЗначениеГруппировки(РасшифровкиВыше);
				
			КонецЦикла;	
			
		КонецЕсли;		
	КонецЦикла;
	
КонецПроцедуры

Пример работы данных процедур можно посмотреть здесь  

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Chernov_Dmitriy 83 12.12.13 11:39 Сейчас в теме
Автор спасибо - после 5 часов поисков твой код подошел. Только немного модифицировал - так как не отрабатывал группировки:
Процедура ВывестиЗначениеГруппировки(ТекРасшифровка)

МассивРодителей = ДанныеРасшифровки.Элементы[ТекРасшифровка].ПолучитьРодителей();
Для Сч = 1 По МассивРодителей.Количество() Цикл

ПолеРодитель = МассивРодителей[Сч-1];
Если ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда

//Выведем значения текущей расшифровки
Поле = ПолеРодитель.ПолучитьПоля()[0];
Сообщить("Поле: " + Поле.Поле + ", значение: " + Поле.Значение);

//Рекурсивный вызов процедуры.
РасшифровкиВыше = ПолеРодитель.ПолучитьРодителей()[0].Идентификатор;
ВывестиЗначениеГруппировки(РасшифровкиВыше);
ИначеЕсли ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") тогда
Попытка
Поле = ПолеРодитель.ПолучитьРодителей()[0].ПолучитьПоля()[0] ;
Сообщить("Поле: " + Поле.Поле + ", значение: " + Поле.Значение);

//Рекурсивный вызов процедуры.
РасшифровкиВыше = ПолеРодитель.ПолучитьРодителей()[0].Идентификатор;
ВывестиЗначениеГруппировки(РасшифровкиВыше);

Исключение

КонецПопытки;
КонецЕсли;

КонецЦикла;

КонецПроцедуры
2. Tavalik 2283 20.12.13 13:12 Сейчас в теме
Спасибо. В статье исправил и тоже немного оптимизировал :)
3. AndrewVVS 07.02.14 16:26 Сейчас в теме
Поле = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0],
А если ДанныеРасшифровки = Неопределено, тогда будет ошибка...
Нашел: нужно было в типовой процедуре добавить "ДанныеРасшифровки", по умолчанию там Неопределено!

Процедура ОбновитьОтчет() Экспорт

СформироватьОтчет(ЭтаФорма.ЭлементыФормы.Результат, ДанныеРасшифровки, Ложь);

КонецПроцедуры
4. xten 41 22.04.14 13:14 Сейчас в теме
Я правильно понимаю, что это фактически универсальный шаблонный код (если можно так выразиться), который можно в много где использовать )) ?
5. Tavalik 2283 23.04.14 07:14 Сейчас в теме
(4) xten,
Да, конечно. Код будет работать в любом отчете на СКД.
6. katunya88 19 15.05.14 06:12 Сейчас в теме
ты просто супер! то что нужно! спасибо!
7. Cyberhawk 118 27.10.14 18:54 Сейчас в теме
А кто знает, как получать значения ресурса из расшифровки?
VickWood; echo77; +2 Ответить
22. GG_Dots 24 18.02.20 08:43 Сейчас в теме
(7) Привет. Недавно столкнулся с такой задачей. Достаточно поле ресурса описать в макете и указать у него параметр расшифровки с выражением. И тогда программно сможешь получить значение ресурса: www.craft1c.ru
8. ig0rec 17.11.14 13:22 Сейчас в теме
А если родителей несколько на одном уровне ( когда расшифровка и по столбцам и по колонкам), то выберутся только первые группировки, вот мой вариант

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


А использую процедуру так

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


но не могу получить значение ресурса, м.б. кто-нибудь подскажет?
9. Tavalik 2283 23.05.15 12:23 Сейчас в теме
(8) ig0rec,

Спасибо за комментарий.
Столкнулся с подобной проблемой. Оптимизировал код в публикации для вывода всех группировочных полей на каждом уровне группировки.
10. Oleg-and-reevich 5 29.01.16 17:15 Сейчас в теме
Автор, огромное спасибо! Просто не представляете, как выручил Ваш код)!
11. rif-nrr 9 16.02.16 23:01 Сейчас в теме
Спасибо за статью! очень выручило
12. Vika260740 5 14.08.16 10:53 Сейчас в теме
Спасибо за полезный код!
13. TreeDogNight 18 16.02.17 09:56 Сейчас в теме
Доработал ваш код, добавил возможность получения значений полей детальных записей (до этого получалось только значение текущего поля, откуда вызывалась расшифровка):
&НаКлиенте
Функция ПолучитьСтруктуруРасшифровки(Расшифровка)
	
	СтруктураРасшифровки = Новый Структура;	    
	ЗаполнитьСтруктуруПолейРасшифровки(Расшифровка, СтруктураРасшифровки); 
	
	Возврат СтруктураРасшифровки;
	
КонецФункции 

&НаСервере
Процедура ЗаполнитьСтруктуруПолейРасшифровки(Знач Расшифровка, СтруктураПолей, Знач Данные = "")
	
	Если Данные = "" Тогда
		Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
		
		Если ТипЗнч(Данные.Элементы[Расшифровка]) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
			Поля = Данные.Элементы[Расшифровка].ПолучитьПоля();                   
			Для каждого Поле Из Поля Цикл
				СтруктураПолей.Вставить(ПреобразоватьИмяПоляГруппировки(Поле.Поле), Поле.Значение);
			КонецЦикла;
			
			Индекс = Число(Расшифровка);
			Пока Индекс Цикл
				ЭлементРасшифровки = Данные.Элементы[Индекс];
				Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
					Прервать;	
				КонецЕсли;
				
				Индекс = Индекс + 1;
			КонецЦикла;
			
			Индекс = Индекс - 1;
			Пока Индекс Цикл
				ЭлементРасшифровки = Данные.Элементы[Индекс];
				Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
					Поля = ЭлементРасшифровки.ПолучитьПоля();                   
					Для каждого Поле Из Поля Цикл
						Если Не ТипЗнч(Поле.Значение) = Тип("Число") Тогда
							СтруктураПолей.Вставить(ПреобразоватьИмяПоляГруппировки(Поле.Поле), Поле.Значение);
						КонецЕсли; 	
					КонецЦикла;
					
					Индекс = Индекс - 1;
				Иначе 
					Прервать;
				КонецЕсли; 
			КонецЦикла; 
		КонецЕсли;
		
		ЗаполнитьСтруктуруПолейРасшифровки(Данные.Элементы[Расшифровка], СтруктураПолей, Данные);
	Иначе 
		МассивРодителей = Расшифровка.ПолучитьРодителей();
		Для каждого ПолеРодитель из МассивРодителей Цикл
			Если Число(ПолеРодитель.Идентификатор) > 0 Тогда
				Если ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
					МассивПолей = ПолеРодитель.ПолучитьПоля();
				ИначеЕсли ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
					МассивПолей = ПолеРодитель.ПолучитьРодителей()[0].ПолучитьПоля();
				КонецЕсли; 
				
				Для каждого Поле из МассивПолей Цикл
					СтруктураПолей.Вставить(ПреобразоватьИмяПоляГруппировки(Поле.Поле), Поле.Значение);
					
					РасшифровкиВыше = ПолеРодитель.ПолучитьРодителей();
					Для каждого РодительВыше Из РасшифровкиВыше Цикл
						ЗаполнитьСтруктуруПолейРасшифровки(РодительВыше, СтруктураПолей, Данные);              
					КонецЦикла; 
				КонецЦикла;    
			КонецЕсли;        
		КонецЦикла;
	КонецЕсли; 
		
КонецПроцедуры
Показать
16. Westbound 21.11.17 13:49 Сейчас в теме
(13) Забыли вставить функцию ПреобразоватьИмяПоляГруппировки, но это ладно. В любом случае все значения ресурсов возвращаются с Null'ом.
TreeDogNight; +1 Ответить
14. queit 64 13.04.17 07:56 Сейчас в теме
Спасибо за статью. Очень полезная.
Только вот столкнулся с одной проблемкой. Почему-то "Поле.Значение" всегда null, при этом имя поля выводится правильно.
Что это может быть?
COMPER; Ignatov_mu; romku; +3 Ответить
19. dmitrii665 21 10.10.19 16:38 Сейчас в теме
(14) Добрый день та же проблема, что то удалось выяснить?
21. COMPER 326 06.11.19 12:17 Сейчас в теме
(19) Тоже самое. Как вылечить?
15. sulfur17 36 23.05.17 22:05 Сейчас в теме
Пытаюсь расшифровку таблицы сделать из строки ВСЕГО и вот в этой строке получается ошибка
МассивПолей = ПолеРодитель.ПолучитьРодителей()[0].ПолучитьПоля();

т.к. ПолучитьРодителей() возвращает пустой массив.
17. kanat1 28 21.02.18 15:03 Сейчас в теме
18. zsergey_ 30.07.18 05:31 Сейчас в теме
20. mars30ob 15.10.19 10:03 Сейчас в теме
Очень помогло, спасибо!
Добавил вывод пути к полю, вариант для УФ
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
	СтандартнаяОбработка = Ложь;
	РезультатОбработкаРасшифровкиНаСервере(Расшифровка);
КонецПроцедуры

&НаСервере
Процедура РезультатОбработкаРасшифровкиНаСервере(Расшифровка)
	ДанныеРасшифровкиНаСервере = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
	ВывестиЗначениеГруппировки(ДанныеРасшифровкиНаСервере, Расшифровка, "");
КонецПроцедуры

&НаСервере
Процедура ВывестиЗначениеГруппировки(ДанныеРасшифровкиНаСервере, ТекРасшифровка, Путь)
    
	МассивРодителей = ДанныеРасшифровкиНаСервере.Элементы[ТекРасшифровка].ПолучитьРодителей();
	Путь = Путь + ".ПолучитьРодителей()";
	Для СчРодителей = 0 По МассивРодителей.Количество()-1 Цикл
		
		ПолеРодитель = МассивРодителей[СчРодителей];
		Если Число(ПолеРодитель.Идентификатор) > 0 Тогда
			
			//Получим текущее поле
			Если ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
				МассивПолей = ПолеРодитель.ПолучитьПоля();
				ЭтоГруппировка = Ложь;
			ИначеЕсли ТипЗнч(ПолеРодитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
				МассивПолей = ПолеРодитель.ПолучитьРодителей()[0].ПолучитьПоля();
				ЭтоГруппировка = Истина;
			КонецЕсли; 
			
			Для СчПолей = 0 По МассивПолей.Количество()-1 Цикл
				
				Поле = МассивПолей[СчПолей];
				
				//Выведем значения текущей расшифровки
				Сообщить("Поле: " + Поле.Поле + ", значение: " + Поле.Значение+", путь = "+Путь+"["+СчРодителей+"]"+?(ЭтоГруппировка,".ПолучитьРодителей()[0].ПолучитьПоля()",".ПолучитьПоля()")+"["+СчПолей+"]");
				
				//Рекурсивный вызов процедуры. 
				РасшифровкиВыше = ПолеРодитель.ПолучитьРодителей()[0].Идентификатор;
				ВывестиЗначениеГруппировки(ДанныеРасшифровкиНаСервере, РасшифровкиВыше, Путь+"["+СчРодителей+"]"+?(ЭтоГруппировка,".ПолучитьРодителей()[0].ПолучитьПоля()",".ПолучитьПоля()")+"["+СчПолей+"]");
				
			КонецЦикла;    
			
		КонецЕсли;        
	КонецЦикла;
	
КонецПроцедуры
Показать


Получается типа: "Поле: Касса, значение: Основная касса, путь = .ПолучитьРодителей()[0].ПолучитьПоля()[1]"
и путь можно использовать для прямого получения поля в коде:

&НаСервере
Процедура РезультатОбработкаРасшифровкиНаСервере(Расшифровка)
	ДанныеРасшифровкиНаСервере = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);

	Попытка
		Касса = ДанныеРасшифровкиНаСервере.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля()[1].Значение;
		//открыть расшифровку по кассе ...
	Исключение
	КонецПопытки;
КонецПроцедуры
Показать


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

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

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

Пакет из 3-х курсов по 1С-программированию. Основная цель - сформировать у слушателей практические навыки, связанные с реализацией задач обмена для прикладных решений, работающих на платформе “1С:Предприятие”, а также с разработкой прикладных решений, предназначенных для автоматизации расчета заработной платы и задач бухгалтерского учета.

22.04.2020    3282    23    infostart    2    

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

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

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

24.05.2020    975    0    kasper076    12    

Макет оформления в отчете с несколькими СКД

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

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

14.05.2020    1265    0    vendim    1    

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

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

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

29.04.2020    3801    0    the1    27    

Использование программных перечислений, ч.1: строковые константы Промо

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

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    34261    0    unichkin    45    

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

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

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

15.04.2020    4122    0    SeiOkami    38    

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

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

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

15.04.2020    2193    0    ProfessionStore    2    

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

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

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

13.04.2020    3702    0    ProfessionStore    4    

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

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

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

15.10.2018    26271    0    tormozit    100    

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

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

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

13.04.2020    2895    0    starik-2005    16    

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

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

Все примеры разобраны с помощью консолей компоновки данных, речь о которых пойдет в предпоследнем разделе статьи.

12.04.2020    2797    0    ProfessionStore    11    

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

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

Все примеры разобраны с помощью консолей компоновки данных, речь о которых пойдет в предпоследнем разделе статьи.

11.04.2020    3203    0    ProfessionStore    8    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    73774    0    tormozit    129    

Работа с запросами в 1С СКД. Язык выражений СКД и подмена запросов

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

Хотя эта статья называется «Работа с запросами в 1С СКД», нельзя не упомянуть про язык выражений СКД. Да – у системы компоновки данных есть свой язык! Это не язык платформы 1С, это не язык запросов. Это еще один язык, который используется 1С в СКД для обработки полученного набора (ов) данных.

11.04.2020    3745    0    ProfessionStore    23    

Работа с запросами в 1С СКД. Примеры использования расширения языка запросов СКД

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

Все тонкости использования расширения языка запросов 1С для СКД вы можете изучить по ссылкам, которые приведены в предыдущей статье. Здесь мы рассмотрим конкретные кейсы применения данного расширения.

10.04.2020    3591    0    ProfessionStore    4    

Запросы 1С СКД. Возможности и ограничения

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

В этом цикле статей мы рассмотрим особенности работы системы компоновки данных с запросами в 1С.

10.04.2020    4588    0    ProfessionStore    14    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

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

11.07.2007    44835    0    tormozit    38    

Вложенные СКД

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

Возможности, нюансы, заметки.

26.03.2020    4195    0    Yashazz    19    

СКД - одна из проблем связи Наборов данных

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

Официальная информация: 1. В схеме компоновки данных нет указания типа связи. Все связи считаются ЛЕВЫМИ внешними соединениями. 2. Если для вложенного набора данных указано условие фильтра, тогда связь вложенного набора данных с родительским набором данных считается ВНУТРЕННЕЙ. Или как получить все результаты основного набора при отборе в зависимом.

03.03.2020    3439    0    BelikovSA    9    

Получение значений всех полей в иерархии структуры отчета

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

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

28.02.2020    1535    0    real_MaxA    1    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

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

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    40640    0    tormozit    72    

Для чего нужен флаг "Автозаполнение" в СКД и каких проблем без него можно избежать

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

Речь пойдет о флаге «Автозаполнение» в наборе данных Запрос Системы компоновки данных (СКД). Сразу хочу отметить, что флаг «Автозаполнение» доступен только в наборе данных - Запрос.

26.02.2020    4679    0    Neti    41    

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

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

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    15327    0    ids79    26    

[СКД] Программное создание схемы компоновки данных

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

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

15.01.2020    15834    0    John_d    22    

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

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

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

25.04.2019    14232    0    m-rv    2    

СКД. Лайфхак №2. Собираем отчет еще удобнее

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

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

20.11.2019    8811    0    aximo    15    

Некоторые редко используемые возможности СКД

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

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

11.11.2019    9919    0    kser87    39    

Лайфхак работы с СКД. Собираем отчет.

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

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

25.10.2019    16487    0    aximo    37    

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

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

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

16.04.2019    17827    0    m-rv    17    

Немного про СКД. Характеристики и проверка пустого отчета

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

Пример использования характеристик в СКД и программная работа с ними. А также описание проверки результата отчета на заполненность.

10.10.2019    8901    0    YPermitin    7    

Полезняшки по СКД и построителям. Просто код

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

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    8377    0    Yashazz    45    

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

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

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

10.10.2019    7027    0    evgeni-red    8    

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

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

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

01.06.2018    27486    0    m-rv    21    

Три способа создания одного отчета на СКД

Практика программирования v8 v8::СКД ERP2 УТ11 КА2 Бесплатно (free)

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

08.10.2019    11767    0    ids79    26    

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

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

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

25.09.2019    16085    0    YPermitin    33    

СКД не только для отчетов

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

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

18.09.2019    16631    0    YPermitin    34    

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

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

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

05.12.2017    25787    0    itriot11    34    

[Шпаргалка] Программное создание элементов формы

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

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

06.09.2019    35100    0    rpgshnik    60    

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

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

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

05.09.2019    37259    0    ids79    52    

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

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

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

08.08.2019    56662    0    ids79    37    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    71222    0    Serginio    108    

Разбираемся с параметрами редактирования СКД

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

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    17332    0    json    12    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

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

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    42974    0    ids79    11    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    28735    0    ids79    27    

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

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

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

10.11.2018    30705    0    ids79    40    

Пользовательские настройки системы компоновки данных

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

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

09.07.2019    20106    0    ids79    2    

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

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

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

04.07.2019    16512    0    SeiOkami    50    

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

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

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

02.07.2019    34305    0    ids79    10    

Тестер: частые вопросы Промо

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

Ошибкам бой - тесты норма жизни!

25.07.2018    26335    0    grumagargler    26    

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

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

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

25.06.2019    42520    0    ids79    20    

Не провоцируйте СКД, или пример "как не надо"

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

Пример того, что не нужно использовать в запросах, чтобы не провоцировать СКД.

10.06.2019    12056    0    SeiOkami    95    

Ошибки (?) работы СКД

Практика программирования Разработка v8 v8::СКД Бесплатно (free)

СКД неверно ставит отборы?

31.05.2019    4618    0    skydivespb    6    

Нюансы преобразования запроса СКД

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

Описание некоторых нюансов преобразования запроса в СКД.

31.05.2019    12146    0    waol    14