Автоматизируй это!

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

Разработка - Инструментарий разработчика

Здравствуйте. Меня зовут Виталий Онянов. Я работаю в компании ФТО. Мы занимаемся внедрением и поддержкой ERP-систем, в том числе и на 1С. Сегодня я хотел бы поделиться нашим опытом автоматизации своих задач и рассказать о том, какие регламентные задания мы настраиваем на серверах наших клиентов. Возможно, кому-то покажется, что это совсем простые и очевидные вещи, но я в своей работе периодически вижу разработчиков, которые делают какие-то задачи руками изо дня в день, и мне бы хотелось донести до них мысль о том, что многие из этих задач можно и нужно автоматизировать.

Тем, кому лень читать всю статью, предлагаю посмотреть запись вебинара на данную тему:

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

Ну а всем остальным, добро пожаловать по кат (все картинки кликабельны):

 

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

1. SQL-скрипты

Начать я хотел бы с SQL-скриптов и конкретно с операции резервного копирования баз данных.

1.1 Резервное копирование базы данных

Как делают резервную копию базы данных 95% разработчиков?

В общем случае, чтобы сделать резервную копию в MS SQL Server, нужно открыть Management Studio, найти необходимую базу в списке, кликнуть по ней правой кнопкой мыши, и выбрать «Задачи» – «Создать резервную копию».

В открывшемся мастере необходимо:

  • Поставить флажок «Только резервное копирование», чтобы исключить копию из основной последовательности бэкапов;
  • Очистить список назначения, нажав кнопку «Удалить»;

  • Нажать «Добавить» для сохранения копии по новому пути;
  • И ввести в качестве места назначения какой-то не всегда тривиальный путь, не забыв указать при этом расширение .bak;
  • Затем нажать «ОК» и дождаться завершения операции.

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

В этом скрипте у нас два изменяемых параметра:

  • Имя базы, которую мы хотим забэкапить;
  • И путь к резервной копии.

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

  • Имя базы данных;
  • Каталог, где хранится резервная копия.

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

  • Имени базы данных;
  • Каталога для хранения;
  • Датой бэкапа.

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

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

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

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

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

 

1.2 Восстановление базы данных

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

Здесь мы опять заходим в Management Studio, правой кнопкой щелкаем по нужной базе, выбираем пункты: «Задачи» – «Восстановить» – «База данных».

Откроется мастер. Здесь нужно выбрать:

  • Базу данных источника;
  • Базу данных назначения – выбираем нашу тестовую базу;
  • Проверить, что подобрался необходимый набор резервных данных для восстановления.

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

  • К файлу базы данных;
  • К файлу журнала транзакций.

Потом переходим на вкладку «Параметры».

  • Ставим галочку «Перезаписать существующую базу данных»;
  • Снимаем галочку «Создать резервную копию заключительного фрагмента журнала до восстановления».

Затем еще раз внимательно все проверяем, чтобы нигде ничего не забыть. Нажимаем «ОК» и ждем, когда будет восстановление базы данных. 

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

  • Перевести ее модель восстановления с «Полной» на «Простую» (мы же помним, что это – тестовая база, поэтому для нее не нужно хранить журналы транзакций, чтобы места лишнего не занимать).
  • Установить флаг «Автоматическое сжатие» в значение «True»;

  • Запустить процесс сжатия журнала транзакций.

В результате получается очень много ручных операций, в которых легко запутаться и потерять на них много времени. Хочется это все как-то автоматизировать.

Попробуем решить эту задачу с помощью запроса в консоли Management Studio.

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

Информация обо всех сделанных резервных копиях хранится в специальной базе данных msdb в системных таблицах dbo.backupmediafamily, dbo.backupset и т.д. Там среди прочего, можно найти информацию о физическом расположении файла резервной копии.

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

Например, мы можем написать запрос, где:

  • Сначала идет получение полных резервных копий;
  • Потом всех разностных резервных копий;
  • А затем –  получение всех журналов транзакций до указанной даты.

Следующее, что необходимо сделать – это заменить файлы рабочей базы на файлы тестовой.

  • Из системного представления sys.master_files (или sys.databases) мы получаем информацию о логическом и физическом расположении файлов рабочей и тестовой баз данных;
  • Далее с помощью параметра MOVE оператора RESTORE заменяем пути, по которым будет производиться восстановление (путь к файлу рабочей базы меняем на путь к файлу тестовой базы);
  • Производим такую замену в цикле для всех найденных файлов восстанавливаемой базы;
  • Восстанавливаем резервную копию на выбранную дату в тестовую базу данных;

  • В этом же скрипте переводим базу данных в простую модель восстановления;
  • Запускаем сжатие базы данных.

  • И в заключение мы, в зависимости от результата работы скрипта, генерируем:
    • Либо сообщение об ошибке (если оно было);
    • Либо сообщение об успехе.

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

Все настраиваемые параметры вынесены в шапку скрипта. Здесь мы указываем:

  • Базу данных источника;
  • Базу данных назначения;
  • Дату, на которую необходимо перезалить самые свежие данные (по умолчанию – текущая дата);
  • Профиль, от которого отправляется электронное сообщение;
  • И кому это сообщение отправляется.

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

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

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

 

1.3 Очистка тестовых баз

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

  • Это могут быть сканированные копии каких-то документов – если не используются тома хранения файлов;
  • Это может быть регистр сведений «Версии объектов»;
  • Какие-нибудь классификаторы.

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

Сделать такую очистку очень просто:

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

  • Затем, пробегаясь в цикле по этим базам, с помощью метода TRUNCATE TABLE мы удаляем ненужные нам таблицы.

Это также позволяет нам сэкономить много места.

Этот скрипт можно таким же образом конвертировать в задание. И, например, настроить расписание – каждую ночь очищать все тестовые базы.

Как видите, при работе с SQL-сервером мы активно используем скрипты, задания, планы обслуживания. По ссылке https://github.com/Tavalik/SQL_TScripts вы сможете найти эти и еще множество других скриптов, которые мы часто используем в своей жизни. Надеюсь, вам они тоже пригодятся.

 

2. Инструменты автоматизации

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

Итак, с чего начинается автоматизация у разработчиков 1С? Как правило, это:

  • BAT-файлы;
  • PowerShell скрипты;
  • VBScript;
  • И прочие языки автоматизации. Это может быть какой-нибудь Python или даже Delphi – на чем умеют, на том и пишут.

У всех этих инструментов есть свои плюсы и минусы, но самый главный минус для нас, 1С-ников – это то, что если ты практически весь свой день проводишь в конфигураторе, разрабатываешь на 1С, то потом возвращаться к этим инструментам очень тяжело. Мне кажется, что я в свое время написал много самых разных «батников», но сейчас, если мне нужно написать очередной bat-файл, я все равно иду в поисковик «Яндекса» и ищу примеры. Потому что, к сожалению, когда что-то в своей жизни постоянно не используешь, оно быстро забывается.

 

AutoIT

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

Синтаксис языка очень похож на Basic. Разобраться в нем не очень сложно. Все написанные в этой программе скрипты работают сразу же «из коробки». Устанавливаете движок – и все, никаких дополнительных dll, библиотек или чего-то еще не нужно.

Кроме того, ваши скрипты будут изначально совместимы со всеми версиями Windows – тоже «из коробки». Также с помощью скриптов AutoIT можно запускать различные приложения (в том числе от имени другого пользователя), и даже создавать графические интерфейсы для ваших скриптов.

AutoIT умеет работать:

  • С файлами, реестром, буфером обмена;
  • С сетевыми протоколами TCP и UDP;
  • С COM-объектами;
  • С окнами Windows;
  • С текстом.

Также AutoIT может эмулировать нажатие клавиш клавиатуры и поведение мыши.

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

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

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

Здесь показано, как выглядит скрипт, написанный на AutoIT.

У нас, например, компания имеет матричную структуру, разработчики часто перемещаются из одного проекта в другой, из проекта в поддержку, между разными отделами поддержки. И вот, предположим, я для нужд проекта автоматизировал все на AutoIT, разобрался в его синтаксисе, научился пользоваться и потом отдаю это все добро другому разработчику. Вопрос – будет ли у него время и желание в этом всем разбираться? Далеко не факт. Скорее всего, он будет использовать какие-то инструменты, которые ему ближе, ему более знакомы.

Поэтому – инструмент хороший, но для 1С-ников не очень подходит.

 

xStarter

Чуть лучше в плане доступности и наглядности обстоят дела у программы xStarter.

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

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

  • Он умеет запускать приложения,
  • Поддерживаются всевозможные файловые операции,
  • Операции с FTP, HTTP,
  • Работу с архивами,
  • Работу с электронной почтой, с ICQ, Skype.

xStarter позволяет осуществлять:

  • Работу с базами данных через ADO DB Connection;
  • Операции с текстом;
  • Математические операции;
  • Операции с сетью и другие задачи.

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

Эту программу очень любят системные администраторы, потому что для работы с xStarter, не надо быть программистом. У нас во многих отделах по несколько лет работают скрипты на xStarter по принципу: «работает – не трогай».

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

  • Заархивировать файлы с данными;
  • Архив сложить в какое-то место;
  • Там удалить старые архивы;
  • Потом этот архив закачать на FTP;
  • И отправить сообщение на электронную почту.

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

Как выглядит итоговый скрипт для такой задачи:

  • Слева находится список задач;
  • Справа – дерево команд для выделенной в списке задачи;
  • В дереве команд можно использовать условные операторы.

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

Еще скажу, что xStarter:

  • Может устанавливаться в виде службы;
  • Имеет собственный планировщик, который может запускать задачи по расписанию;
  • Умеет запускать скрипты по событиям Windows (например, при образовании файла и т.д.);
  • Может запускать скрипты по нажатию горячих клавиш;
  • Имеет возможность запуска скриптов на удаленных компьютерах в сети.

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

 

Конфигурации и обработки 1С

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

Какие тут плюсы?

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

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

 

OneScript

Знаменательным событием стало появление инструмента OneScript. Этот инструмент имеет все преимущества предыдущих, но не имеет их главного недостатка – сложности в освоении одинэсниками.

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

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

Также OneScript умеет работать со всеми универсальными механизмами. Как и сама 1С, он работает с текстом, XML, JSON и поддерживает регулярные выражения.

Так же, как и 1С, позволяет осуществлять:

  • Файловые операции;
  • Работу с сетью, архивами, различными двоичными данными и COM-объектами;
  • Поддержку различных сценариев и библиотек.

На этом моменте нужно остановиться чуть подробнее.

 

Библиотеки OneScript

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

Я перечислю основные библиотеки, которые особенно подходят для решения наших повседневных задач:

  • v8runner – позволяет запускать 1С с различными параметрами, используя самые разные пакетные режимы запуска конфигуратора. В пакетном режиме можно сделать очень много полезного;
  • v8storage – библиотека для работы с хранилищем 1С;
  • files-common – поддержка всевозможных файловых операций;
  • strings – строковые операции;
  • params – библиотека для работы с параметрами скриптов, а также с файлами, которые содержат эти параметры;
  • logos – библиотека для логирования.
  • 1commands – библиотека для упрощения запуска различных командных файлов и приложений;
  • tempfiles – работа с временными файлами;
  • oscript-ftp – FTP-клиент для OneScript;
  • oscript-mail – компонента для работы с электронной почтой;
  • oscript-yadisk – реализация API Яндекс.Диска для OneScript;
  • gitrunner – программная обертка для работы с Git.

Большой обзор библиотек OneScript в этой статье: //infostart.ru/public/699642/

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

Например, я пишу абсолютно одинэсовский код, чтобы описать функцию ВыполнитьЗапрос():

  • В данной функции с помощью ADODB.Connection создается подключение к какой-то базе данных MS SQL;
  • В этой базе выполняется какой-то указанный в параметрах функции SQL-запрос.

Мы такое много раз писали.

А теперь я беру все те SQL-скрипты, о которых я рассказывал в первой части доклада, и с помощью этой функции без проблем реализую такие экспортные процедуры, как:

  • СделатьРезервнуюКопиюБД();
  • ПолучитьСтруктуруФайловБД();
  • ПолучитьСписокФайловДляВосстановленияБД() – на дату;
  • ВосстановитьИзРезервнойКопииБД();
  • ВосстановитьБД();
  • ИзменитьМодельВосстановленияБД() – например, на Simple;
  • СжатьБД();
  • СжатьФайлыБД().

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

О создании своих библиотек можно прочитать здесь или здесь.

 

Пример сценария на OneScript

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

  • В первую очередь, я проверяю, есть ли в базе захваченные или измененные объекты (потому что при перезаливке я могу чьи-то изменения затереть);
  • Если изменений нет, я устанавливаю блокировку регламентных заданий и начала сеансов;
  • По прошествии указанного времени в приложении завершаются все активные сеансы;
  • Дальше идет расчет последовательности файлов резервных копий рабочей базы для восстановления базы данных на дату;
  • После того, как соответствующий файл резервной копии будет найден, я произвожу восстановление базы данных. Причем, здесь мне не важно, где находятся рабочая и разработочная база – они могут находиться на разных серверах. Главное, что я получил все нужные для восстановления файлы и их использую. Тут возможно, нужно будет настроить права, но все это решается;
  • Далее я перевожу базу в простую модель восстановления;
  • Запускаю сжатие файла журнала транзакций;
  • Отключаю базу от рабочего хранилища;
  • Подключаю базу к разработочному хранилищу (поскольку базу я перезаписал, она теперь думает, что подключена к рабочему хранилищу).
  • После этого я сразу обновляю конфигурацию базы данных;
  • Снимаю блокировку регламентных заданий и начала сеансов;
  • И отправляю уведомление по электронной почте.

Все это без проблем реализуется простым вызовом необходимых процедур стандартных библиотек.

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

 

«Перезаливатор»

Но мы пошли еще дальше. Представьте себе ситуацию:

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

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

Поэтому с помощью стандартной библиотеки gui мы написали интерфейс для наших скриптов – OneScript это тоже позволяет.

Теперь консультант сам запускает скрипт:

  • Выбирает из списка базу данных источника;

  • Выбирает базу данных назначения (причем, в списке баз данных назначения нет базы «Рабочая», чтобы случайно туда что-нибудь не перезалить);

  • Указывает дату;
  • Нажимает кнопку «Перезалить базу»;
  • При этом проходит контроль сеансов – их при необходимости можно прямо отсюда завершить;

  • База данных перезаливается, и консультанту приходит сообщение об успехе.

 

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

Официальный репозиторий программы: https://github.com/Tavalik/Perezalivator, статья на infostart.ru: //infostart.ru/public/860429/

Причем, это – только один из возможных сценариев, которые мы у себя внедрили. И более того, это не какая-то уникальная вещь. На GitHub и Infostart.ru уже есть несколько подобных готовых программ, написанных на OneScript, которые делают все то же самое.

 

Какие еще задачи мы решаем с помощью OneScript?

  • Обновление тестовых и всевозможных разработочных баз (которое я только что показал);
  • Обновление информационных баз из хранилища или файла поставки. Например, если у вас есть 10 баз, подключенных к одному хранилищу, вы запускаете скрипт, и она все их обновляет по заданному сценарию;
  • Обновление конфигурации в РИБ;
  • Вообще с помощью OneScript очень легко производится запуск различных сценариев по обмену данными;
  • Резервные копии файловых информационных баз, а также рабочего каталога кластера серверов, хранилища 1С – все это тоже делается легко с помощью OneScript;
  • Загрузка файлов на FTP/ «Яндекс.Диск»;
  • Очистка каталогов от старых файлов;
  • Контроль свободного места на дисках;
  • Задачи обновления релиза при интенсивной разработке;
  • И даже перенос задач между разными базами, подключенными к разным хранилищам (обычно мы делаем это вручную) – мы тоже смогли частично решить с помощью OneScript.

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

 

Жизненный цикл работы со скриптом

В своей работе мы пытаемся придерживаться такой схемы разработки скриптов:

  • Разработчик создает скрипт на своем компьютере;
  • С помощью GIT осуществляется версионирование скриптов;
  • После того, как скрипт написан и протестирован, он конвертируется в исполняемый файл. Причем, неважно, это OneScript, xStarter или что-то еще;
  • Готовый исполняемый файл уходит по серверам клиентов;
  • Все настройки скриптов хранятся в файлах настроек;
  • Запускает скрипты стандартный планировщик Windows;
  • После того, как скрипты отработали, отправляется уведомление по электронной почте.

Преимущества такой схемы организации регламентных заданий:

  • Такая схема идеальна в ситуации, когда у нас много серверов, много однотипных задач и хочется это быстро автоматизировать;
  • Она не требует установки никакого дополнительного ПО;
  • Не требует вообще прав локального администратора – они у нас не всегда есть;
  • Позволяет очень быстро развернуть все регламентные задания. Например, если пришел новый клиент или появился новый сервер, чтобы развернуть и настроить все, у нас уходит максимум пару часов;
  • Она безопасна, потому что никто не может «вклиниться» в тело скрипта, так как это – исполняемый файл. Тут, правда, возникает вопрос хранения паролей в файлах настроек. Но он решается:
    • Либо с помощью настройки прав доступа в службе безопасности Windows.
    • Либо с помощью хранения паролей прямо в теле скрипта – например, если везде используется один и тот же пароль электронной почты для отправки сообщения, его можно «зашить» в сам скрипт.
    • Либо с помощью использования доменной авторизации. В этом случае в файлах настройки вообще не указываются ни логин, ни пароль, а для того пользователя, который запустил скрипт, везде проходит доменная авторизация. Для 1С и для SQL все это работает.
  • И еще важный параметр – как правило, в базах 1С уже используется рассылка электронных писем, поэтому нам не требуется какой-то дополнительной настройки сетевой безопасности (иногда это очень долгая бюрократическая процедура). Все порты SMTP-сервера, как правило, открыты, поэтому мы можем без проблем использовать электронную почту.

 

3. Контроль выполнения регламентных заданий

Когда мы постепенно начали эту схему разрабатывать, то столкнулись с еще одной проблемой. Представьте, что если в среднем отделе 3-6 клиентов, у каждого клиента 1-3 сервера, на каждом сервере 5-6 регламентных заданий, следовательно, за день «прилетает» 50-60 писем об их выполнении.

Если письмо с ошибкой отследить довольно легко – можно настроить такое правило на Outlook, то факт того, что письмо не пришло вообще – отследить нереально. Не будете же вы каждый день пересчитывать все 50 писем и проверять, есть ли среди них недостающие.

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

Итак, мы искали программу, которая:

  • Могла бы работать с электронной почтой;
  • Делала рассылки уведомлений;
  • Не требовала бы установки клиентской части;
  • Имела простой, понятный интерфейс (желательно, русский);
  • Гибко настраивалась;
  • Была бы бесплатной или почти бесплатной.

Пытались сюда как-то «прикрутить» Zabbix, но в результате изобрели свой «велосипед».

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

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

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

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

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

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

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

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

Мне одного взгляда на этот отчет достаточно, чтобы увидеть, что:

  • Здесь закончилось место на диске – это известная проблема этого сервера;
  • А здесь почему-то не сработало резервное копирование (либо сработало, но письмо по каким-то причинам не пришло) и нужно уже идти и разбираться, что случилось и почему.

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

 

Заключение

Я вам искренне желаю не делать одни и те же действия постоянно. Если вы что-то делаете второй или третий раз – это точно нужно автоматизировать.

Все знают, что заниматься автоматизацией – это полезно для бизнеса. Но для разработчика – это еще и во много раз интереснее, чем делать одно и то же действие. Начав заниматься автоматизацией один раз, уже невозможно остановиться, уже думаешь «можно автоматизировать еще здесь, здесь и здесь». Удачи!

 

Источники и статьи по данной тематике:

Вебинары по SQL-скриптам:

Перезаливатор:

Статьи и вебинары про OneScript:

 

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

Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2017 COMMUNITY. Больше статей можно прочитать здесь.

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

Выбрать мероприятие.

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

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. fishca 1191 02.07.18 17:31 Сейчас в теме
Можно для всего этого подцепить Jenkins
2. comol 4496 03.07.18 11:08 Сейчас в теме
Один из самых, если не самый, для меня полезный доклад с прошлого инфостарта...
serge_grand; headMade; FTC; maXon777; +4 Ответить
3. Tavalik 2406 04.07.18 06:34 Сейчас в теме
(2)
Ого! Спасибо, очень приятно!
4. maXon777 113 04.07.18 07:47 Сейчас в теме
Очень крутая статья, спасибо! Не хотите выложить подсистему за стартмани?
5. LexSeIch 208 04.07.18 10:36 Сейчас в теме
Полезная статья. Хотелось бы добавить пару слов по AutoIT - инструмент очень полезный. Простой синтаксис, наличие возможности формировать окна, кнопки, поля ввода и создание исполняемых портабельных файлов делает его очень удобным в использовании. Эмуляция нажатий клавиш позволяет делать оболочки для запуска и отработки программ, имеющих только оконный интерфейс из командной строки. Большое сообщество и наработки позволяют быстро адаптировать сторонний код для разных областей применения. Например недавно используя стороннюю DLL и помощь интернета удалось создать консольный генератор QR кода... Пока бегло просмотрел статью, но дома обязательно "похожу по ссылкам" и просмотрю видео. Спасибо
headMade; Tavalik; +2 Ответить
6. DonAlPatino 152 04.07.18 13:02 Сейчас в теме
Подсистему «Контроль выполнения заданий» не планируете выложить в доступ? Пытались сделать подобное, но довести до продакшена в варианте для пачки баз так и не смогли.
9. Tavalik 2406 06.07.18 08:31 Сейчас в теме
(6) (4)
Надо реализовать еще несколько идей, причесать, инструкцию сделать или видео записать. Все никак руки не доходят. А так, да, обязательно выложу.
maXon777; +1 Ответить
10. maXon777 113 06.07.18 11:31 Сейчас в теме
(9)
Очень ждем. Готовы тестить бета-релиз :))
7. asved.ru 35 05.07.18 09:58 Сейчас в теме
Пример "как делать не надо". Почему? Потому что используется куча различных инструментов, сред, ЯП, точек входа. Весь этот адъ и Израиль нужно поддерживать, а регламент ввода в эксплуатацию новой ИБ превращается в портянку.
8. Tavalik 2406 05.07.18 10:20 Сейчас в теме
(7)
Я так не думаю. Но спасибо и за ваше мнение.
Инструментов, в конечном счете, только три: MS SQL, 1С и OneScript. Причем, по моему убеждению, все это разработчик 1С знать должен (OneScript идет плюсом к знанию синтаксиса языка 1С). Настройка всех заданий для новой ИБ занимает час-два, не больше.

Пример "как делать не надо".

Расскажите как надо. С удовольствием почитаю.
mc_onix; Shalnov; amon_ra; +3 Ответить
11. herfis 404 06.07.18 11:49 Сейчас в теме
(7) Вы слишком категоричны. Это обычный trade-off. Весь этот "адъ и Израиль" как вы выразились начинает окупаться сторицей начиная с некоторого порога размера инфраструктуры, количества инфраструктурных запросов и пользователей, их генерирующих.
12. amon_ra 22 17.08.18 12:19 Сейчас в теме
(7) не увидел ада. все инструменты обычные, нет ничего специфического.
Оставьте свое сообщение

См. также

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

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

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

28.12.2020    4437    comol    22    

Telegram бот на PHP

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

Сделаем простого Telegram бота на PHP.

01.03.2021    1656    John_d    7    

Переезд kuzkov.info на Mantis. 1. Установка в облаке

Управление проектом Управление задачами Облачные сервисы, хостинг Групповая разработка Прочие инструменты разработчика Бесплатно (free)

Первая часть учебника по задачнице мантис (mantis), написанная по мотивам переезда kuzkov.info с жиры (jira). В учебнике достаточно подробно и с картинками описана развертка и начальная настройка мантиса в облачном веб-размещении. Также описаны причины переезда на мантис, дано краткое сравнение двух задачниц и общие выводы после переезда (открывашка: jira выключена и забыта).

20.01.2021    572    Steelvan    11    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 4

EDT Бесплатно (free)

Сборка репозитория P2 на основе исходников плагина 1С:EDT для поставки пользователям.

27.12.2020    450    marmyshev    0    

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

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

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

10.12.2016    38468    unichkin    74    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 3

EDT Бесплатно (free)

Описание процесса создания UI-плагина для EDT с Quick-Fix по проверке.

08.11.2020    636    marmyshev    0    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 2

EDT Бесплатно (free)

Описание процесса создания плагина для EDT по валидации с квикфиксом.

07.11.2020    1289    marmyshev    1    

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 1

EDT Бесплатно (free)

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

17.10.2020    3529    marmyshev    24    

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

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

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

15.10.2018    32081    tormozit    104    

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

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

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

10.08.2020    3241    hobi    46    

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

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

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

29.06.2020    10887    WildHare    33    

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

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

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

22.06.2020    11356    WildHare    23    

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

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

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

20.09.2012    79328    tormozit    131    

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

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

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

15.06.2020    16993    WildHare    34    

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

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

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

24.04.2020    4114    zhichkin    6    

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

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

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

22.04.2020    4791    mkalimulin    111    

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

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

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

11.07.2007    50087    tormozit    48    

Установка EDT 2020.2 на Ubuntu 18.04

EDT Россия Бесплатно (free)

Установка EDT 2020.2 на Ubuntu 18.04 Заметки на будущее.

12.04.2020    3191    awk    14    

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

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

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

25.02.2020    4528    Repich    9    

Технология разветвлённой разработки, использующая git, ci/cd

CI/CD Git (GitHub, GitLab, BitBucket) Методология управления разработкой EDT 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Адаптация и расширение требований к разветвлённой разработке с использованием git и ci/cd, основанное на стандартах 1С

24.02.2020    6616    check2    10    

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

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

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

10.09.2017    46789    tormozit    74    

CI/CD для 1С проектов, унифицировано, с кастомизацией

CI/CD Инструментарий разработчика Бесплатно (free)

Тема CI/CD в связке с 1С не нова, но многих пугает сложность использования и поддержки, необходимость обучения команды. Про то, как унифицировать и упростить поддержку сборочных конвейеров для большого количества решений, в своем докладе на конференции Infostart Event 2019 Inception рассказал начальник отдела компании BIA-Technologies Валерий Максимов.

20.02.2020    7129    theshadowco    12    

О синхронизации ИБ с проектом в EDT

EDT Бесплатно (free)

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

19.02.2020    4390    check2    2    

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

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

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

18.02.2020    7281    Repich    17    

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

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

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

17.10.2018    22669    pashamak    64    

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

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

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

27.01.2020    39412    ids79    26    

Атака сервера кнопонажималкой

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

Чтобы убедиться, что продукт выдержит планируемую нагрузку, необходимо провести нагрузочное тестирование – написать сценарии пользовательских действий и запустить их в несколько потоков, чтобы заранее найти проблемы в бизнес-логике и «узкие места». О том, как упростить написание сценариев тестирования для конфигурации Тест-центр с помощью фреймворка Vanessa Automation на конференции Infostart Event 2019 Inception рассказал ведущий программист компании «ПервыйБИТ» Никита Грызлов.

20.01.2020    6547    nixel    22    

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

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

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

15.01.2020    30649    John_d    22    

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

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

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

25.04.2019    16432    m-rv    2    

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

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

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

13.01.2020    7854    Scorpion4eg    8    

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

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

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

30.12.2019    23343    kuzyara    38    

Как управлять качеством кода 1С, используя платформу SonarQube

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

При быстром росте функциональности проводить визуальный Code-Review для обнаружения некачественного кода проблематично. О том, как автоматизировать проверку качества кода 1С с помощью платформы SonarQube на конференции Infostart Event 2019 Inception рассказал ведущий разработчик компании «Командор» Олег Тымко.

30.12.2019    9600    olegtymko    10    

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

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

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

16.04.2019    20969    m-rv    17    

Фреймворк для создания бизнес web-приложений

Прочие инструменты разработчика Бесплатно (free)

Для создания систем, решающих узкие бизнес задачи, использовать 1С бывает нецелесообразно. Хочу представить альтернативу - web фреймворк katejs. Будет интересно также тем, кто интересуется web разработкой на современном javascript.

15.10.2019    5544    nep_i    25    

Полезные процедуры и функции для программиста

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

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

07.10.2019    33237    HostHost    41    

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

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

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

01.10.2019    40333    Yashazz    50    

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

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

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

01.06.2018    32341    m-rv    21    

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

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

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

25.09.2019    25048    YPermitin    40    

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

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

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

18.09.2019    20318    YPermitin    36    

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

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

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

06.09.2019    67613    rpgshnik    68    

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

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

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

05.12.2017    28858    itriot11    34    

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

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

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

05.09.2019    58450    ids79    55    

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

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

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

02.09.2019    6424    mkalimulin    140    

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

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

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

26.08.2019    9254    kirovsbis    28    

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

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

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

27.01.2016    78415    Serginio    113    

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

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

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

17.08.2019    35395    ids79    16    

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

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

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

08.08.2019    107452    ids79    63    

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

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

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

02.08.2019    44135    avalakh    26    

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

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

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

10.11.2018    37437    ids79    40    

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

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

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

26.07.2019    76329    ids79    14    

Отказ от использования хранилищ 1С, переход на Git.

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

Валерий Максимов в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION делится опытом перехода нескольких команд (более 100 разработчиков) от использования хранилищ 1С на системы контроля версий Git.

25.07.2019    11263    theshadowco    31    

Как проводятся документы в типовых конфигурациях от 1С

Математика и алгоритмы Практика программирования Разработка v8::ОУ ERP2 УТ11 Россия УУ Бесплатно (free)

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

24.07.2019    30314    skv_79    35