воскресенье, 20 апреля 2014 г.

1С:Предприятие 8. Веб-сервисы. Передаем массив в 1С

Содержание статей: 1С:Предприятие 8. Веб-сервисы
Предыдущая статья: 1С:Предприятие 8. Веб-сервисы. Синхронизация с сайтом

Чтобы передать массив в 1С в качестве параметра операции веб сервиса достаточно просто этому параметру указать тип anyType (http://www.w3.org/2001/XMLSchema). После чего, переданный из php массив, в 1С будет передан как СписокXDTO, который можно обходить в цикле.


воскресенье, 17 ноября 2013 г.

1С:Предприятие 8. Веб-сервисы. Синхронизация с сайтом

Содержание статей: 1С:Предприятие 8. Веб-сервисы
Предыдущая статья: 1С:Предприятие 8. Веб-сервисы. Фасеты как способ ограничить значения данных

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

понедельник, 28 октября 2013 г.

Обзор средств репликации MS SQL Server 2012

Хочу поделить результатами поисков решения задачи резервирования баз 1С средствами Microsoft SQL Server. На самом деле задача передо мной стоит более масштабная - отказоустойчивый кластер 1С с балансировкой нагрузки. Тут как бы со стороны 1С все понятно - настраиваешь кластер серверов и вот тебе отказоустойчивость и балансировка, но касается это только сервера 1С, отказоустойчивость СУБД это отдельная песня.

В статье приводится лишь обзор средств репликации SQL Server.

MS SQL Server предоставляет следующие возможности:
  1. Репликация 
  2. Доставка журналов транзакций 
  3. Зеркальное отображение базы данных 
  4. Группы доступности AlwaysOn

суббота, 21 сентября 2013 г.

1С:Предприятие 8. Веб-сервисы. Фасеты как способ ограничить значения данных


Содержание статей: 1С:Предприятие 8. Веб-сервисы
Предыдущая статья: 1С:Предприятие 8. Веб-сервисы. Возвращаем массив

Фасеты - это определенные ограничения на тип значений XDTO. Один фасет определяет тип ограничения и значение ограничения. Например [Максимум включающий - 5]. Тип значения XDTO может хранить в себе несколько фасетов, но их типы должны быть уникальны, то есть нельзя указать два фасета   [Максимум включающий - 5] и [Максимум включающий - 3].

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

пятница, 13 сентября 2013 г.

Поздравляю всех 1С программистов с праздником!

Уважаемые коллеги, примите мои поздравления с днем программиста!


Всем желаю успехов, отсутствия багов, стойких серверов, понятливых руководителей и приятных клиентов!

вторник, 6 августа 2013 г.

Программный переход к разделу 1С с открытием формы в главном окне

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

Сначала я сделал простое открытие формы, которая располагалась в другом разделе и указывал что открывать надо в текущем окне. Примерно так:

        ОткрытьФорму("ОбщаяФорма.Форма2", , , , Окно);

Но в таком случае смена раздела не происходит. Что бы сменить раздел можно воспользоваться функцией ПерейтиПоНавигационнойСсылке() и написать примерно так:

        ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/Подсистема2");
    ОткрытьФорму("ОбщаяФорма.Форма2", , , , Окно);

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

        &НаКлиенте
    Процедура ПерейтиНаФорму2(Команда)
        ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/Подсистема2");
        ОткрытьФорму("ОбщаяФорма.Форма2", , , , ПолучитьОкна()[0]);
    КонецПроцедуры

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

1С:Предприятие 8. Веб-сервисы. Ошибки веб-сервисов и их причины


Содержание статей: 1С:Предприятие 8. Веб-сервисы
Предыдущая статья: 1С:Предприятие 8. Веб-сервисы. Возвращаем массив


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

1
Это сообщение об ошибке при подключении к веб сервису из PHP.
[31-Mar-2013 05:32:02 UTC] PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://test.ru/test/ws/WebServices?wsdl' : failed to load external entity

Данное сообщение говорит лишь о недоступности веб-сервера, на котором опубликована база. В этом случае попробуйте вручную вызвать http://test.ru/test/ws/WebServices?wsdl и убедиться, что WSDL формируется. Если не формируется, значит либо веб-сервер выключен, либо база опубликована по другому адресу или порту, либо блокирует фаервол. Могут быть и другие причины.