СКД. Лайфхак №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 61 20.11.19 13:22 Сейчас в теме
Не понял в чем, собственно, лайфхак? В штатном применении штатного механизма внешних функций в отчетах на СКД?
the1; aexeel; Vlad_2008; JohnyDeath; awk; утюгчеловек; zqzq; narutouzumaki_13; ПрестарелыйЗаяц; +9 Ответить
3. YPermitin 8551 20.11.19 13:46 Сейчас в теме
(0) Плюс.

Все отлично описано.
4. Yashazz 3256 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 3256 20.11.19 14:22 Сейчас в теме
(5) Там сказано "новый подход к одному из тривиальных методов" - классная формулировка. Ну, рад за автора)
PLAstic; ids79; +2 Ответить
7. Yashazz 3256 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. утюгчеловек 12 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 253 28.11.19 12:55 Сейчас в теме
(12) Принципиальная разница в реакции. Баян? Ну удалил статью и всё. Это в идеале. На практике можно хотя бы добавить ссылки на другие статьи ИС, где эта тема поднималась не раз. Можно добавить дисклеймер, что да, друзья, метод вредный и кучу раз его 1С не рекомендует использовать вот тут, тут и тут.
Да и оправдывать откровенно неоптимальные и даже вредные для новичков статьи недопустимо. Не могу поддержать ваш комментарий.
14. dim369 28.11.19 17:08 Сейчас в теме
(13) Коллега, у вас похоже еще более жесткое отношение к предложенному методу. Однако вы первый, кто утверждает, что метод вредный. Есть пруфы, где его не рекомендуют и считают вредным? Да, можно по другому, но если человек сделал неоптимально по этой статье или вообще не сделал (но хотел идеально) - по мне лучше первый вариант. Имхо, конечно.
rabota.v8.1c; +1 Ответить
15. Olenevod 24 03.12.19 10:41 Сейчас в теме
По моему автор ясно написал, что использует иной подход к созданию больших отчетов, чтобы не запутаться и чтоб потом удобно поддерживать его и не сломать.
Конечно все знают что такое вычисляемые поля и с чем их едят, но ведь и использовать их можно по разному. Мне вот не пришла в голову такая идея с дроблением вычисления отдельных полей, когда реализовывал отчет по прогнозу расчета амортизации по дням (в НФО) с учетом переоценок, модернизаций, перемещений и т.д. (а условия там заковыристых там много).
Еще, например, понравилась идея с созданием общего модуля для вычисляемых полей в расширении. Чем не лайфхак?
Оставьте свое сообщение

См. также

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

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

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

22.04.2020    4420    23    Infostart    2    

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

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

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

2 стартмани

03.07.2020    615    0    aximo    0    

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

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

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

12.06.2020    2902    0    aximo    15    

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

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

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

02.03.2020    5676    0    aximo    35    

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

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

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

10.12.2016    35342    0    unichkin    45    

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

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

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

1 стартмани

06.02.2020    1716    1    aximo    3    

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

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

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

27.01.2020    18530    0    ids79    26    

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

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

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

15.01.2020    18037    0    John_d    22    

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

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

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

15.10.2018    27726    0    tormozit    100    

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

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

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

13.01.2020    11267    0    aximo    13    

Последовательности событий. Шпаргалка

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

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

30.12.2019    13080    0    kuzyara    33    

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

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

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

02.12.2019    14450    0    YPermitin    72    

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

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

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

20.09.2012    75244    0    tormozit    129    

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

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

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

22.11.2019    6526    0    Sibars    19    

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

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

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

01.10.2019    27849    0    Yashazz    45    

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

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

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

25.09.2019    17604    0    YPermitin    35    

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

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

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

11.07.2007    46143    0    tormozit    38    

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

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

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

18.09.2019    17577    0    YPermitin    36    

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

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

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

06.09.2019    38934    0    rpgshnik    62    

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

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

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

05.09.2019    41012    0    ids79    52    

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

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

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

10.09.2017    42109    0    tormozit    74    

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

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

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

05.09.2019    24091    0    YPermitin    24    

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

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

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

03.09.2019    22918    0    YPermitin    80    

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

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

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

17.08.2019    27894    0    ids79    16    

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

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

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

25.04.2019    15283    0    m-rv    2    

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

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

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

08.08.2019    63664    0    ids79    40    

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

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

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

02.08.2019    28869    0    avalakh    21    

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

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

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

26.07.2019    47879    0    ids79    11    

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

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

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

16.04.2019    18980    0    m-rv    17    

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

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

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

17.07.2019    31083    0    ids79    27    

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

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

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

09.07.2019    23569    0    YPermitin    13    

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

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

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

04.07.2019    17562    0    SeiOkami    50    

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

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

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

01.06.2018    28654    0    m-rv    21    

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

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

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

25.06.2019    45422    0    ids79    20    

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

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

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

11.06.2019    22695    0    dmurk    144    

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

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

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

16.05.2019    38033    0    YPermitin    30    

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

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

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

05.12.2017    26703    0    itriot11    34    

Выполнение внешней обработки в фоновом задании

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

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    26267    0    Eret1k    23    

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

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

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

07.04.2019    31725    0    ellavs    126    

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

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

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

28.03.2019    25126    0    ellavs    88    

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

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

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

27.01.2016    73155    0    Serginio    108    

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

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

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

14.03.2019    28568    0    YPermitin    53    

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

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

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

07.03.2019    47827    0    ids79    45    

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

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

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

03.02.2019    34166    0    ids79    9    

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

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

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

10.11.2018    32154    0    ids79    40    

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

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

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

14.12.2018    37489    0    ids79    72    

EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации

Практика программирования Обмен через XML v8 v8::УФ БП3.0 УТ11 Россия Бесплатно (free)

В статье подробно описан реальный пример доработки обмена данными через EnterpriseData (универсальный формат обмена) между конфигурациями УТ 11.4 и Бухгалтерия 3.0

16.11.2018    33921    0    ids79    32    

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

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

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

25.07.2018    27356    0    grumagargler    26    

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

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

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

13.11.2018    40801    0    Unk92    21