Полезные процедуры по работе с СКД и табличными документами (часть 2)

Публикация № 551359 27.09.16

Приемы и методы разработки

Еще несколько универсальных процедур

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

1. Работа с расшифровками. Получение значений группировок для текущей ячейки

На данную тему уже есть публикации. Но универсальных процедур на эту тему я не нашел. 

Имеем отчет следующего вида

Когда пользователь кликает по ячейке требуется:

  • Определить, например, Подразделение, соответствующее текущей ячейке
  • Определить значения всех группировок, соответствующих текущей ячейке

Предлагаемые процедуры решают данную задачу за несколько строк, например, так:

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

При выполнении данного кода получим примерно следующий вывод

Подразделение : Пискаревка

Уровень: 0;     Поле: Количество;       Значение: ;	
Уровень: 1;     Поле: Склад;            Значение: Розничный;	
Уровень: 2;     Поле: Подразделение;    Значение: Пискаревка;	
Уровень: 3;     Поле: Регион;           Значение: Северный р-н;	
Уровень: 1;     Поле: ВидТовара;        Значение: Аксессуары;	
Уровень: 1;     Поле: Товар;            Значение: Термос;

Отмечу несколько моментов:

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

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

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

2. Получение области шапки в отчете СКД

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

Рассмотрим типовую задачу. Есть отчет следующего вида.


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

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

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

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

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

Заключение

Все процедуры тестировались на версии платформы 8.3. 

Прикладываю внешний отчет с примерами для обычных и управляемых форм к описанным в данной публикации приемам. 

Уточнение 

Хочу особо отметить следующее: в этой и предыдущей статье я привел несколько процедур по постобработке табличного документа СКД. НО я также, как и остальные негативно высказавшиеся комментаторы стараюсь и очень рекомендую всем разработчикам ПО МАКСИМУМУ задействовать возможности СКД, и не использовать доработку кодом, если можно обойтись без этого. 

Постобработка табличного документа СКД - это зло. ОДНАКО, существуют случаи, когда без нее не обойтись. И тогда постобработка уже становится не "злом", а "крайней мерой". В нашей среде принято ссылаться на популярных авторов, которые описывают возможности СКД. Но при этом упускается из вида, что эти возможности покрывают не все возможные случаи, с которыми приходится сталкиваться на практике. Когда напишешь 30-40 отчетов на СКД для капризных клиентов, понимаешь что у этого инструмента есть ограничения. Так вот эти ограничения НИГДЕ не описаны. Сталкиваясь с ними каждый разработчик начинает придумывать свой велосипед. Я постарался восполнить данный пробел и описал решения таких задач, которые нельзя (или очень трудоемко) решать настройками. Существенным недостатком моих двух публикаций является то, что я предлагаю решение проблемы без ее подробного описания. Из-за этого возникает ряд непониманий со стороны других разработчиков, которые с данными проблемами не сталкивались, или им удавалось их обойти (но не  решить)

Скачать файлы

Наименование Файл Версия Размер
Пример к публикации 8.3 (ОФ+УФ).erf

.erf 18,75Kb
36
.erf 18,75Kb 36 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. r0610201 293 27.09.16 08:51 Сейчас в теме
Выровнять заголовки по центру можно вообще без кода при помощи условного оформления.
2. json 27.09.16 09:15 Сейчас в теме
(1) r0610201, спасибо за комментарий. Но предполагаю, что вы невнимательно прочитали публикацию.
Существует ряд случаев, когда условным оформлением это сделать проблематично. Об этом сказано в статье.
German_Tagil; +1 Ответить
3. soulsteps 74 27.09.16 11:14 Сейчас в теме
В этой процедуре

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

// 1
ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
"Подразделение",
ДанныеРасшифровки,
Расшифровка);
Сообщить("Подразделение : " + ТекущееПодразделение);

// 2
ПоляРасшифровкиВВидеТаблицы = ПолучитьПоляРасшифровкиВВидеТаблицы(
Расшифровка,
ДанныеРасшифровки);
Для Каждого Строка Из ПоляРасшифровкиВВидеТаблицы Цикл
ТекстСообщения =
"Уровень: " + Строка.Уровень + "; " +
"Поле: " + Строка.Поле + "; " +
"Значение: " + Строка.Значение + "; ";

Сообщить(ТекстСообщения);
КонецЦикла;

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

не обнаружил передачу (локальное определение) переменной ДанныеРасшифровки? Хотя идет обращение по коду:
ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
"Подразделение",
ДанныеРасшифровки,
Расшифровка);
Обработку не скачивал, смотрю только код. Если это какая-то глобальная переменная или параметр формы, просьба уточнить, возможно ДанныеРасшифровки = Расшифровка?
user717534; +1 Ответить
4. json 27.09.16 11:18 Сейчас в теме
(3) soulsteps,
Расширение формы отчета (Report form extension)
ДанныеРасшифровки (DetailsData)
Использование:

Чтение и запись.
Описание:

Тип: ДанныеРасшифровкиКомпоновкиДанных.
Содержит данные расшифровки последнего выполненного отчета.

Доступность:

Толстый клиент.

В тексте приведен пример для обычных форм. В управляемых формах в этой переменной хранится не сам объект, а ссылка на него во временном хранилище. Эти нюансы учтены в приложенном к статье примере
5. soulsteps 74 27.09.16 13:42 Сейчас в теме
(4) я это и хотел услышать (уточнение))
user717534; +1 Ответить
14. ol_xak 18 06.02.19 17:42 Сейчас в теме
(3)А ведь вопрос был правильный
15. json 2967 07.02.19 08:34 Сейчас в теме
(14) ответил же на вопрос. Или ответ не понятен?
В управляемых формах есть реквизит формы ДанныеРасшифровки, в котором хранится адрес во временном хранилище, а в обычных формах в этом реквизите хранятся сами данные

Для обычных форм:
	// 1
	ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
								"Подразделение", 
								ДанныеРасшифровки, 
								Расшифровка);


Для управляемых:
	// 1
	ТекущееПодразделение = ПолучитьЗначениеПоИмениГруппировкиВРасшифровке(
								"Подразделение", 
								ПолучитьИзВременногоХранилища(ДанныеРасшифровки), 
								Расшифровка);
16. ol_xak 18 07.02.19 15:47 Сейчас в теме
(15) Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
откуда в данной процедуре появляется переменная ДанныеРасшифровки
17. json 2967 07.02.19 15:59 Сейчас в теме
(16) читайте внимательно предыдущее сообщение. Там все разжевано.
В управляемых формах есть реквизит формы ДанныеРасшифровки
18. ol_xak 18 07.02.19 16:51 Сейчас в теме
(17)А в обычной форме? Я не критикую, просто пытаюсь использовать предложенный метод, но не получается. Где взять ДанныеРасшифровки в процедуре РезультатОбработкаРасшифровки? Использую неуправляемую форму обработки.
19. json 2967 07.02.19 16:58 Сейчас в теме
(18) по обычной форме цитата из справки

Расширение формы отчета (Report form extension)
ДанныеРасшифровки (DetailsData)
Использование:

Чтение и запись.
Описание:

Тип: ДанныеРасшифровкиКомпоновкиДанных.
Содержит данные расшифровки последнего выполненного отчета.

Доступность:

Толстый клиент.
Показать


То есть расширение формы отчета имеет такой реквизит ДанныеРасшифровки. В форме отчета он есть по умолчанию (если основной реквизит формы - внешний или внутренний отчет).

Разница между параметрами Расшифровка и ДанныеРасшифровки следующая:
в ДанныеРасшифровки - хранятся данные по всему сформированному отчету
в Расшифровка - хранится ключ, по которому можно искать в ДанныеРасшифровки. Этот ключ хранится в значении ячейки, по которой кликает пользователь
6. Поручик 4545 27.09.16 19:59 Сейчас в теме
(0) Не обращай внимания на критиканов.
user717534; +1 Ответить
7. PrinzOfMunchen 80 29.09.16 05:19 Сейчас в теме
Недавно писал нечто подобное, описанному в первом примере. Только мне надо было получить ВСЕ значения полей группировки и детальных записей (без ресурсов) в виде плоской таблицы, где колонки - это выбранные поля. Знатные извращения...))
8. Nuuq 76 02.11.16 13:13 Сейчас в теме
А есть пример по образу сделать получение области итогов СКД по вертикали и общие по горизонтали - программно добавить туда новое поле и заполнить его?
9. Yashazz 4106 07.11.16 21:01 Сейчас в теме
Забавно. Тоже буквально вчера понадобилось выгрести значения текущей расшифровки, всех полей уровня и, естесссно, родительских группировок. Тоже сделал через таблицу значений. Подумывал сериализовать "ДанныеРасшифровки" и поиграться с её xdto, но там не оказалось ничего интересного. Остальное - тоже, в общем, очевидные вещи.

Автор прав, пост-обработка это зло. Но иногда зла не хватает)) Могу от себя добавить, что ввиду непредсказуемости внешнего вида результатного табличного документа делаю такие пост-обработки, привязываясь к специально заданным расшифровкам, перегоняя моксель в его сериализованный вид xml и орудуя уже в нём. Так хоть меньше шансов обломаться, если юзверь перенастроит СКД. Так что рекомендую отказаться от дикости вроде "ВысотаТаблицы" и работать через xpath или объекты DOM. Ей-ей, надёжнее)

10. rasswet 82 09.11.16 08:07 Сейчас в теме
спасибо, интересные вещи.
11. German_Tagil 35 10.11.16 20:33 Сейчас в теме
12. Makushimo 158 11.11.16 06:31 Сейчас в теме
13. AzagTot 40 11.11.16 12:00 Сейчас в теме
Спасибо! Очень полезный цикл статей.
А кто знает как можно сдвинуть таблицу на несколько колонок? Чтобы вывод начинался не с первой колонки, а, например, с 3-й. При этом другие таблицы в отчете должны остаться без изменения.
Оставьте свое сообщение

См. также

Навигатор по конфигурации базы 1С 8.3 Промо

Структура метаданных Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.85 от 10.10.2021

3 стартмани

28.10.2018    45777    408    ROL32    72    

Консоль запросов с настройками СКД

Консоль запросов v8 v8::СКД 1cv8.cf Россия Абонемент ($m)

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

4 стартмани

15.11.2021    752    5    user1693438    3    

Конструктор запросов для пользователей

Универсальные обработки Прочие инструменты разработчика v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Россия Абонемент ($m)

Конструктор запросов на языке 1С 8.3 (УФ) совместно с СКД, ориентированный для пользователей и бизнес аналитиков BI систем, доступный и понятный, результатом является текст запроса.  

10 стартмани

19.10.2021    1138    3    serovmsk    0    

Универсальный редактор данных (УРД)

Инструментарий разработчика Инструменты администратора БД v8 Абонемент ($m)

Универсальный редактор данных (УРД) - это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

1 стартмани

27.08.2021    6098    126    Adeptus    51    

Дневник времени. Простое мобильное приложение 1С для телефона на Андроид Промо

Мобильная разработка v8::Mobile Абонемент ($m)

Дневник времени. Для адептов тайм-менеджмента и всех тех, кто ценит свое время. Предназначен для ежедневных записей в телефоне расхода времени на различные задачи. Отчет по записям программы позволяет увидеть, сколько времени, на какие задачи расходовалось и проанализировать траты времени за месяц. Можно выгрузить записи в csv файл и анализировать на дескопном компьютере, например в Экселе. Можно составлять планы на день и отмечать, что удалось сделать, а что нет.

1 стартмани

12.03.2021    2817    4    pricec    1    

Программное формирование отчетов в БП 3.0 на примере оборотно-сальдовой ведомости по счету

Оборотно-сальдовая ведомость, Анализ счета Бухгалтерские Практика программирования v8 v8::БУ v8::СКД БП3.0 Россия БУ Абонемент ($m)

Порой возникает задача получить программно результат отчета на основе СКД в виде табличного документа. В данной статье будет описан один из вариантов реализации данной задачи.

1 стартмани

14.07.2021    2331    6    arman1997    0    

Отчет по расписаниям (пример)

Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

Пример построения отчета по нескольким расписаниям.

1 стартмани

18.05.2021    4305    0    echo77    4    

Свойства общих модулей

Прочие инструменты разработчика Практика программирования v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

14.04.2021    2933    4    kuzyara    5    

Удаление и/или копирование сохраненных в 1С настроек (например настроек печати табличных форм) Промо

Универсальные обработки Сервисные утилиты v8 Абонемент ($m)

Иногда нужно удалить сохраненную в 1С "покореженную" настройку или скопировать "удачную" другому пользователю...

1 стартмани

01.09.2012    66989    1378    AnryMc    46    

Представления в ЗУП

Зарплата Расчетные механизмы v8 v8::СПР v8::СКД ЗУП3.x БУ Абонемент ($m)

Использование представлений вместо прямого чтения из регистров сведений в ЗУП.

5 стартмани

12.04.2021    7502    19    Gladkov_Anton    12    

Отчет с настройкой роли поля СКД со свойством период

Работа с интерфейсом Практика программирования v8 v8::СКД Платформа 1C v8.2 1cv8.cf УУ Абонемент ($m)

Отчёт демонстрирует правильную настройку роли СКД со свойством «Период», по которой рассчитывается остаток. Этот отчет тестировался на конфигурации Управление торговым предприятием для Казахстана, редакции 2.0.19.2. Может работать на любой конфигурации, если имеется регистр накопления «ТоварыНаСкладах».

1 стартмани

01.04.2021    2447    2    softmaker    0    

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

Универсальные обработки Поиск данных v8 v8::УФ v8::СКД 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

30.03.2021    1958    0    chagbig    0    

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

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Программа Faster 9.4 позволяет ускорить процесс работы программиста (работает в любом текстовом редакторе). Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов. Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке. Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Настройка любых шорткатов под себя с помощью скриптов. Никаких установок и лицензий, все бесплатно.

1 стартмани

24.05.2012    85134    967    moolex    157    

Примеры использования функций СКД Массив (Array) и СоединитьСтроки (JoinStrings) в отчётах 1С 8

Практика программирования v8::СКД Платформа 1C v8.2 1cv8.cf Казахстан БУ Абонемент ($m)

Здесь приведено два отчёта, в которых использованы функции СКД Массив (Array) и СоединитьСтроки (JoinStrings). Отчет по ГТД и отчет по продаже номенклатуры, оба тестировались на конфигурации Управление торговым предприятием (УТП) для Казахстана, редакции 2.0.19.2. Также добавлена электронная книга, в которой собраны знания по основам СКД, которые я получил, во время работы и изучения системы компоновки данных.

2 стартмани

15.03.2021    4903    15    softmaker    0    

Подсистема "Показатели объектов"

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.03.2021    7162    6    pila86    16    

Расшифровка СКД. Фильтр отчета по диапазону чисел. Переопределение обработки расшифровки. Не модальный режим

Практика программирования v8::УФ v8::СКД 8.3.14 1cv8.cf Абонемент ($m)

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

1 стартмани

08.02.2021    3509    1    denmon88    1    

Консоль запросов с графом (Анализатор сложных запросов) Промо

Консоль запросов v8::УФ v8::Запросы 1cv8.cf Абонемент ($m)

Консоль запросов для анализа запросов с большим количеством временных таблиц и вложенных запросов. Отображает структуру взаимосвязей временных таблиц в виде графа. Позволяет быстро передвигаться по тексту запроса и получать результат выполнения подзапросов. Единственная консоль запросов, которая позволяет выводить результат выполнения вложенных запросов и любой части объединения запроса. Удобное получение данных запроса из отладчика включая временные таблицы. Текст запроса в структурированном виде (можно свернуть, развернуть текст подзапроса). И еще много другого, чего вы не найдете в других консолях запросов. Поддержка УФ и ОФ. Версия 0.9.1 от 18.10.2019 (поддержка WebKit).

10 стартмани

03.05.2017    106274    500    manuel    289    

Генератор кода схемы компоновки данных (СКД)

Прочие инструменты разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Формирование кода для программного создания схемы компоновки данных (СКД)

1 стартмани

04.02.2021    8727    58    Sergspectr    41    

Внешняя компонента: Android tools

Мобильная разработка Разработка внешних компонент v8 v8::Mobile Абонемент ($m)

Несколько дополнительных функций для мобильного приложения\клиента под Android. Размер архива внешних компонент под архитектуры ARM и x86 - 230KB.

1 стартмани

12.01.2021    6076    18    KAV2    13    

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5

Адаптация типовых решений Прочие инструменты разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

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

5 стартмани

21.12.2020    10362    27    huxuxuya    11    

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек. Промо

Чистка данных Сервисные утилиты Инструменты администратора БД v8 1cv8.cf Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    54329    535    Eugen-S    35    

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

Работа с интерфейсом v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

27.10.2020    2873    2    the1    0    

Макет оформления СКД - яркий

Работа с интерфейсом v8::СКД 1cv8.cf Абонемент ($m)

Яркий, контрастный, отлично читаемый. Макет оформления СКД.

1 стартмани

26.10.2020    3292    3    1C_tradeomsk    0    

Простой пример отчета на СКД. Программное формирование, расшифровка, работа с параметрами и отборами

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

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

1 стартмани

15.10.2020    5296    8    Stivens    10    

CF & SQL : конструктор прямых запросов к БД 1С Промо

Инструментарий разработчика Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Программа для чтения и анализа внутренней структуры данных 1С V8.х, Содержит конструктор прямых SQL запросов, позволяет обрабатывать и редактировать тексты SQL-запросов, выполнять прямые запросы к базе данных 1С и обрабатывать полученные результаты.

1 стартмани

02.10.2019    31031    299    dmitrydemenew    63    

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

Консоль запросов v8::УФ v8::Запросы v8::СКД ERP2 УТ11 КА2 Абонемент ($m)

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

1 стартмани

28.08.2020    5490    29    kran    0    

Сужающийся поиск различий между базами

Поиск данных Универсальные обработки Прочие инструменты разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Автоматизированный поиск различий в данных, сужающийся по времени.

1 стартмани

30.07.2020    4612    4    Yashazz    0    

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

Практика программирования v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

05.07.2020    7648    6    Алексей Воробьев    16    

Внешний регламент для 1С Промо

Прочие инструменты разработчика v8 Россия Абонемент ($m)

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

1 стартмани

05.03.2020    8823    9    moolex    11    

Построение графика в диапазоне изменений без точек

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

График изменений каких-либо величин во всем диапазоне и в области изменения, без точек.

1 стартмани

30.05.2020    3657    4    yc_2011    4    

Конструктор сравнения таблиц значения, в том числе из внешней базы

Прочие инструменты разработчика v8::СКД 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

28.05.2020    4926    7    pavley2002    2    

Фильтр объектов на базе СКД

Прочие инструменты разработчика v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

13.05.2020    4049    6    olegarch    2    

Markdown-editor в 1С (с сохранением в HTML) Промо

Универсальные обработки Прочие инструменты разработчика v8::УФ 1cv8.cf Абонемент ($m)

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.

1 стартмани

04.07.2019    12911    18    riposte    6    

Метод восстановления битых ссылок в настройках СКД при консольно-конфигураторной разработке отчетов

Прочие инструменты разработчика Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

30.04.2020    7402    0    zaxarovsky    4    

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

Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

Вывести все документы за заданный период, используя СКД.

2 стартмани

11.03.2020    5645    13    MaxxiMiliSan    11    

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

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

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

1 стартмани

04.02.2020    4847    1    KawaNoNeko    2    

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

БСП (Библиотека стандартных подсистем) v8 v8::СКД ERP2 Абонемент ($m)

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

1 стартмани

28.01.2020    9662    2    ipoloskov    4    

Шаблон внешнего отчета на СКД

Работа с интерфейсом v8 v8::СКД УНФ Абонемент ($m)

Шаблон отчета на базе СКД со своей формой отчета и выводом в свой макет (на примере прайс-листа).

1 стартмани

20.12.2019    8351    20    LamerSoft    0    

Преобразование объекта Отбор компоновки данных в Запрос

Прочие инструменты разработчика Практика программирования v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m)

Преобразует объект Отбор компоновки данных в объект Запрос (с заполнением текста и параметров).

1 стартмани

20.12.2019    6630    11    okon-teh    3    

Поиск ссылок на объект с отображением в отчете на СКД, из формы элемента справочника или формы документа, для управляемого приложения

Поиск данных v8::УФ v8::СКД 1cv8.cf Россия Абонемент ($m)

Данное расширение удобно для поиска  ссылок на ссылку справочника или ссылку документа. Пользуется спросом у менеджеров, занимающиеся ценообразованием.

1 стартмани

19.12.2019    4057    6    PugachevVU    0    

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

Консоль запросов v8::Запросы v8::СКД 1cv8.cf Россия Абонемент ($m)

Доработанная консоль запросов с автоматическим заполнением текста запроса и всех параметров на основании объекта Запрос, полученного в "Конфигураторе" или перехваченного встроенного/внешнего отчёта СКД.

2 стартмани

29.09.2019    14324    57    strek_ivan    8    

Альтернативный способ добавления элементов и реквизитов на формы

Работа с интерфейсом v8 ERP2 УТ11 Россия Абонемент ($m)

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

1 стартмани

09.09.2019    18128    35    bmk74    7    

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

Консоль запросов v8::Запросы v8::СКД 1cv8.cf Россия Абонемент ($m)

Доработанная консоль запросов для получения реального текста запроса.

1 стартмани

30.08.2019    16629    68    strek_ivan    29    

Работа с релизами 1С и договорами ИТС

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    21674    65    RocKeR_13    37    

Вам нравятся запросы в 1С?

Инструментарий разработчика v8 v8::Запросы 1cv8.cf Абонемент ($m)

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    28768    7    m-rv    91