Как выполнить код в типовой форме отчёта

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

ReportCurrency (MetaData)

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


git

Git commit

«Just for fun» — Линус Торвальдс

 

Имя Линуса Торвальдса известно всем, кто хоть как-то имеет отношение к IT. Этот человек дважды изменил отрасль. Первый раз, конечно же, когда создал операционную систему Linux, которая стала стандартом на серверах и всё чаще используется на десктопах. Однако, мало кто знает о втором достижении Торвальдса — создании Git.

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

Однако, среди программистов навык работы с Git наиболее востребован. Неделю назад наткнулся на качественный обучающий курс. Посему и публикую ссылку на него (плейлист в YouTube):

 

 


java

Ещё кофе? (разработка бота для BlackJack на Java)

Некоторое время назад начал изучать Java. Кто не знает — язык программирования от Sun, ныне им владеет Oracle. С первых дней инструмент порадовал своей мощью. В первую очередь продвинутыми средствами объектно-ориентированного программирования. Всё строго, точно и функционально.

Позанимавшись немного с самоучителем, я решил сделать небольшой проект. В образовательных целях. Задачу поставил себе так: написать самообучающийся бот для игры в BlackJack. «Мозгами» боту служит искусственная нейронная сеть, привязанная к каждому из виртуальных картёжников. На вход сети подаём сигналы об имеющихся на руках у игрока картах. Выход ещё более простой — решение взять новую карту или остановиться. Ну и несколько скрытых полносвязных слоёв, где и происходит вся «магия». Обучать агентов будем, используя генетические алгоритмы, заставляя многократно играть с себе подобными.


СКД Лого

Программный вывод СКД

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

Но как быть, если требуется вывести данные, вне Отчёта? Встроенный язык 1С:Предприятия предлагает гибкие (и достаточно сложные) API для взаимодействия с объектами СКД. Однако, часто задача стоит в простом выводе на форму документа на СКД, задав разве что парочку параметров. Просто вывести. Хотелось бы, чтобы это делалось одной строкой кода, разбираться в перипетиях объектов нет ни сил, ни желания. Предлагаю готовый код для этого с кратким примером.


Условное оформление с группировкой в 1С

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

Постановка

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

Визуальная настройка

Для начала попытаемся решить задачу с помощью визуальной настройки условного оформления. Для этого выбираем интересующую форму и открываем ссылку УсловноеОформление в Конфигураторе. Задаём Отбор, Оформление и выбираем Оформляемые поля.


Глубокие мечты

Продолжим расширять границы привычного, смешивая различные области искусства. На этот раз мы соединим живопись и …программирование.

DeepDream

Некоторое время назад я стал увлекаться искусственным интеллектом и нейронными сетями. Среди них есть и так называемые «мечтающие сети». Одна из реализаций носит название «DeepDream» . Принцип работы примерно следующий: Имеется нейронная сеть, натренированная на наборе ImageNet, включающий в себя около 14 миллионов изображений, разделенных по 21 тысяче категорий. Сети предоставляется какая-то картинка, DeepDream отыскиевает в ней знакомые элементы и «дорисовывает» их, согласно своим представлениям. Получаются своеобразные психоделические картинки. Из побочных эффектов можно отметить большое количество глаз и носов животных в сгенерированных изображениях, что объясняется большим количеством животных в обучающей выборке.


vendor

Современные веяния

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

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


Пап, дай порулить Луноход

Мои друзья из родного Стерлитамака, с которыми я когда-то делал warcastle.ru, в минувший вторник выиграли хакатон «Кос Мос Хак» в Москве. Они представили приложение-симулятор вождения Лунохода.

Так, стоп. Что это такое? О чём вообще речь?

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


apk-build

Сборка мобильного приложения на 1С (видео-руководство)

Разобравшись с быстрым вариантом создания приложения на мобильной платформе 1С:Предприятия, можно начинать творить свою конфигурацию, проверяя работу на подручном девайсе. Однако, рано или поздно захочется собрать из неё apk-файл для дальнейшего распространения среди устройств, не имеющих предустановленной мобильной платформе. И вот здесь начинаются сложности. К сожалению, это не столь быстрый и простой процесс. Необходимо устанавливать компоненты, настраивать их, запускать сборщик, настраивать его, получать ключ приложения и т.д. Последовательность действий и их назначение не всегда очевидны. Честно признаюсь, мне потребовалось два вечера, чтобы пройти весь путь.

Тем не менее, радует тот факт, что в Сети есть достаточно подробные руководства, как это можно провернуть. Я использовал вот это видео — и всё получилось (за указанные 2 вечера):


checklist

Чек-лист видимости элемента

Иногда при разработке встречается такая проблема: размещённый на форме элемент не отображается в режиме 1С:Предприятия. Хотя, по задумке и всем представлениям его должно быть видно. Что же делать с «чудесным исчезновением?». Причин подобного поведения множество. Составил для себя чек-лист, покрывающий большинство подобных ситуаций.

Достаточно просто методично проверить каждый пункт — и «беглец» отыщется.

 

Подробный чек-лист

Видимость элемента

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