• 10 шагов для создания стартапа на основе 1С: Предприятие и Asp.Net MVC

    • Tutorial
    Многие считают, что 1С может обслуживать только бухгалтерию. На самом деле это не так. Значение платформы 1С: Предприятие недооценено. Цель статьи показать, что 1С: Предприятие 8.3 может с успехом применяться при построении нестандартных решений в Интернете. 1C может быть удобным инструментом для многих областей: от небольшого IT-проекта до развитой многосерверной системы. Предлагаю обсудить гибкость и применимость платформы 1С к построению веб-проектов и стартапов. Для усиления эффекта 1С рассматривается в связке с .Net framework: Asp.Net MVC.

    Статья писалась на основе нескольких нестандартных веб-проектов: личных и корпоративных, успешных и не очень. Здесь вы не найдете руководства по созданию обычных интернет-магазинов, потому что это стандартная, хорошо описанная в других источниках задача. К примерам нестандартных проектов я отношу: сервис проверки начислений по дисконтной карте из нескольких 1С, сайт объявлений для газеты, внутренний сайт голосования за товары между продавцами. Сюда также можно отнести сильно нестандартные интернет-магазины: магазины с несколькими регионами, валютами и ценами; магазины с товарами из разных баз 1С; магазины уникальных товаров, завязанных на производства.
    Читать дальше →
  • Как увеличить скорость работы 1С в 100 раз прямым обращением к MSSQL

    • Tutorial
    Возникла задача пометить на удаление документы за 1 год. Эта операция выполняется перед бесследным удалением и включает выставление отметки и удаление движения по регистрам. Пробное удаление штатными средствами одного месяца заняло 4 часа. Это означало, что 12 месяцев удалялись бы 48 часов (2 суток). Забегая вперед, скажу, что прямым доступом к 1С документы удаляются за 30-40 минут. Обращение к MSSQL выполнялось через .Net framework и компонент .Net Bridge.

    Определение имен таблиц MSSQL


    Структура базы данных 1С весьма запутана и состоит из малозначимых для человека названий. 1С содержит функцию определения структуры хранения по имени объекта. В основу разработки положена эта функция ПолучитьСтруктуруХраненияБазыДанных, которая согласно русскому названию возвращает описание структуры. В этой структуре важны 2 поля Назначение, которое должно быть равно «Основная», и название таблицы ИмяТаблицыХранения.

    Читать дальше →
  • Публикация конфигурации 1С на GitHub

    • Tutorial
    Статья показывает, как можно подготовить конфигурацию 1С к публикации в системах версионирования, отличных от хранилища конфигурации 1C. В операции задействован .Net framework и C#, позволяющий аккуратно распределить проект 1С по папкам.

    Пример публикации конфигурации на основе старых обновлений БСП четырехлетней давности (с 1.0.7.5 по 1.1.3.1) можно посмотреть по адресу https://github.com/elisy/ssl. Таким же образом теоретически можно публиковать конфигурации в другие системы версионирования. Но, опыт публикации в SVN большого числа измененных файлов был неудачным: SVN-клиент зависал при просмотре лога через Tortoise SVN.
    Читать дальше →
  • Visual Studio + Roslyn = конфигуратор для 1С: Предприятие

      Roslyn позволяет C# проект преобразовать в открытый XML-формат конфигурации 1С: Предприятие. C#-проект при поддержке Visual Studio автоматически снабжается Intellisense, интерактивной проверкой синтаксиса и типов, рефакторингом, расширенным поиском по проекту, поддержкой XmlDoc. Настраиваемое расположение документов проекта на диске и более выразительный и экономный формат делает C#-проект на Visual Studio лучшим выбором в системах версионирования.

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

      Читать дальше →
      • +12
      • 11,4k
      • 9
    • Roslyn для автоматического перевода кода C# в 1С-код

      • Tutorial
      Появилась идея посмотреть, как будет выглядеть объектно-ориентированный подход в 1С, язык которой очень ограничен в средствах и не предусматривает определение классов. Программа по автоматическому переводу определений классов C# в другой язык позволила бы менять генерируемый код по мере появления новых идей. Поиски средств реализации привели к проекту Roslyn – открытому компилятору C#.

      Roslyn – это открытая платформа компиляции C# и Visual Basic. Roslyn выполняет два основных действия: строит синтаксическое дерево (парсинг) и компилирует синтаксическое дерево. Дополнительно позволяет анализировать исходный код, рекурсивно обходить его, работать с проектами Visual Studio, выполнять код на лету.

      Обратите внимание, что на данный момент Roslyn в стадии Бета. Исходя из этого, со временем в компиляторе может что-то поменяться.
      Читать дальше →
    • Прямая запись в справочник 1C: Предприятие через Linq на примере работы с пользователями Asp.Net

      • Tutorial

      Прямая запись в справочник 1C: Предприятие через Linq на примере работы с пользователями Asp.Net


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

      Описаны только простейшие операции по регистрации и авторизации. Вспомогательные операции по восстановлению пароля, информированию через E-mail не освещаются. Работа ведется прямым доступом к базе MSSQL через Linq. Подход позволяет использовать одновременно функционал Asp.Net и 1С, а также обойтись без посредников в виде разных CMS.

      Читать дальше →
    • Интеграция Java и 1С через .Net framework на примере Apache PDFBox

        Интеграция Java и 1С через IKVM.Net на примере Apache PDFBox



        В сети Интернет мало информации по интеграции Java и 1С. Тем не менее, есть интересные Java-проекты, работу которых хотелось бы оценить внутри 1С. Apache PDFBox – один из таких популярных проектов. Так сложилось, что файлы pdf являются очень распространенными, а 1С не имеет хороших средств работы с данным форматом. Предложенный здесь способ состоит в том, чтобы через утилиту IKVM.NET перевести JAVA-библиотеку в .Net-сборку, а затем использовать эту сборку внутри 1С средствами интеграции.

        Apache PDFBox– это библиотека Java для работы с PDF-документами. Позволяет выполнять операции: извлечение текста, печать PDF, слияние и разделение документов, преобразование в изображение, заполнение форм, создание PDF, проверка PDF/A, интеграция с Lucene Search Engine. В примере использована версия 1.8.2.

        IKVM.Net – это виртуальная машина Java для Mono и .Net framework. IKVM.Net позволяет конвертировать библиотеку Java в сборку .Net и затем обращаться к библиотеке средствами .Net framework. IKVM.Net содержит много вспомогательных сборок, отвечающих за различные классы Java. В примере используется версия 7.2.4630.5.
        Читать дальше →
      • Доступ к SOAP веб-сервисам 1С из JavaScript и Html

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

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

          Failed to load resource: Origin localhost:3299 is not allowed by Access-Control-Allow-Origin

          Не вдаваясь в подробности публикации веб-сервисов, предположим, что на стороне 1С создан и опубликован веб-сервис catalogs с операцией Execute. На входе — параметр script типа string, на выходе тип string. Операция запускает на стороне произвольный код script из параметра и возвращает JSON-сериализацию от переменной result.

          Функция ExecuteCommands(script)
              result = null;
              Execute(script);
              return JSON(result);
          КонецФункции
          


          С JSON-сериализацией удобно работать средствами JavaScript и преобразовать строку в объект/массив одной командой eval(resultText). В Интернете можно найти несколько JSON-сериализаторов для 1С.

          Удостоверимся, что веб-сервис отвечает, введя его адрес:

          Отклик веб-сервиса
          Читать дальше →
          • +5
          • 27,6k
          • 4
        • Некоторые секреты подключения веб-интерфейса 1C 8.2

            Некоторые секреты подключения веб-интерфейса 8.2


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

            Показ Html-страницы на управляемой форме 1С


            Для показа Html-страницы необходимо на форму вставить Поле Html Документа и в источник данных поместить html-код. Нужно иметь ввиду следующее: тонкий и веб-клиент на Internet Explorer работают по-особенному. В двух этих случаях используется Internet Explorer в режиме совместимости с IE 7.
            Первый секрет заключается в том, что тонкий клиент можно перевести в режим совместимости с более старшей версией IE. Для этого нужно использовать meta X-UA-Compatible. Так на Windows 7 после добавления
            <meta http-equiv="X-UA-Compatible" content="IE=9" >

            Читать дальше →
            • –1
            • 26,7k
            • 2
          • Внешнее воздействие на веб-клиент 1С: Предприятие

            Внешнее воздействие на веб-клиент 1С: Предприятие


            Описанный метод позволяет организовать контейнер средствами html и JavaScript и поместить в него веб-клиент 1С. При этом контейнеру доступно управление веб-клиентом, как на уровне алгоритмов, так и на уровне управления стилями. Подход отрабатывался на 1С версии 8.2.18.96.

            Настройка на стороне веб-сервера

            Каждый веб-клиент 1С работает с опубликованной на веб-сервере информационной базой. Для более полной интеграции контейнер, в который будет встроен веб-клиент, необходимо создавать на этом же сервере. Это позволит избежать проблем с безопасностью, связанных с кросс-доменными обращениями. Например, Silverlight и Flash не позволяют обращаться к контенту других сайтов, если не настроены соответствующие политики в виде xml-файлов. Post-запросы между доменами также могут быть затруднительными.
            Читать дальше →