Автоматизация процесса 1С-разработки

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

Разработка - Математика и алгоритмы

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

Основные темы статьи – это:

  • Направления автоматизации. Что именно в работе 1С:Специалиста мы можем автоматизировать? Что стоит автоматизировать, а что не стоит? Я расскажу о примерах автоматизации, которые уже используются разными людьми.
  • Расскажу о способах создания универсальных решений – таких решений, которые будут работать на разных конфигурациях.
  • Расскажу об инструментах, которые помогают нам автоматизировать нашу работу, и помогают писать код, который будет вместо нас писать код.
  • Ну и расскажу об общей схеме адаптации решений к конфигурации пользователя.

Направления автоматизации

Какие наиболее популярные направления автоматизации?

  • Говоря об автоматизации, мы чаще всего подразумеваем автоматизацию задач администрирования (создания архивных копий, обновления конфигурации). С этим направлением проще всего, потому что все актуальные типовые решения построены на базе Библиотеки Стандартных Подсистем (БСП), которая уже содержит в себе механизмы, помогающие в автоматическом режиме обновить конфигурацию и создать ее копию. Более того, если ваша база небольшая, и у вас есть активная подписка на ИТС, то БСП может сама положить копию вашей базы в облачное хранилище 1С, чтобы вы не потеряли данные, даже если с компьютером что-либо случится
  • Второе направление автоматизации – это тестирование решений. В 1С-мире с этим немного сложнее, чем в классической разработке, но, тем не менее, последнее время очень много говорится о том, что при каждом изменении конфигурацию стоит тестировать, и лучше это делать автоматически. Сейчас на рынке есть достаточно много инструментов для создания автотестов. Наиболее интересные из них, на мой взгляд, это –  «Сценарное тестирование» от компании 1С, а также опенсорс-разработка «Vanessa Behavior». У них немного разная логика работы, но, в принципе, оба эти решения справляются с задачей автоматизации тестирования. Что из них выбрать – решение пользователя.
  • И третье направление автоматизации – это то, о чем я буду говорить остальную часть презентации – это автоматизация разработки. Для многих людей единственным способом создания решений на 1С является написание кода в конфигураторе. Но я хочу рассказать о том, что есть много вариантов работы с кодом программно.

Примеры автоматизации разработки

Какие основные примеры автоматизации уже реализованы?

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

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

  • Еще один из примеров – это автоматическое создание кода. Его можно использовать, например, для:
    • Рисования элементов форм;
    • Создания кода условного оформления;
    • И для автоматического создания схем СКД.

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

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

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

  • В платформе 8.3.6 появилась такая интересная возможность, как расширения. Они позволяют менять функциональность типовых конфигураций без изменения самих конфигураций. Однако проблема состоит в том, что сложно создать одно универсальное решение на разные конфигурации, потому что к расширению могут подключаться в разных конфигурациях разные объекты. В этом случае гораздо удобнее сделать какой-то общий шаблон расширений, а добавлять в него документы/справочники уже программно.
  • И последний пример – это перенос своих изменений при обновлениях. Это, конечно, можно делать и вручную, но удобнее такие действия проводить именно на уровне текста, особенно, если вы используете механизмы Git (ветки). В данном случае Git более правильно объединяет типовую конфигурацию с вашими изменениями. Если изменения небольшие, то в большинстве случаев обновление может пройти полностью автоматически.

Способы создания универсальных решений

Какие вообще есть способы создания универсальных решений?

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

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

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

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

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

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

Инструменты программной работы с 1С-продуктами. Преимущества и недостатки различных подходов

Какие есть инструменты для программной работы с 1С-продуктами?

Есть три основных подхода:

  • Это разбор файла на маленькие файлики;
  • Выгрузка в XML;
  • И объектный подход.

Давайте рассмотрим каждый из них.

v8Unpack

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

  • Разобрать на части,
  • Изменить те части, которые мы хотим изменить,
  • И собрать обратно.

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

Этот способ реализует утилита v8Unpack. В чем ее плюсы?

  • Это, прежде всего, простота. Эта утилита запускается в командном режиме: мы указываем ей, какой файл разбираем, и на выходе она выдает каталог с пачкой файликов.
  • Она универсальна и всеядна. Ей абсолютно все равно, на какой платформе написано ваше решение (8.1, 8.2, 8.3). Технически структура файлов 1С-решений не менялась довольно много лет.
  • И еще к плюсам этого решения относится его самодостаточность. Для изменения конфигурации с помощью v8Unpack вам не нужна платформа 1С. Достаточно просто запустить утилитку и показать ей, где файл. Она не взаимодействует ни с конфигуратором, ни с платформой. Она разбирает любой файл на файлики и собирает его обратно.
  • И последнее ее преимущество – это то, что это единственный инструмент, который умеет работать с байт-кодом. Если в вашей обработке или отчете есть модули, которые поставляются без исходного кода, то v8Unpack все равно разберет их на текстовые файлики. Разумеется, русского кода мы там не получим, но мы получим байт-код, который тоже можно анализировать и менять. Более того, этот байт-код имеющимися на Инфостарте средствами можно перевести в нормальный читабельный код. Разумеется, это возможно только в том случае, если решение не прогонялось через дополнительный софт. Если прогонялось, то восстановить полностью его обычно нельзя, но частично всегда можно.

У утилиты v8Unpack есть и минусы.

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

Выгрузка/загрузка XML

Второй способ работы с 1С-разработками – это выгрузка и загрузка из XML.

  • Это официальный механизм, который рекомендуется компанией 1С и используется во всех ее продуктах, например, в БСП и в СППР. Фирма 1С гарантирует, что этот инструмент будет корректно работать в обе стороны на тех платформах, для которых он запущен.
  • Плюсом этого решения является то, что он выгружает конфигурацию в понятную структуру. У нас есть:
    • Корневой уровень – уровень конфигурации в целом;
    • Отдельные папки – для документов, справочников, отчетов, обработок.
    • В каждой этой папке есть подпапка для каждого документа, для каждого справочника.

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

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

Ну и есть некоторые небольшие минусы в том, что:

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

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

Eclipse

И последний подход, о котором я хочу поговорить – это объектный подход. Я надеюсь, вы все знаете, что 1С пишет свой новый модный конфигуратор на базе Eclipse. Но я бы хотела обратить внимание, что это немного больше, чем модный конфигуратор:

  • Это – доступ к API, который разработчики давно просили. Это то, что было реализовано много лет назад в виде Снегопата, но немного функциональнее, немного лучше. Если Снегопат нам дает доступ лишь на чтение данных конфигурации, то проект Graphite, который реализован на платформе Eclipce, дает нам доступ уже к изменению конфигурации. Например, мы можем написать свой маленький плагин, который будет менять конфигурацию так, как нам нужно и без перезапуска.

Алгоритм пошагового автосоздания 1С-разработок

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

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

Заключение

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

Разумеется, автоматизировать все не нужно. Нужно автоматизировать те задачи, которые у вас повторяются (те задачи, которые вы делаете при каждом обновлении, при каких-то доработках).

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

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

Данная статья написана на основе доклада, представленного автором на конференции Infostart в 2016 году.

Больше статей можно прочитать здесь.
Приглашаем вас на новую конференцию INFOSTART EVENT 2019!

91

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

Комментарии
Избранное Подписка Сортировка: Древо
1. surikateg 07.06.17 11:17 Сейчас в теме
Вы написали что БСП может автоматически обновлять конфигурацию. БСП может ночью обновить конфигурацию и автоматически установить обновление информационной базы? Про Oscript вкурсе, хотелось бы решение от разработчиков 1с.
6. ekaruk 4795 14.06.17 16:23 Сейчас в теме
(1) Тут имелось в виду, что в БСП автоматизировано встраивание в конфигурацию. В ее составе есть обработка "Помощник внедрения БСП", которая работает с выгрузкой конфигурации в XML, добавляет нужные модули и по маркерам в коде вырезает куски неиспользуемых подсистем.
sansys; kote; +2 Ответить
2. grumagargler 613 07.06.17 13:50 Сейчас в теме
Для тестирования, забыли про тестер :-)
4. headMade 140 10.06.17 08:51 Сейчас в теме
5. grumagargler 613 10.06.17 16:34 Сейчас в теме
3. orefkov 1978 10.06.17 00:54 Сейчас в теме
Всё же хочу отметить, что Снегопат даёт доступ к метаданным не только на чтение.
Создать новые метаданные он не позволяет (хотя, с некоторыми ухищрениями можно), но менять существующие - вполне.
7. ekaruk 4795 14.06.17 16:25 Сейчас в теме
(3) Интересно. Не знала. Когда-то пыталась разобраться, но все-таки вернулась к обычному конфигуратору.
8. Team leader 9 26.10.17 19:58 Сейчас в теме
+1 за

"единственный инструмент, который умеет работать с байт-кодом. Если в вашей обработке или отчете есть модули, которые поставляются без исходного кода, то v8Unpack все равно разберет их на текстовые файлики."
9. Alex_1066 08.11.18 11:46 Сейчас в теме
Статья хорошая. Предлагаю автору продолжить данную тематику в плане практической работы. Например, набросать немного практических примеров, хотя бы в части "Автоматизация разработки". В частности, меня тронуло вот здесь "Алгоритм пошагового автосоздания 1С-разработок". Хотелось бы подробнее и на практике. Ну, если это возможно, конечно. В любом случае, спасибо Автору.
Оставьте свое сообщение

См. также

Регистры бухгалтерии. Общая информация 111

Статья Программист Нет файла v8 v8::БУ БУ Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    6698    YPermitin    22       

"Хочу универсально!" [Часть 1] 65

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

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

02.09.2019    4900    SeiOkami    35       

Иерархия без "В ИЕРАРХИИ" 117

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    4913    ildarovich    16       

EnterpriseData – часть 3. Загрузка данных, идентификация объектов 62

Статья Программист Нет файла v8 v8::УФ 1cv8.cf ОС Бесплатно (free) Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка

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

22.08.2019    4230    ids79    7       

Обработчики событий при записи объектов. Зачем и что за чем? 202

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    12801    4    AlbinaAAA    23       

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

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

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

24.07.2019    16075    skv_79    32       

FizzBuzz на 1С. Чем короче, тем веселее. Варианты принимаются... 8

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Мне было скучно, я не мог себя заставить написать ничего полезного. И читал статью на Хабре. Потом я читал комментарии, а потом... нет я не ушел смотреть котиков на ютюбе. Я решил сделать несколько решений задачки FizzBuzz на 1С, с целью "чем короче, тем лучше". Прошу сильно не пинать, это просто развлечение для вечера.

24.07.2019    2863    vandalsvq    16       

Управление качеством кода 136

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Математика и алгоритмы Рефакторинг и качество кода

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    8233    Stepa86    29       

Что делает "В ИЕРАРХИИ" в запросе? 94

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    8182    YPermitin    34       

Создание отчетов с помощью СКД - основные понятия и элементы 208

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    20978    ids79    17       

Реализуем Стек, Очередь и Приоритетную очередь в 1С 52

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

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

24.06.2019    7804    RonX01    63       

Организация хранения промежуточных данных 3

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Организация хранения промежуточных данных в процедуре сверки.

29.05.2019    1953    scientes    1       

Вычисление 200 тысяч знаков числа pi 73

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    3983    Oleg_nsk    93       

Регистры накопления. Виртуальные таблицы. Часть №1: Обороты 84

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

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

20.05.2019    11069    YPermitin    5       

Даем названия переменным: как префиксы экономят наше время 10

Статья Программист Стажер Внешняя обработка (ert,epf) v8 Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Понятные названия переменных экономят время и силы разработчика : в начале, когда мы даём названия переменным, в процессе развития разработки, когда мы "на лету" понимаем назначение той или иной переменной, в конце, когда мы передаём разработку на поддержку других программистов, сами переходя к новым разработкам

06.05.2019    3213    Designer1C    69       

Заметки по SQL: Срез последних - аналог запроса 15

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

В статье описывается создание среза последних данных средствами классического языка запросов. Причем метод построения запроса был разработан еще во времена, когда автор работал с СУБД Oracle 9i и программировал на PL SQL. Основная идея заключается преобразовании запроса с подзапросом, в запрос без подзапроса (в примерах описывается преобразование до двух вложенных подзапросов). Запросы тестировались на реальных базах данных. Платформа - 1С:Предприятие 8.3 (8.3.10.2561).

15.01.2019    6318    IVC_goal    5       

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

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

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

10.11.2018    22245    ids79    40       

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 147

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы Практика программирования

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

23.08.2018    22869    Rain88    42       

Теорема номер тринадцать 15

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

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

15.03.2018    9358    vasilev2015    24       

Введение в CI для 1С 87

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

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

21.11.2017    19331    real_MaxA    22       

Как работает серверный вызов в 1С 459

Статья Программист Нет файла v8::УФ Бесплатно (free) Математика и алгоритмы

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

18.11.2017    44243    pahich    77       

#Область ВНЕШНИЕ_ВЫЗОВЫ или MVC в 1С, библиотечность и упрощение интеграции кода 43

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

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

12.10.2017    14809    for_sale    58       

Групповая разработка конфигураций в крупном холдинге 68

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

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

15.08.2017    17545    stas_ganiev    15       

Пишем игру Минер. Обработка событий ActiveX в 1С 29

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Практика программирования Математика и алгоритмы

Пример демонстрирует обработку событий генерируемых компонентой ActiveX в 1С.

29.05.2017    12732    user621724_Dimav1979    11       

Как я доступ на kb.1c.ru получал 91

Статья Программист Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист Математика и алгоритмы

kb.1c - база знаний по технологическим вопросам крупных внедрений и не только. В этой базе знаний собираются методики и решения технологических проблем эксплуатации 1с, check-list'ы и инструкции по настройке ПО на серверах. Какие-то из размещенных статей дублируются на ИТС. Когда я искал пути получения доступа к нему я столкнулся с проблемой: мало кто доподлинно знает как получить доступ к нему, не работая у франчайзи 1с. Я опишу путь, который прошёл я, как физическое лицо.

01.05.2017    22534    ikekoval    33       

Улучшение стандарта "Структура модуля" 6

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Математика и алгоритмы

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

26.03.2017    12325    o.nikolaev    23       

"Распределение в запросе" или "избавляемся от перебора" 185

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

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    28631    alexandersh    48       

Планы обмена. Квитировать или гарантировать? 24

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Математика и алгоритмы

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

12.12.2016    14558    zhichkin    9       

Некоторые принципы оптимизации запросов 1С (+SQL) 115

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Разработка нового функционала часто связана с созданием новых таблиц в базе и написанием запросов. Собственно, размышляя о запросах, мы и формируем в голове содержание таблиц, индексы и количество таблиц и индексов. Заранее можно уверенно рассуждать о том, какая нужна архитектура, если задачу удалось понять. На этом этапе важно привлекать свой опыт. Что же делать, если его нет? Как рассуждать о запросах и формате хранения?

17.11.2016    8898    ture    40       

Использование git для доработки типовых конфигураций 1С 230

Статья Программист Нет файла v8 Беларусь Украина Россия Бесплатно (free) Математика и алгоритмы

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

11.10.2016    188456    pumbaE    31       

Оптимизация запросов 1С:Предприятие – от теории к практике 116

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

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

07.10.2016    32080    bpc222    20       

Регистры сведений 1С. Как это устроено. 729

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

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

05.08.2016    151048    Sergey.Noskov    155       

Переводим расширения на 8.3.8. Памятка. 79

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Математика и алгоритмы

Типовые конфигурации переходят на новую платформу 8.3.8 без режима совместимости. А значит нужно переделывать расширения под эти условия. В статье небольшая памятка о переводе расширения на 8.3.8

29.07.2016    39710    mrXoxot    12       

Опыт практического применения методики BDD на 1С. Написание сценариев 121

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

Эта статья открывает цикл публикаций, в которых я хочу поделиться опытом использования методики BDD при разработке на 1С. В этой статье речь пойдёт о написании сценариев.

03.07.2016    20335    oleynik.dv    132       

Заметки про запросы. Последовательность. 110

Статья Программист Нет файла v8 Windows Бесплатно (free) Математика и алгоритмы Практика программирования

Рассуждения, основанные на контрпримерах. Определяем последовательность операций с помощью одной только консоли запросов. Версия 2.

27.05.2016    29630    vasilev2015    31       

Оптимизация планирования доставки грузов. Алгоритм кластеризации k-means (метод K-средних). 26

Статья Программист Нет файла v8 УТ10 УПП1 Windows Бесплатно (free) Математика и алгоритмы

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

10 стартмани

09.02.2016    26526    mi1man    4       

Контур.EDI изнутри, или история командной разработки тиражного продукта на 1С 174

Статья Программист Нет файла v8 Россия УУ Windows Оптовая торговля Бесплатно (free) Интеграция Практика программирования Математика и алгоритмы

“Система - больше, чем просто совокупность ее элементов”; “Несколько разработчиков - это еще не команда разработки”. Расскажу, как мы прочувствовали эти очевидные утверждения на своей шкуре.

17.11.2015    36044    skif47    88       

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

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

Когда-то была программа 1С седьмой версии, и все программисты знали: если нужно проанализировать и/или исправить движения документа - смотри модуль документа, процедура ОбработкаПроведения(). В 1С 8 все гораздо сложнее. Кроме модуля проведения есть еще подписки на события, а также движения документа может "создавать" не сам документ. Эта статья о том, как происходит проведение и в какой момент записываются движения документа по регистрам.

13.11.2015    80528    triton_tver    8       

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия 51

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

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    42187    Serginio    35       

Три способа получить дерево элементов иерархического справочника 52

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Рассматривается применимость и недостатки следующих способов получения дерева 1) Запрос с использованием итогов по иерархии 2) Формирование дерева обходом выборки с упорядочиванием по иерархии 3) Формирование иерархии по списку элементов транзитивным замыканием

11.11.2015    63125    32ops    9       

Распределение суммы по базе 48

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

Или еще одна попытка изобрести велосипед )))

08.11.2015    27731    starik-2005    19       

Мультиинструментальный Brute Force 4

Статья Программист Нет файла v8 Windows Бесплатно (free) Математика и алгоритмы

Решение задачи из Project Euler с помощью 1С, а также дополнительных программ, серверов и прочих хитростей.

30.10.2015    10442    scientes    4       

1С с "плюсами" 74

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

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

14.10.2015    19970    IntelInside    47       

Знакомство с технологией Automation-сервер на примерах 33

Статья Программист Нет файла v8 Windows Бесплатно (free) Математика и алгоритмы

В статье рассмотрены принципы работы технологии Automation-сервер на конкретных примерах.

28.09.2015    26192    niko11s    10       

Критерии отбора 83

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Математика и алгоритмы

Статья посвящена объекту конфигурации - критерий отбора. Поговорим о сущности этого объекта и о методах работы с ним.

24.09.2015    49478    niko11s    13       

По ссылке или по значению? Ключевое слово Знач и с чем его едят 196

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

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

12.08.2015    37186    Evil Beaver    239       

Приемы обработки больших данных в 1С 258

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Универсальные обработки Математика и алгоритмы Перенос данных из 1C8 в 1C8

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    60324    tormozit    27