Использование Vagrant и Docker при разработке в 1С

Публикация № 542836

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

В предлагаемой статье речь пойдет про такие инструменты виртуализации, как Vagrant и Docker.

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

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

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

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

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

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

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

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

Виртуализация с «батарейками»

Виртуализация бывает разная.

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

DevOps со стороны программиста

Сейчас немного отвлечемся. Поговорим про DevOps со стороны самого программиста.

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

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

Vagrant

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

  • vagrant init – инициализация, 
  • vagrant up – запуск
  • И vagrant ssh/rdp – подключение (в зависимости от сервера виртуализации вы будете использовать либо ssh, либо rdp-подключение).

Что такое Vagrant file? Это описание той виртуальной машины, которую вы хотите получить. Независимо от того, какого провайдера вы используете (VMWare, Hyper-V или VirtualBox), это описание будет практически везде одинаковое. В Vagrant file вы описываете, на основании какого образа операционной системы вам нужно создать виртуальную машину, какая память под нее будет выделена, какая сеть настроена, что должно быть скопировано на эту виртуальную машину для дальнейшей установки и какие скрипты нужно запустить, чтобы установить нужное вам программное окружение.

Vagrant file

Вот так выглядит сам Vagrant file. Это – DSL-инструкция, написанная на языке Ruby. По Vagrant file есть документация в сети.

  • В самом начале описывается название образа, на основании которого будет создана наша виртуальная машина. Вам не нужно будет копировать этот образ ISO вручную, он сам найдет его либо у вас на компьютере, либо на сервере vagrantbox.es, скачает, если необходимо, и развернет из него виртуальную машину.
  • Чуть ниже прописано пробрасывание портов.
  • Далее производится синхронизация папки. В этой папке у вас должны лежать настройки сервера 1С:Предприятие, настройки технологического журнала и сама платформа 1С, легально скачанная.
  • Потом указываются параметры виртуальной машины. В зависимости от VirtualBox или Hyper-V вы можете указывать какие-то индивидуальные настройки.
  • И, наконец, запускаются скрипты первоначальной инициализации.

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

Вы можете передавать этот Vagrant file другим разработчикам, даже территориально разделенным. Нет необходимости передавать им весь шаблон виртуальной машины, который, бывает, занимает 3-4 ГБ. При запуске vagrantupу них автоматически скачается весь необходимый набор программ, все само установится и запустится.

В некотором смысле этот Vagrant file является вашим DevOps. И здесь он, в частности, представлен для 1С.

Если вы, например, напишете в google «vagrant logstash», то сможете найти там готовый Vagrant file для Logstash, скачать его, точно так же написать в командной строке «vagrant up», и у вас появится виртуальная машина с полностью настроенным окружением для экспериментов с Logstash.

А для программиста 1С мы с помощью настроек Vagrant file можем получить полностью рабочий контур для различных версий 1С:Предприятия, чтобы в нем поэкспериментировать. Этот рабочий контур может включать: Postgres, сервер 1С:Предприятие, Apache версии 2.2 (которая до сих пор 2.2) и т.д. И для запуска всего этого нам нужна только одна команда – vagrant up. По ней все само поднимется, установится, запустится. Надо будет только чуть-чуть подождать.

Скрипт инициализации для Vagrant

На скриншоте показан простейший bash-скрипт для Linux (в частности, для Ubuntu), который устанавливает все пакеты, необходимые для 1С-разработки.

Запуская этот скрипт, мы устанавливаем на нашу виртуальную машину все необходимые зависимости, копируем настройки технологического журнала (мы ведь говорим про разработчиков, поэтому нам нужно копировать эти настройки) и устанавливаем debug-режим сервера 1С:Предприятия. Каталог vagrant/distr/, который здесь указан – это просто папка с дистрибутивом платформы.

Есть еще один скрипт, который устанавливает Apache в случае публикации веб-сервисов и дополнительно ставит нам отладку на определенный IP-адрес, чтобы мы могли спокойно отлаживать веб-сервисы.

Это простые скрипты, в них перечислено выполнение простейших шагов.

Vagrant vs. Docker

Однако у Vagrant есть проблема: он работает только с полной виртуализацией, независимо от того, что мы используем (Virtual Box или Hyper-V). Vagrant – это в любом случае полная виртуализация, включающая виртуализацию железа. Поэтому он тяжелый для запуска и большой по размерам. Кроме того, считается, что его тяжело использовать для интеграции при запуске в Production.

Поэтому я расскажу об еще одном инструменте виртуализации на базе Linux, который называется Docker. Этот продукт использует паравиртуализацию, основанную на ядре Linux. По факту, Dockerвыполняет те же самые задачи и роли, что и Vagrant, только сразу в Linux, поэтому у него есть преимущество в скорости и размере. Правда, преимущество в размере при работе с 1С небольшое: другие Docker-контейнеры обычно имеют размер порядка 30-40 Мб в одном контейнере, а минимальный размер контейнера для 1С – это 1-2 Гб. Дело в том, что каталог с платформой 1С занимает довольно большой размер, и если нужно создавать несколько контейнеров для разных версий 1С (8.3.4, 8.3.6, 8.3.7), то дисковое пространство сразу же отъедается на 5-6 Гб.

Но, с другой стороны, если говорить про Vagrant, то там только на один контейнер расходуется около 5-7 Гб.

Поэтому Docker более удобен в размерах, но запускается только на Linux.

Особенности Docker

У Docker один контейнер является одним сервисом. Если вы в виртуальной машине поднимаете сразу же несколько сервисов (сервер 1С:Предприятие, толстый клиент, Apache, Postgres), то в Docker считается, что на каждый этот сервис вы должны поднять отдельный контейнер Docker.

К тому же у Docker немного другое представление конфигурационного файла (Dockerfile) для запуска контейнера. Например, как показано на скриншоте:

  • Первой строчкой мы создаем Docker-контейнер на базе CentOS 6-й версии;
  • Потом устанавливаем для него необходимые пакеты;
  • С помощью инструкции EXPOSE делаем проброс портов;
  • И последней командой указываем, какая программа у нас должна будет стартовать при старте этого Docker-контейнера. В частности, здесь это – сервер 1С:Предприятие (для Apache это будет «apache start», а для Postgres – «postgres»).

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

Выглядит это так, как показано на скриншоте: простой текстовый файл docker-compose.yml, в котором описывается запуск определенных сервисов в Docker и их зависимости между собой.

В Docker Compose есть очень удобная вещь. Допустим, когда стартует тот же Apache, мы можем указать для него, что ему надо масштабироваться на три штуки: указываем «scale 3», запускается три Apache. Естественно, для Postgres это не подходит, но для сервера 1С:Предприятия это возможно, правда, приходится бороться с некоторыми моментами (например, с настройкой кластера серверов 1С:Предприятия).

Чем еще интересен Docker?

Сейчас максимальная версия Apache, с которой работает 1С для веб-сервисов, – это Apache 2.2. Но, если смотреть на последние версии Ubuntu или CentOS, там уже по умолчанию используется версия Apache 2.4, и установить поверх нее более старую версию Apache для нас проблемно, неудобно. В качестве решения мы можем указать в Docker file, что нам нужен Docker-контейнер именно на базе Cent OS 6, где по умолчанию установлен Apache версии 2.2, и в результате формируется Docker-контейнер с необходимой нам версией Apache.

Преимущества виртуализации

Если подвести краткий итог, то

  • С помощью файлов Vagrant file и небольших образов виртуальных машин мы можем организовать единое окружение разработчика.
  • Файл Vagrant file мы можем передать другому разработчику, сказать: «делаешь vagrant up, у тебя получается вся наша инфраструктура».
  • Разработчик нам уже не говорит: «я вроде как доделал веб-сервис, но вы добавьте константу «Тестовая функциональность», разверните на Production, мы его включим и посмотрим, заработает он или не заработает». С помощью виртуализации он может без разворачивания в Production полностью проверить работоспособность всего контура с учетом новых требований.
  • Мы можем легко менять версии платформы 1С, проверять, работает это на новой платформе 1С или нет.

Мы сейчас с вами говорили в основном про Linux, но Vagrant также может работать и на Windows. А поскольку работа в среде Windows нам тоже интересна, поговорим о том, что там можно еще использовать.

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

Packer-windows

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

Для этого существует специальная утилита, которая называется packer-windows. Основная задача этой утилиты – это создать подготовленный образ на базе Windows для Vagrant. В packer-windows есть определенные ссылки на сервера Microsoft, где он может сам автоматически выкачать ISO-образ Windows Server той версии, которая вам наиболее подходит (Windows Server 2008 или Windows Server 2012) – для них есть подготовленный файл ответа.

Если не выключить автоматическое обновление пакета, то запуск подготовки всего образа занимает пару часов (пока Windows скачает этот ISO, создаст образ, сеть, пользователей, пока все сформируется). И в результате – запустили на ночь и получили готовый образ Windows с минимально необходимыми настройками для подключения к Vagrant.

Chocolatey

Все-таки Windows у нас основан на GUI-интерфейсах, и мы там привыкли все устанавливать вручную, а это для скриптования не очень удобно. С этим сталкиваемся не только мы, весь мир тоже «болеет» этим. И родился инструмент, который называется Chocolatey – он немного похож на пакетный менеджер для Linux. Если знаете, в Linux мы в командной строке набираем:

apt-get install[program-name]

А в Chocolateyвсе то же самое, но только из командной строки Windows мы вызываем:

Choco install[program-name]

И здесь мы в качестве [program-name] можем указать либо git, либо sql server express – пакетный менеджер Chocolatey скопирует все, что нужно для установки, и установит необходимую нам программу в тихом режиме.

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

Есть шаблон пакета: просто берем setup.exe, кладем в папку, и запаковываем в этот шаблон. На скриншоте показано, как выглядит установщик такого пакета – это просто код, написанный на Powershell. После этого мы можем выполнить команду

chocoinstall – yonecserver

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

Допустим, вы с помощью утилиты packer-windows подготовили образ на базе Windows и сформировали пакет Chocolatey для 1С определенной версии (тут также поддерживается версионирование). В результате вы получаете готовый образ виртуальной машины, в котором установлен и IIS, и 1С – вам только останется либо вручную сделать публикацию 1С-овского веб-сервиса, либо написать для этого скрипт на Powershell.

Заключение

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

В заключение хочу сказать, что с 1С можно работать, используя такие технологии, как Consul, Docker. Вы можете использовать Apache2.2, поднимать различные версии сервера 1С, причем без разницы, на какой ОС вы этот сервер поднимаете – эта виртуализация может быть как в Windows, так и в Linux (но в любом случае это – виртуализация). И в результате вы получаете легкий способ тестировать различные рабочие окружения.

****************

Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2015 CONNECTION 15-17 октября 2015 года.

Приглашаем вас на новую конференцию INFOSTART EVENT 2019 INCEPTION.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Hateful72 5 22.08.16 07:44 Сейчас в теме
скрины подшакалены
mental86; kote; TreeDogNight; +3 Ответить
2. artbear 1200 22.08.16 11:11 Сейчас в теме
+1 За новые технологии
NoRazum; zarucheisky; Hissin; +3 Ответить
9. the1 618 22.11.16 17:13 Сейчас в теме
3. Infactum 291 22.08.16 14:19 Сейчас в теме
Давно уже видел эту информацию. Полезный материал.
Печально, что статьи пишут ради рекламы перед IE2016. А ведь могли и год назад написать.
4. Hissin 162 24.08.16 10:18 Сейчас в теме
(3) Infactum, В остальное время практикуются и нарабатывают опыт, чтобы новая статья была более полной и информативной. :)
5. Dragonim 126 24.08.16 11:13 Сейчас в теме
(4) Hissin,
Не вижу в данной статье полноты и информативности. Всю статью можно описать одним предложением "Платформа 1С поддерживает виртуализацию и контейнеризацию, подробности в специализированных статьях по виртуализации и контейнеризации".
6. vikad 118 24.08.16 14:09 Сейчас в теме
(5) Dragonim, вы невнимательно прочитали. Во-первых, это - конспект доклада, который длится 25 минут. На мой взгляд, в этот промежуток времени докладчик вложил просто максимум полезной информации, которую действительно нужно гуглить и которая действительно "открывает новый мир". Во-вторых, речь идет не столько об 1С, сколько об интеграции 1С с другими системами, протестировать которую на своем рабочем месте без ущерба реальным системам можно только используя виртуализацию. Причем с акцентом на том, что развертывание этой виртуальной среды можно (и нужно) автоматизировать. Да, задача несколько специфичная, но опыт ее успешной реализации у докладчика явно есть - и эта статья, по-моему, просто приглашение к конструктивному диалогу на эту тему.
Rustig; Vladimir Litvinenko; kuntashov; mickey.1cx; artbear; +5 Ответить
8. amon_ra 19 06.10.16 00:32 Сейчас в теме
(5) Dragonim, разве платформа поддерживает виртуализацию? а я всегда думал, что поддержка виртуализации, это когда внутри системы можно развернуть систему, разве не так?
7. VasilVtoroy 01.10.16 00:32 Сейчас в теме
Спасибо за статью, но, наверное стоит написать что успело устареть с момента прочтения доклада.
А это как минимум:
1) Docker теперь поддерживает Windows
2) 1C 8.3.8 поддерживает Apache 2.4
MaximKor; +1 Ответить
10. Трактор 1203 19.07.17 10:08 Сейчас в теме
>> Уже прошли те времена, когда мы по полгода обсуждали новую версию, потом еще два-три месяца ее настраивали
Когда были такие времена? Я что-то не помню.
Оставьте свое сообщение

См. также

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

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

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

10.12.2016    37606    unichkin    74    

«Варп-двигатель» для «среза последних»

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

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

10.08.2020    2867    hobi    45    

Не спеша, эффективно и правильно – путь разработки. Часть 3. Практика

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

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

29.06.2020    9088    WildHare    33    

Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория

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

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

22.06.2020    10069    WildHare    23    

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

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

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

15.10.2018    30670    tormozit    100    

Не спеша, эффективно и правильно – путь разработки. Часть 1. Парадигма

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

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

15.06.2020    14359    WildHare    34    

JSON в запросах DaJet QL

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

Практические примеры работы с JSON непосредственно в языке запросов. Перенос курсов валют между УТ и БП. Требуется SQL Server 2016 и выше.

24.04.2020    3844    zhichkin    6    

Визионное программирование

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

Новый способ программирования и его практическая демонстрация.

22.04.2020    4581    mkalimulin    111    

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

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

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

20.09.2012    78280    tormozit    131    

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

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

Продолжаю (и заканчиваю) тему с автоматическим решением инцидентов. Перейдем от теории к практике.

25.02.2020    4244    Repich    9    

Использование машинного обучения для решения инцидентов

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

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

18.02.2020    6916    Repich    17    

Часовой на страже логов

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

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    6896    Scorpion4eg    8    

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

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

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

11.07.2007    48759    tormozit    41    

Приватный блокчейн и 1С популярно

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

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

02.09.2019    6165    mkalimulin    140    

Кодогенерация и метагенерация в 1С

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

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

26.08.2019    9089    kirovsbis    28    

Интеграция сценарного тестирования в процесс разработки

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

Разработчик системы «Тестер» Дмитрий Решитко в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION показывает, что процесс тестирования можно очень плотно интегрировать в процесс разработки, что внедрение тестирования – это возможность развития программиста как такового, позволяющая ему упорядочивать ход мыслей и оставаться «в фокусе». Навыки построения процесса кодирования на стыке с тестированием сокращают время на концентрацию, освобождают от страха перед изменениями и улучшают память разработчика.

08.07.2019    9268    grumagargler    7    

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

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

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

10.09.2017    45140    tormozit    74    

Управляй качеством кода 1С с помощью SonarQube

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

Управляй техническом долгом проектов 1С с помощью SonarQube. В статье рассматривается пример применения SonarQube при разработке.

07.07.2019    40878    olegtymko    231    

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

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

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

25.04.2019    16141    m-rv    2    

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

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

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

16.04.2019    20430    m-rv    17    

Развитие 1С программиста Промо

Практика программирования Личная эффективность Бесплатно (free)

Делюсь своим опытом и видением развития 1С программиста.

17.10.2018    21174    pashamak    62    

О времени и 1С

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

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

01.04.2019    36371    YPermitin    61    

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф")

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

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф"). Данная статья будет полезна интеграторам, программистам, тем кто работает (интегрирует, разрабатывает) различное ТО либо железки. Версия и релиз технологической платформы не имеет значения.

17.03.2019    6625    dmarenin    1    

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

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

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

01.06.2018    30965    m-rv    21    

Быстрее чем INSERT! BULK-операции и примеры использования

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

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

09.03.2019    24978    YPermitin    40    

Как писать понятные коммиты

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

Как писать сообщения коммитов так, чтобы потом не было мучительно больно.

06.03.2019    12816    Scorpion4eg    35    

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

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

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

05.12.2017    28377    itriot11    34    

Подготовка ребёнка к ЕГЭ по информатике. Часть шестнадцатая

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

Поиск выигрышной стратегии, завершающая статья.

22.02.2019    5777    vasilev2015    0    

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

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

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

27.01.2016    76788    Serginio    108    

Подготовка ребёнка к ЕГЭ по информатике. Часть тринадцатая

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

Исправление ошибок в программе, часть вторая.

20.02.2019    5797    vasilev2015    3    

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

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

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

10.11.2018    35287    ids79    40    

Подготовка ребёнка к ЕГЭ по информатике. Часть восьмая

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

Шифрование и дешифрование информации. Закон Фано

05.02.2019    5642    vasilev2015    1    

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

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

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

25.07.2018    29425    grumagargler    28    

Расширяем свой багаж

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

Алгоритм решения возможной нетиповой задачи на собеседовании.

29.01.2019    6398    scientes    15    

Подготовка ребёнка* к ЕГЭ по информатике. Часть четвертая

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

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

25.01.2019    6289    vasilev2015    0    

Подготовка ребенка* к ЕГЭ по информатике. Часть третья

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

Алгоритмы рекурсии, логические задачи. Подготовка к ЕГЭ.

22.01.2019    7552    vasilev2015    0    

Разработка и сценарное тестирование с Vanessa-ADD. Установка инструментов. Запись действий пользователя и выполнение сценариев

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

Вторая часть цикла публикаций, посвященных Vanessa-ADD и автоматизации тестирования.

21.01.2019    35795    Vladimir Litvinenko    96    

Подготовка ребенка* к ЕГЭ по информатике. Часть вторая

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

Примеры на Паскале. Если сам родитель* - поддержи ! Если сам водила - посигналь !

19.01.2019    5909    vasilev2015    0    

Подготовка к ЕГЭ сына - школьника (по информатике)

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

Примеры на Паскале. Если сам отец - поддержи ! Если сам водила - посигналь !

17.01.2019    6664    vasilev2015    50    

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

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

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

18.12.2018    7099    milkers    19