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

Публикация № 1540606 27.10.21

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

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

Оглавление

  1. Расшифровка строковых полей
  2. Чем соединение наборов данных лучше соединения таблиц в запросе
  3. Функция ВычислитьВыражение не всесильна. Иногда надо просто правильно посчитать итоги
  4. Макеты можно использовать не только для оформления
  5. Для чего стоит использовать расширения языка запросов при включенном Автозаполнении

 

1. Расшифровка строковых полей 

В отчете есть поле ссылочного типа (Номенклатура, Клиент, Приходная накладная). А мы выводим его дочернее поле. Например, для номенклатуры — полное наименование, для Клиента — публичное наименование. Красота! Только карточку номенклатуры или клиента уже не открыть (но иногда очень хочется) — в данных расшифровки нет ссылки.



рис. 1. В отчет выведено дочернее поле тип строка

 

Как же сохранить расшифровку? Есть три варианта — с помощью условного оформления, с помощью выражения представления, и последний способ — создать свой макет поля.
Вариант с использованием условного оформления наиболее практичный, так как позволяет решить задачу без конфигурирования, и более гибкий. Итак, там, где выводилось поле Клиент.Публичное наименование выводим поле Клиент и создаем элемент условного оформления: оформляемое поле Клиент, условие не ставим, оформление в параметре Текст — выбираем поле компоновки данных Клиент.Публичное наименование.

 


рис. 2. Настройка условного оформления для отображения дочернего поля

 

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

 


рис. 3. Настройка свойства Выражение представления

 

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

 


рис. 4. Настройка макета поля

Все три способа продемонстрированы в этом видео

 

2. Чем соединение наборов данных лучше соединения таблиц в запросе

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



рис. 5. Различия в результатах при соединении таблиц и соединении наборов данных СКД

 

А вот что пишут на ИТС: Несмотря на то, что запись встречается в группировке несколько раз, при расчете итога каждая запись будет учтена только один раз. Как это работает в динамике можно посмотреть в этом видео.

 

3. Функция ВычислитьВыражение не всесильна. Иногда надо просто правильно посчитать итоги

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

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

 


рис. 6. Постановка задачи

 

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

 


рис. 7. Решение с помощью ВычислитьВыражение. Промежуточный результат

 

На уровне группировки Контрагент появляются неведомые значения.
Исправляем выражение в ресурсе — помещаем детальные записи в массив, берем максимум — Максимум (ВычислитьВыражениеСГруппировкойМассив («СуммаПоследняя»)).
В этом случае в группировке Контрагент последняя сумма отображается правильно.

 


рис. 8. Решение с помощью ВычислитьВыражение. Итоги в группировках верные

 

Идем дальше. А что в общих итогах? В общих итогах вовсе не сумма. Поэтому все, что далось непосильным трудом, имеет ограниченное применение. Как это решалось можно посмотреть в этом видео.


рис. 9. Решение с помощью ВычислитьВыражение. Общие итоги неверные

 

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



рис. 10. Настройка ролей для расчета остатков

 

И вот результат — для ресурса Сумма в группировках точно такие же значения, что и для ресурса Сумма последняя, и в общих итогах все правильно.

 


рис. 11. Результат решения с помощью расчета остатков

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

 

4. Макеты можно использовать не только для оформления

Каждый, кто хотя бы один раз что-то создавал в конструкторе СКД на вкладке Макеты, знает, что макеты бывают четырех видов. И что, как правило, создание собственного макета приводит к потере гибкости. Но сегодня не про это.


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

 


рис. 12. Настройка полей расшифровки макета поля

 

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


рис. 13. Результат работы расшифровки

 

5. Для чего стоит использовать расширения языка запросов при включенном Автозаполнении

Что такое расширение языка запросов? Это такие синтаксические конструкции в тексте запроса, заключенные в фигурные скобки, которые определяют поведение для компоновщика макета компоновки данных. В конструкторе запроса они доступны на вкладке Компоновка данных.

 


рис. 14. Что такое расширение языка запросов

 

Зачем, когда используем флаг автозаполнение? 
Есть минимум два сценария, когда это оправдано. Первый — когда требуется установить необязательный отбор по дате документа. Что значит необязательный? Это значит, что мы предлагаем пользователю установить параметры, но если пользователь откажется их использовать, ошибки не будет.


рис. 15. Необязательный отбор по дате документа

 

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

 


рис. 16. Добавление своего поля отбора

 

Так выглядит настройка, когда два поля отбора, и когда единое поле отбора (так удобнее). Подробнее можно посмотреть в этом видео.

 


рис. 17. Преимущество настройки - единое поле отбора

 

Когда надо наложить отбор на одно и то же поле в объединении запросов. Если в этом случае наложить отбор на поле Склад, это приведет к тому, что в запросе по РН Продажи ничего не будет выбрано.

 


рис. 18. Поле склад в объединении запросов


рис. 19. Результат наложения отбора по полю Склад при такой настройке

 

Поэтому, когда выполняется объединение запросов и требуется накладывать не во всех запросах объединения, обычно в этом случае отключается отбор по полю (в данном случае Склад) и используется добавленное поле (в нашем случае СкладОтбор). И все работает.

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

 


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

 

Рекомендуем освоить создание схемы без Автозаполнения — сразу придет понимание, как это работает.
 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. sapervodichka 4687 27.10.21 11:42 Сейчас в теме
Годный контент! Спасибо!
wolfalan; rozer; Neti; +3 Ответить
2. aximo 1814 27.10.21 12:02 Сейчас в теме
по макетам - можно вот эту статейку почитать https://infostart.ru/1c/articles/1178202/
3. the1 945 28.10.21 09:14 Сейчас в теме
Коллеги, вопрос.

Каким образом можно (без отключения автозаполнения!) запретить СКД накладывать отборы на временные таблицы, а применять отбор только на последний запрос пакета?

Например, есть запрос:
ВЫБРАТЬ
	Т.Подразделение КАК Подразделение,
	Т.СтатьяФинансирования КАК СтатьяФинансирования
ПОМЕСТИТЬ ВТСвойстваПодразделений
ИЗ
	РегистрСведений.БухучетЗарплатыПодразделений КАК Т
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Подразделения.Ссылка КАК Ссылка,
	СвойстваПодразделений.СтатьяФинансирования КАК СтатьяФинансирования,
	СвойстваПодразделений.СтатьяФинансирования.Код ЕСТЬ NULL КАК НетФинансирования
ИЗ
	Справочник.ПодразделенияОрганизаций КАК Подразделения
		ЛЕВОЕ СОЕДИНЕНИЕ ВТСвойстваПодразделений КАК СвойстваПодразделений
		ПО (СвойстваПодразделений.Подразделение = Подразделения.Ссылка)
Показать


СКД, при установке отбора по подразделению, преобразует его в запрос
ВЫБРАТЬ
	Т.Подразделение КАК Подразделение,
	Т.СтатьяФинансирования КАК СтатьяФинансирования
ПОМЕСТИТЬ ВТСвойстваПодразделений
ИЗ
	РегистрСведений.БухучетЗарплатыПодразделений КАК Т
ГДЕ
	Т.Подразделение = &П
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Подразделения.Ссылка КАК Подразделение,
	СвойстваПодразделений.СтатьяФинансирования КАК СтатьяФинансирования,
	СвойстваПодразделений.СтатьяФинансирования.Код ЕСТЬ NULL КАК НетФинансирования,
	Подразделения.Представление КАК ПодразделениеПредставление,
	ПРЕДСТАВЛЕНИЕССЫЛКИ(СвойстваПодразделений.СтатьяФинансирования) КАК СтатьяФинансированияПредставление
ИЗ
	Справочник.ПодразделенияОрганизаций КАК Подразделения
		ЛЕВОЕ СОЕДИНЕНИЕ ВТСвойстваПодразделений КАК СвойстваПодразделений
		ПО (СвойстваПодразделений.Подразделение = Подразделения.Ссылка)
ГДЕ
	Подразделения.Ссылка = &П
Показать


то есть дважды накладывает отбор. Как ей сказать, что мне нужен только последний отбор?

ПС: Пример сферический в вакууме, важен сам принцип)
Прикрепленные файлы:
ВнешнийОтчет1.erf
4. toypaul 68 28.10.21 09:41 Сейчас в теме
(3) Вот так работает

ВЫБРАТЬ
ПриходнаяНакладная.Ссылка КАК Ссылка,
ПриходнаяНакладная.Контрагент КАК КонтрагентПриход
ПОМЕСТИТЬ приход
ИЗ
Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
РасходнаяНакладная.Ссылка КАК Ссылка,
РасходнаяНакладная.Контрагент КАК Контрагент,
приход.Ссылка КАК Ссылка1
ИЗ
Документ.РасходнаяНакладная КАК РасходнаяНакладная
ЛЕВОЕ СОЕДИНЕНИЕ приход КАК приход
ПО РасходнаяНакладная.Контрагент = приход.КонтрагентПриход
{ГДЕ
РасходнаяНакладная.Контрагент.*}
5. the1 945 28.10.21 09:45 Сейчас в теме
(4) Ну то есть тупо переименовать поле в первом запросе пакета?
6. toypaul 68 28.10.21 09:46 Сейчас в теме
(5) лучше умно переименовать :) и на досуге полезно почитать https://infostart.ru/1c/articles/1219807/
7. echo77 1452 28.10.21 11:15 Сейчас в теме
(3)
Используя расширение языка запросов во временной таблице задать другой псевдоним полю:
{ВЫБРАТЬ
	Подразделение.* КАК НеИспользовать}

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

То есть, вот так:
ВЫБРАТЬ
    Т.Подразделение КАК Подразделение,
    Т.СтатьяФинансирования КАК СтатьяФинансирования
ПОМЕСТИТЬ ВТСвойстваПодразделений
{ВЫБРАТЬ
	Подразделение.* КАК НеИспользовать}
ИЗ
    РегистрСведений.БухучетЗарплатыПодразделений КАК Т
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    Подразделения.Ссылка КАК Ссылка,
    СвойстваПодразделений.СтатьяФинансирования КАК СтатьяФинансирования,
    СвойстваПодразделений.СтатьяФинансирования.Код ЕСТЬ NULL КАК НетФинансирования
ИЗ
    Справочник.ПодразделенияОрганизаций КАК Подразделения
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСвойстваПодразделений КАК СвойстваПодразделений
        ПО (СвойстваПодразделений.Подразделение = Подразделения.Ссылка)
Показать


Если во временной таблице используется обращение к виртуальной таблице, в которой накладывается нежелательный отбор, то так же меняем псевдоним поля в параметрах виртуальной таблицы:
{Подразделение.* КАК НеИспользовать}

В этом случае среди полей набора данных будет добавлено поле НеИспользовать - для него можно наложить ограничение доступности, чтобы не смущало пользователей
independ; maytuganov; AlexK_2012; JohnyDeath; i_a; starik-2005; Irwin; Vond; Neti; +9 Ответить
8. the1 945 28.10.21 12:10 Сейчас в теме
9. Neti 1685 28.10.21 12:37 Сейчас в теме
(7) Ничоси! А что так можно было?
10. Vond 28.10.21 12:58 Сейчас в теме
(7) Однако же... Прекрасный лайфхак. Горизонты расширены, спасибо )
AlexK_2012; echo77; +2 Ответить
13. Yashazz 4117 29.10.21 10:16 Сейчас в теме
(7) При программной работе с СКД не прокатывает. По крайней мере, у меня ни разу не прокатило, сколько ни пытался - игнорит всё это. Только через конструктор в конфигураторе.
11. mixsture 28.10.21 13:17 Сейчас в теме
2. Чем соединение наборов данных лучше соединения таблиц в запросе


И есть еще "чем хуже". Хуже тем, что меняет левые соединения на полные по своему разумению вне зависимости от того, что вы задали.
(кажется, это срабатывало при отборе по полю присоединяемой таблицы. Причем любому, даже "Не заполнено"). Как по мне - это способно перекрыть все плюсы, т.к. вызывает трудноуловимые баги в зависимости от отборов у пользователя.
12. echo77 1452 28.10.21 16:18 Сейчас в теме
(11) На ИТС пишут
В схеме компоновки данных нет указания типа связи. Все связи считаются левыми внешними соединениями. То есть запись родительского набора данных будет использоваться в компоновке даже в том случае, если для нее не найдены записи в зависимом наборе.

Поделитесь примером, как у вас получилось создать полное соединение?
14. Yashazz 4117 29.10.21 10:44 Сейчас в теме
(12) Это в конкретике возникает. Бывают случаи, не объяснимые с позиции известных материалов и обычной логики, когда соединение отрабатывает как полное. Уже обсуждалось пару раз на ИС ещё в 12-13 годах.
15. echo77 1452 29.10.21 10:51 Сейчас в теме
(14) Я и прошу конкретные примеры - тоже хочу посмотреть.
19. Zhek 02.11.21 07:42 Сейчас в теме
(11)
И есть еще "чем хуже"...

Главное "хуже" - это производительность. Наборы данных, похоже, соединяются аналогом "вложенных циклов" SQL, т.е перебором строк. Если в наборах много строк, то все печально.
Как-то давно типовой отчет по среднегодовой стоимости имущества формировался 2 часа. В одном наборе основные средства - 80 000 штук, в другом наборе - доп. сведения по основным средствам из регистра, тоже в районе 80 000 штук. После того, как переписали на левое соединение в запросе, отчет стал формироваться нормально.
16. mixsture 29.10.21 12:31 Сейчас в теме
Давно было, но кажется так: делаем 2 источника со связью, ставим отбор по полю первой таблицы + отбор по полю второй. В результате получаем усеченную выборку так, как будто соединение полное (т.е. выкидываются строки первой таблицы, которых нет во второй). Убираем отбор по полю второй таблицы и соединение превращается в левое. Причем работает абсолютно независимо от вида отбора и значений отбора.
17. echo77 1452 29.10.21 14:14 Сейчас в теме
(16)
получаем усеченную выборку так, как будто соединение полное (т.е. выкидываются строки первой таблицы, которых нет во второй)

Здесь описано ВНУТРЕННЕЕ соединение.
И да, если при соединении наборов данных данных СКД наложить отбор по полю Приемника связи - мы получим ВНУТРЕННЕЕ соединение. Что вполне логично (при связи таблиц в запросе результат такой же)
Про виды соединений можно почитать здесь

p.s. Если интересно как работают такие штуки в СКД и хотите получить ответы - пишите мне в телеграм, я провожу курс.
18. mixsture 29.10.21 18:12 Сейчас в теме
(17) да, пардон. Внутреннее, конечно. Отвлекался, пока писал. И нет, не логично и при связе таблиц в запросе совсем по-другому работает (там левое остается левым, но использование поля без выкидывания null-значений делает любое условие ложным, когда натыкается на null. А тут левое становится внутренним и не важно, избавляетесь вы от null-значений или нет - все равно получаете усеченную выборку. Более того, это никак не переспорить, когда нужно другое поведение отчета).
Оставьте свое сообщение

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

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

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020    4718    Eugen-S    23    

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

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

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

06.04.2021    11080    Neti    8    

Неочевидные нюансы записи управляемой формы

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

Разберем несколько нюансов записи управляемой формы.

02.04.2021    13379    SeiOkami    54    

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

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

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

30.03.2021    13867    Neti    21    

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

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

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

27.01.2016    86045    Serginio    116    

Обзор полезных методов БСП 3.1.4

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

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

25.03.2021    42912    rayastar    51    

Звуковое управление в 1С 8.3

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

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    7337    velemir    33    

Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)

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

Покажу точки входа для доработки "типового" проведения документов в ERP для регистров оперативного учета. Рассмотрим три основные ситуации: нужно изменить имеющееся проведение документа; нужно сделать записи в существующие регистры; нужно с нуля описать алгоритм проведения в добавленный регистр. Пример реализован на 1С:ERP Управление предприятием 2 (2.5.4.120)

10.01.2021    11150    BuriyLesha    10    

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

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

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

10.12.2016    41225    unichkin    74    

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

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

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

28.12.2020    9084    comol    31    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

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

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

30.08.2020    20662    quazare    34    

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

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

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

15.10.2018    36300    tormozit    106    

Серверные вызовы, которые нельзя вызывать

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

Не баян, а классика. Рассмотрим особенность платформы настолько же древнюю, как сами УФ.

12.05.2020    9494    SeiOkami    34    

Форма выбора (подбор) в управляемых формах

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

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

08.05.2020    81877    user5300    24    

Конвертация расширения cfe в конфигурацию сf руками

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

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

18.03.2020    11044    wtlz    35    

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

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

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

20.09.2012    82984    tormozit    131    

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

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

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

27.01.2020    67252    ids79    27    

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

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

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

15.01.2020    44446    John_d    22    

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

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

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

30.12.2019    36194    kuzyara    38    

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

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

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

11.07.2007    54661    tormozit    51    

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

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

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

02.12.2019    24652    YPermitin    63    

Обновление релиза измененной типовой конфигурации

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

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

29.11.2019    15519    John_d    76    

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

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

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

22.11.2019    12504    Sibars    19    

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

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

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

10.09.2017    51462    tormozit    74    

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

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

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

25.10.2019    32043    aximo    38    

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

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

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

01.10.2019    53884    Yashazz    56    

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

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

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

25.09.2019    33555    YPermitin    58    

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

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

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

25.04.2019    18089    m-rv    3    

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

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

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

18.09.2019    21998    YPermitin    36    

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

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

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

06.09.2019    105250    rpgshnik    77    

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

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

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

05.09.2019    79065    ids79    56    

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

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

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

16.04.2019    23445    m-rv    18    

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

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

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

05.09.2019    47438    YPermitin    25    

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

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

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

03.09.2019    30347    YPermitin    81    

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

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

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

17.08.2019    45663    ids79    22    

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

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

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

01.06.2018    37257    m-rv    23    

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

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

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

08.08.2019    155627    ids79    75    

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

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

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

02.08.2019    61829    avalakh    27    

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

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

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

31.07.2019    42707    json    17    

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

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

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

05.12.2017    30828    itriot11    34    

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

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

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

26.07.2019    107597    ids79    17    

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

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

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

17.07.2019    49049    ids79    27    

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

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

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

09.07.2019    34301    YPermitin    15    

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

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

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

04.07.2019    22653    SeiOkami    53    

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

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

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

02.07.2019    85912    ids79    18    

Регистры накопления. Виртуальные таблицы. Часть №2: "Остатки" и "Остатки и обороты"

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

Описание работы платформы 1С:Предприятие 8.2 с виртуальными таблицами регистров накопления "Остатки" и "Остатки и обороты". Анализ SQL-запрос при работе с виртуальными таблицами

22.05.2019    45320    YPermitin    8    

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

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

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

16.05.2019    64886    YPermitin    31