1с управляемые формы расширение встроенный язык

Содержание

Встроенный язык

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

Встроенный язык имеет много общих черт с другими языками, такими как Pascal, Java Script, Basic, что облегчает его освоение начинающими разработчиками. Однако он не является прямым аналогом какого-либо из перечисленных языков.

Событийная ориентированность встроенного языка

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

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

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

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

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

Универсальные коллекции значений

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

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

Перечислим кратко их возможности:

Массив

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

Структура

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

Соответствие

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

Список значений

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

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

Таблица значений

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

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

Дерево значений

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

COMSafeArray

Представляет собой объектную оболочку над многомерным массивом SAFEARRAY из COM. Позволяет создавать и использовать SAFEARRAY для обмена данными между COM-объектами.

Фиксированный массив

Неизменяемый массив. Массив заполняется системой при инициализации объектов данного типа или разработчиком, с помощью конструктора.

Редактор текстов и модулей

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

Источник

Заметки из Зазеркалья

Реализовано в версии 8.3.9.1818.

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

А если подробнее, то изменять вы можете любые модули, кроме модулей обычных форм:

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

Здесь и дальше, чтобы вам было проще читать, вместо словосочетания «процедура/функция» мы будем использовать слово «метод». Итак, все изменения, которые вы можете выполнять в модулях, можно разделить на 4 группы:

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

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

Читайте также:  Говяжий язык в казане на костре

Собственные модули
Вы можете создавать в расширении собственные общие модули.

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

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

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

Перехват вызовов методов

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

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

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

Аннотация &Перед

Аннотация с таким именем означает, что ваш перехватчик будет выполнен до того, как начнётся выполнение типового метода.

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

Аннотация &После

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

Аннотация &Вместо

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

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

Последняя комбинация перехватчиков (&Перед и &После) будет исполняться следующим образом:

Если же вы перехватываете типовую функцию, а не процедуру, то вы можете использовать только перехватчик &Вместо.

Вызов метода, перекрытого аннотацией &Вместо

Получается некоторая несправедливость. Процедуру вы можете перекрыть или обрамить. А функцию – только полностью перекрыть.

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

На встроенном языке такая функция-перехватчик может выглядеть следующим образом:

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

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

Что лучше, &Перед, &После или &Вместо?

Когда вы перехватываете методы типовой конфигурации, всегда полезно помнить о двух вещах:

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

Также вполне приемлемым является использование перехватчика &Вместо и метода ПродолжитьВызов(). Однако тут у вас появляется возможность и соблазн вызывать типовой метод не всегда, а в зависимости от каких-то своих собственных условий. К этому нужно подходить осторожно и помнить, что в тот момент, когда вы отказываетесь от вызова типового метода, вы отказываетесь от вызова не только того метода, который есть в конфигурации сейчас, но и от всех его вариантов, которые появятся в будущем. А в будущем, например, в нём могут появиться важные и полезные изменения.

И, наконец, самый «нехороший» вариант – это полное перекрытие типового метода перехватчиком &Вместо. В этом случае типовой обработчик безусловно не будет выполняться ни сейчас, ни в будущих версиях. То есть всю ответственность за работу будущих версий конфигурации вы берёте на себя, на своё расширение. Наверняка есть ситуации, когда такое полное перекрытие необходимо, но мы призываем вас подходить к его использованию очень взвешенно и осторожно.

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

Здесь, прежде чем рассказывать, необходимо сделать небольшое пояснение. Важной, можно сказать, «идеологической» характеристикой расширений является их автономность. То есть расширения должны проектироваться так, чтобы не зависеть друг от друга.

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

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

Что в конфигураторе, что в режиме 1С:Предприятие, последнее подключенное расширение находится в списке последним.

Таким образом, в этом примере внизу находится типовая, наверху находится Расширение2, а между ними – Расширение1. Каждое следующее расширение перехватывает (расширяет) то, что находится под ним.

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

Пример 1

Например, если в двух расширениях перехвачен (обрамлён) один и тот же типовой метод, то последовательность вызова обработчиков будет следующая:

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

Пример 2

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

Пример 3

Важным для понимания моментом является тот факт, что при перекрытии с помощью аннотации &Вместо, по факту перекрывается не только вызов основного метода, но также и перехватчиков, находящихся ниже в «пироге».

В этом примере будет выполнен только перехватчик &Вместо из Расширения2. Потому что он перекрывает собой типовой метод, то есть весь «пирог», который находится под ним.

Пример 4

Это, по сути, вариация на тему второго примера, но когда под верхним расширением находится расширение, также «прокидывающее» вниз вызов типовой процедуры.

По сути, он просто лишний раз визуализирует тот факт, что вызов типового метода относится ко всему «пирогу», находящемуся под расширением. Именно поэтому после вызова перехватчика из Расширения2, будет вызван перехватчик из Расширения1. Потому что в оставшемся «пироге» именно он перекрывает вызов типового метода, до которого хочется «дотянуться» Расширение2.

Перехват обработчиков событий и собственные обработчики в модулях объектов, менеджеров и т.п.

Перехват любых методов в этих модулях выполняется точно так же, как было описано в начале. Однако если перехватываемая процедура является обработчиком события, существуют некоторые особенности. Эти особенности связаны с тем, что в этих модулях все обработчики событий имеют фиксированные имена.

Читайте также:  Victoria hdd как включить русский язык

Во-первых, в качестве имени перехватываемого метода указывается имя события. Например, ПередЗаписью:

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

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

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

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

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

Внешне перехватчик события в модуле формы выглядит следующим образом:

То есть аннотация не используется, а тип перехватчика указывается в палитре свойств. Делается это довольно просто. При создании в расширении обработчика по кнопке «лупа» открывается диалог. Он позволяет вам, помимо контекста, указать тип перехватчика (Перед, После или Вместо).

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

Если вы перекрываете типовой обработчик (Вместо), то это будет просто точка.

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

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

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

Общие модули

В расширении вы можете создавать любые собственные общие модули. Существует только два ограничения:

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

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

Серверные методы расширяются не всегда

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

Если прикладное решение работает в файловом варианте или в клиент-серверном варианте без профилей безопасности, то при подключении вашего расширения:

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

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

Самое простое из них – это флажок к расширению всех модулей в группе Разрешен полный доступ. Он «одним махом» разрешает расширение серверного контекста.

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

Источник

Редактор кода 1С для тонкого клиента, управляемые формы

Как известно, в управляемом приложении исчезло такое замечательное свойство поля текстового документа, как Расширение (“Язык запросов”, “Встроенный язык”). Данная обработка призвана хоть чуть-чуть исправить данную ситуацию.

Данная обработка работает только на управляемых формах в тонком или толстом клиенте. В web-клиенте работа возможна только в IE, но автоматически ничего не раскрашивается при вводе текста, надо нажимать на кнопку Обновить.

Что планируется в будущем:

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

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

На 64х разрядной системе падало по ошибке:

-2147221164(0x80040154): Класс не зарегистрирован
<ВнешняяОбработка.РаскраскаИРедактированиеКода.Форма.Форма.Форма(23)>: Скрипт = Новый COMОбъект(“MSScriptControl.ScriptControl”);

по причине:
-2147221164(0x80040154): Класс не зарегистрирован

Обновление 19.11.10 14:42

Код открыт Не указано

См. также

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

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

09.09.2019 14033 27 bmk74 6

Интерактивная справка по объектам 1С (подключаемое расширение)

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

29.09.2020 10092 63 sapervodichka 43

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

Простой и удобный html редактор без сторонних библиотек.

31.08.2020 5550 10 ivanov660 12

Делаем из СКД Excel (ну, почти)

Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.

26.01.2020 11713 19 herfis 16

Расширенная настройка динамического списка УФ Промо

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

31.05.2017 35479 159 tormozit 25

Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки

Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в “Дополнительные отчеты и обработки”.

27.12.2019 14342 25 1sig 14

Декомпиляция условного оформления

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

23.12.2019 9344 44 XilDen 7

Многоуровневые списки выбора с оформлением элементов

17.12.2019 10324 2 azhilichev 5

Открывашка ячеек таблиц Промо

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

27.10.2018 19384 12 tormozit 31

Удобный выбор из таблицы/дерева в УФ

12.08.2019 15604 8 Yashazz 18

[Механизм интерфейса] Свой флажок (чекбокс)

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

09.08.2019 18606 20 rpgshnik 43

Отбор на управляемой форме из списка значений

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

09.08.2019 24489 25 nagaitseff 6

(Толстый клиент) Подарите бухгалтеру счеты, и он(а) Вас никогда не забудет.

13.05.2011 42400 922 Tatitutu 45

Читайте также:  Болит край языка ближе к горлу

Обработка-редактор HTML

Редактор HTML для управляемого интерфейса 8.3.

10.06.2019 10390 80 ValeriVP 11

Виртуальная (экранная) клавиатура для управляемых форм

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

14.12.2018 13325 65 asdfgcom 16

Рисуем и распознаем нарисованное при помощи нейросети

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

03.10.2018 16268 44 DO_WHILE_LOOP 28

Визуализация событий на временной шкале средствами “Поле HTML документа” Промо

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

31.07.2018 26121 142 Plotks2017 27

Рисуем диаграммы в metadata.js

Не одной же литературой заниматься?

20.09.2018 19191 4 1c-intelligence 77

Продвинутое рисование в табличном документе (стрелок и не только)

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

24.07.2018 17961 20 WalterMort 30

Иерархическая диаграмма

Концепция диаграммы по иерархической структуре данных, например по номенклатуре (продажи или остатки на складах).

17.06.2018 16143 19 DrAku1a 6

Работа с данными выбора Промо

17.07.2018 56945 21 kalyaka 16

Рисуем стрелки в табличном документе

01.06.2018 17196 9 pm74 9

Программная работа с графическими схемами. Готовое решение

Работоспособное, проверенное на практике, простое и удобное программное управление графическими схемами.

18.02.2018 20839 22 Yashazz 13

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может “дружить” с уже известным многим Open-source продуктами.

03.01.2018 32331 5 kraynev-navi 41

Интерактивный интерфейс Промо

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

29.10.2011 19814 65 Vin_Tik 9

Программное создание элементов графической схемы (через XSLT)

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

20.07.2017 23153 64 lazarenko 18

Простой редактор плана помещения JavaScript

На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.

23.11.2016 23674 99 igel9780 22

Настройка начальной страницы (Рабочего стола)

Альтернатива стандартной настройке начальной страницы. В типовой доступны лишь те формы, что явно “разрешены” разработчиком в режиме конфигуратора. Эта обработка позволяет собрать “Рабочий стол” из любых подходящих форм в пользовательском режиме. Без программирования. БСП не используется. Не расширение. Универсальна, т.е. подойдет для любой конфигурации (в т.ч. самописной).

19.10.2016 41023 233 Erne100 30

Программное формирование форматированной строки в стиле html+inline CSS Промо

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

18.11.2017 36837 43 bonv 11

[Расширение] Стартовые страницы. Автозапуск форм при старте 1С. (8.3.9+, без доработки конфигурации)

Уверен, что в большинстве случаев список справочников, отчетов, обработок (объектов 1С в целом), к которому обращаются пользователи после запуска конфигурации 1С, раз от раза меняется не сильно. Так почему бы немного не упростить процесс открытия часто используемых форм? Данное расширение позволяет настроить автоматическое открытие различных форм объектов сразу после запуска 1С. Список форм настраивается индивидуально для каждого пользователя. Работает на платформе 8.3.9, без доработки конфигурации.

03.10.2016 23368 87 Artem-B 20

Конструктор условного оформления

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

27.09.2016 18677 16 Fragster 7

HTTP-сервис: отчеты [Расширение]

Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

30.08.2016 29911 144 Stepa86 15

Тёмные цветовые схемы кода. То, что было доступно всем передовым средствам разработки, теперь доступно и на 1С. 13.12.17 UPD: Теперь работает с платформой 8.3

07.10.2013 40319 176 Chernov_Dmitriy 82

Механизм доп. реквизитов и сведений

Как к новому справочнику подключить механизм дополнительных реквизитов и сведений

23.06.2016 30404 35 piffoff 18

Блокировка баннеров при помощи расширения

Примеры использования расширений

09.06.2016 15560 12 oslokot 16

Простые радости жизни программиста 1С: выбор типа значения

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

17.02.2016 54278 54 yuraos 18

NativeDraw: Компонента рисования для 1С [V2.6.2] Промо

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

13.07.2015 50010 466 ПерваяСистема 147

Визуальный редактор цветовых схем подсветки синтаксиса 1С + импорт схем Visual Studio

Данная обработка призвана облегчить настройку рабочего места программиста 1С, а именно улучшить визуальное восприятие кода, уменьшить утомляемость, и, как следствие, увеличить общую производительность труда!

29.01.2016 17316 82 ram3 27

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

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

02.11.2015 39757 14 Wolex 30

Инструмент для создания веб приложений на основе 1С REST сервиса

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

13.10.2015 28634 77 dmzubr 23

Подборка иконок для подсистем 1С:8.2, 8.3 (740 шт.) PNG 48х48 Промо

Подборка иконок для подсистем 1С: Предприятие 8.2, 8.3 (УП) в формате PNG 48*48 с сохранением прозрачности.

19.12.2011 111473 1239 Lesha1C 74

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса

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

09.10.2015 38557 131 pbazeliuk 6

Визуальный html редактор на управляемых формах

30.09.2015 32027 220 ivanov660 42

Универсальное настраиваемое рабочее место (Версия 2.0)

13.06.2015 18484 126 yuraskid 31

Источник

Интересные факты из жизни