1с какой язык программирования
Перейти к содержимому

1с какой язык программирования

  • автор:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Массив

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

Структура

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

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

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

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

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

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

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

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

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

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

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

COMSafeArray

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

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

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

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

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

На чем написана 1С?

Зашел разговор про 1с и я услышал следующее мнение — что 1с написана на ЯП Русского разлива, т.е. даже буквы в этом ЯП Русские, так же этот гражданин приложил скрин (в конце поста). Проясните ситуацию, на чем написана 1с, и если она все такие написана на C++, то каким боком относиться к ней ЯП на Русский манер?

Вообще любая инфа на этот счет будет интересна.

введите сюда описание изображения

Михаил Р.'s user avatar

На скриншоте язык не на котором написана платформа 1С, а язык на котором пишутся её конфигурации. Сама 1С написана на C++.

На самом деле, 1С написана на языке С++ в среде разработки MS Visual C++.

Это сведения разработчиков 1С:

Платформа 1С: Предприятия 8 написана на MS Visual C++.

При создании платформы использована собственная компонентная архитектура. Сервер 1С: Предприятия создан с использованием технологии COM+. Механизмы платформы содержат большое количество собственных технологических решений.

Ver Nick's user avatar

Платформа 1C:Предприятие — это система с открытым прикладным исходным кодом, написанным на проприетарном языке, официально его называют «Встроенный язык программирования 1С:Предприятие», неофициально и коротко – «язык 1С». Сама платформа 1С:Предприятие 8 — это большое (более 10 миллионов строк кода) приложение на C++ (клиент, сервер и т.д.), JavaScript (веб-клиент), и, с недавних пор еще и Java.

Eugene's user avatar

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

Vadim Popov's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

О программировании на 1С Предприятие 8

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

Как программист, выбравший 1С, считаю данное мнение необоснованным. Платформа 1С — далеко не идеал, но, на мой взгляд, — это лучший, а главное — отечественный продукт!

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

  • Прямого отношения к фирме 1С я не имею;
  • Данная статья не является заказной, и написана исключительно на добровольной основе;
  • В некоторых случаях высказано личное мнение, которое может не совпадать…;
  • Вся статья, за исключением пролога — авторская, любые совпадения — случайность;
  • Речь пойдет о платформе 1С Предприятие 8.2 (в настоящее время — актуальна версия 8.3, но я её ещё не изучал — очень много работы на 1С 8.2). Однако, большая часть сказанного применима как к платформе 8.3, так и к более ранним версиям, а часть — и к версии 7.7.
О чем речь?
  • Работает в двух вариантах — файловый и серверный (трёхзвенка) — у каждого свои достоинства и недостатки;
  • Независимая система учета, которая легко устанавливается и настраивается;
  • Мощная экосистема для программистов со всеми необходимыми объектами и инструментами;
  • Приятный эргономичный интерфейс;
  • Сравнительно недорогое решение для бизнеса;
  • Сеть франчайзи, начальное обучение;
  • Мощная база наработок и знаний, накопленная годами;
  • Временами проблемная платформа для системных администраторов;
  • Не самое быстрое выполнение алгоритмов (хотя и не самое медленное) — это дань информативности (при ошибках указан номер строки и её содержимое);
  • В языке программирования нет классов (наследования, инкапсуляции, полиморфизма), нет анонимных функций и прочих современных фич. Но для решения большинства задач — это и не нужно!
Файловая и серверная базы данных

Платформа состоит из нескольких частей и может работать в файловом или серверном варианте.

В файловом варианте вся база данных содержится в одном файле (с расширением «1cd») — платформа устанавливается на каждом компьютере и напрямую читает/пишет в базу данных.

Плюсы файлового варианта — низкая цена и простота развёртывания.

Минусы — структура файла «1cd» закрыта, нет единой системы, взаимодействующей с БД. В результате — сложно использовать при большом числе пользователей (пробовали на 20+ пользователей — работать можно). Кроме того, при размере базы данных примерно 15 ГБ (и более) возникают сбои при проведении динамического обновления. Решать такие сбои — задача сложная, а утилита для починки базы — не всегда эффективно чинит, а иногда и калечит базу.

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

В серверном варианте, платформа для хранения базы данных использует SQL-сервер (обычно, это MS SQL, но начиная с 8.2.14 — можно использовать и некоторые другие например, Firebird PostgreSQL, IBM DB2, Oracle Database), а сама платформа работает использует трехзвенную архитектуру:

Часть кода выполняется на клиенте, часть на сервере. При этом с базой данных взаимодействует только сервер. При этом, начиная с версии 8.2, помимо стандартного режима работы, который обозвали режимом «толстый клиент», появилось два новых режима работы — «тонкий клиент» и «web-клиент»; также появились «управляемые формы», внешний вид которых строится в виде абстрактного дерева элементов. Программировать под управляемые формы и трехзвенную архитектуру сложнее, но это позволяет перенести почти всю нагрузку на сервер (т.е. можно купить один мощный сервер и сотню самых дешевых офисных компьютеров).

Плюсы платформы: «трёхзвенка» — распределение нагрузки, открытость базы данных (официально фирма 1С отказывается от ответственности за любую порчу данных, если в базу SQL вносились изменения кроме как средствами ихней платформы или сервера, но это мало кого останавливает), отсутствие ограничений.

Минусы — цена: покупать придется отдельно клиентские лицензии на каждый клиентский компьютер, отдельно — одну лицензию на сервер 1С, отдельно лицензию на сервер SQL, если не использовать бесплатный. Также иногда возникают сложности в работе базы данных. Они решаются гораздо быстрее за счет доступности данных и наличия внешних инструментов работы с БД. Кроме того, и в этом случае следует делать бекап базы данных.

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

Ещё один плюс: платформа устанавливается очень просто, примерно так: «Далее-Далее-Далее-Ок», не требуется тонкая настройка и установка каких-либо компонент.

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

Это больше, чем бухгалтерия

Когда речь заходит о платформе 1С, то она представляется, прежде всего, как программа для бухгалтерского учета. Действительно, это — самая популярная область использования платформы 1С. Но не бухгалтерией единой живет 1С!
Те, кто знаком с платформой, говорят, что это система учета (автоматизации учета). Это ближе к истине — существует множество конфигураций, как от фирмы 1С, так и от сторонних разработчиков. Некоторые лишь косвенно связаны с бухучетом, некоторые вообще никак не связаны.

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

Экосистема для программистов

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

… приведет к тому, что платформа 1С, используя внутренние механизмы, найдет запись в таблице, соответствующей справочнику «Контрагенты» по идентификатору из поля «ОсновнойПоставщик» элемента номенклатуры и вернёт значения поля, соответствующего полю «ПолноеНаименование» в объектной модели справочника «Контрагенты».

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

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

Хранилища значений

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

СписокЗначений — объект, преимущественно, для работы с интерфейсом пользователя. Помимо данных также для каждого элемента может содержать представление, признак флажка и картинку (пиктограмму). Также имеет методы «ВыбратьЭлемент()» и «ОтметитьЭлементы()» — при вызове которых пользователю показывается интерфейсный диалог (что удобно — не нужно данный диалог создавать в конфигурации).

Структура и Соответствие — хранилища парных значений «КлючИЗначение». В структуре «Ключ» — это строка, подчиняющаяся правилам наименования переменных в 1С (без пробелов, начинаться не с цифры, состоит только из букв, цифр и знака подчеркивания). В соответствии — «Ключ» — это любое значение. Самый шустрый поиск объектов — в соответствии (быстрее, чем в массиве и индексированной таблице значений).

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

ДеревоЗначений — объект, представляющий иерархические данные. Содержит колонки, набор колонок одинаковый для всех записей на всех уровнях. Удаление/Добавление колонок в дереве значений точно так же легко, как и в таблице значений. Также, имеет метод «ВыбратьСтроку()».

Интерфейсные объекты и объекты для работы с различными данными ТекстовыйДокумент, ТабличныйДокумент, Web-браузер, ЧтениеФайла, ЗаписьФайла, ЧтениеZIPФайла, ЗаписьZIPФайла, ЧтениеXML, ЗаписьXML, HTTPЗапрос и ещё много объектов, и по все в конфигураторе есть встроенная справка. Назначение перечисленных объектов видно из их названий и всё это сразу есть в платформе.

Отдельно следует отметить, что имеется объект «Метаданные» — с помощью которого на языке программирования можно изучить структуру данных, а также у каждой ссылки или объекта для справочника, документа, плана счетов, и т.п. есть метод «Метаданные()» — предоставляющий описание данного справочника/документа/плана счетов/ и т.п. в базе данных (какие реквизиты, табличные части имеются, длина кода/номера и т.п.). Часто бывает очень удобно.

И еще отдельно следует упомянуть про объекты: «Запрос», «КонструкторЗапроса», «ПостроительЗапроса», «ПостроительОтчета», «СхемаКомпоновкиДанных». Это семейство реализует набор объектов для работы с мощным языком запросов 1С.

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

  • Работа с объектами конфигурирования 1С, вместо таблиц SQL;
  • Работа со ссылками, вместо полей-идентификаторов SQL;
  • Поддержка разыменовывания, аналогично тому, как это делается в коде;
  • Выборка по вхождению в группу (для справочников);
  • Иерархические итоги;
  • Временные таблицы и вложенные запросы (SELECT * FROM (SELECT … )));
  • Конструктор запросов — удобный, объектный, автоматически оптимизирующий текст запроса для быстрого чтения, который умеет разбирать текст запроса (парсить текст запроса и строить из него объектную модель);
  • Построитель отчёта — надстройка над механизмом запросов, в которой добавлен функционал автоматического оформления результатов, а также гибкой настройки самого запроса в режиме «Предприятие» (т.е. пользователем). В результате в стандартных платформах 1С появился универсальный отчёт, в котором пользователь может настроить какие данные и в каком порядке он хочет видеть, что в строках, что в колонках, и отчет сам генерирует выходную таблицу;
  • СКД (Система компоновки данных) — следующая модель, вобравшая в себя функционал универсального отчета и дополнившая его некоторыми функциями обработки результатов.

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

  • Нет необходимости объявлять переменные — можно инициализировать прямо в тексте модуля;
  • Нет жёсткой типизации переменных. В системе есть типы значений, но для переменных нет строгих правил по типизации. Переменная, хранившая ссылку, может через пару строчек кода уже хранить число или строку;
  • Можно складывать переменные со значениями разных типов, при этом, тип результата будет таким, каким был тип у первой переменной, например:
  • Переменные со значениями разных типов можно сравнить на равенство или неравенство (но не на больше-меньше, это вызовет исключение) — естественно, такие переменные не равны;
  • Имеются функции и процедуры, допустимо использовать рекурсию (с ограничением по глубине рекурсии);
  • При указании функции или процедуры без параметров — всё-равно, обязательно указывать пустые скобки в конце: вот_так();
  • Имеются модули: у каждого справочника и документа их несколько, кроме того, модули есть у регистров, отчетов и обработок и у каждой формы, а также в составе конфигурации имеется возможность создавать общие модули;
  • Нет классов, наследования, инкапсуляции, полиморфизма;
  • Функцию нельзя передать как ссылку, нет анонимных функций;
  • Нет обратного цикла (for i:=5 downto 1 do), а он реально нужен при удалении записей. Обходимся чуть более длинной записью через цикл «Пока».
  • В платформе 1С есть возможность выгружать-загружать конфигурацию, сравнивать конфигурацию с другой конфигурацией и частично загружать изменения;
  • Есть возможность выгружать тексты модулей для их пакетной обработки и загружать обратно в конфигурацию;
  • Если конфигурация находится на поддержке (все конфигурации от 1С изначально на поддержке), то всегда можно выполнить сравнение и посмотреть, что изменялось сторонними разработчиками или местными специалистами;
  • Также есть возможность выгружать / загружать базу данных целиком (вместе с данными);
  • Для коллективной работы над одной конфигурацией используется хранилище конфигурации;
  • Также существует ряд правил внесения изменений в стандартные конфигурации, есть даже документ от 1С, описывающий методики и стандарты изменения типовых конфигураций (да и любых других).

Общее впечатление
Язык 1С сочетает в себе ясность текстов языка «Pascal» с фривольностью работы с переменными языка «BASIC». В нем отсутствует ряд возможностей, присущих современным языкам программирования, но без них вполне можно обойтись. Кроме того, в платформе 1С есть мощный сборщик мусора, т.е. не требуется, например, очищать таблицы после использования или удалять их.

Интерфейс 1С Предприятие 8.2

Фирма 1С уделила особенное внимание интерфейсу своей программы. Прежде всего — это цветовая палитра. Она шикарна! Окна программы узнаваемы даже издалека, при этом за многие годы работы — не вызывают неприязненных ощущений, наоборот — хочется, чтобы все программы были были такими-же классными.
При этом стиль платформы весьма строгий, без рюшечек и прочих излишеств. При этом есть весьма полезные функции, например, запоминание размеров окон (размеры запоминаются только при их изменении пользователем, и, при этом, всегда можно сбросить настройки пользователя — до размеров и позиции по-умолчанию, нажав Alt+Shift+R).
Интерфейс Web-клиента 8.2 вызывает ряд нареканий, но, вроде бы, платформа 8.3 несёт с собой новый переработанный интерфейс — «Такси».

Цены, спрос и предложение, франчайзинг

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

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

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

В целом, всё это выглядит очень выгодно.

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

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

Ложка дёгтя

Расписав во всех красках 1С было бы несправедливо не сказать и о её недостатках, а уж они-то есть:

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

Франчайзи (далее — франчи). В идеале, по задумке, это должны были быть фирмы с квалифицированными специалистами, знающими основные принципы работы конфигураций и платформы. Эти самые фирмы должны были бы продавать платформу, конфигурацию и поддержку, слегка «допиливать» универсальные конфигурации под требования клиента (а временами — корректировать эти требования), стараясь минимально модифицировать стандартную конфигурацию. Так, чтобы не сильно усложнять будущие обновления. А в реальности всё наоборот.

При продаже новых лицензий клиенту франчи получают 50% от их стоимости (за минусом подоходного налога 13% от этих 50%). При этом самим производить ничего не надо, надо только передать ключи от 1С покупателю.

При оказании же услуг франчи не платят фирме 1С ничего (за исключением членских взносов), но зато им нужно платить зарплату сотруднику. Также приходится тратиться на налоги государству — ПФР и подоходный налог.

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

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

Техподдержка. В понимании фирмы 1С, техподдержка — это предоставление доступа к разделу «обновление» для платформы и конфигураций, а также к информационным разделам, содержащим описание некоторых механизмов и особенностей работы 1С. Кроме того, при подписке предоставляется диск с указанными материалами. Также имеется форум (весьма скудный в сравнении с народными). Ещё имеется возможность отправить электронное письмо в фирму 1С — но даже не надеясь, что на него ответят (или ответит робот «Письмо передано в отдел разработки». В плане разработки гораздо большую поддержку оказывает Яндекс.Поиск и встроенная в конфигуратор справка.

Name already in use

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Стек технологий для 1С

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

Встроенный язык программирования 1С:Предприятия

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

Зачем нужно:

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

Заметки:

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

С чего начать:

  1. Книга — М.Г. Радченко. — 1С:Програмирование для начинающих
  2. Курсы — Учебный центр 1С
  3. Курсы — Курсы по 1С.рф

Подробнее:

  1. Официальный сайт — https://v8.1c.ru/platforma/
  2. Документация к платформе — https://its.1c.ru/db/v8320doc

Язык запросов основан на SQL, при этом содержит как ограничения так и расширения, ориентированные на отражение специфики финансово-экономических задач.

Зачем нужно:

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

Заметки:

  1. Статья — Типичные причины неоптимальной работы запросов и методы оптимизации. Следуя этим рекомендациям можно избежать большинство проблем с производительностью запросов.
  2. Для отладки запросов можно использовать Консоль запросов. Этот инструмент позволяет выполнять и отлаживать запросы в режиме 1С:Предприятие. Разработок на эту тему много, можно поискать по запросу Консоль запросов

С чего начать:

  1. Статья — Особенности языка запросов 1С
  2. Статья — Полезные сведения о языке запросов 1С 8.2
  3. Книга — Е. Ю. Хрусталева — Язык запросов 1С:Предприятия 8

Подробнее:

  1. Официальный сайт — https://v8.1c.ru/platforma/mehanizm-zaprosov/

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

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

Зачем нужно:

Используется для разработки мобильных приложений на языке 1С. На выходе мы получаем полноценное приложение в AppStore или GooglePlay, используя только знания платформы 1С. Дополнительных знаний практически не требуется.

Заметки:

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

С чего начать:

  1. Книга — Е. Ю. Хрусталева — Знакомство с разработкой мобильных приложений на платформе 1С:Предприятие 8
  2. Статья — О мобильной платформе 1С

Подробнее:

  1. Официальный сайт — https://mobile.1c.ru
  2. Мобильная среда — https://mobile.1c.ru/sreda/

Это кроссплатформенный язык сценариев. Язык базируется на встроенном языке разработки 1С:Предприятие, но имеет ряд отличий от него. 1С:Исполнитель — это инструмент для автоматизиации и администрирования информационных систем, созданных на платформе 1С:Предприятие.

Зачем нужно:

Нужен для автоматизации рутинных задач и администрирования. Скорее полезен для понимания вектора развития языка 1С.

Заметки:

Кажется, что этот язык — это «проба пера» для нового языка и новых технологий фирмы 1С. Имеет смысл ознакомиться с новыми возможностями, но глубоко изучать язык, кажется, не обязательным. Так как сфера применения его довольно специфичная.

С чего начать:

  1. Статья на зазеркалье — 1С-Исполнитель

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

В качестве основных компонентов технологии обозначены:

  • новый пользовательский интерфейс, ориентированный в первую очередь на работу в веб;
  • динамично развивающийся встроенный язык;
  • поддержка модульности разработки;
  • среда разработки, развернутая в облаке и доступная через браузер;
  • ориентация на работу решений в облаке, но будет поддержка и локальной установки (on-premise);
  • мобильность, что подразумевает возможность работы приложения на мобильных устройствах и в мобильных браузерах сразу «из коробки».

Зачем нужно:

Судя по существующим решениям, в будущем будет использоваться для создания веб-приложений.

Заметки:

Решения, уже использующие эту технологию:

С чего начать:

  1. Статья на зазеркалье — Новая технология разработки приложений
  2. Бета-тест — Новая среда разработки 1С:Предприятие.Элемент

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

  • Использование в качестве среды исполнения текстовых сценариев на языке 1С;
  • Построение консольных приложений, написанных на языке 1С;
  • Встраивание в стороннюю программную среду в качестве среды исполнения текстовых сценариев на языке 1С.

Зачем нужно:

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

Заметки:

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

С чего начать:

  1. Статья — Начало работы с OneScript
  2. Статья — Как решать повседневные задачи с помощью OneScript
  3. Статья — Обзор имеющихся библиотек OneScript
  4. Статья — Примеры скриптов на OneScript
  5. Статья — Исчерпывающее руководство по созданию библиотеки OneScript

Подробнее:

  1. Официальный сайт — https://oscript.io/
  2. Исходный код — https://github.com/EvilBeaver/OneScript

IDE — Это интегрированная среда разработки (англ. Integrated development environment) — программное средство, используемое программистами для разработки программного обеспечения. Обычно включает в себя: редактор, компилятор и отладчик.

Конфигуратор — предметно-ориентированная среда быстрой разработки, существующая в платформе 1С:Предпрития 8. Предоставляет программисту инструменты для разработки и поддержки конфигураций.

Зачем нужно:

Используется для разработки и доработки конфигураций.

Заметки:

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

С чего начать:

  1. Статья — Основные приемы работы в конфигураторе

Подробнее:

  1. Официальный сайт — https://v8.1c.ru/platforma/sreda-bystroy-razrabotki/

1C:Enterprise Development Tools (EDT)

1C:EDT это современная расширяемая среда разработки прикладных решений. Она создана на основе свободной интегрированной среды разработки модульных кроссплатформенных приложений Eclipse.

Зачем нужно:

Используется для разработки и доработки конфигураций.

Заметки:

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

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

На EDT можно переходить постепенно, для этого фирма 1С выпустила рекомендации.

С чего начать:

  1. Статья — Знакомство на примерах
  2. Статья — Постепенный процесс перехода на EDT
  3. Курсы — Профессиональная разработка в 1С:EDT
  4. Неофициальный телеграмм-канал — https://t.me/edt1c

Подробнее:

  1. Официальный сайт — https://edt.1c.ru/
  2. Документация — https://edt.1c.ru/docs/
  3. Официальный телеграмм-канал — https://t.me/e1c_edt
  4. Публичный баг-трекер — https://github.com/1C-Company/1c-edt-issues

Visual Studio Code (VSCode)

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

Зачем нужно:

Может использоваться как редактор кода для около 1Сных технологий (OneScript, Vanessa и другие)

Заметки:

Удобный и гибкий редактор для кода. Есть плагины для подсветки синтаксиса 1С и проверки модулей.

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

Широко используется для других языков. Можно использовать для OneScript и Vanessa.

Имеет очень много расширений, которые могут существенно улучшить работу.

С чего начать:

  1. Статья — Подробный гайд для начинающих
  2. Плагин — Поддержка языка 1С:Предприятие 8 (BSL)

Подробнее:

  1. Официальный сайт — https://code.visualstudio.com
  2. Веб-версия редактора — https://vscode.dev

Плагины, которые помогают в разработке на языках 1С

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

  • Улучшение встроенной в Конфигуратор контекстной подсказки
  • Подключение дополнительных аддинов от сторонних разработчиков
  • Остальные разные «плюшки»

Зачем нужно:

Улучшает работу в Конфигураторе 1С.

С чего начать:

  1. Триальная версия на 3 месяца — Снегопат — расширение Конфигуратора 8.2/8.3
  2. Статья — Установка и настройка Снегопат
  3. Статья — Снегопат — Dev или Ops

Подробнее:

  1. Официальный сайт — https://snegopat.ru
  2. Исходный код — https://github.com/infostart-hub/snegopat
  3. Документация — https://github.com/infostart-hub/snegopat/blob/master/docs/readme.md
  4. Официальный канал в Телеграме — https://t.me/snegopat

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

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

Зачем нужно:

Улучшает работу в Конфигураторе 1С.

С чего начать:

  1. Статья — TurboConf:Cloud — облачные сервисы в Конфигураторе

Подробнее:

  1. Официальный сайт — https://turboconf.ru

Подсистема «Инструменты разработчика»

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

Зачем нужно:

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

С чего начать:

  1. Публикация на Инфостарт — https://infostart.ru/public/15126/

Подробнее:

  1. Официальный сайт — http://devtool1c.ucoz.ru

Подсистема «Универсальные инструменты 1С для управляемых форм»

Интегрированный набор инструментов разработчика: групповая обработка справочников и документов, редактор констант, структура хранения базы данных, Удаление помеченных объектов, Консоль запросов, Консоль заданий, Регистрация изменений для обмена, Поиск и удаление дублей, Консоль кода, Поиск ссылок на объект, Редактор реквизитов объекта, Консоль отчетов, Динамический список, Консоль HTTP запросов, Выгрузка загрука XML с фильтрами, Навигатор по конфигурации, Файловый менеджер, Конструктор регулярных выражений, Консоль вебсервисов, Консоль сравнения данных, Информация о лицензиях 1С, Загрузка данных из табличного докумнета, Редактор JSON, Редактор HTML, Универсальный обмен данными в формате XML (с фильтрами и прямой загрузкой через HTTP сервис), Редактор СКД, Сравнение объектов, Библиотека сериализации 1С, Коннектор: удобный HTTP-клиент для 1С:Предприятие 8. ​ Поддерживаемые платформы 8.3.12 и выше

alt text

Зачем нужно:

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

С чего начать:

  1. Исходный код — https://github.com/cpr1c/tools_ui_1c/

Набор инструментов для анализа и обработки данных в информационной базе 1С.

  • Консоль разработчика (консоль запросов, кода, СКД)
  • Редактор объекта
  • Редактор констант
  • Поиск и замена ссылок
  • Поиск ссылок
  • Монитор лицензий
  • Подписки на события
  • Пользователи
  • Регламентные и фоновые задания
  • Все функции
  • Глобальное меню
  • Редактор параметров сеанса

Зачем нужно:

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

С чего начать:

  1. Видео — Infostart Toolkit — инструмент, в котором сделано то, что давно просят от 1С
  2. Статья — 10 полезных, но малоизвестных возможностей IS Toolkit

Подробнее:

  1. Публикация — https://infostart.ru/public/1254364/
  2. Исходный код — https://github.com/infostart-hub/toolkit

Плагин для конфигуратора PhoenixBSL

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

Зачем нужно:

Быстрая проверка на соответствие стандарта кода в конфигураторе.

С чего начать:

  1. Исходный код — https://github.com/otymko/phoenixbsl

Плагины для 1С:EDT

1С:EDT позволяет дополнить стандартный инструментарий среды с помощью плагинов.

Официальные плагины от 1С:

    — инструмент перевода исходного кода и локализации интерфейса — поддержка разработки конфигураций на базе Библиотеки Стандартных Подсистем — разработка по стандартам 1С, проверки, инструменты

Зачем нужно:

Улучшают работу разработчика в 1C:EDT

Заметки:

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

Это перспективное направление, которое позволит в дальнейшем существенно упростить работу со средой разработки. Фирма «1С» поддерживается начинания в этом направлении.

С чего начать:

  1. Статья — Список плагинов, которые можно/нужно использовать в 1C:EDT
  2. Статья — Как сделать плагин для 1С:EDT для начинающего

Подробнее:

  1. Официальный сайт — https://edt.1c.ru/ext/
  2. Документация разработчика плагинов — https://edt.1c.ru/dev/ru/
  3. Документация по официальным плагинам — https://its.1c.ru/db/edtplugins

Системы хранения версий

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

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

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

  • Захват объекта
  • Помещение объекта
  • Получение объекта
  • Отмена захвата

Зачем нужно:

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

Заметки:

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

С чего начать:

  1. Статья — Работа с хранилищем конфигурации в 1С
  2. Статья — Важные вопросы про хранилище конфигурации

Подробнее:

  1. Документация — https://its.1c.ru/db/metod8dev#content:2287:hdoc

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

Зачем нужно:

Используется для командной разработки, чтобы отслеживать версии кода. Используется при разработке в 1C:EDT.

Заметки:

Git — система хранения версий для 1C:EDT.

Стоит различать git и удаленные репозитории, например, GitHub и GitLab. Удаленные репозитории используются для размещения git репозиториев не отдельном сервере или в облаке .

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

Для постепенного перехода на можно использовать выгрузки хранилища в git, например, 1С:Гитконвертер или gitsync.

С чего начать:

  1. Документация 1С:EDT о git
  2. Статья — Github и 1С. Пошаговая инструкция на примере
  3. Статья — Git-flow в 1С

Подробнее:

  1. Документация git — https://git-scm.com/book/ru/v2
  2. Документация 1С:ГитКонвертер — https://its.1c.ru/db/metod8dev#content:5937:hdoc
  3. Официальный профиль 1С на Github — https://github.com/1C-Company

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

Онлайн-сервис для UI и UX дизайна решений на базе 1С:Предприятие.

  1. Простой конструктор, без программирования
  2. Упрощает понимание и согласование с заказчиком
  3. Не требует установки и лицензии 1С

Зачем нужно:

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

Заметки:

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

Есть аналоги, которые не заточены под 1С, но в них все равно можно рисовать формы, например mockplus, moqups и другие.

С чего начать:

  1. Видео — Инструмент быстрого прототипирования форм 1С

Подробнее:

  1. Официальный сайт — https://1cmaker.com/

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

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

1С:Тестировщик и 1С:Сценарное тестирование

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

Зачем нужно:

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

Заметки:

Это инструменты от вендора, которые позволяют готовить и выполнять тесты. 1С:Сценарное тестирование используется для тестирования типовой конфигурации 1С:Бухгалтерия предприятия.

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

Для ознакомления с возможностями предназначен 1С:Тестировщик — это легкая версия программного продукта.

С чего начать:

  1. Канал на YouTube — 1С:Сценарное тестирование
  2. Вебинар «1С:Сценарное тестирование 3.0. Примеры»

Подробнее:

  1. Описание — https://v8.1c.ru/tekhnologii/tekhnologii-krupnykh-vnedreniy/korporativnyy-instrumentalnyy-paket/1c-stsenarnoe-testirovanie/
  2. Документация — https://its.1c.ru/db/kip/content/66/hdoc

Vanessa-Automation и Vanessa-ADD

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

  • Готовые «дымовые тесты» различных видов
  • Различные виды тестирования
  • Проверка поведения
  • Формирование автодокументации

Зачем нужно:

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

Заметки:

Набор инструментов для тестирования прикладных решений. Пользуется большой популярностью в среде 1С. Используется для тестирования типовой конфигурации 1С:ERP. Тесты публикуются для партнеров на портале 1С.

Open-source проекты с живым и общительным сообществом. Можно задать вопрос и получить адекватный ответ.

Vanessa-Automation и Vanessa-ADD развиваются параллельно, но имеют общие принципы и подходы. Поэтому можно выбрать любой по своему вкусу.

В состав Vanessa-ADD входит набор инструментов для написания unit-тестов.

С чего начать:

  1. Статья — Инструмент тестирования прикладных решений на платформе 1С
  2. Статья — Разработка и сценарное тестирование с Vanessa
  3. Группа в телеграмм — https://t.me/testspro1c

Подробнее:

  1. Документация Vanessa-Automation — https://pr-mex.github.io/vanessa-automation/
  2. Исходные коды Vanessa-Automation — https://github.com/Pr-Mex/vanessa-automation
  3. Документация Vaness-ADD — https://github.com/vanessa-opensource/add/blob/develop/doc/README.md
  4. Исходные коды Vanessa-ADD — https://github.com/vanessa-opensource/add

Бесплатная программа для сценарного тестирования решений на базе 1С:Предприятие 8.3, управляемые формы.

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

  • Быстро устанавливается, не требует специальных (кроме 1С) знаний и программного обеспечения
  • Быстро интегрируется в процесс разработки
  • Не требует фундаметального пересмотра философии программирования
  • Сфокусирован на процесс создания реальных тестов
  • Не требует подготовки отдельных баз и эталонных данных

Зачем нужно:

Позволяет разрабатывать и запускать тесты, автоматизировать рутинные операции.

С чего начать:

  1. Видео — Создание теста путем записи сценария
  2. Видео — Создание теста кодированием
  3. Видео — Полтора часа жизни программиста со сценарным тестированием
  4. Группа в телеграмм — https://t.me/testspro1c

Подробнее:

  1. Исходный код — https://github.com/grumagargler/tester
  2. Документация — http://tester.help

Статический анализ кода

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

Синтаксическая проверка конфигурации

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

Зачем нужно:

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

Заметки:

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

Подробнее:

  1. Документация — https://its.1c.ru/db/metod8dev/content/2290/hdoc

1С:Автоматизированная проверка конфигураций

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

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

Зачем нужно:

Используется для проверки решений на соответствие стандартам. Обязательно применяется при сертификации 1С:Совместимо.

Заметки:

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

С чего начать:

  1. Статья — Автоматизированная проверка конфигураций…

Подробнее:

  1. Официальный сайт — http://v8.1c.ru/acc/

Плагин для SonarQube

Поддержка языка 1С:Предприятие 8 и OneScript для SonarQube. SonarQube — платформа для непрерывного анализа и измерения качества программного кода.

  • Дашборд проекта
  • Подсветка синтаксиса 1С:Предприятие
  • Расчет базовых метрик и количества строк кода
  • Регистрация диагностик, предоставляемых BSL Language Server как внутренних правил
  • Встроенный анализатор — BSL Language Server Diagnostic provider
  • Импорт результатов внешних анализаторов во внутреннем формате json

Зачем нужно:

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

Заметки:

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

Из коробки 1С не поддерживает, но есть, как минимум, два плагина для 1С:

    — open source решение (бесплатно) — решение от SilverBulleters

Также позволяет использовать внешние анализаторы, такие как Синтаксическая проверка конфигурации или АПК.

С чего начать:

  1. Статья — Управляй качеством кода 1С с помощью SonarQube
  2. Статья — Как управлять качеством кода 1С, используя платформу SonarQube
  3. Статья — Управление качеством кода

Подробнее:

  1. Официальный сайт Community Plugin — https://1c-syntax.github.io/sonar-bsl-plugin-community/
  2. Исходный код Community Plugin — https://github.com/1c-syntax/sonar-bsl-plugin-community
  3. SONARQUBE 1C (BSL) Plugin — https://silverbulleters.org/sonarqube

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

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

С чего начать:

  1. Статья — 1С СППР, как инструмент по внедрению, разработке и сопровождению информационных систем
  2. Статья — 1С СППР и оценка сроков и стоимости проектов методом COCOMO II
  3. Телеграмм группа — https://t.me/s/SPPR1c

Подробнее:

  1. Официальный сайт — https://v8.1c.ru/tekhnologii/sistema-proektirovaniya-prikladnykh-resheniy/
  2. Демо-база СППР — https://modeling.demo.1c.ru/modeling/ru/

Термин “code review” может означать разные действия, от простого чтения какого-то кода из-за спины разработчика до совещания на 20 человек, где вы разбираете код строчка за строчкой.

Зачем нужно:

Помогает повысить сопровождаемость и качества разработки.

Заметки:

Считаю Code-review одним из самых ценных инструментов для повышения качества, так как позволяет, и совместно владеть кодом и в будущем легче его сопровождать. Применяя code-review мы стараемся код писать понятнее, так как его точно посмотрят.

Для проведения Code-review не обязательно применять дополнительные инструменты, порой достаточно посмотреть в конфигураторе код коллеги и написать замечания либо прямо в коде, либо в отдельном файле.

Тем не менее для Code-review есть и различные инструменты, которые позволяют упростить этот процесс. Самый простой способ — это использование удаленных репозиториев и создание запросов на слияние, который кто-то посмотрит. Существуют также и отдельные инструменты, например Upsource от JetBraind или Crucible от Atlassian.

С чего начать:

  1. Статья — Code review по-человечески
  2. Статья — Как завести у себя в команде код-ревью
  3. Статья на английском — 12 Best Code Review Tools

Подробнее:

  1. Официальный сайт Upsource — https://www.jetbrains.com/upsource/
  2. Официальный сайт Crucible — https://www.atlassian.com/ru/software/crucible

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

Зачем нужно:

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

Заметки:

Отличные рекомендации по коду от вендора, следование которым убережет вас от большинства ошибок и потерь производительности. Содержит исчепывающие примеры как делать правильно и как делать не стоит.

Существуют автоматические проверки кода на следование стандартам.

С чего начать:

  1. Документация — Система стандартов

Непрерывная интеграция (Continuous Integration, CI) и непрерывная поставка (Continuous Delivery, CD) представляют собой культуру, набор принципов и практик, которые позволяют разработчикам чаще и надежнее развертывать изменения программного обеспечения.

Continuous Integration позволяет непрервывно тестировать продукт и находить ошибки сразу после закладки или коммита. Благодаря этому можно исправить ошибку меньшими усилиями, потому что вы в контексте.

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

  1. Простая установка
  2. Простая настройка
  3. Расширения и плагины

Зачем нужно:

Нужен для разворачивания системы непрерывной интеграции.

Заметки:

Кажется, что это самый простой и доступный способ познакомиться с CI/CD. Полно примеров на 1С и не только как настроить и запустить. Если хотите с чего-то начать, то Jenkins — самое то.

С чего начать:

  1. Стрим — Сборочная линия с нуля
  2. Статья — Переводим рутину ручного тестирования 1C на рельсы Jenkins-а
  3. Статья — Конвеер проверки качества кода
  4. Исходный код — Библиотека Jenkins для 1С

Подробнее:

  1. Официальный сайт — https://www.jenkins.io

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

Зачем нужно:

Для запуска тестов при каждой закладке в хранилище или репозиторий.

Заметки:

Кажется, что имеет смысл использовать Gitlab CI если у вас уже используется Gitlab в качестве удаленного репозитория.

Позволяет запускать процессы как к привязке к конкретному коммиту, так и просто по расписанию.

Можно использовать бесплатную версию Gitlab на официальном сайте.

Если используете другие системы, то можно рассмотреть аналоги, такие как Github Action или Travis CI.

С чего начать:

  1. Статья — Введение в GitLab CI
  2. Статья — Как Gitlab-CI и OneScript могут отсортировать массив (Часть 1)
  3. Статья — Руководство по CI/CD в GitLab для новичка

Подробнее:

  1. Официальный сайт — https://gitlab.com
  2. Документация на английском — https://docs.gitlab.com/ee/ci/

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

  1. Изолированные среды. Избегаются возможные конфликты с основной системой
  2. Повторяемость. Можно быстро пересоздать рабочую среду буквально одной командой
  3. Переносимость. Окружение можно развернуть под любой системой

Зачем нужно:

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

С чего начать:

  1. Статья — Использование Vagrant и Ansible для разворачивания тестовой инфраструктуры
  2. Статья — Использование Vagrant и Docker при разработке в 1С
  3. Цикл статей — Многопоточный CI-контур для 1С
  4. Статья — Что такое Vagrant

Подробнее:

  1. Официальный сайт — https://www.vagrantup.com
  2. Документация на английском — https://learn.hashicorp.com/vagrant

Это программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.

Зачем нужно:

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

Заметки:

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

С чего начать:

  1. Статья — Полное практическое руководство по Docker
  2. Статья — Использование Vagrant и Docker при разработке в 1С
  3. Статья — Создаем Docker-контейнер с 1С
  4. Статья — Тестируем в Docker
  5. Исходный код — Образы контейнеров для 1С
  6. Исходный код — Образы 1С:Предприятие

Подробнее:

  1. Официальный сайт — https://www.docker.com

Инструмент для гибкого, легкого и красивого отображения результатов автотестов.

Зачем нужно:

Может показывать результаты тестов и различных проверок в красивом и аккуратном виде. Приятно посмотреть.

Заметки:

Этот инструмент не связан с разработкой и обычно используют в связке с Jenkins, чтобы отображать результаты выполнения автотестов.

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

С чего начать:

  1. Статья — Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure
  2. Статья — Allure 2: тест-репорты нового поколения
  3. Статья — Allure-Framework. Работа с кодом

Подробнее:

  1. Исходный код — https://github.com/allure-framework/allure2/releases
  2. Документация на английском — https://docs.qameta.io/allure/

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

1С:Конвертация данных и EnterpriseData

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

Зачем нужно:

Конфигурация «Конвертация данных» позволяет создать правила обмена между различными системами в универсальном бизнес-ориентированном формате EnterpriseData.

Заметки:

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

С чего начать:

  1. Статья — 1С:Конвертация данных 3. Инструкции и примеры.
  2. Статья — Новый подход к обмену данными EnterpriseData

Подробнее:

  1. Документация — https://its.1c.ru/db/metod8dev/content/5846/hdoc
  2. Формат EnterpriseData — https://v8.1c.ru/tekhnologii/obmen-dannymi-i-integratsiya/standarty-i-formaty/format-enterprisedata/

«1С:Шина» — это программный продукт класса «Сервисная шина предприятия» (в англоязычной терминологии — Enterprise Service Bus, ESB), обеспечивающий обмен данными между различными информационными системами.

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

Зачем нужно:

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

С чего начать:

  1. Видео — 1С Шина. Шина данных 1С. Установка

Подробнее:

  1. Официальный сайт — https://v8.1c.ru/static/1s-shina/

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

Зачем нужно:

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

Заметки:

Кажется, это один из самых распространенных и простых запросов на интеграцию. Удобство API Telegram позволяет создавать ботов без особых затрат.

Система взаимодействия может интегрироваться с Telegram ботом из коробки.

Также в 1С:Управление нашей фирмой есть функциональность по интеграцию с ботом

С чего начать:

  1. Статья — Пример связи 1С и мессенджера Telegram
  2. Статья — Создание телеграм бота в 1С
  3. Статья — Telemonitor — объединяем Telegram и 1С
  4. Статья — Опыт интеграции мессенджера Telegram c 1C
  5. Статья — Всё, о чём должен знать разработчик Телеграм-ботов

Подробнее:

  1. Документация — https://tlgrm.ru/docs/bots
  2. BotFather — https://t.me/botfather

Брокеры сообщений (RabbitMQ, Kafka и другие)

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

Зачем нужно:

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

Заметки:

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

RabbitMQ — это гибкая маршрутизация сообщений между различными поставщиками и потребителями событий. В сервере реализована концепция принимающих события узлов (эксчейнджей) — они маршрутизируют данные в разные очереди сообщений RabbitMQ.

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

С чего начать:

  1. Статья — Учимся готовить кроликов с редиской
  2. Статья — RabbitMQ + Конвертация Данных 3.0
  3. Статья — 1c + kafka.apache
  4. Статья — Apache Kafka: Основы технологии
  5. Статья — RabbitMQ или Apache Kafka

Подробнее:

  1. Официальный сайт RabbitMQ- https://www.rabbitmq.com
  2. Официальный сайт Apache Kafka — https://kafka.apache.org

Системы бизнес-аналитики — это аналитические системы, которые объединяют данные из любых различных источников информации, обрабатывают их и предоставляют удобный интерфейс.

1С:Аналитика — это BI-система, которая поможет вам в работе с аналитическими данными и отлично подойдет для управленческого учета

Зачем нужно:

Простой и удобный интерфейс для бизнес-пользователей, который не требует специальных навыков или опыта работы с 1С

Заметки:

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

Попробовать как это выглядит можно на демонстрационном стенде 1С:Аналитика

С чего начать:

  1. Демонстрационный стенд 1С:Аналитика
  2. Демонстрационные видео по 1С:Аналитика
  3. Книга — Е. Ю. Хрусталева — 1С:Аналитика. BI-система в 1С:Предприятии 8

Подробнее:

  1. Официальный сайт — https://v8.1c.ru/platforma/1s-analitika/

Microsoft Power BI

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

Зачем нужно:

Позволяет собрать данные из 1C, Excel и других источников и построить красивые и понятные отчеты

С чего начать:

  1. Статья — Microsoft Power BI + 1С. Зачем и как?
  2. Статья — Как подружить 1С и Power BI
  3. Статья — Бизнес-аналитика с помощью Power BI

Подробнее:

  1. Официальный сайт — https://powerbi.microsoft.com/ru-ru/

Ссылка на Инфостарт

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

About

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *