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

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

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

СКД внешние функции расширения

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

 

Введение

Всем привет! Моя предыдущая статья на тему СКД вызвала отрицательную реакцию у некоторых пользователей сообщества. Но хочу отметить, что по собственному опыту большинство отчетов, которые мне попадались или доставались "по наследству",  а были в них и производственные отчеты для УПП (порядка 70-80 колонок), построены именно на такой схеме (на внешнем наборе данных - объекте).

Если вы умеете разрабатывать подобные отчеты "одной связкой запросов и за один присест" - снимаю перед вам шляпу - цены вам нет!

Когда ты "пилишь" большой производственный отчет (сам заказчик не знает в итоге, что он хочет - это не редкость) сроки разработки подобных отчетов доходят по полугода! А если отчет "переходит" из рук в руки... естественно, вполне логично, что удобнее собирать отчеты "по-кусочкам", нежели начинать "все сначала".

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

Тем не менее, считаю, что объекты с наборами данных для системы компоновки имеют равнозначную значимость по сравнению наборами данных, построенными на основе запросов. Да, медленнее, но по собственному опыту - скорость работы отчетов - это не самая важная "характеристика" в работающем корректном отчете, особенно если в нем порядка 80 колонок (производственные отчеты). Встречал я и такие большие отчеты, которые "ложили" производственную базу при их запуске - выполнении.

Так, давайте я опишу чему будет посвящен мой "Лайфхак №2" при работе с СКД. В этой статье я опишу работу с закладкой СКД "Вычисляемые поля", а именно - применению внешних функций - как их использовать, что где нужно добавить, правильно "включить".

Начнем с раздела подготовки отчета (Я буду работать на платформе 8.3.15.1700 и конфигурации УНФ 1.6):

 

Подготовка отчета

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

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка 	= Ложь;
	
	ОсновнаяТаблицаЗапроса = ПолучимТаблицуДанных();

	СхемаКомпоновкиДанных 	= ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	
	Настройки 	= КомпоновщикНастроек.ПолучитьНастройки(); 

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

 

В качестве содержимого функции ПолучимТаблицуДанных() ограничимся вот таким написанием:

 

&НаСервере
Функция ПолучимТаблицуДанных()

        ТаблицаРезультат = Новый ТаблицаЗначений;

	ТаблицаРезультат.Колонки.Добавить("Дата");
	ТаблицаРезультат.Колонки.Добавить("Номер");
	ТаблицаРезультат.Колонки.Добавить("Реализация");
	ТаблицаРезультат.Колонки.Добавить("Организация");
	ТаблицаРезультат.Колонки.Добавить("Подразделение");
	ТаблицаРезультат.Колонки.Добавить("Контрагент");

	ТаблицаРезультат.Колонки.Добавить("Номенклатура");
	ТаблицаРезультат.Колонки.Добавить("ЕдиницаИзмерения");
	ТаблицаРезультат.Колонки.Добавить("Количество");
	ТаблицаРезультат.Колонки.Добавить("Сумма");
	ТаблицаРезультат.Колонки.Добавить("СтавкаНДС");

	ТаблицаРезультат.Колонки.Добавить("СуммаБезНДС"); 
	ТаблицаРезультат.Колонки.Добавить("ТипНоменклатуры");
	ТаблицаРезультат.Колонки.Добавить("Цена");
	ТаблицаРезультат.Колонки.Добавить("ГруппаНоменклатуры");
	
	ТаблицаРезультат.Колонки.Добавить("РаспределенияЗатрат");
	ТаблицаРезультат.Колонки.Добавить("Процент");
	ТаблицаРезультат.Колонки.Добавить("Склад");
	
        ТаблицаРезультат.Колонки.Добавить("СебестоимостьБезНДС");
	ТаблицаРезультат.Колонки.Добавить("НадбавкаПоГруппе");
	ТаблицаРезультат.Колонки.Добавить("СебестоимостьСНадбавкой");
	ТаблицаРезультат.Колонки.Добавить("ВаловаяПрибыль");
	ТаблицаРезультат.Колонки.Добавить("Премия");

	// == Здесь сделаем запрос к базе и заполним на ТаблицуРезультат
        // == текст запроса не привожу ==

        Для Каждого СтрокаПродаж ИЗ НаборПродаж Цикл
	
          ЗаполнитьЗначенияСвойств(ТаблицаРезультат.Добавить(), СтрокаПродаж);

	КонецЦикла;

        Возврат ТаблицаРезультат; 
	
КонецФункции

 

В вышеуказанной функции получим из запроса следующие поля: Дата, Номер, Реализация, Организация, Подразделение, Контрагент, Номенклатура, ЕдиницаИзмерения, Количество, Сумма, СтавкаНДС, СуммаБезНДС, ТипНоменклатуры, Цена, ГруппаНоменклатуры, РаспределенияЗатрат, Процент, Склад.

Оставшиеся поля получать этим запросом не будем, в СКД, будем использовать их на закладке "ВычисляемыеПоля". (СебестоимостьБезНДС, НадбавкаПоГруппе, СебестоимостьСНадбавкой, ВаловаяПрибыль, Премия).

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

 

Традиционное использование внешних функций в СКД

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

 

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

 

Теперь, в конфигурации создаем общий модуль. Назовем его ОбщийМодульСКД. Ставим галки Сервер, ВызовСервере, Привилегированный.

В этом модуле пишем экспортные функции

Функция НадбавкаПоГруппе(Номенклатура) Экспорт

 //******

 Возврат НадбавкиПоГруппе;

КонецФункции


Функция СебестоимостьБезНДС(Сумма, Номенклатура, Дата) Экспорт

 //******

 Возврат СебестоимостиБезНДС;

КонецФункции


Функция СебестоимостьСНадбавкой(Сумма, Номенклатура, Дата) Экспорт

 //******

 Возврат СебестоимостиСНадбавкой;

КонецФункции


Функция ВаловаяПрибыль(Сумма, Номенклатура, Дата) Экспорт

 //******

 Возврат ВаловаяПрибыль;

КонецФункции


Функция Премия(Сумма, Номенклатура, Дата) Экспорт

 //******

 Возврат Премии;

КонецФункции

 

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

 

Рис.1. Определение внешний функций на закладке "Вычисляемые поля".

 

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

Так, здесь все понятно и достаточно просто.

 

Перенос внешних функций в расширение конфигурации

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

Для этого заходим Конфигурация - Расширения конфигурации (создать новое) - тип расширения "Дополнение". См рис.2.

 

Рис.2. Расширение конфигурации, используемое для СКД отчетов. (Дополнение).

 

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

Запускаем конфигурацию с включенным расширением в режиме предприятия, открываем отчет - работает (см. рис.3).

 

Рис.3. Отчет на основе СКД, использующий внешние функции, перенесенные в подключаемое расширение.

 

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

И неважно, как я буду собирать НаборДанных для компановки отчета - хоть это будет некий объект (таблица) как у меня в примере или запрос любой сложности) - здесь мы рассматриваем работу закладки "Вычисляемые поля". Порой, по своему опыту могу сказать, что корректно собрать вычисляемое поле бывает очень сложно, ввиду больших нагромождений формул с кучей параметром (производственные отчеты) - элементарно запутаешься через 10-15 минут "на вводе начальных данных".

Давайте сделаем основные выводы и напишем заключение по этой публикации.

 

Выводы и заключение

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

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

Это из плюсов.

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

Я попробовал обойти данный минус, поместив "внешние функции" в общий серверный модуль в расширение для конфигурации. Тип расширения поставил как "Дополнение". Как все мы убедились - сработало.

Буду рад, если вам понравилась эта статья.

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

Всем привет! Спасибо, что дочитали этот материал до конца!

 

Предыдущие материалы

Так же, прошу посмотреть мои предыдущие статьи:

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

Обсудим планы обмена. Способы регистрации объектов к обмену

1С + IIS + SSL: Перевод опубликованной базы на защищенное соединение https с сертификатом от Let's encrypt

Методика независимой системы "Подписки на события"

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. timeforlive 15 20.11.19 13:04 Сейчас в теме
Спасибо за статью. Полезный код, на мой взгляд. Сохраню себе, а то иногда ищешь шаблон по компоновке данных среди своих обработок или в гугле :)
dakork; Sergik_D; aximo; +3 Ответить
2. lmnlmn 64 20.11.19 13:22 Сейчас в теме
Не понял в чем, собственно, лайфхак? В штатном применении штатного механизма внешних функций в отчетах на СКД?
the1; aexeel; Vlad_2008; JohnyDeath; awk; утюгчеловек; zqzq; narutouzumaki_13; ПрестарелыйЗаяц; +9 Ответить
3. YPermitin 10277 20.11.19 13:46 Сейчас в теме
(0) Плюс.

Все отлично описано.
4. Yashazz 3617 20.11.19 14:08 Сейчас в теме
Дочитал до указания, что речь пойдёт о внешних функциях, и огорчился. Ну коллеги, и вот эта ерунда "в центре внимания"? Это ж очевидный баян, а не лайфхак.
sevushka; awk; PLAstic; DmitrySinichnikov; qwinter; ПрестарелыйЗаяц; ruslan-nf; +7 Ответить
5. dhurricane 20.11.19 14:17 Сейчас в теме
(4) Как указано в аннотации к статье, для автора это "относительно новый подход". :-)
PLAstic; lmnlmn; DmitrySinichnikov; ПрестарелыйЗаяц; +4 Ответить
6. Yashazz 3617 20.11.19 14:22 Сейчас в теме
(5) Там сказано "новый подход к одному из тривиальных методов" - классная формулировка. Ну, рад за автора)
PLAstic; ids79; +2 Ответить
7. Yashazz 3617 20.11.19 14:24 Сейчас в теме
А вообще, если уж говорить о безусловно правильно изложенных предпосылках, т.е. о ситуациях, в которых отчёт СКД нельзя делать "одним куском" - неважно, запрос это или источник данных - то говорить надо о вложенных СКД. Например, https://infostart.ru/public/173309/
Имхо, гораздо более грамотный и быстрый с точки зрения платформы, а главное, более "штатный" способ. Даёт всё - и фрагментируемость, и прозрачность, и удобство отладки.
8. ПрестарелыйЗаяц 20.11.19 14:52 Сейчас в теме
Ну блин это даже не скалярное выражение SQL, а по производительности еще похуже ...
9. HolodZar 21.11.19 04:03 Сейчас в теме
(8) скорость получения отчета складывается не только из скорости его формирования. возможно люди перед этим год вносили данные. и готовы подождать "лишние" секунды, минуты.
10. утюгчеловек 29 21.11.19 11:52 Сейчас в теме
Зачем так делать? Какую проблему решает автор?
В этой статье я опишу работу с закладкой СКД "Вычисляемые поля", а именно - применению внешних функций - как их использовать, что где нужно добавить, правильно "включить".

Это точно проблема?
Прикрепленные файлы:
11. user1216930 21.11.19 20:05 Сейчас в теме
12. dim369 26.11.19 14:59 Сейчас в теме
Такое чувство, что комментаторы сразу родились "гуру" и не понимают, что за ними стоят толпы новичков, которым каждая простая понятная статья на вес золота. Особенно про скалярные вычисления в SQL мне нравится - вот человек выпендрился... Да, в общем ничего особенно нового, но и ругать особенно не за что. Бывает что просто очевидные мысли в голову не придут - а тут вот они. Просто для кого-то действительно это новость... Добрее нужно, коллеги )) Имхо
rabota.v8.1c; niki295; +2 1 Ответить
13. PLAstic 268 28.11.19 12:55 Сейчас в теме
(12) Принципиальная разница в реакции. Баян? Ну удалил статью и всё. Это в идеале. На практике можно хотя бы добавить ссылки на другие статьи ИС, где эта тема поднималась не раз. Можно добавить дисклеймер, что да, друзья, метод вредный и кучу раз его 1С не рекомендует использовать вот тут, тут и тут.
Да и оправдывать откровенно неоптимальные и даже вредные для новичков статьи недопустимо. Не могу поддержать ваш комментарий.
14. dim369 28.11.19 17:08 Сейчас в теме
(13) Коллега, у вас похоже еще более жесткое отношение к предложенному методу. Однако вы первый, кто утверждает, что метод вредный. Есть пруфы, где его не рекомендуют и считают вредным? Да, можно по другому, но если человек сделал неоптимально по этой статье или вообще не сделал (но хотел идеально) - по мне лучше первый вариант. Имхо, конечно.
rabota.v8.1c; +1 Ответить
15. Olenevod 26 03.12.19 10:41 Сейчас в теме
По моему автор ясно написал, что использует иной подход к созданию больших отчетов, чтобы не запутаться и чтоб потом удобно поддерживать его и не сломать.
Конечно все знают что такое вычисляемые поля и с чем их едят, но ведь и использовать их можно по разному. Мне вот не пришла в голову такая идея с дроблением вычисления отдельных полей, когда реализовывал отчет по прогнозу расчета амортизации по дням (в НФО) с учетом переоценок, модернизаций, перемещений и т.д. (а условия там заковыристых там много).
Еще, например, понравилась идея с созданием общего модуля для вычисляемых полей в расширении. Чем не лайфхак?
16. mikl79 112 09.10.20 08:32 Сейчас в теме
17. mikl79 112 09.10.20 08:34 Сейчас в теме
сначала не получалось, но тут оказалось важным поставить 4-й параметр в функции: ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки, Истина)
Оставьте свое сообщение

См. также

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

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

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    3724    comol    21    

Формирование файла выгрузки номенклатуры в смарт-терминал АТОЛ Sigma из УТ 11.4

ККМ v8 v8::ОУ УТ11 Розничная и сетевая торговля (FMCG) Россия УУ Абонемент ($m)

Данная обработка позволяет автоматически формировать файл выгрузки в смарт-терминал АТОЛ Sigma из УТ 11.4.

2 стартмани

03.07.2020    3512    3    aximo    1    

Конвертация данных 2.1. Методика переноса остатков

Перенос данных из 1C8 в 1C8 v8 1cv8.cf УУ Бесплатно (free)

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

12.06.2020    8063    aximo    17    

Боремся с запросами в циклах. Мой опыт рефакторинга запросов

Рефакторинг и качество кода v8::Запросы 1cv8.cf Бесплатно (free)

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

02.03.2020    7280    aximo    55    

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

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

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

10.12.2016    38232    unichkin    74    

Создание ПКО на основе отчетов о розничных продажах

Обработка документов Кассовые операции Розничная торговля v8 Розница Розничная и сетевая торговля (FMCG) Россия УУ Абонемент ($m)

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

1 стартмани

06.02.2020    3576    4    aximo    3    

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

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

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

27.01.2020    35427    ids79    26    

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

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

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

15.01.2020    29077    John_d    22    

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

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

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

15.10.2018    31700    tormozit    104    

СКД. Шаг 3. Используем макеты для оформления отчета

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

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

13.01.2020    19204    aximo    14    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    21973    kuzyara    38    

30 задач. Странных и не очень

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

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    18444    YPermitin    58    

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

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

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

20.09.2012    79007    tormozit    131    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

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

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    9375    Sibars    19    

Полезные процедуры и функции для программиста

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

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

07.10.2019    32441    HostHost    40    

Таблица значений. Нюансы

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

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    38480    Yashazz    50    

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

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

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

11.07.2007    49700    tormozit    48    

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

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

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

25.09.2019    24089    YPermitin    40    

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

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

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

18.09.2019    20122    YPermitin    36    

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

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

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

06.09.2019    62570    rpgshnik    68    

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

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

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

10.09.2017    46321    tormozit    74    

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

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

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

05.09.2019    56102    ids79    54    

Регистры бухгалтерии. Общая информация

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

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    31878    YPermitin    24    

Три костыля. Сказ про фокусы в коде

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

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

03.09.2019    26816    YPermitin    80    

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

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

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

25.04.2019    16347    m-rv    2    

Отслеживание выполнения фонового задания

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

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

17.08.2019    34288    ids79    16    

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

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

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

08.08.2019    101142    ids79    56    

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    42132    avalakh    26    

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

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

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

16.04.2019    20855    m-rv    17    

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

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

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

31.07.2019    27685    json    15    

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

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

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

26.07.2019    71878    ids79    12    

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

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

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

17.07.2019    38967    ids79    27    

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

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

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

01.06.2018    31900    m-rv    21    

Регистры сведений. За кулисами

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

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    27799    YPermitin    14    

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

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

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

04.07.2019    20232    SeiOkami    50    

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

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

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

02.07.2019    55992    ids79    17    

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

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

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

05.12.2017    28755    itriot11    34    

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

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

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

25.06.2019    58410    ids79    26    

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

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

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

11.06.2019    26721    dmurk    146    

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

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

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

16.05.2019    47859    YPermitin    30    

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

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

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

27.01.2016    77998    Serginio    110    

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

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

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

07.04.2019    37336    ellavs    126    

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

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

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

28.03.2019    28340    ellavs    90    

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

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

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

14.03.2019    33748    YPermitin    53    

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

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

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

10.11.2018    36831    ids79    40    

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

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

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

07.03.2019    60303    ids79    46    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

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

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

26.02.2019    23714    Vladimir Litvinenko    28    

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

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

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

25.07.2018    29948    grumagargler    28    

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

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

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

03.02.2019    44629    ids79    11