Не знаю, нужно ли это будет кому-нибудь.
Базовый принцип программирования управляемой формы в 1С
Из песочницы
Цель статьи – показать применение шаблонов Remote Facade и Data Transfer Object к структуризации кода, управляемой формы в среде 1С 8.2.
Тест на СОВМЕСТИМОсть

Каждому из нас необходимо быть важнее и выше окружающих, что известно каждому и без «британских учёных». Мы соревнуемся и хотим побеждать во всех сферах нашей жизни. И чем больше мы побеждаем, тем значимей становится наша жизнь, тем ярче мы живём, тем выше наш социальный статус и тем больше мы зарабатываем. Мы всю свою сознательную и не очень жизнь собираем похвалы, поощрения, признания и прочие «медальки», чтобы почувствовать свою важность и немного на этом заработать. И речь здесь пойдёт об одной из таких «медалек» – сертификате «1С: Совместимо!».
1С сервер 8.2 + MsSql 2008 + BackUp
Похожих статей достаточно много, но эту я в первую очередь писал для себя, останавливаясь на примечаниях, в которых описаны возможные проблемы. Надеюсь статья будет полезна и другим.
1. Устанавливаем 1С платформу
2. Устанавливаем MS SQL server 2008. При установке задаем пользователя баз данных. (Который SA).
После установки открываем панель администрирования серверов 1С предприятия и видим что она пуста.
Нужно создать сервер: Открываем console root->Central 1C: Enterprise 8.2 servers. Кликаем по нему правой кнопкой мыши и выбираем пункт new. В выпадающем меню выбираем Центральный сервер 1С Предприятия 8.2.
1. Устанавливаем 1С платформу
2. Устанавливаем MS SQL server 2008. При установке задаем пользователя баз данных. (Который SA).
После установки открываем панель администрирования серверов 1С предприятия и видим что она пуста.
Нужно создать сервер: Открываем console root->Central 1C: Enterprise 8.2 servers. Кликаем по нему правой кнопкой мыши и выбираем пункт new. В выпадающем меню выбираем Центральный сервер 1С Предприятия 8.2.
Как установить 1С Предприятие 8.2 (релиз 8.2.16.368 от 05.10.12) на линукс CentOS 6.3 (статья, HowTo)
Из песочницы
Tutorial
Предупреждение: Никаких подробных инструкций не будет! Только последовательность действий, необходимые шаги и наводки. Это руководство только для опытных администраторов Линукс!
Примеры некоторых моих конфигов прилагаются...
Замечание: эта статья написана на основе экспериментов с 32-битным CentOS 6.3 (Для сервера необходимо использовать 64-битную ОС. Но так получилось, что на доступном мне для экспериментов железе 64-битный CentOS не установился.) Однако разницы для методики установки нет (32 vs 64bit) — она только в суффиксах дистрибутивных файлов: либо i686 (или i386), либо x86_64…
Содержание:
Примеры некоторых моих конфигов прилагаются...
Замечание: эта статья написана на основе экспериментов с 32-битным CentOS 6.3 (Для сервера необходимо использовать 64-битную ОС. Но так получилось, что на доступном мне для экспериментов железе 64-битный CentOS не установился.) Однако разницы для методики установки нет (32 vs 64bit) — она только в суффиксах дистрибутивных файлов: либо i686 (или i386), либо x86_64…
Содержание:
- 0) Подготавливаем серверное железо
- 1) Устанавливаем Операционную Систему (ОС)
- 2) Настраиваем Сеть
- 3) Настраиваем менеджер пакетов (yum)
- 4) Устанавливаем дополнительный софт, не относящийся к системе 1С
- 5) Настраиваем Samba-сервер
- 6) Достаём и готовим дистрибутивы 1С: Предприятие… Откуда всё взять?
- 7) Сборка и Установка «СУБД PostgreSQL от 1С (релиз 9.0.3-3.1C от 17.01.12)» на Линукс CentOS (6.3)
- 8) Установка «Сервера 1С: Предприятие 32bit для RPM-based Linux-систем (8.2.16.368)» на Линукс CentOS (6.3)
- 9) Установка защитных ключей (лицензирование 1С)
- 10) Далее, устанавливаем клиентскую часть — на другой машине под управлением Windows
- Литература (использованная и дополнительно рекомендуемая)
Многопоточный веб-сервер для 1С: Предприятие средствами .Net Framework
Из песочницы
В процессе автоматизации деятельности предприятия при помощи 1С: Предприятие часто
возникают задачи интеграции и обмена с оборудованием и другими сторонними информационными
системами, например, банками, веб-сайтами, информационными системами партнеров.
Традиционно 1С: Предприятие выступает в качестве потребителя услуг, и реже – в качестве
поставщика. До этого момента у разработчиков популярными технологиями при получении
информации от 1C были COM и веб-сервисы, которые появились только в версии 8.1.
У обеих технологий (COM и веб-сервисы) есть свои минусы. Главные недостатки заключаются
в следующем. COM-технология позволяет в каждый момент времени выполнять только один
запрос. Обращение возможно только внутри своей локальной сети. Обработка одновременных
запросов для COM возможна, но требует затрат на организацию пула соединений и отладку
многопоточного приложения. Веб-сервисы же сложны по настройке и негибкие для программирования:
жестко привязаны к SOAP-стандартам. Подключение устройств, обменивающихся простыми
пакетами, работающих по http-протоколу, невозможно.
Новая идея организации веб-сервера внутри 1С, предложенная в статье, опирается на
проверенную временем богатую функциональность .Net Framework. Решение на основе
идеи лишены недостатков COM и веб-сервисов 1С. По сравнению с COM http-сервер можно
использовать вне локальной сети, поддерживается одновременная обработка нескольких
запросов. По сравнению с веб-сервисами 1С решение на базе http-сервера обладает
большей гибкостью, так как программист волен сам выбирать формат ответа сервера
(в том числе HTML, JSON, графические изображения, RSS и т.д.), а также контролировать
при ответе URL-адрес, идентификацию пользователей, коды ошибок, куки, кодировку,
осуществлять кеширование. Настройка же http-сервера внутри 1С сводится к простому
запуску внешней обработки.
возникают задачи интеграции и обмена с оборудованием и другими сторонними информационными
системами, например, банками, веб-сайтами, информационными системами партнеров.
Традиционно 1С: Предприятие выступает в качестве потребителя услуг, и реже – в качестве
поставщика. До этого момента у разработчиков популярными технологиями при получении
информации от 1C были COM и веб-сервисы, которые появились только в версии 8.1.
У обеих технологий (COM и веб-сервисы) есть свои минусы. Главные недостатки заключаются
в следующем. COM-технология позволяет в каждый момент времени выполнять только один
запрос. Обращение возможно только внутри своей локальной сети. Обработка одновременных
запросов для COM возможна, но требует затрат на организацию пула соединений и отладку
многопоточного приложения. Веб-сервисы же сложны по настройке и негибкие для программирования:
жестко привязаны к SOAP-стандартам. Подключение устройств, обменивающихся простыми
пакетами, работающих по http-протоколу, невозможно.
Новая идея организации веб-сервера внутри 1С, предложенная в статье, опирается на
проверенную временем богатую функциональность .Net Framework. Решение на основе
идеи лишены недостатков COM и веб-сервисов 1С. По сравнению с COM http-сервер можно
использовать вне локальной сети, поддерживается одновременная обработка нескольких
запросов. По сравнению с веб-сервисами 1С решение на базе http-сервера обладает
большей гибкостью, так как программист волен сам выбирать формат ответа сервера
(в том числе HTML, JSON, графические изображения, RSS и т.д.), а также контролировать
при ответе URL-адрес, идентификацию пользователей, коды ошибок, куки, кодировку,
осуществлять кеширование. Настройка же http-сервера внутри 1С сводится к простому
запуску внешней обработки.
Интеграция 1С и B2B системы, с помощью HTTPS
Из песочницы
Привет Хабраюзер хочу поделиться своим недавним опытом интеграции двух различных систем.
Возникла задача о передаче данных между 1С (разработка и настройка была отдана на аутсорсинг), которую планируется использовать как основную систему электронного документооборота (ЭДО) и B2B системой (внутренняя разработка), которая написана на PHP (Symfony) и выполняет функции первичного ввода информации в компании.
Возникла задача о передаче данных между 1С (разработка и настройка была отдана на аутсорсинг), которую планируется использовать как основную систему электронного документооборота (ЭДО) и B2B системой (внутренняя разработка), которая написана на PHP (Symfony) и выполняет функции первичного ввода информации в компании.
«Жемчужный» доступ к 1С: Предприятию 8.2
Tutorial

Думаю, всем вам известен такой программный продукт, как 1С: Предприятие 8.2. И, наверное, многим из вас известен тот факт, что к 1С: Предприятию можно подключиться, используя OLE/COM-соединение. А многие ли из вас знают, что с помощью OLE/COM-соединения можно не только выполнять программный код 1С, но и “управлять” сервером 1С: Предпрития? К примеру, можно подключиться к Агенту кластера серверов 1С: Предприятия, получить список открытых клиентских сессий, прочитать информацию о выданных им лицензиях… К тому же, наличие варианта подключения посредством OLE/COM-соединения расширяет в арсенале программиста добавляет возможность выбора языка программирования, отличного от встроенного языка 1С: Предприятия. Можно выбрать любой язык, который способен работать с OLE/COM-компонентами: будь то VB.Net, C#.Net, или Java, или даже… Perl. Да, вы не ослышались. Именно Perl.
Итак…
Задача.
Необходимо реализовать автоматический рестарт службы Агент сервера 1С: Предприятия 8.2 с помощью планировщика задач Windows. Но перед рестартом необходимо проверить, не работает ли кто-нибудь в базе Base, расположенной на сервере 1С: Предприятия. Если кто-нибудь работает, то перезапуск службы недопустим.
Обработка изображений 1С средствами .Net framework при выгрузке на веб-сайт
1С: Предприятие не предоставляет штатных средств работы с изображениями по изменению размеров и наложению водяных знаков. Данный функционал часто востребован, например, в Интернет-магазинах, когда из 1С происходит экспорт товаров с фотографиями. Раньше для этого использовали выгрузку фотографий на диск и вызов утилит через командную строку. Понятно, что гибкостью и скоростью такой вариант не обладает, плюс еще могут возникнуть проблемы с безопасностью и учетом временных файлов на диске.
Внешнее воздействие на веб-клиент 1С: Предприятие
Из песочницы
Внешнее воздействие на веб-клиент 1С: Предприятие
Описанный метод позволяет организовать контейнер средствами html и JavaScript и поместить в него веб-клиент 1С. При этом контейнеру доступно управление веб-клиентом, как на уровне алгоритмов, так и на уровне управления стилями. Подход отрабатывался на 1С версии 8.2.18.96.
Настройка на стороне веб-сервера
Каждый веб-клиент 1С работает с опубликованной на веб-сервере информационной базой. Для более полной интеграции контейнер, в который будет встроен веб-клиент, необходимо создавать на этом же сервере. Это позволит избежать проблем с безопасностью, связанных с кросс-доменными обращениями. Например, Silverlight и Flash не позволяют обращаться к контенту других сайтов, если не настроены соответствующие политики в виде xml-файлов. Post-запросы между доменами также могут быть затруднительными.
Некоторые секреты подключения веб-интерфейса 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" >
Доступ к SOAP веб-сервисам 1С из JavaScript и Html
Описанный метод позволяет обратиться к веб-сервисам 1С из html-страницы через JavaScript. В качестве примера выводится список справочников. При нажатии на любой справочник выводятся первые буквы наименований. При нажатии на букву выводятся данные с наименованиями, начинающимися на эту букву.
Способ применим для случаев, когда веб-сервис и html-страница опубликованы на одном сервере. В этом случае не возникает кросс-доменных проблем. Например, если домены будут отличаться, то Chrome выдаст ошибку:
Не вдаваясь в подробности публикации веб-сервисов, предположим, что на стороне 1С создан и опубликован веб-сервис catalogs с операцией Execute. На входе — параметр script типа string, на выходе тип string. Операция запускает на стороне произвольный код script из параметра и возвращает JSON-сериализацию от переменной result.
С JSON-сериализацией удобно работать средствами JavaScript и преобразовать строку в объект/массив одной командой eval(resultText). В Интернете можно найти несколько JSON-сериализаторов для 1С.
Удостоверимся, что веб-сервис отвечает, введя его адрес:

Способ применим для случаев, когда веб-сервис и 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С.
Удостоверимся, что веб-сервис отвечает, введя его адрес:

Доступ к SOAP веб-сервисам 1С из JavaScript и Html
Описанный метод позволяет обратиться к веб-сервисам 1С из html-страницы через JavaScript. В качестве примера выводится список справочников. При нажатии на любой справочник выводятся первые буквы наименований. При нажатии на букву выводятся данные с наименованиями, начинающимися на эту букву.
Способ применим для случаев, когда веб-сервис и html-страница опубликованы на одном сервере. В этом случае не возникает кросс-доменных проблем. Например, если домены будут отличаться, то Chrome выдаст ошибку:
Не вдаваясь в подробности публикации веб-сервисов, предположим, что на стороне 1С создан и опубликован веб-сервис catalogs с операцией Execute. На входе — параметр script типа string, на выходе тип string. Операция запускает на стороне произвольный код script из параметра и возвращает JSON-сериализацию от переменной result.
С JSON-сериализацией удобно работать средствами JavaScript и преобразовать строку в объект/массив одной командой eval(resultText). В Интернете можно найти несколько JSON-сериализаторов для 1С.
Удостоверимся, что веб-сервис отвечает, введя его адрес:

Способ применим для случаев, когда веб-сервис и 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С.
Удостоверимся, что веб-сервис отвечает, введя его адрес:

Внешние компоненты в 1С 8.2
Из песочницы
Tutorial
Введение
Эта статья дает представление о работе внешних компонент в системе «1С: Предприятие».
Будет показан процесс разработки внешней компоненты для системы «1С: Предприятие» версии 8.2, работающей под управлением ОС семейства Windows с файловым вариантом работы. Такой вариант работы используется в большинстве решений, предназначенных для предприятий малого бизнеса. ВК будет реализована на языке программирования C++.
Интеграция 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.
Roslyn для автоматического перевода кода C# в 1С-код
Tutorial
Появилась идея посмотреть, как будет выглядеть объектно-ориентированный подход в 1С, язык которой очень ограничен в средствах и не предусматривает определение классов. Программа по автоматическому переводу определений классов C# в другой язык позволила бы менять генерируемый код по мере появления новых идей. Поиски средств реализации привели к проекту Roslyn – открытому компилятору C#.
Roslyn – это открытая платформа компиляции C# и Visual Basic. Roslyn выполняет два основных действия: строит синтаксическое дерево (парсинг) и компилирует синтаксическое дерево. Дополнительно позволяет анализировать исходный код, рекурсивно обходить его, работать с проектами Visual Studio, выполнять код на лету.
Обратите внимание, что на данный момент Roslyn в стадии Бета. Исходя из этого, со временем в компиляторе может что-то поменяться.
Roslyn – это открытая платформа компиляции C# и Visual Basic. Roslyn выполняет два основных действия: строит синтаксическое дерево (парсинг) и компилирует синтаксическое дерево. Дополнительно позволяет анализировать исходный код, рекурсивно обходить его, работать с проектами Visual Studio, выполнять код на лету.
Обратите внимание, что на данный момент Roslyn в стадии Бета. Исходя из этого, со временем в компиляторе может что-то поменяться.
Перегружаем данные из XPS в обработку 1С без OCR
Из песочницы
Доброго времени суток.
Столкнулся, значит, с такой проблемой. Есть обработка в 1С 8.2 и туда надо запихнуть в автоматическом режиме кучу данных. Куча данных находилась в своей базе данных, в своей архитектуре и подключить базу к 1С или переформатировать таблицы не представлялось возможным. Единственный способ, как мне показалось, вывести таблицу на виртуальный принтер, а оттуда и плясать начнем.
Итак, имеем документ в формате *.xps, который нам дал заботливый виртуальный принтер:

Столкнулся, значит, с такой проблемой. Есть обработка в 1С 8.2 и туда надо запихнуть в автоматическом режиме кучу данных. Куча данных находилась в своей базе данных, в своей архитектуре и подключить базу к 1С или переформатировать таблицы не представлялось возможным. Единственный способ, как мне показалось, вывести таблицу на виртуальный принтер, а оттуда и плясать начнем.
Итак, имеем документ в формате *.xps, который нам дал заботливый виртуальный принтер:

Как увеличить скорость работы 1С в 100 раз прямым обращением к MSSQL
Tutorial
Возникла задача пометить на удаление документы за 1 год. Эта операция выполняется перед бесследным удалением и включает выставление отметки и удаление движения по регистрам. Пробное удаление штатными средствами одного месяца заняло 4 часа. Это означало, что 12 месяцев удалялись бы 48 часов (2 суток). Забегая вперед, скажу, что прямым доступом к 1С документы удаляются за 30-40 минут. Обращение к MSSQL выполнялось через .Net framework и компонент .Net Bridge.
Структура базы данных 1С весьма запутана и состоит из малозначимых для человека названий. 1С содержит функцию определения структуры хранения по имени объекта. В основу разработки положена эта функция ПолучитьСтруктуруХраненияБазыДанных, которая согласно русскому названию возвращает описание структуры. В этой структуре важны 2 поля Назначение, которое должно быть равно «Основная», и название таблицы ИмяТаблицыХранения.
Определение имен таблиц MSSQL
Структура базы данных 1С весьма запутана и состоит из малозначимых для человека названий. 1С содержит функцию определения структуры хранения по имени объекта. В основу разработки положена эта функция ПолучитьСтруктуруХраненияБазыДанных, которая согласно русскому названию возвращает описание структуры. В этой структуре важны 2 поля Назначение, которое должно быть равно «Основная», и название таблицы ИмяТаблицыХранения.
ООП в 1С своими руками. Как имитировать свои классы и объекты, и зачем это нужно
Из песочницы
Tutorial

Хочу рассказать о том, как я использую объектно-ориентированное программирование в 1С. Вернее его имитацию, т.к. в самом встроенном языке таких возможностей нет. Тем не менее, возможность создавать логически независимые, обособленные, самодостаточные фрагмены кода (да еще с инкапсулированными в них данными), весьма полезна.
Ведь их можно:
— использовать повторно внутри одного и того же проекта;
— легко и просто (не задумываясь) переносить из одного проекта в другой;
— передать кому-то еще, или выложить в Интернете для всеобщего использования как самостоятельное средство решения определенной задачи, которое соответственно также легко может быть кем-то скопировано и вставлено в собственный проект);
— имея класс, можно создать сразу несколько объектов (строить из них массивы, коллекции, списки и т.д.);
— еще какие-то плюсы, о которых я не знаю…
В этой статье будет показаны приемы имитации ООП средствами процедурно-ориентированного языка 1С.
Представление настроек программы в 1С. Один из способов
Tutorial

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