Некоторые особенности разработки ММО-игр на платформе 1С:Предприятие

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

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

Добрый день, уважаемые коллеги! На первый взгляд может показаться, что статья посвящена довольно необычным вещам, но поверьте мне, эти вещи всем нам вполне привычны, просто мы их обычно видим под другим углом зрения. Поговорим о том, что такое MMO. Многие из вас уже знают, что это такое, потому что существует такая игра, как World of Tanks, а те, кто в нее напрямую не играл, безусловно, о ней слышали. Игра World of Tanks является классическим MMO. MMO расшифровывается как Массивная Многопользовательская Online-игра. С технологической точки зрения это – нагрузки, нагрузки и еще раз нагрузки.

Введение в проблему. Общие вопросы архитектуры.

На каких принципах строится работа ММО в целом сейчас?

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

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

Разнообразие технологий, которыми реализуется игровой клиент, впечатляет:

  • Сейчас наиболее популярным в мире является движок Unity. На нем работает около 60% разработчиков в мире. Его в какой-то степени можно сравнить с 1С по проникновению, но в данном конкретном случае речь идет про всю планету.
  • За ним идет Unreal Engine – очень старый и популярный игровой движок, на котором делаются различные высокотехнологичные проекты. Правда, за счет своей сложности он намного менее распространен.
  • Также в игровой разработке используется не очень распространенный движок CryEngine, который, тем не менее, довольно активно применяют для крупных высокографических проектов.
  • И еще буквально недавно появился дополнительно движок Defold – можно сказать, что это будущая замена Flash для браузеров, для легких казуальных развлечений. Его выпускает самый крупный издатель онлайн-игр на планете, поэтому он крайне удобен именно для того, чтобы делать простые игры – легкие, которые быстро грузятся, быстро играются.
  • Кроме этого существует колоссальное количество частных решений, в основном, реализованных на языке C++.

 

А что у нас творится на сервере? Серверных технологий колоссально много.

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

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

  • Зачинателем этого дела был Parse – продукт от Facebook, предназначенный для хранения произвольных знаний и выдачи их на клиент по первому требованию, по принципу «положили-забрали» – этого обычно хватает. Потом Facebook решил этот сервис закрыть, поскольку им понадобилось свою команду, которая работала над развитием Parse (это почти 100 с лишним человек) перебросить на другой проект, связанный с виртуальной реальностью.
  • Соответственно, когда они закрыли Parse, в свет вышло несколько аналогичных решений. Например, сервис Playfab, который специализируется на играх,
  • Есть также множество облачных решений, которые сейчас в основном специализируются на «интернете вещей», предлагая хранение данных для этих устройств, но также могут использоваться и для игр (собственно говоря, и используются).

Теперь мы переходим к главному вопросу, который возникает, когда мы видим тему доклада – причем тут 1С?

Объектная модель 1С:Предприятия для оперирования ММО игрой в концепции сервиса.

Ответ на это очевиден – объектная модель данных 1С:Предприятия просто гениальна, она позволяет реализовать в себе абсолютно все.

Архитектурно мы делим всю информацию об игровом проекте на две части:

  • Привычные нам справочные данные;
  • И то, что мы называем «Прогресс игрока» – это его текущее состояние.

На слайде я дополнительно выделил, что эти данные поступают на клиент в разные моменты времени:

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

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

Как мы реализовали архитектуру сущностей?

У нас есть игровая сущность, которую мы представили в качестве набора данных объектной модели 1С:Предприятия. В нашем конкретном случае – это:

  • Справочники;
  • Планы видов характеристик;
  • И регистры сведений.

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

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

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

  • Справочник;
  • Регистр сведений;
  • И регистр накопления.

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

  • И в настоящий момент времени;
  • И то, как он изменялся по оси времени.

Это – совершенно классическая учетная задача, когда нам интересно, что в определенное время делал игрок.

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

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

  • C++ код;
  • C# код;
  • Или JavaScript код.

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

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

Клиент-серверный обмен через HTTP API. GET для публичных сервисов, POST для приватных.

Как все это дальше попадает на клиента? Как вы понимаете, 1С у нас выступает в роли сервера, причем, сервера многоликого. Он является одновременно:

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

Сейчас это все у нас реализуется через HTTP API (HTTP-сервисы 1С:Предприятия). Есть:

  • Сервисы публичные (через них можно получать данные о фанатской активности);
  • И сервисы приватные.

Что значит «Приватные»? Это значит, они шифруются, причем шифруются хорошо. Мы используем как сам по себе HTTPS, так и мы дополнительно «солим», «перчим» хэш, потом все это дело передаем и там прикидываем, кто, когда, какую сессию должен был получить, и как эти данные отдать.

Приватные сервисы выдают свои данные:

  • На клиент разработчика;
  • И на клиент игрока.

Конечная цель – чтобы данные из базы получал ровно тот получатель, кому это положено по внутренним правам:

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

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

«Даешь джейсонизацию всей страны!» Отдельные замечания о сравнении штатной фабрики ЗаписатьJSON() с работой на чистом потоке ЗаписьJSON.

Это подразумевает достаточно высокую нагрузку.

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

  • Их может быть много;
  • Они могут быть очень частые, либо, наоборот, редкие;
  • Но они маленькие – в них содержится совсем небольшое количество информации, которая нам нужна.

Как мы отвечаем на этот вопрос?

Это возможно, используя JSON. Все наши форматы обмена данными – это JSON, JSON и еще раз JSON. Его реализация в платформе имеет определенные нюансы, о которых мы узнали по опыту – и этим я бы хотел с вами поделиться:

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

Коллеги на Инфостарте, насколько я успел заметить, почему-то в основном предпочитают использовать стандартную фабрику ЗаписатьJSON/ПрочитатьJSON. Она удобна, думать не надо, но она очень медленная. Здесь на слайде приведен график в миллисекундах – там формировалось 4000 объектов. Правда, это данные для 8.3.6 – на 8.3.9 уже несколько другая картина, но пропорции, тем не менее, сильно не изменились. Если вы хотите сделать JSON быстрым, чтобы отдать информацию на сайт или еще куда-то, откройте, пожалуйста, поток и кладите в него данные вручную. Метод ЗаписатьJSON нужно использовать, только если у вас очень низкая нагрузка.

Как один запрос семь ответов прокормил или некоторые частности реализации кэширования

Дальше – «Наличность – наше все!» Кэширование, кэширование и еще раз кэширование.

У себя мы применяем следующую модель кэширования:

  • Оптимизация на уровне сервера приложений плюс код самой конфигурации.
  • Использование виртуальной машины 1С и ее особенности. Например, все справочные данные у нас однозначно кэшируются через «Фабрику запросов» (о ней чуть позже) – они поступают в оперативную память и находятся там, пока сеанс работает. Так как в 8.3.9 нам сейчас еще и переиспользование сеансов сделали, то мы сейчас фактически имеем Stateful server. Пока он включен – он может жить вечность.

Все, что отдается на клиент, мы полностью контролируем сами.

  • Прогресс игрока, который основан на регистрах сведений и регистрах накоплений, также кэшируется в оперативную память, и его чтение производится оттуда.
  • Но, как только нам требуется запись (то есть, произошло какое-то изменение прогресса), вызывается специальный менеджер работы с записью – он реализован внутри 1С:Предприятие, как процедура, и занимается тем, что по контексту пытается понять:
    • Каким образом лучше всего установить блокировки;
    • Каким образом лучше всего записать это пакетом в базу;
    • И какими пакетами записывать это в базу.

Для чего нужны такие хитрости?

Изначальная суть проекта и его важнейшее технологическое требование заключалось в его геосетке: сервера приложений размещаются по всей планете, а база от них может находиться совсем в другом месте. Соответственно, мы не можем применять привычный всем Shared memory, и нам приходится общаться с MS SQL по TCP/IP. Поэтому мы должны очень вдумчиво контролировать:

  • Что мы посылаем в базу;
  • Как мы это получаем;
  • И как мы можем получить это как можно быстрее.

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

Фабрики генерации запросов к базе данных как реализация lean manufacturing для переработки информации

Продолжая эту тему, я бы хотел рассказать о нашем «ноу-хау» – мы его называем «Фабрика генерации запросов» к базе данных. Несмотря на то, что сервер у нас может находиться, условно говоря, в Калифорнии, а база данных от него будет находиться за половину планеты (где-нибудь в Северной Ирландии, где у Microsoft есть дата-центр), мы должны получать эти данные очень четко. А так как объектная модель внутри себя – это одно сплошное составное значение, где все переплетено со всем, то в каждый конкретный момент мы должны получить его не просто так, а наиболее оптимальным способом. Для этого мы используем оператор «ВЫРАЗИТЬ». Это – «наше все».

  • Специальный менеджер, который определяет контекст ситуации, при старте анализирует базу, какие работы произведены Game-дизайнером, и отдает все это «Фабрике генерации запросов»
  • Она, в свою очередь, делает оптимизированные запросы под текущее положение дел в конфигурации.
  • Все результаты запросов кэшируются средствами виртуальной машины 1С напрямую (кэширование висит на вызове функции). И в таком состоянии они используются в текущей деятельности.

Это отрабатывает очень быстро, и даже если говорят, что 1С тормозит, у нас есть достаточно жесткое требование, чтобы она не тормозила – и она не тормозит.

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

Еще немного о платформенной генерации.

Сейчас у нас все реализовано довольно просто:

  • У нас нет игровой логики;
  • Нет динамического транслирования в другие языки. Когда мы сделаем динамическое транслирование в другие языки, это будет «бомба» и фантастика, мы в этом случае сможем делать полностью нативный код, написав его изначально на 1С. Это – технологически возможно, мы над этим работаем.
  • На настоящий момент мы в генераторе делаем только структуру данных без логики. Сейчас для нас основное – это C#, C++, потому что наиболее употребляемые языки. Когда мы в базе 1С построили «гиперкуб данных игровой сущности», он с помощью генератора в конечном итоге превращается в поле MyEntityProperty – в какой-нибудь из классов, который описывает соответствующую сущность либо ее набор.
  • А соответствующий HTTP API (HTTP-сервис) каждый раз забирает эти данные из базы и заполняет их в соответствующие поля.

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

Отработка серверно исполняемых событий игровой логики

Как мы сейчас решаем проблему с игровой логикой?

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

Как это выглядит в нашем случае?

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

Что такое частный метод ситуации?

К примеру, у нас есть игровая ситуация – игроку нужно построить домик в деревне. У него есть ферма, и он на ней строит домик.

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

  • Хватает ли денег у игрока, к примеру;
  • Доступен ли ему этот домик;
  • Выполнил ли он соответствующие задания в квесте для этого домика;
  • Еще какие-то условия.

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

Наша реализация многоуровневой системы локализации

Итак, про локализацию.

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

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

  • C++ – это язык;
  • JavaScript – это язык.

При этом они являются диалектами английского языка.

Дальше – с языками игроков. Мы понимаем, что языков игроков – сотни. У нас на планете, по-моему, около 5 тысяч языков, из них тех, которые более-менее актуальны (на которые надо переводить) – около 70-ти. Поэтому мы реализовали полностью свою систему локализации.

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

Game Architect или как мы делаем глобальный SaaS стартап, используя 1С:Предприятие.

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

  • Нужно брать Unity;
  • Нужно брать Unreal;
  • Работать с графикой;
  • Работать с камерой;
  • Работать с эффектами;
  • Писать шейдеры;
  • Все остальное.

Но там где про бизнес – там мы потихоньку это делаем.

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

Вот уже 13 лет, как я программист 1С. Всю жизнь я работал над проектами по конфигурациям Бухгалтерия, Торговля, Зарплата. Последние три года я работаю еще и над этим проектом – параллельно Бухгалтерии, Торговле, Зарплате и всему остальному. Работаю не только я, у нас уже потихоньку сформировалась команда с разных уголков планеты.

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

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

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

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

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 2325 08.09.17 11:04 Сейчас в теме
Нет динамического транслирования в другие языки. Когда мы сделаем динамическое транслирование в другие языки, это будет «бомба» и фантастика, мы в этом случае сможем делать полностью нативный код, написав его изначально на 1С. Это – технологически возможно, мы над этим работаем.
Усатый уже нанял киллеров....
cheburashka; DMSDeveloper; Dmitri93; DrAku1a; SP2000; +5 Ответить
2. uri1978 130 08.09.17 11:24 Сейчас в теме
— Не беспокойтесь,— сказал Остап,— мой проект гарантирует вашему городу неслыханный расцвет производительных сил. Подумайте, что будет, когда турнир окончится и когда уедут все гости. Жители Москвы, стесненные жилищным кризисом, бросятся в ваш великолепный город. Столица автоматически переходит в Васюки. Сюда приезжает правительство. Васюки переименовываются в Нью-Москву, Москва — в Старые Васюки. Ленинградцы и харьковчане скрежещут зубами, но ничего не могут поделать. Нью-Москва становится элегантнейшим центром Европы, а скоро и всего мира.

— Всего мира!!! — застонали оглушенные васюкинцы.

— Да! А впоследствии и вселенной. Шахматная мысль, превратившая уездный город в столицу земного шара, превратится в прикладную науку и изобретет способы междупланетного сообщения. Из Васюков полетят сигналы на Марс, Юпитер и Нептун. Сообщение с Венерой сделается таким же легким, как переезд из Рыбинска в Ярославль. А там, как знать, может быть, лет через восемь в Васюках состоится первый в истории мироздания междупланетный шахматный конгресс!
DarkUser; vadim1011985; al_zzz; Dmitri93; red80; Orlando Skibraves; SP2000; adhocprog; Quasar; CyberCerber; +10 Ответить
3. starik-2005 2325 08.09.17 11:24 Сейчас в теме
О, а вот и киллеры пожаловали ))) Почем ныне опиум для народа? )))
4. Darklight 27 08.09.17 14:55 Сейчас в теме
Забавно, доклад есть. А самой системы ещё нет.... то есть описывается (и в докладе на конференции было рассказано для целой аудитории) то, что из тех, кто с этим ознакомится, ни разу не видел, не слышал и не имеет такой возможности. Много слов типа "мы сделали", и ни одной строчки о какой-либо практической пользе прочитавшим (услышавшим на конференции). Ни техническим специалистам, ни бизнесу. Ни одного реального примера, названия проекта, это использующего, какой-либо картинки реального применения или описывающей реальный процесс взаимодействия (хотя бы фрагменнтарно). Экое описание "сферической лошади в вакууме". И ни одной отсылки к чему-то, практически реализованному. И что с эти всем делать, совершенно не понятно.
Конечно, издалека даётся "намёками" советы как надо делать - но они совсем не раскрываются - и толку о них немного.
Тема идеи, может интересная, с точки зрения широты применения серверно-сервисной технологии 1С: Предприятие, но ее раскрытие и польза статьи стремится к нулю.
Печально это всё....
DrAku1a; CSiER; LeXXuS_ju; Dem1urg; +4 Ответить
12. DrAku1a 1420 13.09.17 07:42 Сейчас в теме
(4) Я так доклад в 2006-м в Питере на международной научной конференции делал. Про единую базу данных по палеомагнетизму, которую только-только начал делать. При том, не было ничего конкретного продемонстрировано (только кривые гистерезиса и общие сведения, которые там все знали). Доклад прошёл "на ура".
Потом я ушёл из аспирантуры, переехав в другой город, и работы по объединению знаний геологов, химиков и физиков в единую базу так и не закончились (до сих пор так и нет единой базы).
14. Darklight 27 13.09.17 11:37 Сейчас в теме
(12)Бедные геологи, химики и физики, так и остались неудел....
А в своём сообщении я посетовал на отсутствие какой-либо полезности для слушателей/читателей в данной статье (про ваш доклад ничего сказать не могу - не видел). А первичный восторг слушателей может вызвать и "лапша на ушах", если её грамотно преподносить, подкрепляя красивыми картинками, и интриговать хитрыми, но не очень заумными терминами интересной темой , которая в итоге не будет раскрыта даже на маленькую долю. И не будет подкреплена реальными проектами и решениями, которые можно было бы посмотреть после ознакомления с докладом. В общем - идея то тут может и интересная для некоторой не малой аудитории, но она совершенно не раскрыта - от этого чувствуешь себя попросту обманутым....
5. CSiER 30 11.09.17 04:05 Сейчас в теме
То есть в качестве транспорта для ммо используется http (tcp) и при этом сами сообщения в json? В скольких реальных проектах используется данное решение, какой онлайн? Какой используется http-сервер?
6. nomadon 414 11.09.17 10:39 Сейчас в теме
про http сервер поддерживаю вопрос
7. user713084 11.09.17 13:16 Сейчас в теме
В статье все четко написано: хттп гет/пост, джейсон, виртуальная машина 1С, миллион онлайна, в реальном времени... хотел бы на это посмотреть.
Полагаю, прежде, чем создавать инструментарий для разработчиков ммо игр, неплохо бы сначала самому стать разработчиком именно ммо игр. А так-то, конечно, можно что угодно сделать на "просто гениальной" объектной модели 1С. Можно и операционную систему на 1С сделать. Вон, файловая система - это ж чистой воды справочник. А регистр накопления можно использовать для ведения учета свободного места на диске.
9. CSiER 30 11.09.17 17:00 Сейчас в теме
(7)
В статье все четко написано: хттп гет/пост, джейсон, виртуальная машина 1С, миллион онлайна, в реальном времени...

В статье написано "В связи с этим я хотел бы ответить на вопрос: сможет ли 1С-клиент, выступая в роли сервера, обеспечивать миллион тонких клиентов?" и далее "Как мы отвечаем на этот вопрос? Это возможно, используя JSON." - "нечеткий" такой вывод.
Вообще про "четкость" описания в статье: аналогично можно написать "P=NP" - но без деталей это не интересно.

Может быть есть другая статья для технических специалистов - просьба автора поделиться таким материалом. Также не хватает ссылок на реализованные проекты. Пока выглядит как теория забивания гвоздей микроскопом.
8. YanTsys 12 11.09.17 13:46 Сейчас в теме
Где код? Хоть какой-то пример связи Unity и 1с?
10. adhocprog 1197 11.09.17 19:01 Сейчас в теме
Интересная статья ) Продолжение будет?
Как можно попасть в саму игру? )
17. 🅵🅾️🆇 13.11.17 16:50 Сейчас в теме
(10) Приму в свой клан Светлых Документов борющихся против Злых Справочников.
Но придеться долго фармить регистры с помощью проводок, ну или сразу вдонатить.
11. user597343_netcpv22 12.09.17 10:22 Сейчас в теме
Звучит весьма интересно, но хотелось бы увидеть что-либо реально созданное. Думается мне, проблемы у 1с как раз и начнутся при работе с большим количеством маленьких пакетов, да еще и с текстовыми запросами. Возможно, эффективнее создать внешнюю компоненту для пересылки данных в бинарном виде? И системные требования платформы немного заставляют задуматься над эффективностью.
Однако от души желаю вам обломать всех скептиков и реализовать идею)
13. so-quest 134 13.09.17 07:59 Сейчас в теме
и почему именно 1С? как язык -не особо хорош (есть более выразительные язык), как платформа - очень спорный выбор. В чем выгода использования 1С?
15. ifilll 15.09.17 15:13 Сейчас в теме
Порвали мне сознание, сервер 1с в качестве игрового сервера...
даже звездочку вам поставил за дерзкую мысль ))
16. OVladius 32 06.10.17 15:23 Сейчас в теме
18. succub1_5 79 13.11.17 16:58 Сейчас в теме
мы сделали такую "игру" в он-лайн режиме с 2000+ касс приходят чеки, а уходят данные об акциях, фишках и т.п. API на http/JSON сервак за 4 ляма все макс оптимизировано - вешается... в день около 800 000 чеков в самописной конфе.
Дмитрий74Чел; +1 Ответить
19. iliabvf 06.05.18 21:00 Сейчас в теме
Интересно чего-то добились? По моему горькому опыту 1С HTTP запросы слишком медленные для таких задач. Как вы собираетесь решать этот вопрос?
20. uriy007@ya.ru 08.05.19 10:35 Сейчас в теме
Я думал первоапрельская статья, но нет.
Но вообще наркомания излечима.
21. herfis 414 08.05.19 11:08 Сейчас в теме
Слишком много всего, поэтому я не очень уловил суть.
По сути, вы используете 1С исключительно в качестве дизайнера БД игрового сервера, в качестве админки и для мелкого скриптования? Или все же шире, если я что-то упустил?
Собственно http-сервисы и доступ из них к БД игрового сервера на 1С реализованы или нет?
Оставьте свое сообщение

См. также

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

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

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

10.11.2018    40627    ids79    44    

Чем воспользоваться для распознавания котиков в 1С?

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

На митапе по инструментам для расширения возможностей 1С выступил Олег Филиппов. Он сравнил подходы Native API, COM, Docker и Serverless, и рассказал, как упростить использование в 1С алгоритмов, реализованных на других языках, с помощью облачной технологии «Функция как сервис».

12.04.2021    2608    comol    9    

Рекурсия для начинающих

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

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

10.02.2021    1484    szv    5    

1С: Документооборот, Data Science и Python

Документооборот и делопроизводство Математика и алгоритмы ДО Бесплатно (free)

В статье рассказывается о создании и обучении модели Data Science на языке Python и интеграции с системой 1С: Документооборот

04.08.2020    2888    Vaganov_Alexey    9    

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

Математика и алгоритмы v8::УФ Бесплатно (free)

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

18.11.2017    62826    pahich    83    

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

Математика и алгоритмы Бесплатно (free)

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

25.05.2020    4251    Mishnov    17    

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

Математика и алгоритмы Учет ТМЦ v8 1cv8.cf Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

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

26.03.2020    4054    lastcontra    5    

Улучшение пооперационного планирования в 1С:ERP 2.4 внешними средствами

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

Задача построения оптимального производственного расписания требует сравнения тысяч и десятков тысяч вариантов. Выполнять такие вычисления средствами платформы 1С Предприятие нецелесообразно. Как реализовать пооперационное планирование с использованием генетических алгоритмов и параллельных вычислений в докладе на конференции Infostart Event 2019 Inception рассказал генеральный директор компании «ИНТЕХ» Сергей Сафаров.

02.03.2020    6422    ildarovich    8    

Будни автоматизации или "мне нужна программка для 3D упаковки" Промо

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

Автоматизация отечественных предприятий, которой приходиться заниматься, это нужная и высокооплачиваемая, но довольно нервная работа. Выручает юмор. Например, при общении с требовательным клиентом можно вспомнить анекдот: "Держась руками за стену, на ногах еле стоит мужик. К нему пристает ребенок: "Ну, папа, пожалуйста, сделай мне кораблик!", папа отвечает: "Ага! - Сейчас все брошу и пойду делать тебе кораблик!". Про один такой сделанный для клиента "кораблик" и хочется рассказать. Надеюсь, совместное погружение в теплое ламповое (то есть клиентоориентированное) программирование доставит Вам положительные эмоции, да и задача попалась интересная. Поплыли?

24.03.2014    45949    ildarovich    116    

Получение значений всех полей в иерархии структуры отчета

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

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

28.02.2020    2407    real_MaxA    1    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

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

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

18.02.2020    5986    randomus    20    

[После]Новогодние задачи

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

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

30.12.2019    3313    Alxby    23    

Метод Кларка-Райта. Оптимальное планирование маршрутов грузоперевозок Промо

Математика и алгоритмы Бесплатно (free)

Одной из наиболее важных задач каждого предприятия, осуществляющего доставку грузов в крупных населенных пунктах, является сокращение издержек. Возможное решение данной проблемы заключается в сокращении пробега автотранспорта и, как следствие, уменьшении расхода ГСМ. Появляются такие вопросы ... - СКОЛЬКО НУЖНО МАШИН ДЛЯ РАЗВОЗКИ КОНКРЕТНОГО ОБЪЕМА ГРУЗА ПО АДРЕСАМ ДОСТАВКИ ? - КАК РАЗБИТЬ ТОЧКИ ДОСТАВКИ НА ОПТИМАЛЬНЫЕ ПО ПРОБЕГУ И ЗАГРУЗКЕ МАШИН МАРШРУТЫ ? ... В этой статье Вы найдете один из многих способов получить ответ на эти вопросы.

10.02.2016    64560    mi1man    22    

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

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

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

05.09.2019    38473    YPermitin    25    

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

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

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

02.09.2019    10492    SeiOkami    35    

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

Математика и алгоритмы v8 Бесплатно (free)

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

22.08.2019    14137    ildarovich    24    

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

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

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

07.08.2015    69724    tormozit    28    

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

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

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

22.08.2019    17599    ids79    8    

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

Математика и алгоритмы v8 Бесплатно (free)

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

25.07.2019    89286    AlbinaAAA    33    

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

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

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

24.07.2019    33018    skv_79    35    

XDTO - это просто Промо

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

С появлением платформы 8.1 фирма “1С” представила механизм, носящий интригующее название XML Data Transfer Objects или, если коротко - XDTO. По традиции, документирование механизма составлял тот, кто хорошо разбирался в вопросе, а стало быть опустил “и так понятные” с его точки зрения моменты. Целью данной статьи (или цикла статей, как получится) стало желание поделиться накопленным опытом. Мне кажется, многие неочевидные вещи в механизме XDTO необходимо осветить получше.

24.12.2012    317840    Evil Beaver    182    

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

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

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

24.07.2019    5850    vandalsvq    19    

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

Математика и алгоритмы Рефакторинг и качество кода v8 Бесплатно (free)

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

22.07.2019    18627    Stepa86    40    

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

Математика и алгоритмы v8 Бесплатно (free)

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

16.07.2019    38895    YPermitin    34    

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

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

Сервис для изучения запросов 1С: "Консоль изучения запросов 1С:Предприятие 8". Теперь и с конструктором запросов!

07.05.2013    113231    bpc222    327    

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

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

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

25.06.2019    67142    ids79    27    

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

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

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

24.06.2019    15609    RonX01    66    

Почему вообще работает мой запрос? или Ещё раз о планах запросов

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

Другие статьи на эту тему объясняют, что такое план выполнения запроса, но не рассказывают о том, как его получить. Эта заметка призвана заполнить этот пробел. Её цель - популяризировать общедоступные инструменты получения плана запроса среди разработчиков, которые ещё не начали их использовать.

10.06.2019    10052    DataReducer    12    

Предметно-ориентированное проектирование (3D) в 1С. Виртуальная машина. Промо

Математика и алгоритмы Бесплатно (free)

Проектирование программного обеспечения - это постоянная битва за простоту.

03.06.2014    41030    Evgen.Ponomarenko    88    

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

Математика и алгоритмы v8 Бесплатно (free)

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

29.05.2019    4467    scientes    1    

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

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

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

28.05.2019    8914    Oleg_nsk    97    

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

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

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

20.05.2019    38656    YPermitin    8    

Решение транспортной задачи запросом Промо

Математика и алгоритмы v8 Бесплатно (free)

Списание по двум последовательностям партий запросом (без программной обработки)

1 стартмани

30.04.2014    35812    bforce    22    

Выдержки из книги Чистый код

Математика и алгоритмы Бесплатно (free)

Недавно я прочитал книгу "Чистый код" Роберта Мартина (Robert Cecil Martin). В ней описываются принципы организации и форматирование исходного кода программы так, чтобы в дальнейшем было легко поддерживать такой код. Эта книга является библией для многих программистов, но вот в среде программистов 1С, к сожалению, не очень распространено чтение подобной фундаментальной литературы. Книга более 400 страниц и так много порой лениво читать, да и времени всегда не хватает. По этому я решил выделить в виде цитирования по разделам самые важные моменты. А также снабдил текст своими примерами кода.

16.05.2019    12980    FreeArcher    108    

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

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

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

06.05.2019    8283    Designer1C    81    

Что такое алгоритм?

Математика и алгоритмы Бесплатно (free)

Как ответить на этот вопрос и не попасть пальцем в небо.

25.02.2019    13843    mkalimulin    274    

Парсер запросов 1С. Часть 1: Введение, разбор математических выражений Промо

Математика и алгоритмы v8 Бесплатно (free)

Рано или поздно становится скучно решать типичные задачи, для которых придумана 1С. Голова пухнет от бухгалтерских терминов и очередных "хотелок" пользователей. Именно в такие моменты хочется гордо поднять голову, воскликнуть "Но я же программист!" и заняться чем-то интересным. В цикле статей я постараюсь доступно описать, как устроены парсеры в целом и на примере парсера языка запросов 1С. Требования к навыкам читающего: основы языка 1С, основы алгоритмизации.

1 стартмани

04.12.2013    31139    juntatalor    49    

Криптовалюты, а также иные взгляды на природу денег в терминах 1С

Математика и алгоритмы Бесплатно (free)

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

28.01.2019    6377    mkalimulin    89    

Как писать код? Технологии древних цивилизаций, или все новое - это хорошо забытое старое

Математика и алгоритмы Бесплатно (free)

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

23.01.2019    11987    starik-2005    43    

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

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

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

15.01.2019    13410    IVC_goal    9    

Сервис для изучения методов платформы 1С:Предприятие 8. Бесплатно! Промо

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

Бесплатный ON-Line сервис изучения методов платформы 1С:Предприятие 8. Подготовка к аттестации 1С:Специалист on-line! Тестовые задания по различным видам учета! Подсказки для оптимального решения!

27.06.2013    50920    bpc222    53    

Роберт Мартин: "Будущее программирования" / Robert Martin: "The Future of Programming"

Математика и алгоритмы Блоги Бесплатно (free)

Перевод-транскрибация выступления.

14.01.2019    16891    Vladimir Litvinenko    38    

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

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

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

09.01.2019    16204    kalyaka    36    

Внутреннее качество разработки конфигураций 1С Промо

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

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

21.06.2013    38323    ig1082    50    

Размышления о хороших практиках, навеянные одной статьей

Математика и алгоритмы Бесплатно (free)

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

21.12.2018    6998    mkalimulin    61    

Ректальное программирование: основы для практикующих 1С-программистов

Математика и алгоритмы Бесплатно (free)

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

19.12.2018    46825    for_sale    351    

Многопоточное восстановление последовательностей

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

Универсальный алгоритм многопоточного фонового восстановления любой последовательности.

05.12.2018    14550    _ASZ_    33    

v8: Концепция минимального изменения конфигурации для легкого обновления Промо

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

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

28.01.2013    38554    MarSeN    57    

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

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

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

23.08.2018    44768    Rain88    49    

Повышение качества разработки. Статья 3. Ошибки программы

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

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Статья 3. Эта статья посвящена ошибкам программ, их классификации и способам исправления.

10.07.2018    21497    Артано    92    

Що там у них в Java

Математика и алгоритмы Бесплатно (free)

Развенчание мифа о тяжёлой жизни не 1С программистов на примере создания веб сервиса редактирования таблички с использованием framework spring в Java.

24.05.2018    11526    van_za    62